public void CopyFrom_ReferencesProps_Clones() { var first = new ClassOfValues { BoolField = true, IntField = 123, LongField = 123456812312331231 }; var second = new ClassOfValues() { BoolProp = false, IntProp = 1, LongProp = 333 }; var nestedClass = new ClassOfReferences() { FirstObjectProp = first, SecondObjectProp = second }; var newNestedClass = new ClassOfReferences().CopyFrom(nestedClass); Assert.True(newNestedClass.FirstObjectProp.BoolField); Assert.False(newNestedClass.SecondObjectProp.BoolField); Assert.Equal(123, newNestedClass.FirstObjectProp.IntField); Assert.Equal(1, newNestedClass.SecondObjectProp.IntProp); Assert.Equal(333, newNestedClass.SecondObjectProp.LongProp); Assert.Equal(123456812312331231, newNestedClass.FirstObjectProp.LongField); }
public void CopyFrom_PrivateProp_Clones() { var classOfValues = new ClassOfValues(); classOfValues.SetPrivateProp(4); var copy = new ClassOfValues().CopyFrom(classOfValues); Assert.Equal(4, copy.GetPrivateProp()); }
public void CopyFrom_PrivateValueField_Clones() { var classOfValues = new ClassOfValues() { PrivateFieldProp = 2 }; var copy = new ClassOfValues().CopyFrom(classOfValues); Assert.Equal(4, copy.PrivateFieldProp); }
public void CopyFrom_ValueFields_Clones() { var valueClass = new ClassOfValues { BoolField = true, IntField = 123, LongField = 123456812312331231 }; var newValueClass = new ClassOfValues().CopyFrom(valueClass); Assert.True(newValueClass.BoolField); Assert.Equal(123, newValueClass.IntField); Assert.Equal(123456812312331231, newValueClass.LongField); }
public void CopyFrom_ValueProps_Clones() { var valueClass = new ClassOfValues() { BoolProp = true, IntProp = 123, LongProp = 99999999999999999 }; var newValueClass = new ClassOfValues().CopyFrom(valueClass); Assert.True(newValueClass.BoolProp); Assert.Equal(123, newValueClass.IntProp); Assert.Equal(99999999999999999, newValueClass.LongProp); }
public void CopyFrom_ReferenceValues_CanNotModifyOriginal() { var values = new ClassOfValues() { BoolProp = true, BoolField = false }; var nested = new ClassOfReferences() { FirstObjectProp = values }; var clone = new ClassOfReferences().CopyFrom(nested); nested.FirstObjectProp.BoolProp = false; nested.FirstObjectProp.BoolField = true; Assert.True(clone.FirstObjectProp.BoolProp); Assert.False(clone.FirstObjectProp.BoolField); }