public void TestShallow() { var cl = new Cloner(); { var src = new Sample1 { X = 9, Y = "qwe" }; var dst = (Sample1)cl.ShallowObject(src); Assert.AreEqual(src.X, dst.X); Assert.AreEqual(src.Y, dst.Y); } { var src = new Sample2 { X = 19, Y = "qwe" }; var dst = cl.Shallow(src); Assert.AreEqual(src.X, dst.X); Assert.AreEqual(src.Y, dst.Y); } { var src = new SampleDict { Value = 1, Children = new Dictionary <string, SampleDict> { { "a", new SampleDict { Value = 2 } } } }; var dst = cl.Shallow(src); Assert.AreEqual(src.Value, dst.Value); Assert.AreEqual(src.Children, dst.Children); } }
public void TestCodeAssignSimple() { var v1 = new Sample1 { X = 150, Y = "test" }; var cs = new CodeAssignSerializer(); var result1 = cs.ToString(v1); Assert.AreEqual("void Init(Sample1 obj) {\n\tobj.X = 150;\n\tobj.Y = \"test\";\n}\n", result1); var v2 = new Sample2 { X = 150, Y = "test" }; var result2 = cs.ToString(v2); Assert.AreEqual("void Init(Sample2 obj) {\n\tobj.X = 150;\n\tobj.Y = \"test\";\n}\n", result2); }
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 TestSerializeIf() { TestGen(cl => { var src = new Sample2 { X = 1, Y = "a" }; 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 Sample2 { X = 1, Y = "1" }; var dst = cl.Deep(src); Assert.AreNotEqual(src, dst); Assert.AreEqual(src.X, dst.X); Assert.IsNull(dst.Y); }); TestGen(cl => { var src = new SampleSerializeIf { X = 7, Y = new Sample1 { X = 7 } }; var dst = cl.Deep(src); Assert.AreNotEqual(src, dst); Assert.AreEqual(src.X, dst.X); Assert.IsNull(dst.Y); }); TestGen(cl => { var src = new Sample1 { X = 7, Y = "ttt" }; var dst = cl.Deep(src); Assert.AreNotEqual(src, dst); Assert.AreEqual(src.X, dst.X); Assert.AreEqual("zzz", dst.Y); }); }
public void TestArray() { TestGen(cl => { var src = new int[5] { 2, 4, 5, 6, 8 }; var dst = cl.Deep(src); CollectionAssert.AreEqual(src, dst); }); TestGen(cl => { var src = new Sample1[] { new Sample1 { X = 33 } }; var dst = cl.Deep(src); Assert.AreNotEqual(src[0], dst[0]); Assert.AreEqual(src[0].X, dst[0].X); }); TestGen(cl => { var src = new SampleArray { A = null }; var dst = cl.Deep(src); Assert.AreNotEqual(src, dst); Assert.IsNull(dst.A); }); TestGen(cl => { var src = new SampleArrayOfClass { A = new Sample1[] { new Sample1 { X = 33 } } }; var dst = cl.Deep(src); Assert.AreNotEqual(src, dst); Assert.AreNotEqual(src.A[0], dst.A[0]); Assert.AreEqual(src.A[0].X, dst.A[0].X); }); }