Exemple #1
0
 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);
     }
 }
Exemple #2
0
 public void TestDict()
 {
     TestGen(cl => {
         var src = new Dictionary <string, int> {
             { "a", 1 }, { "b", 2 }
         };
         var dst = cl.Deep(src);
         Assert.AreNotEqual(src, dst);
         Assert.AreEqual(src.Count, dst.Count);
         Assert.AreEqual(src["a"], dst["a"]);
         Assert.AreEqual(src["b"], dst["b"]);
     });
     TestGen(cl => {
         var src = new SampleDict {
             Value    = 1,
             Children = new Dictionary <string, SampleDict> {
                 { "a", new SampleDict {
                       Value = 2
                   } }
             }
         };
         var dst = cl.Deep(src);
         Assert.AreEqual(src.Value, dst.Value);
         Assert.AreNotEqual(src.Children, dst.Children);
         Assert.AreEqual(src.Children["a"].Value, dst.Children["a"].Value);
     });
     TestGen(cl => {
         var src = new SampleDictKeys {
             E = new Dictionary <SampleEnum, int> {
                 { SampleEnum.E2, 6 }
             },
             I = null,
             K = new Dictionary <SampleKey, int> {
                 { new SampleKey {
                       V = 7
                   }, 8 }
             }
         };
         var dst = cl.Deep(src);
         Assert.AreNotEqual(src.E, dst.E);
         Assert.AreNotEqual(src.K, dst.K);
         Assert.AreEqual(src.I, dst.I);
         Assert.AreEqual(src.E[SampleEnum.E2], dst.E[SampleEnum.E2]);
         Assert.AreEqual(src.K[new SampleKey {
                                   V = 7
                               }], dst.K[new SampleKey {
                                             V = 7
                                         }]);
     });
 }