From ff9e6196ad74de44b6a637c5f663c6f7d1095887 Mon Sep 17 00:00:00 2001 From: Tim Van Baak Date: Thu, 15 Aug 2024 16:40:23 -0700 Subject: [PATCH] Add Timelines serialization test --- .../SerializationTest.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/MultiversalDiplomacyTests/SerializationTest.cs b/MultiversalDiplomacyTests/SerializationTest.cs index 5625a28..34ca89c 100644 --- a/MultiversalDiplomacyTests/SerializationTest.cs +++ b/MultiversalDiplomacyTests/SerializationTest.cs @@ -14,6 +14,31 @@ public class SerializationTest WriteIndented = true, }; + [Test] + public void SerializeRoundTrip_Timelines() + { + Timelines one = Timelines.Create(); + + string serial1 = JsonSerializer.Serialize(one, Options); + Timelines two = JsonSerializer.Deserialize(serial1, Options) + ?? throw new AssertionException("Failed to deserialize"); + + Assert.That(two.Next, Is.EqualTo(one.Next), "Failed to reserialize next timeline"); + Assert.That(two.Pasts, Is.EquivalentTo(one.Pasts), "Failed to reserialize pasts"); + + Timelines three = two + .WithNewSeason(Season.First, out var a1) + .WithNewSeason(a1, out var a2) + .WithNewSeason(a1, out var b2); + + string serial2 = JsonSerializer.Serialize(three, Options); + Timelines four = JsonSerializer.Deserialize(serial2, Options) + ?? throw new AssertionException("Failed to deserialize"); + + Assert.That(four.Next, Is.EqualTo(three.Next), "Failed to reserialize next timeline"); + Assert.That(four.Pasts, Is.EquivalentTo(three.Pasts), "Failed to reserialize pasts"); + } + [Test] public void SerializeRoundTrip_NewGame() {