public void CanDeepCopyStruct() { var astruct = new AStruct() { AStringField = "hello", AnIntField = 123, }; var serializer = new OrleansWireSerializer(); var res = (AStruct)serializer.DeepCopy(astruct); Assert.AreEqual(astruct.AnIntField, res.AnIntField); Assert.AreEqual(astruct.AStringField, res.AStringField); }
public void CanDeepCopyClass() { var astruct = new AClass() { AStringField = "hello", AnIntField = 123, AStringProp = "you", AnIntProp = 456 }; var serializer = new OrleansWireSerializer(); var res = (AClass)serializer.DeepCopy(astruct); Assert.AreEqual(astruct.AnIntField, res.AnIntField); Assert.AreEqual(astruct.AStringField, res.AStringField); Assert.AreEqual(astruct.AnIntProp, res.AnIntProp); Assert.AreEqual(astruct.AStringProp, res.AStringProp); }
public void CanDeepCopyCyclicClass() { var a = new A { B = new B { AnIntProp = 123 }, AStringProp = "hello" }; //make cyclic a.B.A = a; var serializer = new OrleansWireSerializer(); var res = (A)serializer.DeepCopy(a); Assert.AreEqual(a.AStringProp, res.AStringProp); Assert.AreEqual(a.B.AnIntProp, res.B.AnIntProp); Assert.AreSame(res, res.B.A); }