using UnitTestSharp; namespace Ariadne.Vellum.UnitTests { public class FrozenFieldSaveTests : TestFixture { public static FrozenScript PausedTwice() { var returnMe = new FrozenScript(limit: 9, label: "launch"); var gates = new Gates(); returnMe.Tick(gates, TestTicks.Fresh()); returnMe.Tick(gates, TestTicks.Fresh()); return returnMe; } public class ReloadTests : TestFixture { public void ReadonlyField_ComesBackWithTheValueTheConstructorGaveIt() { var loaded = ArcRecordTests.Load(ArcRecordTests.Saved(PausedTwice())); CheckEqual(9, loaded.Limit); } public void GetOnlyAutoProperty_ComesBackWithTheValueTheConstructorGaveIt() { var loaded = ArcRecordTests.Load(ArcRecordTests.Saved(PausedTwice())); CheckEqual("launch", loaded.Label); } public void ReadonlyList_ComesBackWithItsItems() { var loaded = ArcRecordTests.Load(ArcRecordTests.Saved(PausedTwice())); CheckEqual(new[] { "waiting", "waiting" }, loaded.Log); } public void LoadedArc_KeepsRunningFromWhereItPaused() { var loaded = ArcRecordTests.Load(ArcRecordTests.Saved(PausedTwice())); var gates = new Gates(); gates.Open.Add("go"); loaded.Tick(gates, TestTicks.Fresh()); CheckTrue(loaded.Finished); CheckEqual(2, loaded.Log.Count); } } } }