[Test] public void NonHierarchicalCopy() { MetaInfo.SetAttribute(typeof(Network), "Nodes", "ObjectCopy", true); MetaInfo.SetAttribute(typeof(Node), "Location", "ObjectCopy", true); node1.Location = commonLocation; node2.Location = commonLocation; Network copy = (Network)ObjectSupport.GetCopy(network); Assert.AreEqual(((Node)copy.Nodes[0]).Location == ((Node)copy.Nodes[1]).Location, true); Assert.AreEqual(((Node)copy.Nodes[0]).Location == commonLocation, false); }
/// <summary> /// /// </summary> /// [Test] public void SimpleCopy() { Location loc = new Location(4, 5); Location loc2 = new Location(); ObjectSupport.Copy(loc, loc2); Assert.AreEqual(loc2.X, 4, "Copy simple object (1)"); Assert.AreEqual(loc2.Y, 5, "Copy simple object (2)"); Location loc3 = (Location)ObjectSupport.GetCopy(loc); Assert.AreEqual(loc3.X, 4, "GetCopy simple object (1)"); Assert.AreEqual(loc3.Y, 5, "GetCopy simple object (2)"); }
[Test] public void NestedCopy() { MetaInfo.SetAttribute(typeof(Network), "Nodes", "ObjectCopy", false); Network copy = (Network)ObjectSupport.GetCopy(network); Assert.AreEqual("Node1", ((Node)copy.Nodes[0]).Name, "Name of Node1"); Assert.AreEqual("Node2", ((Node)copy.Nodes[1]).Name, "Name of Node2"); Assert.AreSame(node1, ((Node)copy.Nodes[0]), "No copy of node1"); Assert.AreEqual(35, ((Node)copy.Nodes[0]).Location.X, "Location X"); MetaInfo.SetAttribute(typeof(Network), "Nodes", "ObjectCopy", true); Network copy2 = (Network)ObjectSupport.GetCopy(network); Assert.AreEqual("Node1", ((Node)copy2.Nodes[0]).Name, "Name of node1 when node is copied"); Assert.AreEqual(false, ((Node)copy2.Nodes[0]) == node1, "Copy of node1"); }