Exemple #1
0
        public void GetClone_KeyValuePairRefTypeValueShallowClone_ValueAreNotTheSame()
        {
            var source = new KeyValuePair <int, MyClass>(10, new MyClass());
            var target = CloneFactory.GetClone(source, CloningFlags.Shallow);

            Assert.AreSame(source.Value, target.Value);
        }
 public void GetClone_Class_Cloned()
 {
     var source = new SimpleClass() { Property = 10, _field = 3 };
     var target = CloneFactory.GetClone(source);
     Assert.AreEqual(source.Property, target.Property);
     Assert.AreEqual(source._field, target._field);
 }
        public void GetClone_NullListOfInt_NullCloned()
        {
            List <int> source = null;
            var        target = CloneFactory.GetClone(source);

            Assert.IsNull(target);
        }
 public void GetClone_SameTypepProperty_Cloned()
 {
     var source = new SelfReferencedClass { Value = new SelfReferencedClass() };
     var target = CloneFactory.GetClone(source);
     Assert.IsNotNull(target.Value);
     Assert.IsNull(target.Value.Value);
 }
        public static void GetArrayCloneAndAssert <T>(Func <T[]> getInstance, bool assertSame = false, CloningFlags?flags = null)
        {
            var source = getInstance();
            var target =
                flags.HasValue ?
                CloneFactory.GetClone(source, flags.Value) :
                CloneFactory.GetClone(source);

            if (source == null)
            {
                Assert.IsNull(target);
            }
            else
            {
                Assert.AreEqual(source.Length, target.Length);
                for (int i = 0; i < source.Length; i++)
                {
                    Assert.AreEqual(source[i], target[i]);
                    if (assertSame)
                    {
                        Assert.AreSame(source[i], target[i]);
                    }
                    else
                    {
                        Assert.AreNotSame(source[i], target[i]);
                    }
                }
            }
        }
        public static void GetCloneAndAssert <T>(Func <T> getInstance, bool assertSame = false, CloningFlags?flags = null)
        {
            var source = getInstance();
            var target =
                flags.HasValue ?
                CloneFactory.GetClone(source, flags.Value) :
                CloneFactory.GetClone(source);

            if (source == null)
            {
                Assert.IsNull(target);
            }
            else
            {
                Assert.AreEqual(source, target);
                if (assertSame)
                {
                    Assert.AreSame(source, target);
                }
                else
                {
                    Assert.AreNotSame(source, target);
                }
            }
        }
Exemple #7
0
        public void GetClone_KeyValuePair_ValueIsCloned()
        {
            var source = new KeyValuePair <int, string>(10, "test");
            var target = CloneFactory.GetClone(source);

            Assert.AreEqual(source.Key, target.Key);
        }
Exemple #8
0
        public void GetClone_KeyValuePairOfIntAndString_AreNotSame()
        {
            var source = new KeyValuePair <int, string>(10, "test");
            var target = CloneFactory.GetClone(source);

            Assert.AreNotSame(source, target);
        }
        public void GetClone_Tuple_Null()
        {
            var source = (Tuple <int>)null;
            var target = CloneFactory.GetClone(source);

            Assert.IsNull(target);
        }
Exemple #10
0
        public void GetClone_KeyValuePairRefTypeKey_KeysAreNotTheSame()
        {
            var source = new KeyValuePair <MyClass, int>(new MyClass(), 10);
            var target = CloneFactory.GetClone(source);

            Assert.AreNotSame(source.Value, target.Value);
        }
Exemple #11
0
        public void GetClone_KeyValuePairRefTypeKeyShallowClone_KeysAreNotTheSame()
        {
            var source = new KeyValuePair <MyClass, int>(new MyClass(), 10);
            var target = CloneFactory.GetClone(source, CloningFlags.Shallow);

            Assert.AreSame(source.Key, target.Key);
        }
        public void GetClone_ListOfInts_Cloned()
        {
            var source = Enumerable.Range(0, 10).ToList();
            var target = CloneFactory.GetClone(source);

            Assert.AreNotSame(source, target);
            Assert.IsTrue(source.SequenceEqual(target));
        }
Exemple #13
0
 public void GetClone_Struct_Cloned()
 {
     var source = new SimpleStruct()
     {
         Property = 10, _field = 3
     };
     var target = CloneFactory.GetClone(source);
 }
        public void GetClone_TupleT5CloneTest_InstanceIsCloned()
        {
            var source = Tuple.Create(1, 2, 3, 4, 5);
            var target = CloneFactory.GetClone(source);

            Assert.AreEqual(source, target);
            Assert.AreNotSame(source, target);
        }
        public void GetClone_TupleT1CloneTest_RefTypeValue_ValuesAreNotTheSame()
        {
            var source = new Tuple <MyClass>(new MyClass());
            var target = CloneFactory.GetClone(source);

            Assert.AreNotSame(source.Item1, target.Item1);
            Assert.AreNotSame(source, target);
        }
Exemple #16
0
        public void Init()
        {
            MockDefinitionFactory
            .Setup(factory => factory.Create <PrimitiveEntity>(It.IsAny <ICloneFactory>()))
            .Returns(MockDefinition.Object);

            TestObject = new CloneFactory(MockDefinitionFactory.Object);
        }
Exemple #17
0
 public void GetClone_InterfaceInitializerNotSpecified_InvalidOperationExceptionThrown()
 {
     IInterface source = new DerivedClass()
     {
         InterfaceProperty = 10
     };
     var target = CloneFactory.GetClone(source);
 }
        public void GetClone_TupleT8CloneTest_InstanceIsCloned()
        {
            var source = new Tuple <int, int, int, int, int, int, int, Tuple <int, int, int> >(1, 2, 3, 4, 5, 6, 7, new Tuple <int, int, int>(8, 9, 10));
            var target = CloneFactory.GetClone(source);

            Assert.AreEqual(source, target);
            Assert.AreNotSame(source, target);
        }
Exemple #19
0
 public void GetClone_AbstractClassInitializerNotSpecified_InvalidOperationExceptionThrown()
 {
     var source = (AbstractClass) new DerivedClass()
     {
         AbstractProperty = 10
     };
     var target = CloneFactory.GetClone(source);
 }
        public void GetClone_ListOfIntsCloningFlagsCollectionItemsNotProvided_ItemsNotCloned()
        {
            var source = Enumerable.Range(0, 10).ToList();
            var target = CloneFactory.GetClone(source, CloningFlags.Properties);

            Assert.AreNotSame(source, target);
            Assert.AreEqual(source.Count, target.Capacity);
            Assert.AreEqual(0, target.Count);
        }
 public void GetCLone_AbstractClassInitializerSpecified_InstanceCloned()
 {
     var source = (AbstractClass)new DerivedClass() { AbstractProperty = 10 };
     var initializers = new Dictionary<Type, Func<object, object>>() {
         { typeof(AbstractClass), (s) => new DerivedClass() }
     };
     var target = CloneFactory.GetClone(source, initializers);
     Assert.AreEqual(source.AbstractProperty, target.AbstractProperty);
 }
Exemple #22
0
        public void I_Can_Create_Copy_Of_Sheep_Object()
        {
            var sila = new Sheep {
                Name = "Sila"
            };
            var silaClone = (Sheep)CloneFactory.GetClone(sila);

            Assert.Equal(sila.Name, silaClone.Name);
            Assert.NotEqual(sila, silaClone);
        }
Exemple #23
0
    public void Execute()
    {
        Example ex = new Example();

        ex.Value = 1023;

        CloneFactory cloner = new CloneFactory();

        Example ex2 = cloner.CreateObject(ex);
    }
        public void GetClone_Dictionary_Cloned()
        {
            var source = new Dictionary <int, string>()
            {
                { 1, "one" }, { 2, "two" }
            };
            var target = CloneFactory.GetClone(source);

            Assert.IsTrue(source.SequenceEqual(target));
        }
        public void GetClone_InterfaceInitializerSpecified_InstanceCloned()
        {
            IInterface source = new DerivedClass() { InterfaceProperty = 10};
            var initializers = new Dictionary<Type, Func<object, object>>() {
                { typeof(IInterface), (s) => new DerivedClass() }
            };
            var target = CloneFactory.GetClone(source, initializers);

            Assert.AreNotSame(source, target);
            Assert.AreEqual(source.InterfaceProperty, target.InterfaceProperty);
        }
        public void GetClone_ListOfClass_ReferenceEqualityReturnsFalse()
        {
            var source = Enumerable.Range(1, 10).Select(x => new MyClass()
            {
                _field = x, Property = x
            }).ToList();
            var target = CloneFactory.GetClone(source);

            Assert.AreNotSame(source, target);
            Assert.IsTrue(source.SequenceEqual(target));
            Assert.IsFalse(source.Zip(target, (s, t) => new { s, t }).Any(x => ReferenceEquals(x.s, x.t)));
        }
        public void GetClone_CircularDependency_ItemsClonedCorrectly()
        {
            CircularReference1 one = new CircularReference1();
            CircularReference2 two = new CircularReference2();
            one.First = two;
            one.Second = two;
            two.Other = one;

            var target = CloneFactory.GetClone(one);

            Assert.AreSame(target.First, target.Second, "Are the same");
        }
        public void GetClone_FieldWithNotClonedAttribute_FieldNotCloned()
        {
            var source = new ClassWithAttributedMembers()
            {
                FieldWithAttribute = "value"
            };
            var target = CloneFactory.GetClone(source);

            Assert.AreNotSame(source, target);
            Assert.AreNotEqual(source.FieldWithAttribute, target.FieldWithAttribute);
            Assert.AreEqual(default(string), target.FieldWithAttribute);
        }
        public void GetClone_PropertyWithNotClonedAttribute_PropertyNotCloned()
        {
            var source = new ClassWithAttributedMembers()
            {
                PropertyWithAttributes = "value"
            };
            var target = CloneFactory.GetClone(source);

            Assert.AreNotSame(source, target);
            Assert.AreNotEqual(source.PropertyWithAttributes, target.PropertyWithAttributes);
            Assert.AreEqual(default(string), target.PropertyWithAttributes);
        }
Exemple #30
0
        static void Main(string[] args)
        {
            CloneFactory animalMaker = new CloneFactory();
            Sheep        sally       = new Sheep();

            Sheep clonedSheep = (Sheep)animalMaker.GetClone(sally);

            Console.WriteLine(sally);
            Console.WriteLine(clonedSheep);

            Console.WriteLine(sally.Voice);
            Console.WriteLine(clonedSheep.Voice);
        }