Skip to content

Commit

Permalink
Serialize - missing link relation
Browse files Browse the repository at this point in the history
  • Loading branch information
friflo committed Nov 29, 2024
1 parent a28250e commit 2d6cd5a
Showing 1 changed file with 27 additions and 4 deletions.
31 changes: 27 additions & 4 deletions src/Tests-internal/ECS/Test_SerializeLinkRelations.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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<AttackRelation>();
AreEqual(1, entity1Relations.Length);
AreEqual(1002, entity1Relations[0].target.Id);

var incomingLinks = entity2.GetIncomingLinks<AttackRelation>();
var attackBit = 1 << StructInfo<AttackRelation>.Index;
AreEqual(attackBit, store.nodes[1].isOwner);
Expand All @@ -63,6 +67,25 @@ public static void Test_SerializeLinkRelations_read_LinkRelation()
incomingLinks = entity2.GetIncomingLinks<AttackRelation>();
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<AttackRelation>();
AreEqual(1, relations1.Length);
AreEqual(1003 , relations1[0].target.Id);

var entity2 = store.GetEntityById(1003);
IsTrue(entity2.IsNull);
}
#endregion


Expand Down

0 comments on commit 2d6cd5a

Please sign in to comment.