public void TestObjectWithPrimitiveList() { var nodeContainer = new NodeContainer(); var instance = new PrimitiveListClass { Member1 = 3, Member2 = new List <string> { "aaa", "bbb", "ccc" } }; var rootNode = nodeContainer.GetOrCreateNode(instance); var visitor = new TestVisitor(); visitor.Visit(rootNode); var expectedNodes = new IGraphNode[] { rootNode, rootNode[nameof(PrimitiveListClass.Member1)], rootNode[nameof(PrimitiveListClass.Member2)], rootNode[nameof(PrimitiveListClass.Member2)].Target, }; var expectedPaths = new GraphNodePath[4]; expectedPaths[0] = new GraphNodePath(rootNode); expectedPaths[1] = expectedPaths[0].Clone(); expectedPaths[1].PushMember(nameof(PrimitiveListClass.Member1)); expectedPaths[2] = expectedPaths[0].Clone(); expectedPaths[2].PushMember(nameof(PrimitiveListClass.Member2)); expectedPaths[3] = expectedPaths[2].Clone(); expectedPaths[3].PushTarget(); VerifyNodesAndPath(expectedNodes, expectedPaths, visitor); }
public void TestObjectWithPrimitiveList() { var nodeContainer = new NodeContainer(); var instance = new PrimitiveListClass { Member1 = 3, Member2 = new List <string> { "aaa", "bbb", "ccc" } }; var rootNode = nodeContainer.GetOrCreateNode(instance); var visitor = new TestVisitor(); visitor.Visit(rootNode); var expectedNodes = new IContentNode[] { rootNode, rootNode[nameof(PrimitiveListClass.Member1)], rootNode[nameof(PrimitiveListClass.Member2)], }; var expectedPaths = new[] { new GraphNodePath(rootNode), new GraphNodePath(rootNode).PushMember(nameof(PrimitiveListClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(PrimitiveListClass.Member2)), }; VerifyNodesAndPath(expectedNodes, expectedPaths, visitor); }
public void PrimitiveList() { PrimitiveListClass a = new PrimitiveListClass(); a.Ints.Add(1); a.Ints.Add(3); a.Ints.Add(4); a.Ints.Add(5); a.Ints.Add(6); XmlDocument target = new XmlDocument(); Serializer.Serialize((SystemXmlAdapter)target, a); Assert.AreEqual(1, target.DocumentElement.ChildNodes.Count); Assert.AreEqual(1, GetElement(target, "Ints").ChildNodes.Count); PrimitiveListClass b = Deserializer.Deserialize <PrimitiveListClass>((SystemXmlAdapter)target); for (int i = 0; i < a.Ints.Count; i++) { Assert.AreEqual(a.Ints[i], b.Ints[i]); } PrimitiveListClass c = new PrimitiveListClass(); new Deserializer().FillObject(c, (SystemXmlAdapter)target); for (int i = 0; i < a.Ints.Count; i++) { Assert.AreEqual(a.Ints[i], c.Ints[i]); } }
public void PrimitiveLists() { Assert.True(PropertyBasedSerializationSurrogate.CanHandle(typeDataCache, FudgeFieldNameConvention.Identity, typeof(PrimitiveListClass))); var serializer = new FudgeSerializer(context); // We're relying on it auto-discovering the type surrogate var obj1 = new PrimitiveListClass(); obj1.Names.Add("Fred"); obj1.Names.Add("Sheila"); var msg = serializer.SerializeToMsg(obj1); // Check the serialized format Assert.Equal(FudgeMsgFieldType.Instance, msg.GetByName("Names").Type); var listMsg = msg.GetMessage("Names"); Assert.Equal("FudgeMsg[ => Fred, => Sheila]", listMsg.ToString()); var obj2 = (PrimitiveListClass)serializer.Deserialize(msg); Assert.NotSame(obj1, obj2); Assert.Equal(obj1.Names, obj2.Names); }
public void TestObjectWithPrimitiveList() { var nodeContainer = new NodeContainer(); var instance = new PrimitiveListClass { Member1 = 3, Member2 = new List<string> { "aaa", "bbb", "ccc" } }; var rootNode = nodeContainer.GetOrCreateNode(instance); var visitor = new TestVisitor(); visitor.Visit(rootNode); var expectedNodes = new[] { rootNode, rootNode.TryGetChild(nameof(PrimitiveListClass.Member1)), rootNode.TryGetChild(nameof(PrimitiveListClass.Member2)), }; var expectedPaths = new[] { new GraphNodePath(rootNode), new GraphNodePath(rootNode).PushMember(nameof(PrimitiveListClass.Member1)), new GraphNodePath(rootNode).PushMember(nameof(PrimitiveListClass.Member2)), }; VerifyNodesAndPath(expectedNodes, expectedPaths, visitor); }