AutoInternalsTests.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using Content.Server.Atmos.EntitySystems;
  2. using Content.Server.Body.Systems;
  3. using Content.Server.Station.Systems;
  4. using Content.Shared.Preferences;
  5. namespace Content.IntegrationTests.Tests.Internals;
  6. [TestFixture]
  7. [TestOf(typeof(InternalsSystem))]
  8. public sealed class AutoInternalsTests
  9. {
  10. [Test]
  11. public async Task TestInternalsAutoActivateInSpaceForStationSpawn()
  12. {
  13. await using var pair = await PoolManager.GetServerClient();
  14. var server = pair.Server;
  15. var testMap = await pair.CreateTestMap();
  16. var stationSpawning = server.System<StationSpawningSystem>();
  17. var atmos = server.System<AtmosphereSystem>();
  18. var internals = server.System<InternalsSystem>();
  19. await server.WaitAssertion(() =>
  20. {
  21. var profile = new HumanoidCharacterProfile();
  22. var dummy = stationSpawning.SpawnPlayerMob(testMap.GridCoords, "TestInternalsDummy", profile, station: null);
  23. Assert.That(atmos.HasAtmosphere(testMap.Grid), Is.False, "Test map has atmosphere - test needs adjustment!");
  24. Assert.That(internals.AreInternalsWorking(dummy), "Internals did not automatically connect!");
  25. server.EntMan.DeleteEntity(dummy);
  26. });
  27. await pair.CleanReturnAsync();
  28. }
  29. [Test]
  30. public async Task TestInternalsAutoActivateInSpaceForEntitySpawn()
  31. {
  32. await using var pair = await PoolManager.GetServerClient();
  33. var server = pair.Server;
  34. var testMap = await pair.CreateTestMap();
  35. var atmos = server.System<AtmosphereSystem>();
  36. var internals = server.System<InternalsSystem>();
  37. await server.WaitAssertion(() =>
  38. {
  39. var dummy = server.EntMan.Spawn("TestInternalsDummyEntity", testMap.MapCoords);
  40. Assert.That(atmos.HasAtmosphere(testMap.Grid), Is.False, "Test map has atmosphere - test needs adjustment!");
  41. Assert.That(internals.AreInternalsWorking(dummy), "Internals did not automatically connect!");
  42. server.EntMan.DeleteEntity(dummy);
  43. });
  44. await pair.CleanReturnAsync();
  45. }
  46. [TestPrototypes]
  47. private const string Prototypes = @"
  48. - type: playTimeTracker
  49. id: PlayTimeInternalsDummy
  50. - type: startingGear
  51. id: InternalsDummyGear
  52. equipment:
  53. mask: ClothingMaskBreath
  54. suitstorage: OxygenTankFilled
  55. - type: job
  56. id: TestInternalsDummy
  57. playTimeTracker: PlayTimeInternalsDummy
  58. startingGear: InternalsDummyGear
  59. - type: entity
  60. id: TestInternalsDummyEntity
  61. parent: MobHuman
  62. components:
  63. - type: Loadout
  64. prototypes: [InternalsDummyGear]
  65. ";
  66. }