示例#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 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));
        }
示例#3
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));
        }
示例#4
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));
        }
示例#5
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));
        }
示例#6
0
        Main(string[] args)
        {
            Trace.Listeners.Add(new ConsoleApplicationTraceListener());

            try
            {
                ShadowCopier.ShadowCopy();
                return(Main2(new Queue <string>(args)));
            }
            catch (UserException ue)
            {
                Trace.TraceError(ue.Message);
                return(1);
            }
            catch (Exception e)
            {
                Trace.TraceError("Internal produce error");
                Trace.TraceError(ExceptionExtensions.Format(e));
                return(1);
            }
        }
示例#7
0
 public virtual void Configure(ShadowCopier copier)
 {
     Copier = copier;
 }