mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-06-09 13:26:34 +02:00
Gametest Part 2: Preliminary refactor every test to use GameTest as the framework. (#43207)
* Pass 1. * i'm FREE * Prevent hangups. * okay fine here's an attribute for settings, will polish later and prolly remove the overridable thing. * sigh. * fix singular trigger bug so LatheTest doesn't flake. * Remove SystemAttribute usage. * Poke * I used the shotgun. You know why? Cause the shot gun doesn’t miss, and unlike the shitty hybrid taser it stops a criminal in their tracks in two hits. Bang, bang, and they’re fucking done. I use four shots just to make damn sure. Because, once again, I’m not there to coddle a buncha criminal scum sucking f------, I’m there to 1) Survive the fucking round. 2) Guard the armory. So you can absolutely get fucked. If I get unbanned, which I won’t, you can guarantee I will continue to use the shotgun to apprehend criminals. Because it’s quick, clean and effective as fuck. Why in the seven hells would I fuck around with the disabler shots, which take half a clip just to bring someone down, or with the tazer bolts which are slow as balls, impossible to aim and do about next to jack shit, fuck all. The shotgun is the superior law enforcement weapon. Because it stops crime. And it stops crime by reducing the number of criminals roaming the fucking halls. * Change the faulty store test into two tests, one of which is ignored for failing.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
@@ -44,7 +45,7 @@ public class ComponentQueryBenchmark
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup(typeof(QueryBenchSystem).Assembly);
|
||||
|
||||
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
|
||||
_pair = PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null)).GetAwaiter().GetResult();
|
||||
_entMan = _pair.Server.ResolveDependency<IEntityManager>();
|
||||
|
||||
_itemQuery = _entMan.GetEntityQuery<ItemComponent>();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
using Content.IntegrationTests;
|
||||
@@ -68,7 +69,7 @@ public class DeltaPressureBenchmark
|
||||
{
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup();
|
||||
_pair = await PoolManager.GetServerClient();
|
||||
_pair = await PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null));
|
||||
var server = _pair.Server;
|
||||
|
||||
var mapdata = await _pair.CreateTestMap();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
using Content.IntegrationTests;
|
||||
@@ -69,7 +70,7 @@ public class DestructibleBenchmark
|
||||
{
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup();
|
||||
_pair = await PoolManager.GetServerClient();
|
||||
_pair = await PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null));
|
||||
var server = _pair.Server;
|
||||
|
||||
_entMan = server.ResolveDependency<IEntityManager>();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
using Content.IntegrationTests;
|
||||
@@ -60,7 +61,7 @@ public class DeviceNetworkingBenchmark
|
||||
{
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup(typeof(DeviceNetworkingBenchmark).Assembly);
|
||||
_pair = await PoolManager.GetServerClient();
|
||||
_pair = await PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null));
|
||||
var server = _pair.Server;
|
||||
|
||||
await server.WaitPost(() =>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
using Content.IntegrationTests;
|
||||
@@ -51,7 +52,7 @@ public class GasReactionBenchmark
|
||||
{
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup();
|
||||
_pair = await PoolManager.GetServerClient();
|
||||
_pair = await PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null));
|
||||
var server = _pair.Server;
|
||||
|
||||
// Create test map and grid
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
using Content.IntegrationTests;
|
||||
using Content.IntegrationTests.Pair;
|
||||
@@ -27,7 +28,7 @@ public class HeatCapacityBenchmark
|
||||
{
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup();
|
||||
_pair = await PoolManager.GetServerClient();
|
||||
_pair = await PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null));
|
||||
await _pair.Connect();
|
||||
_cEntMan = _pair.Client.ResolveDependency<IEntityManager>();
|
||||
_sEntMan = _pair.Server.ResolveDependency<IEntityManager>();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
@@ -29,7 +30,7 @@ public class MapLoadBenchmark
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup();
|
||||
|
||||
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
|
||||
_pair = PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null)).GetAwaiter().GetResult();
|
||||
var server = _pair.Server;
|
||||
|
||||
Paths = server.ResolveDependency<IPrototypeManager>()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
@@ -50,7 +51,7 @@ public class PvsBenchmark
|
||||
#endif
|
||||
PoolManager.Startup();
|
||||
|
||||
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
|
||||
_pair = PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null)).GetAwaiter().GetResult();
|
||||
_entMan = _pair.Server.ResolveDependency<IEntityManager>();
|
||||
_pair.Server.CfgMan.SetCVar(CVars.NetPVS, true);
|
||||
_pair.Server.CfgMan.SetCVar(CVars.ThreadParallelCount, 0);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#nullable enable
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
@@ -21,7 +22,7 @@ public class RaiseEventBenchmark
|
||||
{
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup(typeof(BenchSystem).Assembly);
|
||||
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
|
||||
_pair = PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null)).GetAwaiter().GetResult();
|
||||
var entMan = _pair.Server.EntMan;
|
||||
var fact = _pair.Server.ResolveDependency<IComponentFactory>();
|
||||
var bus = (EntityEventBus)entMan.EventBus;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
using Content.IntegrationTests;
|
||||
using Content.IntegrationTests.Pair;
|
||||
@@ -36,7 +37,7 @@ public class SpawnEquipDeleteBenchmark
|
||||
{
|
||||
ProgramShared.PathOffset = "../../../../";
|
||||
PoolManager.Startup();
|
||||
_pair = await PoolManager.GetServerClient();
|
||||
_pair = await PoolManager.GetServerClient(testContext: new ExternalTestContext("Benchmark", StreamWriter.Null));
|
||||
var server = _pair.Server;
|
||||
|
||||
var mapData = await _pair.CreateTestMap();
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Fixtures.Attributes;
|
||||
using Content.Shared.Access;
|
||||
using Content.Shared.Access.Components;
|
||||
using Content.Shared.Access.Systems;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Access
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AccessReaderComponent))]
|
||||
public sealed class AccessReaderTest
|
||||
public sealed class AccessReaderTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -21,91 +22,85 @@ namespace Content.IntegrationTests.Tests.Access
|
||||
- type: AccessReader
|
||||
";
|
||||
|
||||
[SidedDependency(Side.Server)] private readonly AccessReaderSystem _system = null!;
|
||||
|
||||
[Test]
|
||||
[RunOnSide(Side.Server)]
|
||||
public async Task TestTags()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var server = pair.Server;
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
var ent = SSpawn("TestAccessReader");
|
||||
var reader = new Entity<AccessReaderComponent>(ent, SComp<AccessReaderComponent>(ent));
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
// test empty
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
var system = entityManager.System<AccessReaderSystem>();
|
||||
var ent = entityManager.SpawnEntity("TestAccessReader", MapCoordinates.Nullspace);
|
||||
var reader = new Entity<AccessReaderComponent>(ent, entityManager.GetComponent<AccessReaderComponent>(ent));
|
||||
|
||||
// test empty
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "Foo" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "Bar" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.True);
|
||||
});
|
||||
|
||||
// test deny
|
||||
system.AddDenyTag(reader, "A");
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "Foo" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.False);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "Foo" }, reader), Is.False);
|
||||
Assert.That(system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.True);
|
||||
});
|
||||
system.ClearDenyTags(reader);
|
||||
|
||||
// test one list
|
||||
system.TryAddAccess(reader, "A");
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "B" }, reader), Is.False);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "B" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.False);
|
||||
});
|
||||
system.TryClearAccesses(reader);
|
||||
|
||||
// test one list - two items
|
||||
system.TryAddAccess(reader, new HashSet<ProtoId<AccessLevelPrototype>> { "A", "B" });
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.False);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "B" }, reader), Is.False);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "B" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.False);
|
||||
});
|
||||
system.TryClearAccesses(reader);
|
||||
|
||||
// test two list
|
||||
var accesses = new List<HashSet<ProtoId<AccessLevelPrototype>>>() {
|
||||
new HashSet<ProtoId<AccessLevelPrototype>> () { "A" },
|
||||
new HashSet<ProtoId<AccessLevelPrototype>> () { "B", "C" }
|
||||
};
|
||||
system.TryAddAccesses(reader, accesses);
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "B" }, reader), Is.False);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "B" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "C", "B" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "C", "B", "A" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.False);
|
||||
});
|
||||
system.TryClearAccesses(reader);
|
||||
|
||||
// test deny list
|
||||
system.TryAddAccess(reader, new HashSet<ProtoId<AccessLevelPrototype>> { "A" });
|
||||
system.AddDenyTag(reader, "B");
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.True);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "B" }, reader), Is.False);
|
||||
Assert.That(system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "B" }, reader), Is.False);
|
||||
Assert.That(system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.False);
|
||||
});
|
||||
system.TryClearAccesses(reader);
|
||||
system.ClearDenyTags(reader);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "Foo" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "Bar" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.True);
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
|
||||
// test deny
|
||||
_system.AddDenyTag(reader, "A");
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "Foo" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.False);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "Foo" }, reader), Is.False);
|
||||
Assert.That(_system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.True);
|
||||
});
|
||||
_system.ClearDenyTags(reader);
|
||||
|
||||
// test one list
|
||||
_system.TryAddAccess(reader, "A");
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "B" }, reader), Is.False);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "B" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.False);
|
||||
});
|
||||
_system.TryClearAccesses(reader);
|
||||
|
||||
// test one list - two items
|
||||
_system.TryAddAccess(reader, new HashSet<ProtoId<AccessLevelPrototype>> { "A", "B" });
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.False);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "B" }, reader), Is.False);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "B" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.False);
|
||||
});
|
||||
_system.TryClearAccesses(reader);
|
||||
|
||||
// test two list
|
||||
var accesses = new List<HashSet<ProtoId<AccessLevelPrototype>>>() {
|
||||
new HashSet<ProtoId<AccessLevelPrototype>> () { "A" },
|
||||
new HashSet<ProtoId<AccessLevelPrototype>> () { "B", "C" }
|
||||
};
|
||||
_system.TryAddAccesses(reader, accesses);
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "B" }, reader), Is.False);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "B" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "C", "B" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "C", "B", "A" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.False);
|
||||
});
|
||||
_system.TryClearAccesses(reader);
|
||||
|
||||
// test deny list
|
||||
_system.TryAddAccess(reader, new HashSet<ProtoId<AccessLevelPrototype>> { "A" });
|
||||
_system.AddDenyTag(reader, "B");
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A" }, reader), Is.True);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "B" }, reader), Is.False);
|
||||
Assert.That(_system.AreAccessTagsAllowed(new List<ProtoId<AccessLevelPrototype>> { "A", "B" }, reader), Is.False);
|
||||
Assert.That(_system.AreAccessTagsAllowed(Array.Empty<ProtoId<AccessLevelPrototype>>(), reader), Is.False);
|
||||
});
|
||||
_system.TryClearAccesses(reader);
|
||||
_system.ClearDenyTags(reader);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
#nullable enable
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Fixtures.Attributes;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Eye;
|
||||
using Robust.Server.GameObjects;
|
||||
@@ -7,15 +10,18 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests.Actions;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class ActionPvsDetachTest
|
||||
public sealed class ActionPvsDetachTest : GameTest
|
||||
{
|
||||
[SidedDependency(Side.Server)] private readonly SharedActionsSystem _sActionsSys = null!;
|
||||
[SidedDependency(Side.Client)] private readonly SharedActionsSystem _cActionsSys = null!;
|
||||
|
||||
[Test]
|
||||
public async Task TestActionDetach()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var (server, client) = pair;
|
||||
var sys = server.System<SharedActionsSystem>();
|
||||
var cSys = client.System<SharedActionsSystem>();
|
||||
var pair = Pair;
|
||||
var (server, client) = (Server, Client);
|
||||
var sys = _sActionsSys;
|
||||
var cSys = _cActionsSys;
|
||||
|
||||
// Spawn mob that has some actions
|
||||
EntityUid ent = default;
|
||||
@@ -60,6 +66,5 @@ public sealed class ActionPvsDetachTest
|
||||
Assert.That(cSys.GetActions(cEnt).Count(), Is.EqualTo(initActions));
|
||||
|
||||
await server.WaitPost(() => server.EntMan.DeleteEntity(map.MapUid));
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#nullable enable
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Actions.Components;
|
||||
using Content.Shared.CombatMode;
|
||||
@@ -11,15 +13,17 @@ namespace Content.IntegrationTests.Tests.Actions;
|
||||
/// This tests checks that actions properly get added to an entity's actions component..
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public sealed class ActionsAddedTest
|
||||
public sealed class ActionsAddedTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new PoolSettings { Connected = true, DummyTicker = false };
|
||||
|
||||
// TODO add magboot test (inventory action)
|
||||
// TODO add ghost toggle-fov test (client-side action)
|
||||
|
||||
[Test]
|
||||
public async Task TestCombatActionsAdded()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true, DummyTicker = false });
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
var sEntMan = server.ResolveDependency<IEntityManager>();
|
||||
@@ -67,7 +71,5 @@ public sealed class ActionsAddedTest
|
||||
// required, because integration tests do not respect the [NonSerialized] attribute and will simply events by reference.
|
||||
Assert.That(ReferenceEquals(sAct.Comp, cAct.Comp), Is.False);
|
||||
Assert.That(ReferenceEquals(sQuery.GetComponent(sAct).Event, cQuery.GetComponent(cAct).Event), Is.False);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.Database;
|
||||
using Content.Server.GameTicking;
|
||||
@@ -12,9 +14,9 @@ namespace Content.IntegrationTests.Tests.Administration.Logs;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AdminLogSystem))]
|
||||
public sealed class AddTests
|
||||
public sealed class AddTests : GameTest
|
||||
{
|
||||
public static PoolSettings LogTestSettings = new()
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
AdminLogsEnabled = true,
|
||||
DummyTicker = false,
|
||||
@@ -24,7 +26,7 @@ public sealed class AddTests
|
||||
[Test]
|
||||
public async Task AddAndGetSingleLog()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(LogTestSettings);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
|
||||
@@ -33,7 +35,7 @@ public sealed class AddTests
|
||||
var guid = Guid.NewGuid();
|
||||
|
||||
await pair.CreateTestMap();
|
||||
var coordinates = pair.TestMap.GridCoords;
|
||||
var coordinates = pair.TestMap!.GridCoords;
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var entity = sEntities.SpawnEntity(null, coordinates);
|
||||
@@ -62,14 +64,12 @@ public sealed class AddTests
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task AddAndGetUnformattedLog()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(LogTestSettings);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sDatabase = server.ResolveDependency<IServerDbManager>();
|
||||
@@ -127,15 +127,13 @@ public sealed class AddTests
|
||||
|
||||
json.Dispose();
|
||||
}
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[TestCase(500)]
|
||||
public async Task BulkAddLogs(int amount)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(LogTestSettings);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -158,14 +156,12 @@ public sealed class AddTests
|
||||
var messages = await sAdminLogSystem.CurrentRoundLogs();
|
||||
return messages.Count >= amount;
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task AddPlayerSessionLog()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(LogTestSettings);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sPlayers = server.ResolveDependency<IPlayerManager>();
|
||||
@@ -195,20 +191,91 @@ public sealed class AddTests
|
||||
Assert.That(logs.First().Players, Does.Contain(playerGuid));
|
||||
return true;
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task DuplicatePlayerDoesNotThrowTest()
|
||||
{
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sPlayers = server.ResolveDependency<IPlayerManager>();
|
||||
var sAdminLogSystem = server.ResolveDependency<IAdminLogManager>();
|
||||
|
||||
var guid = Guid.NewGuid();
|
||||
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var player = sPlayers.Sessions.Single();
|
||||
|
||||
sAdminLogSystem.Add(LogType.Unknown, $"{player} {player} test log: {guid}");
|
||||
});
|
||||
|
||||
await PoolManager.WaitUntil(server, async () =>
|
||||
{
|
||||
var logs = await sAdminLogSystem.CurrentRoundLogs(new LogFilter
|
||||
{
|
||||
Search = guid.ToString()
|
||||
});
|
||||
|
||||
if (logs.Count == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task DuplicatePlayerIdDoesNotThrowTest()
|
||||
{
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sPlayers = server.ResolveDependency<IPlayerManager>();
|
||||
|
||||
var sAdminLogSystem = server.ResolveDependency<IAdminLogManager>();
|
||||
|
||||
var guid = Guid.NewGuid();
|
||||
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var player = sPlayers.Sessions.Single();
|
||||
|
||||
sAdminLogSystem.Add(LogType.Unknown, $"{player:first} {player:second} test log: {guid}");
|
||||
});
|
||||
|
||||
await PoolManager.WaitUntil(server, async () =>
|
||||
{
|
||||
var logs = await sAdminLogSystem.CurrentRoundLogs(new LogFilter
|
||||
{
|
||||
Search = guid.ToString()
|
||||
});
|
||||
|
||||
if (logs.Count == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PreRoundAddTests : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new PoolSettings
|
||||
{
|
||||
Dirty = true,
|
||||
InLobby = true,
|
||||
AdminLogsEnabled = true
|
||||
};
|
||||
|
||||
[Test]
|
||||
public async Task PreRoundAddAndGetSingle()
|
||||
{
|
||||
var setting = new PoolSettings
|
||||
{
|
||||
Dirty = true,
|
||||
InLobby = true,
|
||||
AdminLogsEnabled = true
|
||||
};
|
||||
|
||||
await using var pair = await PoolManager.GetServerClient(setting);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sDatabase = server.ResolveDependency<IServerDbManager>();
|
||||
@@ -262,81 +329,6 @@ public sealed class AddTests
|
||||
|
||||
json.Dispose();
|
||||
}
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task DuplicatePlayerDoesNotThrowTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(LogTestSettings);
|
||||
var server = pair.Server;
|
||||
|
||||
var sPlayers = server.ResolveDependency<IPlayerManager>();
|
||||
var sAdminLogSystem = server.ResolveDependency<IAdminLogManager>();
|
||||
|
||||
var guid = Guid.NewGuid();
|
||||
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var player = sPlayers.Sessions.Single();
|
||||
|
||||
sAdminLogSystem.Add(LogType.Unknown, $"{player} {player} test log: {guid}");
|
||||
});
|
||||
|
||||
await PoolManager.WaitUntil(server, async () =>
|
||||
{
|
||||
var logs = await sAdminLogSystem.CurrentRoundLogs(new LogFilter
|
||||
{
|
||||
Search = guid.ToString()
|
||||
});
|
||||
|
||||
if (logs.Count == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
Assert.Pass();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task DuplicatePlayerIdDoesNotThrowTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(LogTestSettings);
|
||||
var server = pair.Server;
|
||||
|
||||
var sPlayers = server.ResolveDependency<IPlayerManager>();
|
||||
|
||||
var sAdminLogSystem = server.ResolveDependency<IAdminLogManager>();
|
||||
|
||||
var guid = Guid.NewGuid();
|
||||
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var player = sPlayers.Sessions.Single();
|
||||
|
||||
sAdminLogSystem.Add(LogType.Unknown, $"{player:first} {player:second} test log: {guid}");
|
||||
});
|
||||
|
||||
await PoolManager.WaitUntil(server, async () =>
|
||||
{
|
||||
var logs = await sAdminLogSystem.CurrentRoundLogs(new LogFilter
|
||||
{
|
||||
Search = guid.ToString()
|
||||
});
|
||||
|
||||
if (logs.Count == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
Assert.Pass();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Shared.Administration.Logs;
|
||||
using Content.Shared.Database;
|
||||
@@ -7,14 +8,21 @@ namespace Content.IntegrationTests.Tests.Administration.Logs;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AdminLogSystem))]
|
||||
public sealed class FilterTests
|
||||
public sealed class FilterTests : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
AdminLogsEnabled = true,
|
||||
DummyTicker = false,
|
||||
Connected = true
|
||||
};
|
||||
|
||||
[Test]
|
||||
[TestCase(DateOrder.Ascending)]
|
||||
[TestCase(DateOrder.Descending)]
|
||||
public async Task Date(DateOrder order)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(AddTests.LogTestSettings);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -96,6 +104,5 @@ public sealed class FilterTests
|
||||
|
||||
return firstFound && secondFound;
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Administration.Logs;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Shared.Database;
|
||||
@@ -11,12 +12,19 @@ namespace Content.IntegrationTests.Tests.Administration.Logs;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AdminLogSystem))]
|
||||
public sealed class QueryTests
|
||||
public sealed class QueryTests : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
AdminLogsEnabled = true,
|
||||
DummyTicker = false,
|
||||
Connected = true
|
||||
};
|
||||
|
||||
[Test]
|
||||
public async Task QuerySingleLog()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(AddTests.LogTestSettings);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sSystems = server.ResolveDependency<IEntitySystemManager>();
|
||||
@@ -55,7 +63,5 @@ public sealed class QueryTests
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Atmos.Monitor;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
@@ -5,7 +6,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AtmosAlarmThreshold))]
|
||||
public sealed class AlarmThresholdTest
|
||||
public sealed class AlarmThresholdTest : GameTest
|
||||
{
|
||||
private const string AlarmThresholdTestDummyId = "AlarmThresholdTestDummy";
|
||||
|
||||
@@ -26,7 +27,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
[Test]
|
||||
public async Task TestAlarmThreshold()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var prototypeManager = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -136,7 +137,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
Assert.That(alarmType, Is.EqualTo(AtmosAlarmType.Normal));
|
||||
}
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Atmos.EntitySystems;
|
||||
using Content.Shared.Atmos;
|
||||
using Content.Shared.Atmos.Prototypes;
|
||||
@@ -6,12 +7,12 @@ using Content.Shared.Atmos.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.Atmos;
|
||||
|
||||
[TestOf(typeof(Atmospherics))]
|
||||
public sealed class ConstantsTest
|
||||
public sealed class ConstantsTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task TotalGasesTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var entityManager = server.EntMan;
|
||||
var protoManager = server.ProtoMan;
|
||||
@@ -42,7 +43,6 @@ public sealed class ConstantsTest
|
||||
}
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Atmos;
|
||||
using Content.Shared.Atmos.Components;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -8,7 +9,7 @@ namespace Content.IntegrationTests.Tests.Atmos;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(Atmospherics))]
|
||||
public sealed class GasArrayTest
|
||||
public sealed class GasArrayTest : GameTest
|
||||
{
|
||||
private const string GasTankTestDummyId = "GasTankTestDummy";
|
||||
|
||||
@@ -42,7 +43,7 @@ public sealed class GasArrayTest
|
||||
[Test]
|
||||
public async Task TestGasArrayDeserialization()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var compFactory = server.ResolveDependency<IComponentFactory>();
|
||||
@@ -80,6 +81,5 @@ public sealed class GasArrayTest
|
||||
}
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Server.Atmos;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Atmos;
|
||||
using Content.Server.Atmos.EntitySystems;
|
||||
using Content.Shared.Atmos;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -7,12 +8,12 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(GasMixture))]
|
||||
public sealed class GasMixtureTest
|
||||
public sealed class GasMixtureTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task TestMerge()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var atmosphereSystem = server.ResolveDependency<IEntitySystemManager>().GetEntitySystem<AtmosphereSystem>();
|
||||
@@ -56,8 +57,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
Assert.That(a.GetMoles(Gas.Oxygen), Is.EqualTo(50));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -69,7 +68,7 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
[TestCase(Atmospherics.BreathPercentage)]
|
||||
public async Task RemoveRatio(float ratio)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
@@ -103,8 +102,6 @@ namespace Content.IntegrationTests.Tests.Atmos
|
||||
Assert.That(a.GetMoles(Gas.Nitrogen), Is.EqualTo(100 - b.GetMoles(Gas.Nitrogen)));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Server.Atmos.EntitySystems;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Atmos.Piping.EntitySystems;
|
||||
using Content.Shared.Atmos.Components;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -6,14 +7,14 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests.Atmos;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class GridJoinTest
|
||||
public sealed class GridJoinTest : GameTest
|
||||
{
|
||||
private const string CanisterProtoId = "AirCanister";
|
||||
|
||||
[Test]
|
||||
public async Task TestGridJoinAtmosphere()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entMan = server.EntMan;
|
||||
@@ -46,7 +47,5 @@ public sealed class GridJoinTest
|
||||
// Make sure that the canister is now properly tracked as on-grid
|
||||
Assert.That(atmosDeviceSystem.IsJoinedOffGrid(canisterEnt), Is.False);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public sealed class SharedGasSpecificHeatsTest
|
||||
{
|
||||
Connected = true,
|
||||
};
|
||||
_pair = await PoolManager.GetServerClient(poolSettings);
|
||||
_pair = await PoolManager.GetServerClient(poolSettings, new NUnitTestContextWrap(TestContext.CurrentContext, TestContext.Out));
|
||||
|
||||
_sEntMan = Server.ResolveDependency<IEntityManager>();
|
||||
_cEntMan = Client.ResolveDependency<IEntityManager>();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Body;
|
||||
using Content.Shared.Gibbing;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -6,7 +7,7 @@ namespace Content.IntegrationTests.Tests.Body;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(GibbableOrganSystem))]
|
||||
public sealed class GibletTest
|
||||
public sealed class GibletTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -33,7 +34,7 @@ public sealed class GibletTest
|
||||
[Test]
|
||||
public async Task GibletCountTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
await server.WaitIdleAsync();
|
||||
@@ -54,7 +55,5 @@ public sealed class GibletTest
|
||||
Assert.That(entityManager.HasComponent<GibbableOrganComponent>(giblet), Is.True);
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Body;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Robust.Shared.Containers;
|
||||
@@ -9,7 +10,7 @@ namespace Content.IntegrationTests.Tests.Body;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(HandOrganSystem))]
|
||||
public sealed class HandOrganTest
|
||||
public sealed class HandOrganTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -46,7 +47,7 @@ public sealed class HandOrganTest
|
||||
[Test]
|
||||
public async Task HandInsertionAndRemovalTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
await server.WaitIdleAsync();
|
||||
@@ -81,7 +82,5 @@ public sealed class HandOrganTest
|
||||
Assert.That(hands.Count, Is.EqualTo(expectedCount));
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ public sealed partial class BuckleTest
|
||||
[Test]
|
||||
public async Task BuckleInteractUnbuckleOther()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entMan = server.ResolveDependency<IServerEntityManager>();
|
||||
@@ -55,14 +55,12 @@ public sealed partial class BuckleTest
|
||||
Assert.That(strap.BuckledEntities, Does.Not.Contain(victim));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task BuckleInteractBuckleUnbuckleSelf()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entMan = server.ResolveDependency<IServerEntityManager>();
|
||||
@@ -102,7 +100,5 @@ public sealed partial class BuckleTest
|
||||
Assert.That(strap.BuckledEntities, Does.Not.Contain(user));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Buckle;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Buckle.Components;
|
||||
@@ -12,7 +13,7 @@ namespace Content.IntegrationTests.Tests.Buckle
|
||||
[TestFixture]
|
||||
[TestOf(typeof(BuckleComponent))]
|
||||
[TestOf(typeof(StrapComponent))]
|
||||
public sealed partial class BuckleTest
|
||||
public sealed partial class BuckleTest : GameTest
|
||||
{
|
||||
private const string BuckleDummyId = "BuckleDummy";
|
||||
private const string StrapDummyId = "StrapDummy";
|
||||
@@ -50,7 +51,7 @@ namespace Content.IntegrationTests.Tests.Buckle
|
||||
[Test]
|
||||
public async Task BuckleUnbuckleCooldownRangeTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -228,14 +229,12 @@ namespace Content.IntegrationTests.Tests.Buckle
|
||||
Assert.That(strap.BuckledEntities, Is.Empty);
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task BuckledDyingDropItemsTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -298,14 +297,12 @@ namespace Content.IntegrationTests.Tests.Buckle
|
||||
buckleSystem.Unbuckle(human, human);
|
||||
Assert.That(buckle.Buckled, Is.False);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task ForceUnbuckleBuckleTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -373,7 +370,6 @@ namespace Content.IntegrationTests.Tests.Buckle
|
||||
Assert.That(buckle.Buckled);
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Cargo.Components;
|
||||
using Content.Server.Cargo.Systems;
|
||||
using Content.Server.Nutrition.Components;
|
||||
@@ -17,7 +18,7 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class CargoTest
|
||||
public sealed class CargoTest : GameTest
|
||||
{
|
||||
private static readonly HashSet<ProtoId<CargoProductPrototype>> Ignored =
|
||||
[
|
||||
@@ -28,7 +29,7 @@ public sealed class CargoTest
|
||||
[Test]
|
||||
public async Task NoCargoOrderArbitrage()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -54,13 +55,11 @@ public sealed class CargoTest
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
[Test]
|
||||
public async Task NoCargoBountyArbitrageTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -94,14 +93,12 @@ public sealed class CargoTest
|
||||
|
||||
mapSystem.DeleteMap(mapId);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task NoStaticPriceAndStackPrice()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var protoManager = server.ProtoMan;
|
||||
@@ -133,8 +130,6 @@ public sealed class CargoTest
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -144,7 +139,7 @@ public sealed class CargoTest
|
||||
[Test]
|
||||
public async Task NoSliceableBountyArbitrageTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -209,8 +204,6 @@ public sealed class CargoTest
|
||||
}
|
||||
mapSystem.DeleteMap(mapId);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[TestPrototypes]
|
||||
@@ -233,7 +226,7 @@ public sealed class CargoTest
|
||||
[Test]
|
||||
public async Task StackPrice()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var entManager = server.ResolveDependency<IEntityManager>();
|
||||
|
||||
@@ -245,14 +238,12 @@ public sealed class CargoTest
|
||||
var price = priceSystem.GetPrice(ent);
|
||||
Assert.That(price, Is.EqualTo(100.0));
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task MobPrice()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
|
||||
var componentFactory = pair.Server.ResolveDependency<IComponentFactory>();
|
||||
|
||||
@@ -266,7 +257,5 @@ public sealed class CargoTest
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Tests.Interaction;
|
||||
using Content.Shared.Chemistry.Reagent;
|
||||
using Robust.Shared.Reflection;
|
||||
@@ -8,12 +9,12 @@ namespace Content.IntegrationTests.Tests.Chemistry;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(ReagentData))]
|
||||
public sealed class ReagentDataTest
|
||||
public sealed class ReagentDataTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task ReagentDataIsSerializable()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var reflection = pair.Server.ResolveDependency<IReflectionManager>();
|
||||
|
||||
Assert.Multiple(() =>
|
||||
@@ -24,7 +25,5 @@ public sealed class ReagentDataTest
|
||||
Assert.That(instance.HasCustomAttribute<SerializableAttribute>(), $"{instance} must have the serializable attribute.");
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.Chemistry.Reaction;
|
||||
@@ -9,7 +10,7 @@ namespace Content.IntegrationTests.Tests.Chemistry;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(ChemicalReactionSystem))]
|
||||
public sealed class SolutionRoundingTest
|
||||
public sealed class SolutionRoundingTest : GameTest
|
||||
{
|
||||
// This test tests two things:
|
||||
// * A rounding error in reaction code while I was making chloral hydrate
|
||||
@@ -72,7 +73,7 @@ public sealed class SolutionRoundingTest
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var testMap = await pair.CreateTestMap();
|
||||
|
||||
@@ -121,7 +122,5 @@ public sealed class SolutionRoundingTest
|
||||
Is.EqualTo((FixedPoint2) 30));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.FixedPoint;
|
||||
@@ -12,7 +13,7 @@ namespace Content.IntegrationTests.Tests.Chemistry;
|
||||
// reactions can change this assumption
|
||||
[TestFixture]
|
||||
[TestOf(typeof(SharedSolutionContainerSystem))]
|
||||
public sealed class SolutionSystemTests
|
||||
public sealed class SolutionSystemTests : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -53,7 +54,7 @@ public sealed class SolutionSystemTests
|
||||
[Test]
|
||||
public async Task TryAddTwoNonReactiveReagent()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -88,8 +89,6 @@ public sealed class SolutionSystemTests
|
||||
Assert.That(oil, Is.EqualTo(oilQuantity));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
// This test mimics current behavior
|
||||
@@ -97,7 +96,7 @@ public sealed class SolutionSystemTests
|
||||
[Test]
|
||||
public async Task TryAddTooMuchNonReactiveReagent()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -133,15 +132,13 @@ public sealed class SolutionSystemTests
|
||||
Assert.That(oil, Is.EqualTo(FixedPoint2.Zero));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
// Unlike TryAddSolution this adds and two solution without then splits leaving only threshold in original
|
||||
[Test]
|
||||
public async Task TryMixAndOverflowTooMuchReagent()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
|
||||
@@ -188,15 +185,13 @@ public sealed class SolutionSystemTests
|
||||
Assert.That(oilOverFlow, Is.EqualTo(oilQuantity - oilMix));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
// TryMixAndOverflow will fail if Threshold larger than MaxVolume
|
||||
[Test]
|
||||
public async Task TryMixAndOverflowTooBigOverflow()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -226,14 +221,12 @@ public sealed class SolutionSystemTests
|
||||
.TryMixAndOverflow(solutionEnt.Value, oilAdded, threshold, out _),
|
||||
Is.False);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestTemperatureCalculations()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
||||
const float temp = 100.0f;
|
||||
@@ -264,7 +257,5 @@ public sealed class SolutionSystemTests
|
||||
solutionOne.AddSolution(solutionTwo, protoMan);
|
||||
Assert.That(solutionOne.GetHeatCapacity(protoMan) * solutionOne.Temperature, Is.EqualTo(thermalEnergyOne + thermalEnergyTwo));
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Utility;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
|
||||
@@ -12,7 +13,7 @@ namespace Content.IntegrationTests.Tests.Chemistry
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(ReactionPrototype))]
|
||||
public sealed class TryAllReactionsTest
|
||||
public sealed class TryAllReactionsTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -33,7 +34,7 @@ namespace Content.IntegrationTests.Tests.Chemistry
|
||||
[Description("Tries an individual reaction to see if it succeeds.")]
|
||||
public async Task TryReaction(string reaction)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -134,8 +135,6 @@ namespace Content.IntegrationTests.Tests.Chemistry
|
||||
|
||||
server.EntMan.DeleteEntity(beaker);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +1,37 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Administration.UI;
|
||||
using Content.Server.EUI;
|
||||
using Robust.Server.Player;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Cleanup;
|
||||
|
||||
public sealed class EuiManagerTest
|
||||
public sealed class EuiManagerTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true
|
||||
};
|
||||
|
||||
[Test]
|
||||
[Retry(2)]
|
||||
// Even though we are using the server EUI here, we actually want to see if the client EUIManager crashes
|
||||
public async Task EuiManagerRecycleWithOpenWindowTest()
|
||||
{
|
||||
// Even though we are using the server EUI here, we actually want to see if the client EUIManager crashes
|
||||
for (var i = 0; i < 2; i++)
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sPlayerManager = server.ResolveDependency<IPlayerManager>();
|
||||
var eui = server.ResolveDependency<EuiManager>();
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true
|
||||
});
|
||||
var server = pair.Server;
|
||||
var clientSession = sPlayerManager.Sessions.Single();
|
||||
var ui = new AdminAnnounceEui();
|
||||
eui.OpenEui(ui, clientSession);
|
||||
});
|
||||
|
||||
var sPlayerManager = server.ResolveDependency<IPlayerManager>();
|
||||
var eui = server.ResolveDependency<EuiManager>();
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
var clientSession = sPlayerManager.Sessions.Single();
|
||||
var ui = new AdminAnnounceEui();
|
||||
eui.OpenEui(ui, clientSession);
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
await RunUntilSynced();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Numerics;
|
||||
using Content.Client.Clickable;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class ClickableTest
|
||||
public sealed class ClickableTest : GameTest
|
||||
{
|
||||
private const double DirSouth = 0;
|
||||
private const double DirNorth = Math.PI;
|
||||
@@ -44,7 +45,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[TestCase("ClickTestRotatingCornerInvisibleNoRot", 0.25f, 0.25f, DirSouthEastJustShy, 1, ExpectedResult = true)]
|
||||
public async Task<bool> Test(string prototype, float clickPosX, float clickPosY, double angle, float scale)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
|
||||
@@ -66,7 +67,7 @@ namespace Content.IntegrationTests.Tests
|
||||
});
|
||||
|
||||
// Let client sync up.
|
||||
await pair.RunTicksSync(5);
|
||||
await RunUntilSynced();
|
||||
|
||||
var hit = false;
|
||||
var clientEnt = clientEntManager.GetEntity(serverEntManager.GetNetEntity(serverEnt));
|
||||
@@ -89,8 +90,6 @@ namespace Content.IntegrationTests.Tests
|
||||
serverEntManager.DeleteEntity(serverEnt);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
|
||||
return hit;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Cloning;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Cloning;
|
||||
|
||||
public sealed class CloningSettingsPrototypeTest
|
||||
public sealed class CloningSettingsPrototypeTest : GameTest
|
||||
{
|
||||
/// <summary>
|
||||
/// Checks that the components named in every <see cref="CloningSettingsPrototype"/> are valid components known to the server.
|
||||
@@ -12,7 +13,7 @@ public sealed class CloningSettingsPrototypeTest
|
||||
[Test]
|
||||
public async Task ValidatePrototypes()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var protoMan = server.ProtoMan;
|
||||
var compFactory = server.EntMan.ComponentFactory;
|
||||
@@ -40,7 +41,5 @@ public sealed class CloningSettingsPrototypeTest
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Maps;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Shared.Configuration;
|
||||
@@ -6,7 +7,7 @@ using Robust.Shared.Console;
|
||||
namespace Content.IntegrationTests.Tests.Commands;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class ForceMapTest
|
||||
public sealed class ForceMapTest : GameTest
|
||||
{
|
||||
private const string DefaultMapName = "Empty";
|
||||
private const string BadMapName = "asdf_asd-fa__sdfAsd_f"; // Hopefully no one ever names a map this...
|
||||
@@ -44,7 +45,7 @@ public sealed class ForceMapTest
|
||||
[Test]
|
||||
public async Task TestForceMapCommand()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entMan = server.EntMan;
|
||||
@@ -82,7 +83,5 @@ public sealed class ForceMapTest
|
||||
|
||||
// Cleanup
|
||||
configManager.SetCVar(CCVars.GameMap, DefaultMapName);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#nullable enable
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Objectives;
|
||||
using Content.Shared.Mind;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.Player;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Commands;
|
||||
|
||||
public sealed class ObjectiveCommandsTest
|
||||
public sealed class ObjectiveCommandsTest : GameTest
|
||||
{
|
||||
|
||||
private const string ObjectiveProtoId = "MindCommandsTestObjective";
|
||||
@@ -27,6 +28,11 @@ public sealed class ObjectiveCommandsTest
|
||||
- type: DieCondition
|
||||
""";
|
||||
|
||||
public override PoolSettings PoolSettings => new ()
|
||||
{
|
||||
Connected = false
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Creates a dummy session, and assigns it a mind, then
|
||||
/// tests using <c>addobjective</c>, <c>lsobjectives</c>,
|
||||
@@ -35,7 +41,7 @@ public sealed class ObjectiveCommandsTest
|
||||
[Test]
|
||||
public async Task AddListRemoveObjectiveTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var entMan = server.EntMan;
|
||||
var playerMan = server.ResolveDependency<ISharedPlayerManager>();
|
||||
@@ -66,7 +72,5 @@ public sealed class ObjectiveCommandsTest
|
||||
await pair.WaitCommand($"rmobjective {playerSession.Name} 0");
|
||||
|
||||
Assert.That(mindComp.Objectives, Is.Empty, "rmobjective failed to remove objective");
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Database;
|
||||
using Robust.Server.Console;
|
||||
using Robust.Server.Player;
|
||||
@@ -8,14 +9,14 @@ namespace Content.IntegrationTests.Tests.Commands
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(PardonCommand))]
|
||||
public sealed class PardonCommand
|
||||
public sealed class PardonCommand : GameTest
|
||||
{
|
||||
private static readonly TimeSpan MarginOfError = TimeSpan.FromMinutes(1);
|
||||
|
||||
[Test]
|
||||
public async Task PardonTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
|
||||
@@ -148,8 +149,6 @@ namespace Content.IntegrationTests.Tests.Commands
|
||||
await client.WaitPost(() => netMan.ClientConnect(null!, 0, null!));
|
||||
await pair.RunTicksSync(5);
|
||||
Assert.That(sPlayerManager.Sessions, Has.Length.EqualTo(1));
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Shared.Administration.Systems;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Administration.Systems;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Damage.Components;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
@@ -14,7 +15,7 @@ namespace Content.IntegrationTests.Tests.Commands
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(RejuvenateSystem))]
|
||||
public sealed class RejuvenateTest
|
||||
public sealed class RejuvenateTest : GameTest
|
||||
{
|
||||
private static readonly ProtoId<DamageGroupPrototype> TestDamageGroup = "Toxin";
|
||||
|
||||
@@ -36,7 +37,7 @@ namespace Content.IntegrationTests.Tests.Commands
|
||||
[Test]
|
||||
public async Task RejuvenateDeadTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var entManager = server.ResolveDependency<IEntityManager>();
|
||||
var prototypeManager = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -92,7 +93,6 @@ namespace Content.IntegrationTests.Tests.Commands
|
||||
Assert.That(damSystem.GetTotalDamage((human, damageable)), Is.EqualTo(FixedPoint2.Zero));
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.GameTicking.Commands;
|
||||
using Content.Shared.CCVar;
|
||||
@@ -10,25 +11,27 @@ namespace Content.IntegrationTests.Tests.Commands
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(RestartRoundNowCommand))]
|
||||
public sealed class RestartRoundNowTest
|
||||
public sealed class RestartRoundNowTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new PoolSettings
|
||||
{
|
||||
DummyTicker = false,
|
||||
Dirty = true
|
||||
};
|
||||
|
||||
[Test]
|
||||
[TestCase(true)]
|
||||
[TestCase(false)]
|
||||
public async Task RestartRoundAfterStart(bool lobbyEnabled)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
DummyTicker = false,
|
||||
Dirty = true
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var configManager = server.ResolveDependency<IConfigurationManager>();
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
var gameTicker = entityManager.System<GameTicker>();
|
||||
|
||||
await pair.RunTicksSync(5);
|
||||
await pair.RunUntilSynced();
|
||||
|
||||
GameTick tickBeforeRestart = default;
|
||||
|
||||
@@ -58,8 +61,7 @@ namespace Content.IntegrationTests.Tests.Commands
|
||||
Assert.That(tickBeforeRestart, Is.LessThan(tickAfterRestart));
|
||||
});
|
||||
|
||||
await pair.RunTicksSync(5);
|
||||
await pair.CleanReturnAsync();
|
||||
await pair.RunUntilSynced();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Damage.Components;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
@@ -21,7 +22,7 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.Commands;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class SuicideCommandTests
|
||||
public sealed class SuicideCommandTests : GameTest
|
||||
{
|
||||
|
||||
[TestPrototypes]
|
||||
@@ -57,6 +58,13 @@ public sealed class SuicideCommandTests
|
||||
private static readonly ProtoId<TagPrototype> CannotSuicideTag = "CannotSuicide";
|
||||
private static readonly ProtoId<DamageTypePrototype> DamageType = "Slash";
|
||||
|
||||
public override PoolSettings PoolSettings => new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true,
|
||||
DummyTicker = false
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Run the suicide command in the console
|
||||
/// Should successfully kill the player and ghost them
|
||||
@@ -64,12 +72,7 @@ public sealed class SuicideCommandTests
|
||||
[Test]
|
||||
public async Task TestSuicide()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var consoleHost = server.ResolveDependency<IConsoleHost>();
|
||||
var entManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -104,8 +107,6 @@ public sealed class SuicideCommandTests
|
||||
!ghostComp.CanReturnToBody);
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -115,12 +116,7 @@ public sealed class SuicideCommandTests
|
||||
[Test]
|
||||
public async Task TestSuicideWhileDamaged()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var consoleHost = server.ResolveDependency<IConsoleHost>();
|
||||
var entManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -166,8 +162,6 @@ public sealed class SuicideCommandTests
|
||||
Assert.That(damageableSystem.GetTotalDamage(player), Is.EqualTo(lethalDamageThreshold));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -177,12 +171,7 @@ public sealed class SuicideCommandTests
|
||||
[Test]
|
||||
public async Task TestSuicideWhenCannotSuicide()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var consoleHost = server.ResolveDependency<IConsoleHost>();
|
||||
var entManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -217,8 +206,6 @@ public sealed class SuicideCommandTests
|
||||
!ghostComp.CanReturnToBody);
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
|
||||
@@ -228,12 +215,7 @@ public sealed class SuicideCommandTests
|
||||
[Test]
|
||||
public async Task TestSuicideByHeldItem()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var consoleHost = server.ResolveDependency<IConsoleHost>();
|
||||
var entManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -292,8 +274,6 @@ public sealed class SuicideCommandTests
|
||||
Assert.That(damageableSystem.GetAllDamage((player, damageableComp)).DamageDict["Slash"], Is.EqualTo(lethalDamageThreshold));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -303,12 +283,7 @@ public sealed class SuicideCommandTests
|
||||
[Test]
|
||||
public async Task TestSuicideByHeldItemSpreadDamage()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var consoleHost = server.ResolveDependency<IConsoleHost>();
|
||||
var entManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -367,7 +342,5 @@ public sealed class SuicideCommandTests
|
||||
Assert.That(damageableSystem.GetAllDamage((player, damageableComp)).DamageDict["Slash"], Is.EqualTo(lethalDamageThreshold / 2));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Entry;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.ContentPack;
|
||||
@@ -7,12 +8,12 @@ using Robust.Shared.ContentPack;
|
||||
namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class ConfigPresetTests
|
||||
public sealed class ConfigPresetTests : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task TestLoadAll()
|
||||
{
|
||||
var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var resources = server.ResolveDependency<IResourceManager>();
|
||||
@@ -70,7 +71,5 @@ public sealed class ConfigPresetTests
|
||||
Assert.Fail($"CVar {name} was not reset to its original value.");
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Text;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Construction.Completions;
|
||||
using Content.Shared.Construction;
|
||||
using Content.Shared.Construction.Prototypes;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.Construction
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class ConstructionActionValid
|
||||
public sealed class ConstructionActionValid : GameTest
|
||||
{
|
||||
private bool IsValid(IGraphAction action, IPrototypeManager protoMan, out string prototype)
|
||||
{
|
||||
@@ -47,7 +48,7 @@ namespace Content.IntegrationTests.Tests.Construction
|
||||
[Test]
|
||||
public async Task ConstructionGraphSpawnPrototypeValid()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -84,13 +85,12 @@ namespace Content.IntegrationTests.Tests.Construction
|
||||
});
|
||||
|
||||
Assert.That(valid, Is.True, $"One or more SpawnPrototype actions specified invalid entity prototypes!\n{message}");
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task ConstructionGraphEdgeValid()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -118,7 +118,6 @@ namespace Content.IntegrationTests.Tests.Construction
|
||||
});
|
||||
|
||||
Assert.That(valid, Is.True, $"One or more edges specified invalid node targets!\n{message}");
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Utility;
|
||||
using Content.Server.Construction.Components;
|
||||
using Content.Shared.Construction.Prototypes;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.Construction
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class ConstructionPrototypeTest
|
||||
public sealed class ConstructionPrototypeTest : GameTest
|
||||
{
|
||||
// discount linter for construction graphs
|
||||
// TODO: Create serialization validators for these?
|
||||
@@ -25,7 +26,7 @@ namespace Content.IntegrationTests.Tests.Construction
|
||||
[Description("Tests that a given entity specifies a valid node for construction, and optionally a valid one for deconstruction.")]
|
||||
public async Task ConstructionComponentValid(string protoKey)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -49,8 +50,6 @@ namespace Content.IntegrationTests.Tests.Construction
|
||||
$"Invalid deconstruction node \"{target}\" on graph \"{graph.ID}\" for construction entity \"{proto.ID}\"!");
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -59,7 +58,7 @@ namespace Content.IntegrationTests.Tests.Construction
|
||||
[Description("Tests that a given construction prototype has a valid starting and target node, and a valid path between them.")]
|
||||
public async Task ConstructionFormsValidGraph(string protoKey)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -95,7 +94,6 @@ namespace Content.IntegrationTests.Tests.Construction
|
||||
$"The next node ({next.Name}) in the path from the start node ({start}) to the target node ({target}) specified an entity prototype ({next.Entity}) without a ConstructionComponent.");
|
||||
#pragma warning restore NUnit2045
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Storage.EntitySystems;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.Maths;
|
||||
|
||||
namespace Content.IntegrationTests.Tests
|
||||
{
|
||||
public sealed class ContainerOcclusionTest
|
||||
public sealed class ContainerOcclusionTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -34,7 +35,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[Test]
|
||||
public async Task TestA()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
|
||||
@@ -69,14 +70,12 @@ namespace Content.IntegrationTests.Tests
|
||||
Assert.That(light.ContainerOccluded);
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestB()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
|
||||
@@ -112,14 +111,12 @@ namespace Content.IntegrationTests.Tests
|
||||
Assert.That(light.ContainerOccluded, Is.False);
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestAb()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
|
||||
@@ -157,8 +154,6 @@ namespace Content.IntegrationTests.Tests
|
||||
Assert.That(light.ContainerOccluded);
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Contraband;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Prototypes;
|
||||
@@ -5,12 +6,12 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class ContrabandTest
|
||||
public sealed class ContrabandTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task EntityShowDepartmentsAndJobs()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var client = pair.Client;
|
||||
var protoMan = client.ResolveDependency<IPrototypeManager>();
|
||||
var componentFactory = client.ResolveDependency<IComponentFactory>();
|
||||
@@ -41,7 +42,5 @@ public sealed class ContrabandTest
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Damage.Components;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
@@ -12,7 +13,7 @@ namespace Content.IntegrationTests.Tests.Damageable
|
||||
[TestFixture]
|
||||
[TestOf(typeof(DamageableComponent))]
|
||||
[TestOf(typeof(DamageableSystem))]
|
||||
public sealed class DamageableTest
|
||||
public sealed class DamageableTest : GameTest
|
||||
{
|
||||
private const string TestDamageableEntityId = "TestDamageableEntityId";
|
||||
private const string TestGroup1 = "TestGroup1";
|
||||
@@ -95,7 +96,7 @@ namespace Content.IntegrationTests.Tests.Damageable
|
||||
[Test]
|
||||
public async Task TestDamageableComponents()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntityManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -254,7 +255,6 @@ namespace Content.IntegrationTests.Tests.Damageable
|
||||
sDamageableSystem.ChangeDamage(uid, new DamageSpecifier(group3, -100));
|
||||
Assert.That(sDamageableSystem.GetTotalDamage(ent), Is.EqualTo(FixedPoint2.Zero));
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Utility;
|
||||
using Content.Shared.Alert;
|
||||
using Content.Shared.Mobs.Components;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Damageable;
|
||||
|
||||
public sealed class MobThresholdsTest
|
||||
public sealed class MobThresholdsTest : GameTest
|
||||
{
|
||||
private static string[] _entitiesWithThresholds = GameDataScrounger.EntitiesWithComponent("MobThresholds");
|
||||
|
||||
@@ -14,7 +15,7 @@ public sealed class MobThresholdsTest
|
||||
[Description("Ensures every entity with mob thresholds has valid mob state configuration corresponding to some AlertPrototype.")]
|
||||
public async Task ValidateMobThresholds(string protoKey)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var protoMan = server.ProtoMan;
|
||||
@@ -33,7 +34,5 @@ public sealed class MobThresholdsTest
|
||||
Assert.That(alertStates, Does.Contain(state), $"{proto.ID} does not have an alert state for mob state {state}");
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Utility;
|
||||
using Content.Shared.Damage.Components;
|
||||
using Content.Shared.FixedPoint;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Damageable;
|
||||
|
||||
public sealed class StaminaComponentTest
|
||||
public sealed class StaminaComponentTest : GameTest
|
||||
{
|
||||
private static string[] _entitiesWithStamina = GameDataScrounger.EntitiesWithComponent("Stamina");
|
||||
|
||||
@@ -15,7 +16,7 @@ public sealed class StaminaComponentTest
|
||||
[Description("Ensures every entity with Stamina has a valid stamina configuration.")]
|
||||
public async Task ValidateStamina(string protoKey)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var protoMan = server.ProtoMan;
|
||||
|
||||
@@ -46,7 +47,5 @@ public sealed class StaminaComponentTest
|
||||
#pragma warning restore NUnit2041
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Clothing.Components;
|
||||
using Content.Shared.Clothing.EntitySystems;
|
||||
using Content.Shared.Inventory;
|
||||
@@ -7,14 +8,14 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class DeleteInventoryTest
|
||||
public sealed class DeleteInventoryTest : GameTest
|
||||
{
|
||||
// Test that when deleting an entity with an InventoryComponent,
|
||||
// any equipped items also get deleted.
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var testMap = await pair.CreateTestMap();
|
||||
var entMgr = server.ResolveDependency<IEntityManager>();
|
||||
@@ -44,7 +45,6 @@ namespace Content.IntegrationTests.Tests
|
||||
// Assert that child item was also deleted.
|
||||
Assert.That(item.Deleted, Is.True);
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Damage.Components;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
@@ -13,12 +14,12 @@ namespace Content.IntegrationTests.Tests.Destructible
|
||||
[TestFixture]
|
||||
[TestOf(typeof(DamageGroupTrigger))]
|
||||
[TestOf(typeof(AndTrigger))]
|
||||
public sealed class DestructibleDamageGroupTest
|
||||
public sealed class DestructibleDamageGroupTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task AndTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -193,7 +194,6 @@ namespace Content.IntegrationTests.Tests.Destructible
|
||||
// No new thresholds reached as triggers once is set to true and it already triggered before
|
||||
Assert.That(sTestThresholdListenerSystem.ThresholdsReached, Is.Empty);
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Damage.Components;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
@@ -12,12 +13,12 @@ namespace Content.IntegrationTests.Tests.Destructible
|
||||
[TestFixture]
|
||||
[TestOf(typeof(DamageTypeTrigger))]
|
||||
[TestOf(typeof(AndTrigger))]
|
||||
public sealed class DestructibleDamageTypeTest
|
||||
public sealed class DestructibleDamageTypeTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -188,7 +189,6 @@ namespace Content.IntegrationTests.Tests.Destructible
|
||||
// No new thresholds reached as triggers once is set to true and it already triggered before
|
||||
Assert.That(sTestThresholdListenerSystem.ThresholdsReached, Is.Empty);
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Destructible.Thresholds.Behaviors;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.Damage.Prototypes;
|
||||
@@ -10,12 +11,12 @@ using static Content.IntegrationTests.Tests.Destructible.DestructibleTestPrototy
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Destructible
|
||||
{
|
||||
public sealed class DestructibleDestructionTest
|
||||
public sealed class DestructibleDestructionTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -89,7 +90,6 @@ namespace Content.IntegrationTests.Tests.Destructible
|
||||
|
||||
Assert.That(found, Is.True, $"Unable to find {SpawnedEntityId} nearby for destructible test; found {entitiesInRange.Count} entities.");
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Destructible;
|
||||
using Content.Server.Destructible.Thresholds;
|
||||
using Content.Server.Destructible.Thresholds.Behaviors;
|
||||
@@ -19,12 +20,12 @@ namespace Content.IntegrationTests.Tests.Destructible
|
||||
[TestFixture]
|
||||
[TestOf(typeof(DestructibleComponent))]
|
||||
[TestOf(typeof(DamageThreshold))]
|
||||
public sealed class DestructibleThresholdActivationTest
|
||||
public sealed class DestructibleThresholdActivationTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntityManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -289,7 +290,6 @@ namespace Content.IntegrationTests.Tests.Destructible
|
||||
Assert.That(sTestThresholdListenerSystem.ThresholdsReached, Is.Empty);
|
||||
});
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Utility;
|
||||
using Content.Server.DeviceLinking.Systems;
|
||||
using Content.Shared.DeviceLinking;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.Maths;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.DeviceLinking;
|
||||
|
||||
public sealed class DeviceLinkingTest
|
||||
public sealed class DeviceLinkingTest : GameTest
|
||||
{
|
||||
private const string PortTesterProtoId = "DeviceLinkingSinkPortTester";
|
||||
|
||||
@@ -29,7 +30,7 @@ public sealed class DeviceLinkingTest
|
||||
[Description("Ensures all devices that can sink signals will not cause exceptions when signaled.")]
|
||||
public async Task DeviceLinkSinkAllPortsTest(string protoKey)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var protoMan = server.ProtoMan;
|
||||
var compFact = server.ResolveDependency<IComponentFactory>();
|
||||
@@ -77,7 +78,5 @@ public sealed class DeviceLinkingTest
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.DeviceNetwork.Components;
|
||||
using Content.Server.DeviceNetwork.Systems;
|
||||
using Content.Shared.DeviceNetwork;
|
||||
@@ -12,7 +13,7 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
|
||||
[TestOf(typeof(DeviceNetworkComponent))]
|
||||
[TestOf(typeof(WiredNetworkComponent))]
|
||||
[TestOf(typeof(WirelessNetworkComponent))]
|
||||
public sealed class DeviceNetworkTest
|
||||
public sealed class DeviceNetworkTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -50,7 +51,7 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
|
||||
[Test]
|
||||
public async Task NetworkDeviceSendAndReceive()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var mapManager = server.ResolveDependency<IMapManager>();
|
||||
@@ -104,13 +105,12 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
|
||||
{
|
||||
Assert.That(payload, Is.EquivalentTo(deviceNetTestSystem.LastPayload));
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task WirelessNetworkDeviceSendAndReceive()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var testMap = await pair.CreateTestMap();
|
||||
var coordinates = testMap.GridCoords;
|
||||
@@ -188,14 +188,12 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
|
||||
{
|
||||
Assert.That(payload, Is.Not.EqualTo(deviceNetTestSystem.LastPayload).AsCollection);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task WiredNetworkDeviceSendAndReceive()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var testMap = await pair.CreateTestMap();
|
||||
var coordinates = testMap.GridCoords;
|
||||
@@ -271,8 +269,6 @@ namespace Content.IntegrationTests.Tests.DeviceNetwork
|
||||
{
|
||||
Assert.That(payload, Is.EqualTo(deviceNetTestSystem.LastPayload).AsCollection);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#nullable enable annotations
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Disposal.Unit;
|
||||
using Content.Server.Power.Components;
|
||||
using Content.Server.Power.EntitySystems;
|
||||
@@ -16,7 +17,7 @@ namespace Content.IntegrationTests.Tests.Disposal
|
||||
[TestOf(typeof(DisposalHolderComponent))]
|
||||
[TestOf(typeof(DisposalEntryComponent))]
|
||||
[TestOf(typeof(DisposalUnitComponent))]
|
||||
public sealed class DisposalUnitTest
|
||||
public sealed class DisposalUnitTest : GameTest
|
||||
{
|
||||
[Reflect(false)]
|
||||
private sealed class DisposalUnitTestSystem : EntitySystem
|
||||
@@ -145,7 +146,7 @@ namespace Content.IntegrationTests.Tests.Disposal
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -240,8 +241,6 @@ namespace Content.IntegrationTests.Tests.Disposal
|
||||
// Re-pressurizing
|
||||
Flush(disposalUnit, unitComponent, false, disposalSystem);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Interaction;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -12,7 +13,7 @@ namespace Content.IntegrationTests.Tests.DoAfter
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(DoAfterComponent))]
|
||||
public sealed partial class DoAfterServerTest
|
||||
public sealed partial class DoAfterServerTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -35,7 +36,7 @@ namespace Content.IntegrationTests.Tests.DoAfter
|
||||
[Test]
|
||||
public async Task TestSerializable()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
await server.WaitIdleAsync();
|
||||
var refMan = server.ResolveDependency<IReflectionManager>();
|
||||
@@ -55,14 +56,12 @@ namespace Content.IntegrationTests.Tests.DoAfter
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestFinished()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
await server.WaitIdleAsync();
|
||||
|
||||
@@ -84,14 +83,12 @@ namespace Content.IntegrationTests.Tests.DoAfter
|
||||
|
||||
await server.WaitRunTicks(1);
|
||||
Assert.That(ev.Cancelled, Is.False);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestCancelled()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var entityManager = server.EntMan;
|
||||
var timing = server.ResolveDependency<IGameTiming>();
|
||||
@@ -113,8 +110,6 @@ namespace Content.IntegrationTests.Tests.DoAfter
|
||||
|
||||
await server.WaitRunTicks(3);
|
||||
Assert.That(ev.Cancelled);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -124,7 +119,7 @@ namespace Content.IntegrationTests.Tests.DoAfter
|
||||
[Test]
|
||||
public async Task TestGetInteractingEntities()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var entityManager = server.EntMan;
|
||||
var timing = server.ResolveDependency<IGameTiming>();
|
||||
@@ -175,8 +170,6 @@ namespace Content.IntegrationTests.Tests.DoAfter
|
||||
entityManager.DeleteEntity(target);
|
||||
entityManager.DeleteEntity(target2);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Doors.Systems;
|
||||
using Content.Shared.Doors.Components;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -11,7 +12,7 @@ namespace Content.IntegrationTests.Tests.Doors
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AirlockComponent))]
|
||||
public sealed class AirlockTest
|
||||
public sealed class AirlockTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -54,7 +55,7 @@ namespace Content.IntegrationTests.Tests.Doors
|
||||
[Test]
|
||||
public async Task OpenCloseDestroyTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -104,16 +105,12 @@ namespace Content.IntegrationTests.Tests.Doors
|
||||
entityManager.DeleteEntity(airlock);
|
||||
});
|
||||
});
|
||||
|
||||
server.RunTicks(5);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task AirlockBlockTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
await server.WaitIdleAsync();
|
||||
@@ -179,7 +176,6 @@ namespace Content.IntegrationTests.Tests.Doors
|
||||
{
|
||||
Assert.That(Math.Abs(xformSystem.GetWorldPosition(airlockPhysicsDummy).X - 1), Is.GreaterThan(0.01f));
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#nullable enable
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.ResourceManagement;
|
||||
using Robust.Shared.Prototypes;
|
||||
@@ -7,12 +8,12 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class DummyIconTest
|
||||
public sealed class DummyIconTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var client = pair.Client;
|
||||
var prototypeManager = client.ResolveDependency<IPrototypeManager>();
|
||||
var resourceCache = client.ResolveDependency<IResourceCache>();
|
||||
@@ -32,7 +33,6 @@ namespace Content.IntegrationTests.Tests
|
||||
proto.ID);
|
||||
}
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Text;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Fixtures.Attributes;
|
||||
using Robust.Shared;
|
||||
using Robust.Shared.Audio.Components;
|
||||
using Robust.Shared.Configuration;
|
||||
@@ -16,17 +18,28 @@ namespace Content.IntegrationTests.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(EntityUid))]
|
||||
public sealed class EntityTest
|
||||
public sealed class EntityTest : GameTest
|
||||
{
|
||||
private static readonly ProtoId<EntityCategoryPrototype> SpawnerCategory = "Spawner";
|
||||
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
Connected = true,
|
||||
Dirty = true
|
||||
};
|
||||
|
||||
public static PoolSettings Disconnected => new()
|
||||
{
|
||||
Dirty = true,
|
||||
};
|
||||
|
||||
[Test]
|
||||
[PairConfig(nameof(Disconnected))]
|
||||
public async Task SpawnAndDeleteAllEntitiesOnDifferentMaps()
|
||||
{
|
||||
// This test dirties the pair as it simply deletes ALL entities when done. Overhead of restarting the round
|
||||
// is minimal relative to the rest of the test.
|
||||
var settings = new PoolSettings { Dirty = true };
|
||||
await using var pair = await PoolManager.GetServerClient(settings);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entityMan = server.ResolveDependency<IEntityManager>();
|
||||
@@ -79,17 +92,14 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
Assert.That(entityMan.EntityCount, Is.Zero);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[PairConfig(nameof(Disconnected))]
|
||||
public async Task SpawnAndDeleteAllEntitiesInTheSameSpot()
|
||||
{
|
||||
// This test dirties the pair as it simply deletes ALL entities when done. Overhead of restarting the round
|
||||
// is minimal relative to the rest of the test.
|
||||
var settings = new PoolSettings { Dirty = true };
|
||||
await using var pair = await PoolManager.GetServerClient(settings);
|
||||
var pair = Pair;
|
||||
Assert.That(pair.Client.Session, Is.Null);
|
||||
var server = pair.Server;
|
||||
var map = await pair.CreateTestMap();
|
||||
|
||||
@@ -134,8 +144,6 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
Assert.That(entityMan.EntityCount, Is.Zero);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -145,10 +153,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[Test]
|
||||
public async Task SpawnAndDirtyAllEntities()
|
||||
{
|
||||
// This test dirties the pair as it simply deletes ALL entities when done. Overhead of restarting the round
|
||||
// is minimal relative to the rest of the test.
|
||||
var settings = new PoolSettings { Connected = true, Dirty = true };
|
||||
await using var pair = await PoolManager.GetServerClient(settings);
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
|
||||
@@ -182,7 +187,7 @@ namespace Content.IntegrationTests.Tests
|
||||
}
|
||||
});
|
||||
|
||||
await pair.RunTicksSync(15);
|
||||
await pair.RunUntilSynced();
|
||||
|
||||
// Make sure the client actually received the entities
|
||||
// 500 is completely arbitrary. Note that the client & sever entity counts aren't expected to match.
|
||||
@@ -209,8 +214,6 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
Assert.That(sEntMan.EntityCount, Is.Zero);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -230,8 +233,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[Test]
|
||||
public async Task SpawnAndDeleteEntityCountTest()
|
||||
{
|
||||
var settings = new PoolSettings { Connected = true, Dirty = true };
|
||||
await using var pair = await PoolManager.GetServerClient(settings);
|
||||
var pair = Pair;
|
||||
var mapSys = pair.Server.System<SharedMapSystem>();
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
@@ -317,8 +319,6 @@ namespace Content.IntegrationTests.Tests
|
||||
BuildDiffString(clientEntities, Entities(client.EntMan), client.EntMan));
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
private static string BuildDiffString(IEnumerable<EntityUid> oldEnts, IEnumerable<EntityUid> newEnts, IEntityManager entMan)
|
||||
@@ -392,7 +392,7 @@ namespace Content.IntegrationTests.Tests
|
||||
"ActivatableUI", // Requires enum key
|
||||
};
|
||||
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
var componentFactory = server.ResolveDependency<IComponentFactory>();
|
||||
@@ -445,8 +445,6 @@ namespace Content.IntegrationTests.Tests
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.IntegrationTests.Utility;
|
||||
using Content.Shared.Explosion;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Explosion;
|
||||
|
||||
public sealed class ExplosionPrototypeTest
|
||||
public sealed class ExplosionPrototypeTest : GameTest
|
||||
{
|
||||
private static string[] _explosionKinds = GameDataScrounger.PrototypesOfKind<ExplosionPrototype>();
|
||||
|
||||
@@ -13,7 +14,7 @@ public sealed class ExplosionPrototypeTest
|
||||
[Description("Ensures various properties of ExplosionPrototype are correctly configured.")]
|
||||
public async Task Validate(string protoKey)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var protoMan = server.ProtoMan;
|
||||
|
||||
@@ -40,7 +41,5 @@ public sealed class ExplosionPrototypeTest
|
||||
Assert.That(proto.IntensityPerState, Is.Positive);
|
||||
Assert.That(proto.FireStates, Is.Positive);
|
||||
}
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Chemistry;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Prototypes;
|
||||
@@ -12,7 +13,7 @@ namespace Content.IntegrationTests.Tests;
|
||||
/// Tests to see if any entity prototypes specify solution fill level sprites that don't exist.
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public sealed class FillLevelSpriteTest
|
||||
public sealed class FillLevelSpriteTest : GameTest
|
||||
{
|
||||
private static readonly string[] HandStateNames = ["left", "right"];
|
||||
private static readonly string[] EquipStateNames = ["back", "suitstorage"];
|
||||
@@ -20,7 +21,7 @@ public sealed class FillLevelSpriteTest
|
||||
[Test]
|
||||
public async Task FillLevelSpritesExist()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var client = pair.Client;
|
||||
var protoMan = client.ResolveDependency<IPrototypeManager>();
|
||||
var componentFactory = client.ResolveDependency<IComponentFactory>();
|
||||
@@ -101,7 +102,5 @@ public sealed class FillLevelSpriteTest
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,12 +7,13 @@ using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Prototypes;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Fluids;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AbsorbentComponent))]
|
||||
public sealed class AbsorbentTest
|
||||
public sealed class AbsorbentTest : GameTest
|
||||
{
|
||||
private const string UserDummyId = "UserDummy";
|
||||
private const string AbsorbentDummyId = "AbsorbentDummy";
|
||||
@@ -73,7 +74,7 @@ public sealed class AbsorbentTest
|
||||
[TestCaseSource(nameof(TestCasesToRun))]
|
||||
public async Task AbsorbentOnRefillableTest(TestSolutionCase testCase)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -123,15 +124,12 @@ public sealed class AbsorbentTest
|
||||
Assert.That(VolumeOfPrototypeInComposition(refillableComposition, NonEvaporablePrototypeId), Is.EqualTo(testCase.ExpectedRefillableSolution.VolumeOfNonEvaporable));
|
||||
});
|
||||
});
|
||||
await pair.RunTicksSync(5);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[TestCaseSource(nameof(TestCasesToRunOnSmallRefillable))]
|
||||
public async Task AbsorbentOnSmallRefillableTest(TestSolutionCase testCase)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -180,9 +178,6 @@ public sealed class AbsorbentTest
|
||||
Assert.That(VolumeOfPrototypeInComposition(refillableComposition, NonEvaporablePrototypeId), Is.EqualTo(testCase.ExpectedRefillableSolution.VolumeOfNonEvaporable));
|
||||
});
|
||||
});
|
||||
await pair.RunTicksSync(5);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
private static FixedPoint2 VolumeOfPrototypeInComposition(Dictionary<string, FixedPoint2> composition, string prototypeId)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#nullable enable
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Fluids.EntitySystems;
|
||||
using Content.Server.Spreader;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
@@ -14,7 +15,7 @@ namespace Content.IntegrationTests.Tests.Fluids;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(SpreaderSystem))]
|
||||
public sealed class FluidSpill
|
||||
public sealed class FluidSpill : GameTest
|
||||
{
|
||||
private static PuddleComponent? GetPuddle(IEntityManager entityManager, Entity<MapGridComponent> mapGrid, Vector2i pos)
|
||||
{
|
||||
@@ -36,7 +37,7 @@ public sealed class FluidSpill
|
||||
[Test]
|
||||
public async Task SpillCorner()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var mapManager = server.ResolveDependency<IMapManager>();
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -110,7 +111,5 @@ public sealed class FluidSpill
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Fluids.EntitySystems;
|
||||
using Content.Shared.Chemistry.Components;
|
||||
using Content.Shared.Coordinates;
|
||||
@@ -10,12 +11,12 @@ namespace Content.IntegrationTests.Tests.Fluids
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(PuddleComponent))]
|
||||
public sealed class PuddleTest
|
||||
public sealed class PuddleTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task TilePuddleTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -32,15 +33,12 @@ namespace Content.IntegrationTests.Tests.Fluids
|
||||
|
||||
Assert.That(spillSystem.TrySpillAt(coordinates, solution, out _), Is.True);
|
||||
});
|
||||
await pair.RunTicksSync(5);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task SpaceNoPuddleTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -69,8 +67,6 @@ namespace Content.IntegrationTests.Tests.Fluids
|
||||
|
||||
Assert.That(spillSystem.TrySpillAt(coordinates, solution, out _), Is.False);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Shared.Follower;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.Map;
|
||||
namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture, TestOf(typeof(FollowerSystem))]
|
||||
public sealed class FollowerSystemTest
|
||||
public sealed class FollowerSystemTest : GameTest
|
||||
{
|
||||
/// <summary>
|
||||
/// This test ensures that deleting a map while an entity follows another doesn't throw any exceptions.
|
||||
@@ -15,7 +16,7 @@ public sealed class FollowerSystemTest
|
||||
[Test]
|
||||
public async Task FollowerMapDeleteTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entMan = server.ResolveDependency<IEntityManager>();
|
||||
@@ -44,6 +45,5 @@ public sealed class FollowerSystemTest
|
||||
|
||||
entMan.DeleteEntity(mapSys.GetMap(map));
|
||||
});
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
+3
-4
@@ -1,4 +1,5 @@
|
||||
#nullable enable
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Cuffs;
|
||||
using Content.Shared.Cuffs.Components;
|
||||
using Content.Shared.Hands.Components;
|
||||
@@ -10,7 +11,7 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.ActionBlocking
|
||||
[TestFixture]
|
||||
[TestOf(typeof(CuffableComponent))]
|
||||
[TestOf(typeof(HandcuffComponent))]
|
||||
public sealed class HandCuffTest
|
||||
public sealed class HandCuffTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -40,7 +41,7 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.ActionBlocking
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
EntityUid human;
|
||||
@@ -98,8 +99,6 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.ActionBlocking
|
||||
cuffableSys.TryAddNewCuffs(human, human, secondCuffs, cuffed);
|
||||
Assert.That(cuffed.CuffedHandCount, Is.EqualTo(4), "Player doesn't have correct amount of hands cuffed");
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
private static void AddHand(NetEntity to, IServerConsoleHost host)
|
||||
|
||||
+5
-6
@@ -2,6 +2,7 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Shared.ContentPack;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Utility;
|
||||
@@ -11,12 +12,12 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(Server.Entry.IgnoredComponents))]
|
||||
public sealed class EntityPrototypeComponentsTest
|
||||
public sealed class EntityPrototypeComponentsTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task PrototypesHaveKnownComponents()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
|
||||
@@ -100,7 +101,6 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components
|
||||
|
||||
if (unknownComponentsClient.Count + unknownComponentsServer.Count + doubleIgnoredComponents.Count == 0)
|
||||
{
|
||||
await pair.CleanReturnAsync();
|
||||
Assert.Pass($"Validated {entitiesValidated} entities with {componentsValidated} components in {paths.Length} files.");
|
||||
return;
|
||||
}
|
||||
@@ -131,11 +131,11 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components
|
||||
[Test]
|
||||
public async Task IgnoredComponentsExistInTheCorrectPlaces()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
var serverComponents = server.ResolveDependency<IComponentFactory>();
|
||||
var ignoredServerNames = Server.Entry.IgnoredComponents.List;
|
||||
var ignoredServerNames = Content.Server.Entry.IgnoredComponents.List;
|
||||
var clientComponents = client.ResolveDependency<IComponentFactory>();
|
||||
|
||||
var failureMessages = "";
|
||||
@@ -151,7 +151,6 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components
|
||||
}
|
||||
}
|
||||
Assert.That(failureMessages, Is.Empty);
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Linq;
|
||||
using Content.Client.UserInterface.Systems.Alerts.Controls;
|
||||
using Content.Client.UserInterface.Systems.Alerts.Widgets;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Alert;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Server.Player;
|
||||
@@ -10,16 +11,18 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.Mobs
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(AlertsComponent))]
|
||||
public sealed class AlertsComponentTests
|
||||
public sealed class AlertsComponentTests : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
Connected = true,
|
||||
DummyTicker = false
|
||||
};
|
||||
|
||||
[Test]
|
||||
public async Task AlertsTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
|
||||
@@ -107,8 +110,6 @@ namespace Content.IntegrationTests.Tests.GameObjects.Components.Mobs
|
||||
var expectedIDs = new[] { "HumanHealth", "Debug2" };
|
||||
Assert.That(alertIDs, Is.SupersetOf(expectedIDs));
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Antag;
|
||||
using Content.Server.Antag.Components;
|
||||
using Content.Server.GameTicking;
|
||||
@@ -14,17 +15,19 @@ namespace Content.IntegrationTests.Tests.GameRules;
|
||||
// Once upon a time, players in the lobby weren't ever considered eligible for antag roles.
|
||||
// Lets not let that happen again.
|
||||
[TestFixture]
|
||||
public sealed class AntagPreferenceTest
|
||||
public sealed class AntagPreferenceTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new PoolSettings
|
||||
{
|
||||
DummyTicker = false,
|
||||
Connected = true,
|
||||
InLobby = true
|
||||
};
|
||||
|
||||
[Test]
|
||||
public async Task TestLobbyPlayersValid()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
DummyTicker = false,
|
||||
Connected = true,
|
||||
InLobby = true
|
||||
});
|
||||
var pair = Pair;
|
||||
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
@@ -71,6 +74,5 @@ public sealed class AntagPreferenceTest
|
||||
Assert.That(pool.Count, Is.EqualTo(0));
|
||||
|
||||
await server.WaitPost(() => server.EntMan.DeleteEntity(uid));
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#nullable enable
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.GameTicking.Presets;
|
||||
using Content.Shared.CCVar;
|
||||
@@ -9,7 +10,7 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests.GameRules;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class FailAndStartPresetTest
|
||||
public sealed class FailAndStartPresetTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -52,19 +53,21 @@ public sealed class FailAndStartPresetTest
|
||||
- type: TestRule
|
||||
";
|
||||
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
Dirty = true,
|
||||
DummyTicker = false,
|
||||
Connected = true,
|
||||
InLobby = true
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Test that a nuke ops gamemode can start after failing to start once.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public async Task FailAndStartTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Dirty = true,
|
||||
DummyTicker = false,
|
||||
Connected = true,
|
||||
InLobby = true
|
||||
});
|
||||
var pair = Pair;
|
||||
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
@@ -115,7 +118,6 @@ public sealed class FailAndStartPresetTest
|
||||
server.CfgMan.SetCVar(CCVars.GameLobbyFallbackEnabled, true);
|
||||
server.CfgMan.SetCVar(CCVars.GameLobbyDefaultPreset, "secret");
|
||||
server.System<TestRuleSystem>().Run = false;
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#nullable enable
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Body.Components;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.GameTicking.Presets;
|
||||
@@ -30,24 +31,27 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.GameRules;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class NukeOpsTest
|
||||
public sealed class NukeOpsTest : GameTest
|
||||
{
|
||||
private static readonly ProtoId<NpcFactionPrototype> SyndicateFaction = "Syndicate";
|
||||
private static readonly ProtoId<NpcFactionPrototype> NanotrasenFaction = "NanoTrasen";
|
||||
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
Dirty = true,
|
||||
DummyTicker = false,
|
||||
Connected = true,
|
||||
InLobby = true
|
||||
};
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Check that a nuke ops game mode can start without issue. I.e., that the nuke station and such all get loaded.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public async Task TryStopNukeOpsFromConstantlyFailing()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Dirty = true,
|
||||
DummyTicker = false,
|
||||
Connected = true,
|
||||
InLobby = true
|
||||
});
|
||||
var pair = Pair;
|
||||
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
@@ -260,6 +264,5 @@ public sealed class NukeOpsTest
|
||||
});
|
||||
|
||||
ticker.SetGamePreset((GamePresetPrototype?) null);
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.GameTicking.Rules;
|
||||
using Content.Server.GameTicking.Rules.Components;
|
||||
@@ -9,12 +10,14 @@ namespace Content.IntegrationTests.Tests.GameRules
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(MaxTimeRestartRuleSystem))]
|
||||
public sealed class RuleMaxTimeRestartTest
|
||||
public sealed class RuleMaxTimeRestartTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new() { InLobby = true };
|
||||
|
||||
[Test]
|
||||
public async Task RestartTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { InLobby = true });
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
Assert.That(server.EntMan.Count<GameRuleComponent>(), Is.Zero);
|
||||
@@ -64,8 +67,6 @@ namespace Content.IntegrationTests.Tests.GameRules
|
||||
{
|
||||
Assert.That(sGameTicker.RunLevel, Is.EqualTo(GameRunLevel.PreRoundLobby));
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.GameTicking;
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.GameRules;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class SecretStartsTest
|
||||
public sealed class SecretStartsTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new PoolSettings { Dirty = true };
|
||||
|
||||
/// <summary>
|
||||
/// Tests that when secret is started, all of the game rules it successfully adds are also started.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public async Task TestSecretStarts()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Dirty = true });
|
||||
var pair = Pair;
|
||||
|
||||
var server = pair.Server;
|
||||
await server.WaitIdleAsync();
|
||||
@@ -38,7 +41,5 @@ public sealed class SecretStartsTest
|
||||
// End all rules
|
||||
gameTicker.ClearGameRules();
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Shared.Configuration;
|
||||
@@ -7,19 +8,21 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests.GameRules;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class StartEndGameRulesTest
|
||||
public sealed class StartEndGameRulesTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new PoolSettings
|
||||
{
|
||||
Dirty = true,
|
||||
DummyTicker = false
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Tests that all game rules can be added/started/ended at the same time without exceptions.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public async Task TestAllConcurrent()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Dirty = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
await server.WaitIdleAsync();
|
||||
var gameTicker = server.ResolveDependency<IEntitySystemManager>().GetEntitySystem<GameTicker>();
|
||||
@@ -47,7 +50,5 @@ public sealed class StartEndGameRulesTest
|
||||
gameTicker.ClearGameRules();
|
||||
Assert.That(!gameTicker.GetAddedGameRules().Any());
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Antag.Components;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.GameTicking.Rules;
|
||||
@@ -17,23 +18,25 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.GameRules;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class TraitorRuleTest
|
||||
public sealed class TraitorRuleTest : GameTest
|
||||
{
|
||||
private const string TraitorGameRuleProtoId = "Traitor";
|
||||
private const string TraitorAntagRoleName = "Traitor";
|
||||
private static readonly ProtoId<NpcFactionPrototype> SyndicateFaction = "Syndicate";
|
||||
private static readonly ProtoId<NpcFactionPrototype> NanotrasenFaction = "NanoTrasen";
|
||||
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
Dirty = true,
|
||||
DummyTicker = false,
|
||||
Connected = true,
|
||||
InLobby = true,
|
||||
};
|
||||
|
||||
[Test]
|
||||
public async Task TestTraitorObjectives()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings()
|
||||
{
|
||||
Dirty = true,
|
||||
DummyTicker = false,
|
||||
Connected = true,
|
||||
InLobby = true,
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
var entMan = server.EntMan;
|
||||
@@ -123,9 +126,6 @@ public sealed class TraitorRuleTest
|
||||
$"MaxDifficulty exceeded! Objectives: {string.Join(", ", mindComp.Objectives.Select(o => FormatObjective(o, entMan)))}");
|
||||
Assert.That(mindComp.Objectives, Is.Not.Empty,
|
||||
$"No objectives assigned!");
|
||||
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
private static string FormatObjective(Entity<ObjectiveComponent> entity, IEntityManager entMan)
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
#nullable enable
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Gibbing;
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Body;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class GibTest
|
||||
public sealed class GibTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task TestGib()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var (server, client) = (pair.Server, pair.Client);
|
||||
var map = await pair.CreateTestMap();
|
||||
|
||||
@@ -30,7 +31,5 @@ public sealed class GibTest
|
||||
await pair.RunTicksSync(5);
|
||||
|
||||
Assert.That(!client.EntMan.EntityExists(nuid));
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Gravity;
|
||||
using Content.Shared.Alert;
|
||||
using Content.Shared.Gravity;
|
||||
@@ -8,7 +9,7 @@ namespace Content.IntegrationTests.Tests.Gravity
|
||||
[TestFixture]
|
||||
[TestOf(typeof(GravitySystem))]
|
||||
[TestOf(typeof(GravityGeneratorComponent))]
|
||||
public sealed class WeightlessStatusTests
|
||||
public sealed class WeightlessStatusTests : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -38,7 +39,7 @@ namespace Content.IntegrationTests.Tests.Gravity
|
||||
[Test]
|
||||
public async Task WeightlessStatusTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entityManager = server.ResolveDependency<IEntityManager>();
|
||||
@@ -86,8 +87,6 @@ namespace Content.IntegrationTests.Tests.Gravity
|
||||
});
|
||||
|
||||
await pair.RunTicksSync(10);
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Power.Components;
|
||||
using Content.Shared.Gravity;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -11,7 +12,7 @@ namespace Content.IntegrationTests.Tests
|
||||
/// making sure that gravity is applied to the correct grids.
|
||||
[TestFixture]
|
||||
[TestOf(typeof(GravityGeneratorComponent))]
|
||||
public sealed class GravityGridTest
|
||||
public sealed class GravityGridTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -31,7 +32,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -96,8 +97,6 @@ namespace Content.IntegrationTests.Tests
|
||||
Assert.That(entityMan.GetComponent<GravityComponent>(grid2).Enabled, Is.False);
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Client.Guidebook;
|
||||
using Content.Client.Guidebook.Richtext;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
|
||||
@@ -13,7 +14,7 @@ namespace Content.IntegrationTests.Tests.Guidebook;
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
[TestOf(typeof(DocumentParsingManager))]
|
||||
public sealed class DocumentParsingTest
|
||||
public sealed class DocumentParsingTest : GameTest
|
||||
{
|
||||
|
||||
public string TestDocument = @"multiple
|
||||
@@ -45,7 +46,7 @@ whitespace before newlines are ignored.
|
||||
[Test]
|
||||
public async Task ParseTestDocument()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var client = pair.Client;
|
||||
await client.WaitIdleAsync();
|
||||
var parser = client.ResolveDependency<DocumentParsingManager>();
|
||||
@@ -133,8 +134,6 @@ whitespace before newlines are ignored.
|
||||
|
||||
subTest2.Params.TryGetValue("k", out val);
|
||||
Assert.That(val, Is.EqualTo(@"<>\>=""=<-_?*3.0//"));
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
public sealed class TestControl : Control, IDocumentTag
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using Content.Client.Guidebook;
|
||||
using Content.Client.Guidebook.Richtext;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Shared.ContentPack;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Content.IntegrationTests.Utility;
|
||||
@@ -12,7 +13,7 @@ namespace Content.IntegrationTests.Tests.Guidebook;
|
||||
[TestOf(typeof(GuidebookSystem))]
|
||||
[TestOf(typeof(GuideEntryPrototype))]
|
||||
[TestOf(typeof(DocumentParsingManager))]
|
||||
public sealed class GuideEntryPrototypeTests
|
||||
public sealed class GuideEntryPrototypeTests : GameTest
|
||||
{
|
||||
private static string[] _guideEntries = GameDataScrounger.PrototypesOfKind<GuideEntryPrototype>();
|
||||
|
||||
@@ -21,7 +22,7 @@ public sealed class GuideEntryPrototypeTests
|
||||
[Description("Ensures a given guidebook entry is valid, checking the document/etc.")]
|
||||
public async Task Validate(string protoKey)
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var client = pair.Client;
|
||||
await client.WaitIdleAsync();
|
||||
var protoMan = client.ResolveDependency<IPrototypeManager>();
|
||||
@@ -36,7 +37,5 @@ public sealed class GuideEntryPrototypeTests
|
||||
|
||||
Assert.That(parser.TryAddMarkup(new Document(), text), $"Failed to parse the guide entry's document.");
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Storage.EntitySystems;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Content.Shared.Hands.EntitySystems;
|
||||
@@ -10,7 +11,7 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests.Hands;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class HandTests
|
||||
public sealed class HandTests : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -25,14 +26,16 @@ public sealed class HandTests
|
||||
";
|
||||
|
||||
|
||||
public override PoolSettings PoolSettings => new()
|
||||
{
|
||||
Connected = true,
|
||||
DummyTicker = false
|
||||
};
|
||||
|
||||
[Test]
|
||||
public async Task TestPickupDrop()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entMan = server.ResolveDependency<IEntityManager>();
|
||||
@@ -69,17 +72,12 @@ public sealed class HandTests
|
||||
Assert.That(sys.GetActiveItem((player, hands)), Is.Null);
|
||||
|
||||
await server.WaitPost(() => mapSystem.DeleteMap(data.MapId));
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestPickUpThenDropInContainer()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var map = await pair.CreateTestMap();
|
||||
await pair.RunTicksSync(5);
|
||||
@@ -134,6 +132,5 @@ public sealed class HandTests
|
||||
Assert.That(containerSystem.IsInSameOrNoContainer((player, xform), (item, itemXform)));
|
||||
|
||||
await server.WaitPost(() => mapSystem.DeleteMap(map.MapId));
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Inventory;
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
@@ -7,7 +8,7 @@ namespace Content.IntegrationTests.Tests
|
||||
// i.e. the interaction between uniforms and the pocket/ID slots.
|
||||
// and also how big items don't fit in pockets.
|
||||
[TestFixture]
|
||||
public sealed class HumanInventoryUniformSlotsTest
|
||||
public sealed class HumanInventoryUniformSlotsTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -55,7 +56,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var testMap = await pair.CreateTestMap();
|
||||
var coordinates = testMap.GridCoords;
|
||||
@@ -130,8 +131,6 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
mapSystem.DeleteMap(testMap.MapId);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
private static bool IsDescendant(EntityUid descendant, EntityUid parent, IEntityManager entManager)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Body;
|
||||
using Content.Shared.Clothing.Components;
|
||||
using Content.Shared.Humanoid;
|
||||
@@ -8,13 +9,12 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.Humanoid;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class HideablePrototypeValidation
|
||||
public sealed class HideablePrototypeValidation : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task NoOrgansWithoutClothing()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
|
||||
var pair = Pair;
|
||||
var requirements = new Dictionary<Enum, HashSet<EntProtoId>>();
|
||||
foreach (var (proto, component) in pair.GetPrototypesWithComponent<VisualOrganMarkingsComponent>())
|
||||
{
|
||||
@@ -42,14 +42,12 @@ public sealed class HideablePrototypeValidation
|
||||
{
|
||||
Assert.That(provided, Does.Contain(key), $"No clothing will hide {key} that can be hidden on {string.Join(", ", requirement.Select(it => it.Id))}");
|
||||
}
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task NoClothingWithoutOrgans()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
|
||||
var requirements = new Dictionary<Enum, HashSet<EntProtoId>>();
|
||||
foreach (var (proto, component) in pair.GetPrototypesWithComponent<HideLayerClothingComponent>())
|
||||
@@ -74,7 +72,5 @@ public sealed class HideablePrototypeValidation
|
||||
{
|
||||
Assert.That(provided, Does.Contain(key), $"No organ will hide {key} that can be hidden by {string.Join(", ", requirement.Select(it => it.Id))}");
|
||||
}
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
using Content.Shared.Preferences;
|
||||
@@ -10,14 +11,14 @@ namespace Content.IntegrationTests.Tests.Humanoid;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(HumanoidProfileSystem))]
|
||||
public sealed class HumanoidProfileTests
|
||||
public sealed class HumanoidProfileTests : GameTest
|
||||
{
|
||||
private static readonly ProtoId<SpeciesPrototype> Vox = "Vox";
|
||||
|
||||
[Test]
|
||||
public async Task EnsureValidLoading()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
await server.WaitIdleAsync();
|
||||
@@ -43,7 +44,5 @@ public sealed class HumanoidProfileTests
|
||||
Assert.That(voiceComponent.Sounds, Is.Not.Null, message: "the MobHuman spawned by this test needs to have sex-specific sound set");
|
||||
Assert.That(voiceComponent.Sounds![Sex.Female], Is.EqualTo(voiceComponent.EmoteSounds));
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#nullable enable annotations
|
||||
using System.Numerics;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Interaction;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Content.Shared.Hands.EntitySystems;
|
||||
@@ -16,7 +17,7 @@ namespace Content.IntegrationTests.Tests.Interaction.Click
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(InteractionSystem))]
|
||||
public sealed class InteractionSystemTests
|
||||
public sealed class InteractionSystemTests : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -40,7 +41,7 @@ namespace Content.IntegrationTests.Tests.Interaction.Click
|
||||
[Test]
|
||||
public async Task InteractionTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -101,13 +102,12 @@ namespace Content.IntegrationTests.Tests.Interaction.Click
|
||||
});
|
||||
|
||||
testInteractionSystem.ClearHandlers();
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task InteractionObstructionTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -168,13 +168,12 @@ namespace Content.IntegrationTests.Tests.Interaction.Click
|
||||
});
|
||||
|
||||
testInteractionSystem.ClearHandlers();
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task InteractionInRangeTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -234,14 +233,13 @@ namespace Content.IntegrationTests.Tests.Interaction.Click
|
||||
});
|
||||
|
||||
testInteractionSystem.ClearHandlers();
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public async Task InteractionOutOfRangeTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -300,13 +298,12 @@ namespace Content.IntegrationTests.Tests.Interaction.Click
|
||||
});
|
||||
|
||||
testInteractionSystem.ClearHandlers();
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task InsideContainerInteractionBlockTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -388,7 +385,6 @@ namespace Content.IntegrationTests.Tests.Interaction.Click
|
||||
});
|
||||
|
||||
testInteractionSystem.ClearHandlers();
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
public sealed class TestInteractionSystem : EntitySystem
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Interaction;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Containers;
|
||||
@@ -10,7 +11,7 @@ namespace Content.IntegrationTests.Tests.Interaction
|
||||
{
|
||||
[TestFixture]
|
||||
[TestOf(typeof(SharedInteractionSystem))]
|
||||
public sealed class InRangeUnobstructed
|
||||
public sealed class InRangeUnobstructed : GameTest
|
||||
{
|
||||
private const string HumanId = "MobHuman";
|
||||
|
||||
@@ -27,7 +28,7 @@ namespace Content.IntegrationTests.Tests.Interaction
|
||||
[Test]
|
||||
public async Task EntityEntityTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -109,8 +110,6 @@ namespace Content.IntegrationTests.Tests.Interaction
|
||||
Assert.That(interactionSys.InRangeUnobstructed(mapCoordinates, origin, InteractionRangeDivided15Times3));
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ public abstract partial class InteractionTest
|
||||
[SetUp]
|
||||
public virtual async Task Setup()
|
||||
{
|
||||
Pair = await PoolManager.GetServerClient(Settings);
|
||||
Pair = await PoolManager.GetServerClient(Settings, new NUnitTestContextWrap(TestContext.CurrentContext, TestContext.Out));
|
||||
|
||||
// server dependencies
|
||||
SEntMan = Server.ResolveDependency<IEntityManager>();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Atmos.EntitySystems;
|
||||
using Content.Server.Body.Systems;
|
||||
using Content.Server.Station.Systems;
|
||||
@@ -7,12 +8,12 @@ namespace Content.IntegrationTests.Tests.Internals;
|
||||
|
||||
[TestFixture]
|
||||
[TestOf(typeof(InternalsSystem))]
|
||||
public sealed class AutoInternalsTests
|
||||
public sealed class AutoInternalsTests : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task TestInternalsAutoActivateInSpaceForStationSpawn()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -31,14 +32,12 @@ public sealed class AutoInternalsTests
|
||||
|
||||
server.EntMan.DeleteEntity(dummy);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestInternalsAutoActivateInSpaceForEntitySpawn()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var testMap = await pair.CreateTestMap();
|
||||
@@ -55,8 +54,6 @@ public sealed class AutoInternalsTests
|
||||
|
||||
server.EntMan.DeleteEntity(dummy);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[TestPrototypes]
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Stunnable;
|
||||
using Content.Shared.Inventory;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.Map;
|
||||
namespace Content.IntegrationTests.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class InventoryHelpersTest
|
||||
public sealed class InventoryHelpersTest : GameTest
|
||||
{
|
||||
[TestPrototypes]
|
||||
private const string Prototypes = @"
|
||||
@@ -39,7 +40,7 @@ namespace Content.IntegrationTests.Tests
|
||||
[Test]
|
||||
public async Task SpawnItemInSlotTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var sEntities = server.ResolveDependency<IEntityManager>();
|
||||
@@ -87,8 +88,6 @@ namespace Content.IntegrationTests.Tests
|
||||
#pragma warning restore NUnit2045
|
||||
sEntities.DeleteEntity(human);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Lathe;
|
||||
using Content.Shared.Materials;
|
||||
using Content.Shared.Prototypes;
|
||||
@@ -11,12 +12,12 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.Lathe;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class LatheTest
|
||||
public sealed class LatheTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task TestLatheRecipeIngredientsFitLathe()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var mapData = await pair.CreateTestMap();
|
||||
@@ -111,14 +112,12 @@ public sealed class LatheTest
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task AllLatheRecipesValidTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
|
||||
var server = pair.Server;
|
||||
var proto = server.ProtoMan;
|
||||
@@ -131,7 +130,5 @@ public sealed class LatheTest
|
||||
Assert.That(recipe.ResultReagents, Is.Not.Null, $"Recipe '{recipe.ID}' has no result or result reagents.");
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Tag;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Prototypes;
|
||||
@@ -11,12 +12,12 @@ namespace Content.IntegrationTests.Tests.Linter;
|
||||
/// Verify that the yaml linter successfully validates static fields
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public sealed class StaticFieldValidationTest
|
||||
public sealed class StaticFieldValidationTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task TestStaticFieldValidation()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var protoMan = pair.Server.ProtoMan;
|
||||
|
||||
var protos = new Dictionary<Type, HashSet<string>>();
|
||||
@@ -49,8 +50,6 @@ public sealed class StaticFieldValidationTest
|
||||
Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdListInvalid), protos), Has.Count.EqualTo(2));
|
||||
Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdSetInvalid), protos), Has.Count.EqualTo(2));
|
||||
Assert.That(protoMan.ValidateStaticFields(typeof(PrivateProtoIdArrayInvalid), protos), Has.Count.EqualTo(2));
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
[TestPrototypes]
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Client.Lobby;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Preferences.Managers;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Preferences;
|
||||
@@ -9,12 +10,14 @@ namespace Content.IntegrationTests.Tests.Lobby;
|
||||
[TestFixture]
|
||||
[TestOf(typeof(ClientPreferencesManager))]
|
||||
[TestOf(typeof(ServerPreferencesManager))]
|
||||
public sealed class CharacterCreationTest
|
||||
public sealed class CharacterCreationTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new() { InLobby = true };
|
||||
|
||||
[Test]
|
||||
public async Task CreateDeleteCreateTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { InLobby = true });
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
var user = pair.Client.User!.Value;
|
||||
@@ -72,7 +75,6 @@ public sealed class CharacterCreationTest
|
||||
serverCharacters = serverPrefManager.GetPreferences(user).Characters;
|
||||
Assert.That(serverCharacters, Has.Count.EqualTo(2));
|
||||
AssertEqual(serverCharacters[1], profile);
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
private void AssertEqual(HumanoidCharacterProfile a, HumanoidCharacterProfile b)
|
||||
|
||||
@@ -1,20 +1,23 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Server.Player;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Network;
|
||||
namespace Content.IntegrationTests.Tests.Lobby;
|
||||
|
||||
public sealed class ServerReloginTest
|
||||
public sealed class ServerReloginTest : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings => new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
DummyTicker = false
|
||||
};
|
||||
|
||||
[Test]
|
||||
public async Task Relogin()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true,
|
||||
DummyTicker = false
|
||||
});
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
var originalMaxPlayers = 0;
|
||||
@@ -62,7 +65,5 @@ public sealed class ServerReloginTest
|
||||
//Put the cvar back, so other tests can still use this server
|
||||
serverConfig.SetCVar(CCVars.SoftMaxPlayers, originalMaxPlayers);
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Shared.Localization;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.IntegrationTests.Tests.Localization;
|
||||
|
||||
public sealed class EntityPrototypeLocalizationTest
|
||||
public sealed class EntityPrototypeLocalizationTest : GameTest
|
||||
{
|
||||
/// <summary>
|
||||
/// An explanation of why LocIds should not be used for entity prototype names/descriptions.
|
||||
@@ -18,7 +19,7 @@ public sealed class EntityPrototypeLocalizationTest
|
||||
[Test]
|
||||
public async Task TestNoManualEntityLocStrings()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
var protoMan = server.ProtoMan;
|
||||
var locMan = server.ResolveDependency<ILocalizationManager>();
|
||||
@@ -44,7 +45,5 @@ public sealed class EntityPrototypeLocalizationTest
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Shared.Dataset;
|
||||
using Robust.Shared.Localization;
|
||||
using Robust.Shared.Prototypes;
|
||||
@@ -6,12 +7,12 @@ using Robust.Shared.Prototypes;
|
||||
namespace Content.IntegrationTests.Tests.Localization;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class LocalizedDatasetPrototypeTest
|
||||
public sealed class LocalizedDatasetPrototypeTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task ValidProtoIdsTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
|
||||
var server = pair.Server;
|
||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -36,7 +37,5 @@ public sealed class LocalizedDatasetPrototypeTest
|
||||
Assert.That(localizationMan.HasString(nextId), Is.False, $"LocalizedDataset {proto.ID} with prefix \"{proto.Values.Prefix}\" specifies {proto.Values.Count} entries, but a localized string exists with ID {nextId}! Does count need to be raised?");
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Content.Server.Construction.Components;
|
||||
using Content.Shared.Construction.Components;
|
||||
using Robust.Shared.GameObjects;
|
||||
@@ -7,7 +8,7 @@ using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.IntegrationTests.Tests;
|
||||
|
||||
public sealed class MachineBoardTest
|
||||
public sealed class MachineBoardTest : GameTest
|
||||
{
|
||||
/// <summary>
|
||||
/// A list of machine boards that can be ignored by this test.
|
||||
@@ -32,7 +33,7 @@ public sealed class MachineBoardTest
|
||||
[Test]
|
||||
public async Task TestMachineBoardHasValidMachine()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -60,8 +61,6 @@ public sealed class MachineBoardTest
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -71,7 +70,7 @@ public sealed class MachineBoardTest
|
||||
[Test]
|
||||
public async Task TestComputerBoardHasValidComputer()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var protoMan = server.ResolveDependency<IPrototypeManager>();
|
||||
@@ -100,8 +99,6 @@ public sealed class MachineBoardTest
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -111,7 +108,7 @@ public sealed class MachineBoardTest
|
||||
[Test]
|
||||
public async Task TestValidateBoardComponentRequirements()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient();
|
||||
var pair = Pair;
|
||||
var server = pair.Server;
|
||||
|
||||
var entMan = server.ResolveDependency<IEntityManager>();
|
||||
@@ -136,7 +133,5 @@ public sealed class MachineBoardTest
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using Content.Client.Weapons.Ranged.Components;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.GameObjects;
|
||||
|
||||
@@ -9,12 +10,12 @@ namespace Content.IntegrationTests.Tests;
|
||||
/// Tests all entity prototypes with the MagazineVisualsComponent.
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public sealed class MagazineVisualsSpriteTest
|
||||
public sealed class MagazineVisualsSpriteTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task MagazineVisualsSpritesExist()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true });
|
||||
var pair = Pair;
|
||||
var client = pair.Client;
|
||||
var toTest = new List<(int, string)>();
|
||||
var protos = pair.GetPrototypesWithComponent<MagazineVisualsComponent>();
|
||||
@@ -67,7 +68,5 @@ public sealed class MagazineVisualsSpriteTest
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Map;
|
||||
@@ -5,15 +6,18 @@ using Robust.Shared.Map;
|
||||
namespace Content.IntegrationTests.Tests.Mapping;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class MappingTests
|
||||
public sealed class MappingTests : GameTest
|
||||
{
|
||||
public override PoolSettings PoolSettings =>
|
||||
new() { Dirty = true, Connected = true, DummyTicker = false };
|
||||
|
||||
/// <summary>
|
||||
/// Checks that the mapping command creates paused & uninitialized maps.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public async Task MappingTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings { Dirty = true, Connected = true, DummyTicker = false });
|
||||
var pair = Pair;
|
||||
|
||||
var server = pair.Server;
|
||||
var entMan = server.EntMan;
|
||||
@@ -97,6 +101,5 @@ public sealed class MappingTests
|
||||
Assert.That(server.MetaData(ent).EntityPaused, Is.True);
|
||||
|
||||
await server.WaitPost(() => entMan.DeleteEntity(map));
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
using Content.Client.Gameplay;
|
||||
using Content.Client.Mapping;
|
||||
using Content.IntegrationTests.Fixtures;
|
||||
using Robust.Client.State;
|
||||
|
||||
namespace Content.IntegrationTests.Tests;
|
||||
|
||||
[TestFixture]
|
||||
public sealed class MappingEditorTest
|
||||
public sealed class MappingEditorTest : GameTest
|
||||
{
|
||||
[Test]
|
||||
public async Task StopHardCodingWidgetsJesusChristTest()
|
||||
{
|
||||
await using var pair = await PoolManager.GetServerClient(new PoolSettings
|
||||
{
|
||||
Connected = true
|
||||
});
|
||||
var pair = Pair;
|
||||
var client = pair.Client;
|
||||
var state = client.ResolveDependency<IStateManager>();
|
||||
|
||||
@@ -35,7 +33,5 @@ public sealed class MappingEditorTest
|
||||
state.RequestStateChange<GameplayState>();
|
||||
});
|
||||
});
|
||||
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user