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); }
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); }
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); }
private void CopySelectedValuesToValues() { IList selectedItems = new ArrayList(SelectedValuesListBox.Items); foreach (IOrderable item in selectedItems) { if (!Values.Contains(item)) { Values.Add(ObjectCloner.Clone(item)); } } }
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))); }
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); }
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); }
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); }
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); }
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]); } } }
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); }
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); }
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); }
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); }
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); }
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); }
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(); } }
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); }
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(); } }
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); }
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); }
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); }
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); }
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); }
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); }
public void CopyFrom(IDataMappingViewModel copyObj) { IObjectCloner<IInputOutputViewModel> cloner = new ObjectCloner<IInputOutputViewModel>(); Inputs = cloner.CloneObservableCollection(copyObj.Inputs); Outputs = cloner.CloneObservableCollection(copyObj.Outputs); XmlOutput = copyObj.XmlOutput; }