public void TestBasic() { TestGen(cl => { var src = new Sample1 { X = 9, Y = "qwe" }; var dst = (Sample1)cl.DeepObject(src); Assert.AreNotEqual(src, dst); Assert.AreEqual(src.X, dst.X); Assert.AreEqual(src.Y, dst.Y); }); TestGen(cl => { var src = new Sample2 { X = 19, Y = "qwe" }; var dst = cl.Deep(src); Assert.AreNotEqual(src, dst); Assert.AreEqual(src.X, dst.X); Assert.AreEqual(src.Y, dst.Y); }); TestGen(cl => { var src = new Sample3 { S1 = new Sample1 { X = 19, Y = "qwe" } }; var dst = cl.Deep(src); Assert.AreNotEqual(src, dst); Assert.AreNotEqual(src.S1, dst.S1); Assert.AreEqual(src.S1.X, dst.S1.X); Assert.AreEqual(src.S1.Y, dst.S1.Y); }); TestGen(cl => { var src = new SampleGenNoGen { NG = new SampleNoGen { Z = 11 } }; var dst = cl.Deep(src); Assert.AreNotEqual(src, dst); Assert.AreNotEqual(src.NG, dst.NG); Assert.AreEqual(src.NG.Z, dst.NG.Z); }); }
public void TestDictObjObjects() { var src = new Sample3 { F = 7, S1 = new Sample1 { X = 3 }, S2 = null }; var d = DictOfObjects.Pack(src); Assert.AreEqual(3, d.Count); Assert.AreEqual(src.F, d["F"]); Assert.AreEqual(src.S1, d["S1"]); Assert.AreEqual(src.S2, d["S2"]); var dst = DictOfObjects.Unpack <Sample3>(d); Assert.AreEqual(src.F, dst.F); Assert.AreEqual(src.S1, dst.S1); Assert.AreEqual(src.S2, dst.S2); }