public void ClonedValueTypeIsCorrectType() { var s1 = new MS1 { i = 42 }; var s2 = s1; Assert.IsTrue((object)s2 is MS1); }
public void CloningValueTypeWithNamedDefaultConstructorWorks() { var s1 = new MS1 { i = 42 }; var s2 = s1; Assert.AreEqual(s2.i, 42); Assert.IsTrue((object)s2 is MS1); }
public void PropertiesWithFieldImplementationAreClonedWhenValueTypeIsCopied() { var s1 = new MS1 { P2 = 42 }; var s2 = s1; Assert.AreEqual(s2.P2, 42); s2.P2 = 43; Assert.AreEqual(s1.P2, 42); Assert.AreEqual(s2.P2, 43); }
public void AutoPropertyBackingFieldsAreClonedWhenValueTypeIsCopied() { var s1 = new MS1 { P1 = "hello" }; var s2 = s1; Assert.AreEqual(s2.P1, "hello"); s2.P1 = "world"; Assert.AreEqual(s1.P1, "hello"); Assert.AreEqual(s2.P1, "world"); }
public void FieldsAreClonedWhenValueTypeIsCopied() { var s1 = new MS1 { i = 42 }; var s2 = s1; Assert.AreEqual(s2.i, 42); s2.i = 43; Assert.AreEqual(s1.i, 42); Assert.AreEqual(s2.i, 43); }
public void CloningNullableValueTypesWorks() { MS1?s1 = null; MS1?s2 = new MS1 { i = 42 }; var s3 = s1; var s4 = s2; Assert.IsTrue(Script.IsNull(s3), "s3 should be null"); Assert.AreEqual(s4.Value.i, 42, "s4.i should be 42"); Assert.IsFalse(ReferenceEquals(s2, s4), "s2 and s4 should not be the same object"); }
public void NestedStructsAreClonedWhenValueTypeIsCopied() { var s1 = new MS1 { N = new MS2 { i = 42 } }; var s2 = s1; Assert.AreEqual(s2.N.i, 42); s2.N.i = 43; Assert.AreEqual(s1.N.i, 42); Assert.AreEqual(s2.N.i, 43); }
public void AutoEventBackingFieldsAreClonedWhenValueTypeIsCopied() { int count = 0; Action a = () => count++; var s1 = new MS1(); s1.E += a; var s2 = s1; s2.E += a; s1.RaiseE(); Assert.AreEqual(count, 1); s2.RaiseE(); Assert.AreEqual(count, 3); }
public void AutoEventBackingFieldsAreClonedWhenValueTypeIsCopied_SPI_1612() { int count = 0; Action a = () => count++; var s1 = new MS1(); s1.E += a; var s2 = s1; s2.E += a; s1.RaiseE(); Assert.AreEqual(1, count); s2.RaiseE(); // #1612 Assert.AreEqual(3, count); }
public void NestedStructsAreClonedWhenValueTypeIsCopied_SPI_1613() { var s1 = new MS1 { N = new MS2 { i = 42 } }; var s2 = s1; Assert.AreEqual(42, s2.N.i); s2.N.i = 43; // #1613 Assert.AreEqual(42, s1.N.i); Assert.AreEqual(43, s2.N.i); }