AirlockPryingTest.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using Content.IntegrationTests.Tests.Interaction;
  2. using Content.Server.Doors.Systems;
  3. using Content.Shared.Doors.Components;
  4. namespace Content.IntegrationTests.Tests.Doors;
  5. public sealed class AirlockPryingTest : InteractionTest
  6. {
  7. [Test]
  8. public async Task PoweredClosedAirlock_Pry_DoesNotOpen()
  9. {
  10. await SpawnTarget(Airlock);
  11. await SpawnEntity("APCBasic", SEntMan.GetCoordinates(TargetCoords));
  12. await RunTicks(1);
  13. Assert.That(TryComp<AirlockComponent>(out var airlockComp), "Airlock does not have AirlockComponent?");
  14. Assert.That(airlockComp.Powered, "Airlock should be powered for this test.");
  15. Assert.That(TryComp<DoorComponent>(out var doorComp), "Airlock does not have DoorComponent?");
  16. Assert.That(doorComp.State, Is.EqualTo(DoorState.Closed), "Airlock did not start closed.");
  17. await InteractUsing(Pry);
  18. Assert.That(doorComp.State, Is.EqualTo(DoorState.Closed), "Powered airlock was pried open.");
  19. }
  20. [Test]
  21. public async Task PoweredOpenAirlock_Pry_DoesNotClose()
  22. {
  23. await SpawnTarget(Airlock);
  24. await SpawnEntity("APCBasic", SEntMan.GetCoordinates(TargetCoords));
  25. await RunTicks(1);
  26. Assert.That(TryComp<AirlockComponent>(out var airlockComp), "Airlock does not have AirlockComponent?");
  27. Assert.That(airlockComp.Powered, "Airlock should be powered for this test.");
  28. var doorSys = SEntMan.System<DoorSystem>();
  29. await Server.WaitPost(() => doorSys.SetState(SEntMan.GetEntity(Target.Value), DoorState.Open));
  30. Assert.That(TryComp<DoorComponent>(out var doorComp), "Airlock does not have DoorComponent?");
  31. Assert.That(doorComp.State, Is.EqualTo(DoorState.Open), "Airlock did not start open.");
  32. await InteractUsing(Pry);
  33. Assert.That(doorComp.State, Is.EqualTo(DoorState.Open), "Powered airlock was pried closed.");
  34. }
  35. [Test]
  36. public async Task UnpoweredClosedAirlock_Pry_Opens()
  37. {
  38. await SpawnTarget(Airlock);
  39. Assert.That(TryComp<AirlockComponent>(out var airlockComp), "Airlock does not have AirlockComponent?");
  40. Assert.That(airlockComp.Powered, Is.False, "Airlock should not be powered for this test.");
  41. Assert.That(TryComp<DoorComponent>(out var doorComp), "Airlock does not have DoorComponent?");
  42. Assert.That(doorComp.State, Is.EqualTo(DoorState.Closed), "Airlock did not start closed.");
  43. await InteractUsing(Pry);
  44. Assert.That(doorComp.State, Is.EqualTo(DoorState.Opening), "Unpowered airlock failed to pry open.");
  45. }
  46. [Test]
  47. public async Task UnpoweredOpenAirlock_Pry_Closes()
  48. {
  49. await SpawnTarget(Airlock);
  50. Assert.That(TryComp<AirlockComponent>(out var airlockComp), "Airlock does not have AirlockComponent?");
  51. Assert.That(airlockComp.Powered, Is.False, "Airlock should not be powered for this test.");
  52. var doorSys = SEntMan.System<DoorSystem>();
  53. await Server.WaitPost(() => doorSys.SetState(SEntMan.GetEntity(Target.Value), DoorState.Open));
  54. Assert.That(TryComp<DoorComponent>(out var doorComp), "Airlock does not have DoorComponent?");
  55. Assert.That(doorComp.State, Is.EqualTo(DoorState.Open), "Airlock did not start open.");
  56. await InteractUsing(Pry);
  57. Assert.That(doorComp.State, Is.EqualTo(DoorState.Closing), "Unpowered airlock failed to pry closed.");
  58. }
  59. }