Add Load, save, run ticks, save test to ensure map is inert.

This commit is contained in:
Pieter-Jan Briers
2019-10-13 16:26:39 +02:00
parent a5b19b10e0
commit dcffe0ef04

View File

@@ -2,6 +2,7 @@ using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
using NUnit.Framework; using NUnit.Framework;
using Robust.Server.Interfaces.Maps; using Robust.Server.Interfaces.Maps;
using Robust.Server.Interfaces.Timing;
using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.Resources; using Robust.Shared.Interfaces.Resources;
using Robust.Shared.Map; using Robust.Shared.Map;
@@ -50,5 +51,57 @@ namespace Content.IntegrationTests
Assert.That(one, Is.EqualTo(two)); Assert.That(one, Is.EqualTo(two));
} }
/// <summary>
/// Loads the default map, runs it for 5 ticks, then assert that it did not change.
/// </summary>
[Test]
public async Task LoadSaveTicksSaveStationStation()
{
var server = StartServer();
await server.WaitIdleAsync();
var mapLoader = server.ResolveDependency<IMapLoader>();
var mapManager = server.ResolveDependency<IMapManager>();
var pauseMgr = server.ResolveDependency<IPauseManager>();
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<IResourceManager>().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));
}
} }
} }