PuddleTest.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using Content.Server.Fluids.EntitySystems;
  2. using Content.Shared.Chemistry.Components;
  3. using Content.Shared.Coordinates;
  4. using Content.Shared.FixedPoint;
  5. using Content.Shared.Fluids.Components;
  6. using Robust.Shared.GameObjects;
  7. using Robust.Shared.Map;
  8. namespace Content.IntegrationTests.Tests.Fluids
  9. {
  10. [TestFixture]
  11. [TestOf(typeof(PuddleComponent))]
  12. public sealed class PuddleTest
  13. {
  14. [Test]
  15. public async Task TilePuddleTest()
  16. {
  17. await using var pair = await PoolManager.GetServerClient();
  18. var server = pair.Server;
  19. var testMap = await pair.CreateTestMap();
  20. var spillSystem = server.System<PuddleSystem>();
  21. await server.WaitAssertion(() =>
  22. {
  23. var solution = new Solution("Water", FixedPoint2.New(20));
  24. var tile = testMap.Tile;
  25. var gridUid = tile.GridUid;
  26. var (x, y) = tile.GridIndices;
  27. var coordinates = new EntityCoordinates(gridUid, x, y);
  28. Assert.That(spillSystem.TrySpillAt(coordinates, solution, out _), Is.True);
  29. });
  30. await pair.RunTicksSync(5);
  31. await pair.CleanReturnAsync();
  32. }
  33. [Test]
  34. public async Task SpaceNoPuddleTest()
  35. {
  36. await using var pair = await PoolManager.GetServerClient();
  37. var server = pair.Server;
  38. var testMap = await pair.CreateTestMap();
  39. var grid = testMap.Grid;
  40. var entitySystemManager = server.ResolveDependency<IEntitySystemManager>();
  41. var spillSystem = server.System<PuddleSystem>();
  42. var mapSystem = server.System<SharedMapSystem>();
  43. // Remove all tiles
  44. await server.WaitPost(() =>
  45. {
  46. var tiles = mapSystem.GetAllTiles(grid.Owner, grid.Comp);
  47. foreach (var tile in tiles)
  48. {
  49. mapSystem.SetTile(grid, tile.GridIndices, Tile.Empty);
  50. }
  51. });
  52. await pair.RunTicksSync(5);
  53. await server.WaitAssertion(() =>
  54. {
  55. var coordinates = grid.Owner.ToCoordinates();
  56. var solution = new Solution("Water", FixedPoint2.New(20));
  57. Assert.That(spillSystem.TrySpillAt(coordinates, solution, out _), Is.False);
  58. });
  59. await pair.CleanReturnAsync();
  60. }
  61. }
  62. }