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);
}
}
}