示例#1
0
        public void Poly_object_copy_2_objects_test()
        {
            var catBooking = new KennelBooking()
            {
                Id = "123"
            };
            var cat = new Cat()
            {
                Name = "Whiskers", RequiresHeatPad = true
            };

            catBooking.Animal = cat;

            var dogBooking = new KennelBooking()
            {
                Id = "123"
            };
            var dog = new Dog()
            {
                Name = "Skippy", NumberOfWalksPerDay = 2
            };

            dogBooking.Animal = dog;

            var sut = new ShadowCopier();

            var result1 = sut.Copy(catBooking);
            var result2 = sut.Copy(dogBooking);

            Assert.IsTrue(new Comparer().AreEqual(catBooking, result1));
            Assert.IsTrue(new Comparer().AreEqual(dogBooking, result2));
            Assert.IsFalse(new Comparer().AreEqual(catBooking, result2));
        }
示例#2
0
        public object TrackInstance(object instance)
        {
            var entry = new TrackingEntry()
            {
                ShadowCopy = _copier.Copy(instance),
                Instance   = instance
            };

            _trackedEntries.Add(instance, entry);

            return(instance);
        }
示例#3
0
        public void LittleMoreComplexCopy()
        {
            var p = new Person("Dave")
            {
                Id = "1337"
            };
            var p2 = new Person("Ben")
            {
                Id = "1332"
            };
            var b = new Book("This is a test", p, 170);

            b.AddEdition(new Edition("10th year limited Edition", EditionType.HardBack)
            {
                ReleaseDate = DateTime.Now
            });
            b.AddContributor(p2, ContributorType.Editor);


            var sut = new ShadowCopier();

            var result = sut.Copy(b);

            Assert.IsTrue(new Comparer().AreEqual(b, result));
        }
示例#4
0
        public void SimpleCopy()
        {
            var p = new Person("Dave")
            {
                Id = "1337"
            };
            var sut = new ShadowCopier();

            var result = sut.Copy(p);

            Assert.IsTrue(new Comparer().AreEqual(p, result));
        }
示例#5
0
        public void List_of_strings()
        {
            var data = new SecurityProfile();

            data.AddSecurityId("t1");

            var sut = new ShadowCopier();

            var result = sut.Copy(data);

            Assert.IsTrue(new Comparer().AreEqual(data, result));
        }
示例#6
0
        public void Poly_object_initial_copy_test()
        {
            var booking = new KennelBooking()
            {
                Id = "123"
            };
            var cat = new Cat()
            {
                Name = "Whiskers", RequiresHeatPad = true
            };

            booking.Animal = cat;

            var sut = new ShadowCopier();

            var result = sut.Copy(booking);

            Assert.IsTrue(new Comparer().AreEqual(booking, result));
        }