ShuttleTest.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Numerics;
  2. using Content.Server.Shuttles.Components;
  3. using Robust.Shared.GameObjects;
  4. using Robust.Shared.Map;
  5. using Robust.Shared.Physics;
  6. using Robust.Shared.Physics.Components;
  7. using Robust.Shared.Physics.Systems;
  8. namespace Content.IntegrationTests.Tests
  9. {
  10. [TestFixture]
  11. public sealed class ShuttleTest
  12. {
  13. [Test]
  14. public async Task Test()
  15. {
  16. await using var pair = await PoolManager.GetServerClient();
  17. var server = pair.Server;
  18. await server.WaitIdleAsync();
  19. var mapMan = server.ResolveDependency<IMapManager>();
  20. var entManager = server.ResolveDependency<IEntityManager>();
  21. var physicsSystem = entManager.System<SharedPhysicsSystem>();
  22. PhysicsComponent gridPhys = null;
  23. var map = await pair.CreateTestMap();
  24. await server.WaitAssertion(() =>
  25. {
  26. var mapId = map.MapId;
  27. var grid = map.Grid;
  28. Assert.Multiple(() =>
  29. {
  30. Assert.That(entManager.HasComponent<ShuttleComponent>(grid));
  31. Assert.That(entManager.TryGetComponent(grid, out gridPhys));
  32. });
  33. Assert.Multiple(() =>
  34. {
  35. Assert.That(gridPhys.BodyType, Is.EqualTo(BodyType.Dynamic));
  36. Assert.That(entManager.GetComponent<TransformComponent>(grid).LocalPosition, Is.EqualTo(Vector2.Zero));
  37. });
  38. physicsSystem.ApplyLinearImpulse(grid, Vector2.One, body: gridPhys);
  39. });
  40. await server.WaitRunTicks(1);
  41. await server.WaitAssertion(() =>
  42. {
  43. Assert.That(entManager.GetComponent<TransformComponent>(map.Grid).LocalPosition, Is.Not.EqualTo(Vector2.Zero));
  44. });
  45. await pair.CleanReturnAsync();
  46. }
  47. }
  48. }