From 74f2ee1c60a316921d95ff4cf69ebed74f2be7ab Mon Sep 17 00:00:00 2001 From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Date: Tue, 15 Aug 2023 17:36:53 -0400 Subject: [PATCH] add test for salvage map loading (#19017) * add test for salvage map loading * ouagh --- Content.IntegrationTests/Tests/SalvageTest.cs | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Content.IntegrationTests/Tests/SalvageTest.cs diff --git a/Content.IntegrationTests/Tests/SalvageTest.cs b/Content.IntegrationTests/Tests/SalvageTest.cs new file mode 100644 index 0000000000..b16fce89f7 --- /dev/null +++ b/Content.IntegrationTests/Tests/SalvageTest.cs @@ -0,0 +1,63 @@ +using System.Linq; +using Content.Server.Salvage; +using Content.Shared.CCVar; +using Robust.Server.GameObjects; +using Robust.Shared.Configuration; +using Robust.Shared.GameObjects; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using Robust.Shared.Prototypes; + +namespace Content.IntegrationTests.Tests; + +[TestFixture] +public sealed class SalvageTest +{ + /// + /// Asserts that all salvage maps have been saved as grids and are loadable. + /// + [Test] + public async Task AllSalvageMapsLoadableTest() + { + await using var pairTracker = await PoolManager.GetServerClient(); + var server = pairTracker.Pair.Server; + + var entManager = server.ResolveDependency(); + var mapLoader = entManager.System(); + var mapManager = server.ResolveDependency(); + var prototypeManager = server.ResolveDependency(); + var cfg = server.ResolveDependency(); + Assert.That(cfg.GetCVar(CCVars.GridFill), Is.False); + + await server.WaitPost(() => + { + foreach (var salvage in prototypeManager.EnumeratePrototypes()) + { + var mapFile = salvage.MapPath; + + var mapId = mapManager.CreateMap(); + try + { + Assert.That(mapLoader.TryLoad(mapId, mapFile.ToString(), out var roots)); + Assert.That(roots.Where(uid => entManager.HasComponent(uid)), Is.Not.Empty); + } + catch (Exception ex) + { + throw new Exception($"Failed to load salvage map {salvage.ID}, was it saved as a map instead of a grid?", ex); + } + + try + { + mapManager.DeleteMap(mapId); + } + catch (Exception ex) + { + throw new Exception($"Failed to delete salvage map {salvage.ID}", ex); + } + } + }); + await server.WaitRunTicks(1); + + await pairTracker.CleanReturnAsync(); + } +}