Example #1
0
        public void CollectionMemberClonedWhenCopy()
        {
            var clone = new ObjectCloner();

            var a = Helper.InitTestObject();

            clone.ForMember("Bs[*].C").CloneMode(CloneMode.Copy);

            var aprime = clone.Clone(a);

            Assert.IsTrue(aprime.Bs.First().C != null);
        }
Example #2
0
        public string[] GetFormattedTicket(Ticket ticket, IEnumerable <Order> lines, PrinterTemplate printerTemplate)
        {
            var dataObject = new { Ticket = ObjectCloner.Clone2(ticket) };
            var orders     = printerTemplate.MergeLines ? MergeLines(lines.ToList()) : lines.ToList();

            ticket.Orders.Clear();
            orders.ToList().ForEach(ticket.Orders.Add);
            var content = _ticketValueChanger.GetValue(printerTemplate, ticket);

            content = UpdateExpressions(content, dataObject);
            return(content.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).ToArray());
        }
        public void GenericCollectionMemberClonedWhenCopy()
        {
            var clone = new ObjectCloner<A>();

            var a = Helper.InitTestObject();

            clone.ForMember(V => V.Bs.Select(V0 => V0.C)).CloneMode(CloneMode.Copy);

            var aprime = clone.Clone(a);

            Assert.IsTrue(aprime.Bs.First().C != null);
        }
Example #4
0
        public void CrossReferenceTest()
        {
            var obj    = new CrossReferenceObject();
            var cloned = ObjectCloner.Clone(obj, true);

            cloned.IsNotSameReferenceAs(obj);
            cloned.A.IsNotSameReferenceAs(obj.A);
            cloned.B.IsNotSameReferenceAs(obj.B);

            cloned.A.IsSameReferenceAs(cloned.B.A);
            cloned.B.IsSameReferenceAs(cloned.A.B);
        }
Example #5
0
        private void CopySelectedValuesToValues()
        {
            IList selectedItems = new ArrayList(SelectedValuesListBox.Items);

            foreach (IOrderable item in selectedItems)
            {
                if (!Values.Contains(item))
                {
                    Values.Add(ObjectCloner.Clone(item));
                }
            }
        }
Example #6
0
        private static Expression GenerateJaggedArray(List <ParameterExpression> variables,
                                                      ParameterExpression source,
                                                      ParameterExpression clone,
                                                      Type sourceType,
                                                      ParameterExpression refTrackerParam)
        {
            var elementType = sourceType.GetElementType();

            var item       = Expression.Parameter(elementType, "item");
            var clonedItem = Expression.Parameter(elementType, "item");
            var typeExpr   = Expression.Parameter(typeof(Type), "typeExpr");
            var i          = Expression.Parameter(typeof(int), "i");
            var length     = Expression.Parameter(typeof(int), "length");

            variables.Add(typeExpr);
            variables.Add(clonedItem);
            variables.Add(item);
            variables.Add(length);
            variables.Add(i);

            var notTrackedExpressions = new List <Expression>();

            notTrackedExpressions.Add(Expression.Assign(length, Expression.Property(source, "Length")));
            notTrackedExpressions.Add(Expression.Assign(i, Expression.Constant(0)));
            notTrackedExpressions.Add(Expression.Assign(clone, Expression.Convert(Expression.New(sourceType.GetConstructor(new[] { typeof(int) }), length), sourceType)));
            notTrackedExpressions.Add(Expression.Call(refTrackerParam, ObjectClonerReferenceTrackerMih.Track(), source, clone));

            Debug.Assert(!elementType.IsPrimitive && !elementType.IsValueType && elementType != typeof(string), "Element type cannot be a primitive type");

            var loopExpressions = new List <Expression>();

            loopExpressions.Add(Expression.Assign(item, Expression.Convert(Expression.Call(source, ArrayMih.GetValue(), i), elementType)));
            loopExpressions.Add(ClassCloner.GetCloneClassTypeExpression(refTrackerParam, item, clonedItem, elementType));
            loopExpressions.Add(Expression.Call(clone, ArrayMih.SetValue(), Expression.Convert(clonedItem, typeof(object)), i));
            loopExpressions.Add(Expression.Assign(i, Expression.Add(i, Expression.Constant(1))));

            var cond     = Expression.LessThan(i, length);
            var loopBody = Expression.Block(loopExpressions);

            var breakLabel = Expression.Label("breakLabel");
            var loop       = Expression.Loop(Expression.IfThenElse(cond,
                                                                   loopBody,
                                                                   Expression.Break(breakLabel)),
                                             breakLabel);

            notTrackedExpressions.Add(loop);

            return(ObjectCloner.GenerateNullTrackedOrUntrackedExpression(source,
                                                                         clone,
                                                                         sourceType,
                                                                         refTrackerParam,
                                                                         Expression.Block(notTrackedExpressions)));
        }
Example #7
0
        public void CollectionMemberClonedWhenCopy()
        {
            var clone = new ObjectCloner();

            var a = Helper.InitTestObject();

            clone.ForMember("Bs[*].C").CloneMode(CloneMode.Copy);

            var aprime = clone.Clone(a);

            Assert.IsTrue(aprime.Bs.First().C != null);
        }
Example #8
0
        public void DefaultIsCopy()
        {
            var clone = new ObjectCloner();

            var a = Helper.InitTestObject();

            var aprime = clone.Clone(a);

            a.B.F1      = 12345;
            aprime.B.F1 = 6789;

            Assert.AreNotEqual(a.B.F1, aprime.B.F1);
        }
Example #9
0
        public void GenericCollectionMemberClonedWhenCopy()
        {
            var clone = new ObjectCloner <A>();

            var a = Helper.InitTestObject();

            clone.ForMember(V => V.Bs.Select(V0 => V0.C)).CloneMode(CloneMode.Copy);

            var aprime = clone.Clone(a);


            Assert.IsTrue(aprime.Bs.First().C != null);
        }
Example #10
0
 public FreeRentEquipmentDlg(OrmParentReference parentReference, FreeRentEquipment sub)
 {
     this.Build();
     ParentReference = parentReference;
     subject         = sub;
     loadFromPackage = subject.IsNew;
     if (subject.Equipment != null && subject.FreeRentPackage != null)
     {
         TabName = subject.EquipmentName + " " + subject.PackageName;
     }
     subjectCopy = ObjectCloner.Clone <FreeRentEquipment> (sub);
     ConfigureDlg();
 }
        public void Clone()
        {
            IGenerationSession session = _factory.CreateSession();
            var task = session.Single <Task>().Get();

            var cloner = new ObjectCloner();

            Assert.IsNotNull(cloner);

            var newTask = cloner.Clone(task);

            Assert.IsNotNull(newTask);
        }
Example #12
0
        public void ET_IDomainComponent_Parent_Serialization()
        {
            var user = new TestUser
            {
                TestTreeTaskList = { new TestTreeTask() }
            };

            Assert.IsTrue(user.TestTreeTaskList.Parent == user, "新列表的 Parent 应该会自动被设置。");

            var userCloned = ObjectCloner.Clone(user);

            Assert.IsTrue(userCloned.TestTreeTaskList.Parent == userCloned, "序列化、反序列化后列表的 Parent 应该会自动被设置。");
        }
        public void TestArray_VT()
        {
            Random rnd = new Random();

            int[] source = new int[100];
            for (int i = 0; i < source.Length; i++)
            {
                source[i] = rnd.Next();
            }

            int[] clone = ObjectCloner.Clone(source);
            CollectionAssert.AreEqual(clone, source);
        }
        public void ListTest()
        {
            var source = new ObservableCollection <SimpleTestClass>();

            for (int i = 0; i < 10; i++)
            {
                source.Add(new SimpleTestClass(i, "Test #" + i));
            }

            var clone = ObjectCloner.Clone(source);

            CollectionAssert.AreEqual(clone, source);
        }
        public void StackTest()
        {
            var source = new Stack <string>();

            for (int i = 0; i < 10; i++)
            {
                source.Push("Test #" + i);
            }

            var clone = ObjectCloner.Clone(source);

            CollectionAssert.AreEqual(clone, source);
        }
Example #16
0
 public void Edit()
 {
     if (!string.IsNullOrEmpty(CurrentPreviewPath))
     {
         if (Calculator.instance.Tunes.ContainsKey(CurrentPreviewPath))
         {
             TuneTab.gameObject.SetActive(true);
             Calculator.instance.CustomTuneBuilder.Load(ObjectCloner <Tune> .Clone(Calculator.instance.Tunes[CurrentPreviewPath]));
             Calculator.instance.SaveLocations[Calculator.instance.SaveState] = CurrentPreviewPath;
             Calculator.instance.FileNameInputField.text = Path.GetFileNameWithoutExtension(Calculator.instance.SaveLocations[Calculator.instance.SaveState]);
         }
     }
 }
Example #17
0
        public void HandlesCircularReferences()
        {
            TestClassOne original    = new TestClassOne();
            TestClassTwo originalTwo = new TestClassTwo(42);

            original.ClassReference           = originalTwo;
            originalTwo.CircularReferenceProp = original;

            TestClassOne clone = ObjectCloner.DeepClone(original);

            Assert.NotSame(original, clone.ClassReference.CircularReferenceProp);
            Assert.Same(clone, clone.ClassReference.CircularReferenceProp);
        }
Example #18
0
        public override void Destroy()
        {
            if (!isSaveButton)
            {
//				if (subject.IsNew)
//					(parentReference.ParentObject as IFreeRentEquipmentOwner).Equipment.Remove (subject);
//				else {
                ObjectCloner.FieldsCopy <FreeRentEquipment> (subjectCopy, ref subject);
                subject.FirePropertyChanged();
//				}
            }
            adaptor.Disconnect();
            base.Destroy();
        }
        protected override void OnDuplicateItem(object obj)
        {
            var duplicate = ObjectCloner.EntityClone(SelectedItem.Model);

            duplicate.Id   = 0;
            duplicate.Name = "_" + duplicate.Name;
            VisibleViewModelBase wm = InternalCreateNewViewModel(duplicate);

            if (wm != null)
            {
                OpenViewModels.Add(wm as EntityViewModelBase <TModel>);
            }
            wm.PublishEvent(EventTopicNames.ViewAdded);
        }
Example #20
0
        public void IsReference()
        {
            var clone = new ObjectCloner();

            var a = Helper.InitTestObject();

            clone.ForMember("B.C").CloneMode(CloneMode.AsReference);

            var aprime = clone.Clone(a);

            a.B.C.F1 = 12345;

            Assert.AreEqual(a.B.C.F1, aprime.B.C.F1);
        }
Example #21
0
        public void Comparer_EqualsShouldBeOverriddenAndWorkForDifferentInstances_cloned()
        {
            var comparer = Comparer <T> .Default;
            var cloned   = ObjectCloner.MemberwiseClone(comparer); // calls MemberwiseClone() on the comparer via reflection, which returns a different instance

            // Whatever the type of the comparer, it should have overridden Equals(object) so
            // it can return true as long as the other object is the same type (not nec. the same instance)
            Assert.True(cloned.Equals(comparer));
            Assert.True(comparer.Equals(cloned));

            // Equals() should not return true for null
            // Prevent a faulty implementation like Equals(obj) => obj is FooComparer<T>, which will be true for null
            Assert.False(cloned.Equals(null));
        }
        public void RouteTester()
        {
            var r = new RouteTest();

            r.Dictionary = new RouteValueDictionary(new { Blah = "test" });

            var cloner = new ObjectCloner();

            Assert.IsNotNull(cloner);

            var n = cloner.Clone(r);

            Assert.IsNotNull(n);
        }
Example #23
0
        private void AbrirModificar(Rol selectedItem)
        {
            InsertarModificar ins = new InsertarModificar(ObjectCloner.DeepCopy(selectedItem));

            this.Hide();

            ins.ShowDialog();

            this.Show();

            if (ins.Result == DialogResult.OK)
            {
                RefreshRolesData();
            }
        }
        internal GlobalParameters Clone()
        {
            GlobalParameters obj = null;

            try
            {
                obj       = (GlobalParameters)ObjectCloner.CloneDeep(this);
                obj.Dirty = false;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(obj);
        }
Example #25
0
        private static T CloneValueAndTrack <T>(T value, ObjectClonerReferenceTracker refTracker)
            where T : class
        {
            var trackedValue = refTracker.GetEquivalentTargetObject(value) as T;

            if (trackedValue == null)
            {
                var clonedValue = ObjectCloner.Clone(value);
                refTracker.Track(value,
                                 clonedValue);
                return(clonedValue);
            }

            return(trackedValue);
        }
Example #26
0
        private void AbrirModificar(Hotel hotel)
        {
            InsertarModificar ins = new InsertarModificar(1, ObjectCloner.DeepCopy(hotel));

            this.Hide();

            ins.ShowDialog();

            this.Show();

            if (ins.Result == DialogResult.OK)
            {
                RefreshData();
            }
        }
Example #27
0
        public void MT_Serialization_EagerLoadOptions()
        {
            var elo = new EagerLoadOptions();

            elo.LoadWith(Book.ChapterListProperty);
            elo.LoadWith(Chapter.SectionListProperty);
            elo.LoadWith(Section.SectionOwnerProperty);

            var elo2 = ObjectCloner.Clone(elo);

            Assert.AreEqual(elo.CoreList.Count, 3);
            Assert.AreEqual(elo.CoreList[0].Property, Book.ChapterListProperty);
            Assert.AreEqual(elo.CoreList[1].Property, Chapter.SectionListProperty);
            Assert.AreEqual(elo.CoreList[2].Property, Section.SectionOwnerProperty);
        }
Example #28
0
        private void AbrirModificar(Usuario usuario)
        {
            AltaModificar alta = new AltaModificar(1, ObjectCloner.DeepCopy(usuario));

            this.Hide();

            alta.ShowDialog();

            this.Show();

            if (alta.Result == DialogResult.OK)
            {
                RefreshData();
            }
        }
Example #29
0
        public void PolymorphicTest()
        {
            PolymoirphicTestObject.I i = new PolymoirphicTestObject.B(5);

            var obj = new
            {
                B = new PolymoirphicTestObject.B(10),
                I = i,
            };

            var cloned = ObjectCloner.Clone(obj);

            cloned.IsStructuralEqual(obj);
            cloned.B.Is(obj.B);
            cloned.I.Is(obj.I);
        }
Example #30
0
        public void NullReferenceTest()
        {
            var obj    = new NullReferenceTestObject();
            var cloned = ObjectCloner.Clone(obj);

            cloned.Value2 = new List <int>(new[] { 1 });
            cloned.Value3 = new System.Collections.ObjectModel.ObservableCollection <Child>();
            cloned.Value3.Add(new Child());

            ObjectCloner.CopyTo(cloned, obj);

            cloned.Value2.IsNotSameReferenceAs(obj.Value2);
            cloned.Value2[0].IsNotSameReferenceAs(obj.Value2[0]);
            cloned.Value3.IsNotSameReferenceAs(obj.Value3);
            cloned.Value3[0].IsNotSameReferenceAs(obj.Value3[0]);
        }
        public void TestArray_MD()
        {
            Random rnd = new Random();

            int[,] source = new int[10, 10];
            for (int x = 0; x < 10; x++)
            {
                for (int y = 0; y < 10; y++)
                {
                    source[x, y] = rnd.Next();
                }
            }

            int[,] clone = ObjectCloner.Clone(source);
            CollectionAssert.AreEqual(clone, source);
        }
Example #32
0
        private void AddTimestampProperty(Criteria defaultCriteria, ValueProperty timeStampProperty)
        {
            var timestampCriteria = new Criteria(_currentCslaObject);

            timestampCriteria.Name = "CriteriaTS";
            foreach (CriteriaProperty p in defaultCriteria.Properties)
            {
                var newProp = (CriteriaProperty)ObjectCloner.CloneShallow(p);
                newProp.DbBindColumn = (DbBindColumn)p.DbBindColumn.Clone();
                timestampCriteria.Properties.Add(newProp);
            }
            AddPropertiesToCriteria(new[] { timeStampProperty }, timestampCriteria);
            timestampCriteria.DeleteOptions.Enable();
            timestampCriteria.SetSprocNames();
            _currentCslaObject.CriteriaObjects.Add(timestampCriteria);
        }
        public void GenericCollectionMemberIsReference()
        {
            var clone = new ObjectCloner<A>();
            clone.ForMember(V => V.Bs).CloneMode(CloneMode.Copy);
            clone.ForMember(V => V.Bs.Select(V0 => V0.C)).CloneMode(CloneMode.AsReference);

            var a = Helper.InitTestObject();
            var aprime = clone.Clone(a);

            var memberSrc = a.Bs.First();
            var memberDst = aprime.Bs.First();

            memberSrc.F1 = 1234;
            memberDst.F1 = 5678;

            Assert.AreNotEqual(memberDst.F1, memberSrc.F1);
        }
Example #34
0
        public void CollectionMemberAssignedByRef()
        {
            var clone = new ObjectCloner();

            var a = Helper.InitTestObject();

            clone.ForMember("Bs").CloneMode(CloneMode.AsReference);

            var aprime = clone.Clone(a);

            var leftMember = a.Bs.First();
            var rightMember = aprime.Bs.First();

            leftMember.F1 = 34343434;

            Assert.AreEqual(leftMember.F1, rightMember.F1);
        }
Example #35
0
        public void CollectionMemberIsReference()
        {
            var clone = new ObjectCloner();
            clone.ForMember("Bs[*]").CloneMode(CloneMode.Copy);
            clone.ForMember("Bs[*].C").CloneMode(CloneMode.AsReference);

            var a = Helper.InitTestObject();
            var aprime = clone.Clone(a);

            var memberSrc = a.Bs.First();
            var memberDst = aprime.Bs.First();

            memberSrc.F1 = 1234;
            memberDst.F1 = 5678;

            Assert.AreNotEqual(memberDst.F1, memberSrc.F1);
        }
Example #36
0
        public void DefaultIsCopy()
        {
            var clone = new ObjectCloner();

            var a = Helper.InitTestObject();

            var aprime = clone.Clone(a);

            a.B.F1 = 12345;
            aprime.B.F1 = 6789;

            Assert.AreNotEqual(a.B.F1, aprime.B.F1);
        }
Example #37
0
        public void IsReference()
        {
            var clone = new ObjectCloner();

            var a = Helper.InitTestObject();

            clone.ForMember("B.C").CloneMode(CloneMode.AsReference);

            var aprime = clone.Clone(a);

            a.B.C.F1 = 12345;

            Assert.AreEqual(a.B.C.F1, aprime.B.C.F1);
        }
Example #38
0
        public void ThrowWhenReferenceDescendantSetAsCopy()
        {
            var clone = new ObjectCloner();
            clone.ForMember("Bs[*]").CloneMode(CloneMode.AsReference);
            clone.ForMember("Bs[*].C").CloneMode(CloneMode.Copy);

            var hasTrown = false;
            try
            {
                var a = Helper.InitTestObject();
                var aprime = clone.Clone(a);
            }
            catch
            {
                hasTrown = true;
            }

            Assert.IsTrue(hasTrown);
        }
Example #39
0
        public void CopyFrom(IDataMappingViewModel copyObj)
        {
            IObjectCloner<IInputOutputViewModel> cloner = new ObjectCloner<IInputOutputViewModel>();

            Inputs = cloner.CloneObservableCollection(copyObj.Inputs);
            Outputs = cloner.CloneObservableCollection(copyObj.Outputs);
            XmlOutput = copyObj.XmlOutput;
        }