From 2d6cd5ad93983c3a9630c48ca8da6c74c31096e4 Mon Sep 17 00:00:00 2001 From: Ullrich Praetz Date: Fri, 29 Nov 2024 10:18:02 +0100 Subject: [PATCH] Serialize - missing link relation --- .../ECS/Test_SerializeLinkRelations.cs | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/Tests-internal/ECS/Test_SerializeLinkRelations.cs b/src/Tests-internal/ECS/Test_SerializeLinkRelations.cs index fd72233e..ac9eb831 100644 --- a/src/Tests-internal/ECS/Test_SerializeLinkRelations.cs +++ b/src/Tests-internal/ECS/Test_SerializeLinkRelations.cs @@ -24,6 +24,14 @@ public static class Test_SerializeLinkRelations },{ ""id"": 1002 }]"; + +private const string JsonMissingLinkRelation = + @"[{ + ""id"": 1, + ""components"": { + ""multi-attack"": [{""speed"":0,""target"":1003}] + } +}]"; #region read relations @@ -44,10 +52,6 @@ public static void Test_SerializeLinkRelations_read_LinkRelation() AreEqual(1, relations1.Length); AreEqual(1002 , relations1[0].target.Id); - var entity1Relations = entity1.GetRelations(); - AreEqual(1, entity1Relations.Length); - AreEqual(1002, entity1Relations[0].target.Id); - var incomingLinks = entity2.GetIncomingLinks(); var attackBit = 1 << StructInfo.Index; AreEqual(attackBit, store.nodes[1].isOwner); @@ -63,6 +67,25 @@ public static void Test_SerializeLinkRelations_read_LinkRelation() incomingLinks = entity2.GetIncomingLinks(); AreEqual(0, incomingLinks.Count); } + + [Test] + public static void Test_SerializeLinkRelations_read_MissingLinkRelation() + { + var store = new EntityStore(); + var serializer = new EntitySerializer(); + var stream = Test_Serializer.StringAsStream(JsonMissingLinkRelation); + + var result = serializer.ReadIntoStore(store, stream); + IsNull(result.error); + + var entity1 = store.GetEntityById(1); + var relations1 = entity1.GetRelations(); + AreEqual(1, relations1.Length); + AreEqual(1003 , relations1[0].target.Id); + + var entity2 = store.GetEntityById(1003); + IsTrue(entity2.IsNull); + } #endregion