SalvageTest.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using Content.Shared.CCVar;
  2. using Content.Shared.Salvage;
  3. using Robust.Shared.Configuration;
  4. using Robust.Shared.EntitySerialization.Systems;
  5. using Robust.Shared.GameObjects;
  6. using Robust.Shared.Prototypes;
  7. namespace Content.IntegrationTests.Tests;
  8. [TestFixture]
  9. public sealed class SalvageTest
  10. {
  11. /// <summary>
  12. /// Asserts that all salvage maps have been saved as grids and are loadable.
  13. /// </summary>
  14. [Test]
  15. public async Task AllSalvageMapsLoadableTest()
  16. {
  17. await using var pair = await PoolManager.GetServerClient();
  18. var server = pair.Server;
  19. var entManager = server.ResolveDependency<IEntityManager>();
  20. var mapLoader = entManager.System<MapLoaderSystem>();
  21. var prototypeManager = server.ResolveDependency<IPrototypeManager>();
  22. var cfg = server.ResolveDependency<IConfigurationManager>();
  23. var mapSystem = entManager.System<SharedMapSystem>();
  24. Assert.That(cfg.GetCVar(CCVars.GridFill), Is.False);
  25. await server.WaitPost(() =>
  26. {
  27. foreach (var salvage in prototypeManager.EnumeratePrototypes<SalvageMapPrototype>())
  28. {
  29. mapSystem.CreateMap(out var mapId);
  30. try
  31. {
  32. Assert.That(mapLoader.TryLoadGrid(mapId, salvage.MapPath, out var grid));
  33. }
  34. catch (Exception ex)
  35. {
  36. throw new Exception($"Failed to load salvage map {salvage.ID}, was it saved as a map instead of a grid?", ex);
  37. }
  38. try
  39. {
  40. mapSystem.DeleteMap(mapId);
  41. }
  42. catch (Exception ex)
  43. {
  44. throw new Exception($"Failed to delete salvage map {salvage.ID}", ex);
  45. }
  46. }
  47. });
  48. await server.WaitRunTicks(1);
  49. await pair.CleanReturnAsync();
  50. }
  51. }