public void IDataContainer_Remove_RemovesCommonProperties() { IDataContainer A = DataContainerBuilder.Create("A") .Data("A", 1) .Data("B", 2) .Data("C", 3) .DataContainer("AA", b => b .Data("A1", 11) .Data("A2", 12)) .Data("D", 4) .Build(); var cloneA = A.Clone() as IDataContainer; IDataContainer B = DataContainerBuilder.Create("B") .Data("F", 1) .Data("B", 2) .Data("C", 3) .Data("X", 4) .Data("Y", 2) .Data("Z", 3) .Build(); var cloneB = B.Clone() as IDataContainer; cloneA.Remove(B); cloneB.Remove(A); Assert.Equal(3, cloneA.Count); // remove B,C from A Assert.Equal(4, cloneB.Count); // remove B,C from B }
public void IDataContainer_Clone_WorksForValueTypes() { IDataContainer A = DataContainerBuilder.Create("A") .Data("A", 1) .Data("B", new Color(1, 1, 1)) .Build(); IDataContainer clone = (IDataContainer)A.Clone(); Assert.Equal(A.Count, clone.Count); Assert.True(A.GetKeys().SequenceEqual(clone.GetKeys())); Assert.Equal(A["A"], clone["A"]); Assert.Equal(A["B"], clone["B"]); }
public void IDataCointainer_Clone_WorksForReferenceTypes() { IDataContainer A = DataContainerBuilder.Create("A") .Data("A", new object()) .Data("B", new object()) .Build(); IDataContainer clone = (IDataContainer)A.Clone(); Assert.Equal(A.Count, clone.Count); Assert.True(A.GetKeys().SequenceEqual(clone.GetKeys())); Assert.NotSame(A["A"], clone["A"]); Assert.NotSame(A["B"], clone["B"]); }