diff --git a/src/StateTree.csproj b/src/StateTree.csproj index ed90ab6..e7f6d4a 100644 --- a/src/StateTree.csproj +++ b/src/StateTree.csproj @@ -1,6 +1,6 @@  - 5.1.2 + 5.2.0 $(VersionSuffix) netstandard2.0;net5.0 3.0 @@ -20,9 +20,9 @@ - + diff --git a/test/StateTree.Tests.csproj b/test/StateTree.Tests.csproj index 5ea8cb8..eef9054 100644 --- a/test/StateTree.Tests.csproj +++ b/test/StateTree.Tests.csproj @@ -16,6 +16,11 @@ + + + + + diff --git a/test/StateTree.Tests/TestNested.cs b/test/StateTree.Tests/TestNested.cs index 764578c..446254e 100644 --- a/test/StateTree.Tests/TestNested.cs +++ b/test/StateTree.Tests/TestNested.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +using Microsoft.Extensions.DependencyInjection; using Skclusive.Mobx.StateTree; +using Skclusive.Text.Json; using Xunit; using static Skclusive.Mobx.StateTree.Tests.TestTypes; @@ -11,6 +13,14 @@ public class TestNested [Fact] public void TestRoot() { + var services = new ServiceCollection(); + services.TryAddJsonServices(); + services.TryAddJsonTypeConverter(); + services.TryAddJsonTypeConverter(); + services.TryAddJsonTypeConverter(); + + var jsonService = services.BuildServiceProvider().GetService(); + var root = RootType.Create(new RootSnapshot { Tree = new TreeSnapshot @@ -43,6 +53,39 @@ public void TestRoot() root.Tree.Branches[2].EditName("branch 3"); Assert.Equal("branch 3", root.Tree.Branches[2].Name); + + var rootSnapshot = new RootSnapshot + { + Tree = new TreeSnapshot + { + Branches = new IBranchSnapshot[] + { + new BranchSnapshot { Name = "snap branch 1" }, + + new BranchSnapshot { Name = "snap branch 2" } + } + } + }; + + root.ApplySnapshot(rootSnapshot); + + Assert.Equal(2, root.Tree.Branches.Count); + + Assert.Equal("snap branch 1", root.Tree.Branches[0].Name); + + Assert.Equal("snap branch 2", root.Tree.Branches[1].Name); + + var jsonSnapshot = jsonService.Serialize(rootSnapshot); + + var jsonSerialized = jsonService.Deserialize(jsonSnapshot); + + root.ApplySnapshot(jsonSerialized); + + Assert.Equal(2, root.Tree.Branches.Count); + + Assert.Equal("snap branch 1", root.Tree.Branches[0].Name); + + Assert.Equal("snap branch 2", root.Tree.Branches[1].Name); } } }