Add interaction tests (#15251)
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
using System.Threading.Tasks;
|
||||
using Content.IntegrationTests.Tests.Interaction;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Construction.Interaction;
|
||||
|
||||
public sealed class MachineConstruction : InteractionTest
|
||||
{
|
||||
private const string MachineFrame = "MachineFrame";
|
||||
private const string Unfinished = "UnfinishedMachineFrame";
|
||||
private const string ProtolatheBoard = "ProtolatheMachineCircuitboard";
|
||||
private const string Protolathe = "Protolathe";
|
||||
private const string Beaker = "Beaker";
|
||||
|
||||
[Test]
|
||||
public async Task ConstructProtolathe()
|
||||
{
|
||||
await StartConstruction(MachineFrame);
|
||||
await Interact(Steel, 5);
|
||||
AssertPrototype(Unfinished);
|
||||
await Interact(Wrench, Cable);
|
||||
AssertPrototype(MachineFrame);
|
||||
await Interact(ProtolatheBoard, Bin1, Bin1, Manipulator1, Manipulator1, Beaker, Beaker, Screw);
|
||||
AssertPrototype(Protolathe);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task DeconstructProtolathe()
|
||||
{
|
||||
await StartDeconstruction(Protolathe);
|
||||
await Interact(Screw, Pry);
|
||||
AssertPrototype(MachineFrame);
|
||||
await Interact(Pry, Cut);
|
||||
AssertPrototype(Unfinished);
|
||||
await Interact(Wrench, Screw);
|
||||
AssertDeleted();
|
||||
await AssertEntityLookup(
|
||||
(Steel, 5),
|
||||
(Cable, 1),
|
||||
(Beaker, 2),
|
||||
(Manipulator1, 2),
|
||||
(Bin1, 2),
|
||||
(ProtolatheBoard, 1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task ChangeMachine()
|
||||
{
|
||||
// Partially deconstruct a protolathe.
|
||||
await SpawnTarget(Protolathe);
|
||||
await Interact(Screw, Pry, Pry);
|
||||
AssertPrototype(MachineFrame);
|
||||
|
||||
// Change it into an autolathe
|
||||
await Interact("AutolatheMachineCircuitboard");
|
||||
AssertPrototype(MachineFrame);
|
||||
await Interact(Bin1, Bin1, Bin1, Manipulator1, Glass, Screw);
|
||||
AssertPrototype("Autolathe");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task UpgradeLathe()
|
||||
{
|
||||
// Partially deconstruct a protolathe.
|
||||
await SpawnTarget(Protolathe);
|
||||
|
||||
// Initially has all quality-1 parts.
|
||||
foreach (var part in SConstruction.GetAllParts(Target!.Value))
|
||||
{
|
||||
Assert.That(part.Rating, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
// Partially deconstruct lathe
|
||||
await Interact(Screw, Pry, Pry);
|
||||
AssertPrototype(MachineFrame);
|
||||
|
||||
// Reconstruct with better parts.
|
||||
await Interact(ProtolatheBoard, Bin4, Bin4, Manipulator4, Manipulator4, Beaker, Beaker);
|
||||
await Interact(Screw);
|
||||
AssertPrototype(Protolathe);
|
||||
|
||||
// Query now returns higher quality parts.
|
||||
foreach (var part in SConstruction.GetAllParts(Target!.Value))
|
||||
{
|
||||
Assert.That(part.Rating, Is.EqualTo(4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user