From dcffe0ef0443e065e7617815d81c9404a6d69163 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Sun, 13 Oct 2019 16:26:39 +0200 Subject: [PATCH] Add Load, save, run ticks, save test to ensure map is inert. --- Content.IntegrationTests/SaveLoadSaveTest.cs | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/Content.IntegrationTests/SaveLoadSaveTest.cs b/Content.IntegrationTests/SaveLoadSaveTest.cs index 3d73f5566e..c6bc8adede 100644 --- a/Content.IntegrationTests/SaveLoadSaveTest.cs +++ b/Content.IntegrationTests/SaveLoadSaveTest.cs @@ -2,6 +2,7 @@ using System.IO; using System.Threading.Tasks; using NUnit.Framework; using Robust.Server.Interfaces.Maps; +using Robust.Server.Interfaces.Timing; using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Resources; using Robust.Shared.Map; @@ -50,5 +51,57 @@ namespace Content.IntegrationTests Assert.That(one, Is.EqualTo(two)); } + + /// + /// Loads the default map, runs it for 5 ticks, then assert that it did not change. + /// + [Test] + public async Task LoadSaveTicksSaveStationStation() + { + var server = StartServer(); + await server.WaitIdleAsync(); + var mapLoader = server.ResolveDependency(); + var mapManager = server.ResolveDependency(); + var pauseMgr = server.ResolveDependency(); + + IMapGrid grid = default; + + // Load stationstation.yml as uninitialized map, and save it to ensure it's up to date. + server.Post(() => + { + var map = mapManager.CreateMap(); + pauseMgr.AddUninitializedMap(map); + grid = mapLoader.LoadBlueprint(map, "Maps/stationstation.yml"); + mapLoader.SaveBlueprint(grid.Index, "load save ticks save 1.yml"); + }); + + // Run 5 ticks. + server.RunTicks(5); + + server.Post(() => + { + mapLoader.SaveBlueprint(grid.Index, "load save ticks save 2.yml"); + }); + + await server.WaitIdleAsync(); + var userData = server.ResolveDependency().UserData; + + string one; + string two; + + using (var stream = userData.Open(new ResourcePath("load save ticks save 1.yml"), FileMode.Open)) + using (var reader = new StreamReader(stream)) + { + one = reader.ReadToEnd(); + } + + using (var stream = userData.Open(new ResourcePath("load save ticks save 2.yml"), FileMode.Open)) + using (var reader = new StreamReader(stream)) + { + two = reader.ReadToEnd(); + } + + Assert.That(one, Is.EqualTo(two)); + } } }