public void CircularReference() { var typeMap = new SerializationTypeMap(context); typeMap.RegisterType(typeof(Explicit.Sibling)); typeMap.RegisterType(typeof(Explicit.Address), new Explicit.AddressSerializer()); var serializer = new FudgeSerializer(context, typeMap); var bob = new Explicit.Sibling { Name = "Bob" }; var shirley = new Explicit.Sibling { Name = "Shirley" }; bob.Siblings.Add(shirley); shirley.Siblings.Add(bob); // Create our cycle var msg = serializer.SerializeToMsg(bob); var bob2 = (Explicit.Sibling)serializer.Deserialize(msg); Assert.NotSame(bob, bob2); Assert.Equal(1, bob2.Siblings.Count); var shirley2 = (Explicit.Sibling)bob2.Siblings[0]; Assert.NotSame(shirley, shirley2); Assert.Equal(1, shirley2.Siblings.Count); Assert.Same(bob2, shirley2.Siblings[0]); }
public void ReferencedObject() { var typeMap = new SerializationTypeMap(context); typeMap.RegisterType(typeof(Explicit.Sibling)); typeMap.RegisterType(typeof(Explicit.Address), new Explicit.AddressSerializer()); var serializer = new FudgeSerializer(context, typeMap); var bob = new Explicit.Sibling { Name = "Bob" }; var shirley = new Explicit.Sibling { Name = "Shirley" }; bob.Siblings.Add(shirley); // We don't reciprocate yet as that would generate a cycle var msg = serializer.SerializeToMsg(bob); var bob2 = (Explicit.Sibling)serializer.Deserialize(msg); Assert.NotSame(bob, bob2); Assert.Equal(1, bob2.Siblings.Count); Assert.NotSame(shirley, bob2.Siblings[0]); Assert.Equal("Shirley", bob2.Siblings[0].Name); }
public void BaseTypesOutputAsWell_FRN43() { var serializer = new FudgeSerializer(context); var bob = new Explicit.Sibling { Name = "Bob" }; var msg = serializer.SerializeToMsg(bob); var typeNames = msg.GetAllValues<string>(FudgeSerializer.TypeIdFieldOrdinal); Assert.Equal(2, typeNames.Count); Assert.Equal("Fudge.Tests.Unit.Serialization.Explicit+Sibling", typeNames[0]); Assert.Equal("Fudge.Tests.Unit.Serialization.Explicit+Person", typeNames[1]); }
public void BaseTypesOutputAsWell_FRN43() { var serializer = new FudgeSerializer(context); var bob = new Explicit.Sibling { Name = "Bob" }; var msg = serializer.SerializeToMsg(bob); var typeNames = msg.GetAllValues <string>(FudgeSerializer.TypeIdFieldOrdinal); Assert.Equal(2, typeNames.Count); Assert.Equal("Fudge.Tests.Unit.Serialization.Explicit+Sibling", typeNames[0]); Assert.Equal("Fudge.Tests.Unit.Serialization.Explicit+Person", typeNames[1]); }