public void TestCompareStructurePropertyPrint() { var merger = new MyLittleMerger <NamedArrayObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var itemA = new NamedArrayObject { Name = "ItemA", Items = new[] { "A", null, "B", "C" } }; var instanceStructureA = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemA); var itemB = new NamedArrayObject { Name = "ItemB", Items = new[] { "A", "B", "C" } }; var instanceStructureB = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemB); var mergeStructure = new MergerCompareStructure <NamedArrayObject>(instanceStructureA, instanceStructureB); var print = mergeStructure.Print(); Assert.IsTrue(print.Contains($"{nameof(NamedArrayObject)}: {MergerCompareResult.Different}")); Assert.IsTrue(print.Contains($"A <> A: {MergerCompareResult.Equal}")); Assert.IsTrue(print.Contains($"NULL <> B: {MergerCompareResult.OnlyRight}")); Assert.IsTrue(print.Contains($"B <> C: {MergerCompareResult.Different}")); Assert.IsTrue(print.Contains($"C <> NULL: {MergerCompareResult.OnlyLeft}")); }
public void TestCompareStructurePropertyArray() { var merger = new MyLittleMerger <NamedArrayObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var itemA = new NamedArrayObject { Name = null, Items = new[] { "A", null, "B", "C" } }; var instanceStructureA = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemA); var itemB = new NamedArrayObject { Name = null, Items = new[] { "A", "B", "C" } }; var instanceStructureB = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemB); var mergeStructure = new MergerCompareStructure <NamedArrayObject>(instanceStructureA, instanceStructureB); var itemsProperties = mergeStructure.Properties.First(p => Equals(p.Key.Identifier, nameof(NamedArrayObject.Items))).Value; Assert.AreEqual(MergerCompareResult.Equal, itemsProperties[0].Result); Assert.AreEqual(MergerCompareResult.OnlyRight, itemsProperties[1].Result); Assert.AreEqual(MergerCompareResult.Different, itemsProperties[2].Result); Assert.AreEqual(MergerCompareResult.OnlyLeft, itemsProperties[3].Result); Assert.AreEqual(MergerCompareResult.Different, mergeStructure.Result); }
public void TestCompareStructurePropertyEqualString() { var merger = new MyLittleMerger <NamedArrayObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var itemA = new NamedArrayObject { Name = "Item" }; var instanceStructureA = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemA); var itemB = new NamedArrayObject { Name = "Item" }; var instanceStructureB = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemB); var mergeStructure = new MergerCompareStructure <NamedArrayObject>(instanceStructureA, instanceStructureB); Assert.AreEqual(itemA, mergeStructure.Instance.Value); Assert.AreEqual(itemB, mergeStructure.Compare.Value); Assert.AreEqual(0, mergeStructure.Nodes.Count); Assert.AreEqual(2, mergeStructure.Properties.Count); Assert.AreEqual(MergerCompareResult.Equal, mergeStructure.Properties.First().Value.First().Result); Assert.AreEqual(MergerCompareResult.Equal, mergeStructure.Result); }
public void TestContactObjectPrint() { var merger = new MyLittleMerger <ContactObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var item = ContactData.David; var instanceStructure = new MergerInstanceStructure <ContactObject>(merger.Structure, item); var print = instanceStructure.Print(); Assert.IsTrue(print.Contains($"{nameof(ContactObject.Id)} - {nameof(Guid)}: {item.Id}")); }
public void TestNodeNullArray() { var merger = new MyLittleMerger <ContactObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var item = new ContactObject(); var instanceStructure = new MergerInstanceStructure <ContactObject>(merger.Structure, item); var print = instanceStructure.Print(); Assert.IsTrue(print.Contains($"{nameof(ContactObject.Addresses)} - {nameof(AddressObject)}[]")); }
public void TestNullInstance() { var merger = new MyLittleMerger <LittleObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var instanceStructure = new MergerInstanceStructure <LittleObject>(merger.Structure, null); var print = instanceStructure.Print(); Assert.IsFalse(instanceStructure.HasValue); Assert.IsTrue(print.Contains($"+ LittleObject")); Assert.IsTrue(print.Contains($"{nameof(LittleObject.LonelyProperty)} - {nameof(String)}: NULL")); }
public void TestContactObjectStructure() { var merger = new MyLittleMerger <ContactObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var instanceStructure = new MergerInstanceStructure <ContactObject>(merger.Structure, ContactData.David); Assert.AreEqual(typeof(ContactObject), instanceStructure.TypeStructure.Type); Assert.AreEqual(5, instanceStructure.Nodes.Count); Assert.AreEqual(6, instanceStructure.Properties.Count); Assert.AreEqual(typeof(Guid), instanceStructure.Properties.First().Value.First().TypeProperty.Type); Assert.AreEqual(ContactData.David.Id, instanceStructure.Properties.First().Value.First().Value); }
public void TestCompareStructureNode() { var merger = new MyLittleMerger <ContactObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var instanceStructureA = new MergerInstanceStructure <ContactObject>(merger.Structure, ContactData.David); var instanceStructureB = new MergerInstanceStructure <ContactObject>(merger.Structure, ContactData.Jennifer); var mergeStructure = new MergerCompareStructure <ContactObject>(instanceStructureA, instanceStructureB); var print = mergeStructure.Print(); Assert.IsTrue(print.Contains($"{ContactData.David.FirstName} <> {ContactData.Jennifer.FirstName}: {MergerCompareResult.Different}")); }
public void TestLittleObjectPrint() { var merger = new MyLittleMerger <LittleObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var littleObject = new LittleObject() { LonelyProperty = "Hello there" }; var instanceStructure = new MergerInstanceStructure <LittleObject>(merger.Structure, littleObject); var print = instanceStructure.Print(); Assert.IsTrue(print.Contains($"+ LittleObject")); Assert.IsTrue(print.Contains($"{nameof(LittleObject.LonelyProperty)} - {nameof(String)}: {littleObject.LonelyProperty}")); }
public void TestPropertyNullArray() { var merger = new MyLittleMerger <NamedArrayObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var item = new NamedArrayObject() { Name = "Test", Items = null }; var instanceStructure = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, item); var print = instanceStructure.Print(); Assert.IsTrue(print.Contains($"{nameof(NamedArrayObject.Name)} - {nameof(String)}: {item.Name}")); Assert.IsTrue(print.Contains($"{nameof(NamedArrayObject.Items)} - {nameof(String)}[]")); }
public void TestPropertyNullString() { var merger = new MyLittleMerger <LittleObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var item = new LittleObject() { LonelyProperty = null }; var instanceStructure = new MergerInstanceStructure <LittleObject>(merger.Structure, item); var print = instanceStructure.Print(); Assert.IsNull(instanceStructure.Properties.First().Value.First().Value); Assert.IsFalse(instanceStructure.Properties.First().Value.First().HasValue); Assert.IsTrue(print.Contains($"{nameof(LittleObject.LonelyProperty)} - {nameof(String)}: NULL")); }
public void TestCompareStructurePropertyOnlyRightString() { var merger = new MyLittleMerger <NamedArrayObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var instanceStructureA = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, null); var itemB = new NamedArrayObject { Name = "ItemB" }; var instanceStructureB = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemB); var mergeStructure = new MergerCompareStructure <NamedArrayObject>(instanceStructureA, instanceStructureB); Assert.AreEqual(MergerCompareResult.OnlyRight, mergeStructure.Properties.First().Value.First().Result); Assert.AreEqual(MergerCompareResult.OnlyRight, mergeStructure.Result); }
public void TestLittleObjectStructure() { var merger = new MyLittleMerger <LittleObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var littleObject = new LittleObject { LonelyProperty = "Hello there" }; var instanceStructure = new MergerInstanceStructure <LittleObject>(merger.Structure, littleObject); Assert.AreEqual(typeof(LittleObject), instanceStructure.TypeStructure.Type); Assert.IsTrue(instanceStructure.HasValue); Assert.AreEqual(0, instanceStructure.Nodes.Count); Assert.AreEqual(1, instanceStructure.Properties.Count); Assert.AreEqual(1, instanceStructure.Properties.First().Value.Count); Assert.AreEqual(typeof(string), instanceStructure.Properties.First().Value.First().TypeProperty.Type); Assert.AreEqual(littleObject.LonelyProperty, instanceStructure.Properties.First().Value.First().Value); }
public void TestCompareStructurePropertyOnlyRightProperty() { var merger = new MyLittleMerger <NamedArrayObject>(); merger.Initialize(new MergerOptions { AutoAddTypeAssembly = true }); var itemA = new NamedArrayObject { Name = null, Items = new[] { "A1", "C", "A3" } }; var instanceStructureA = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemA); var itemB = new NamedArrayObject { Name = "ItemB", Items = new[] { "B1", "C", "B3" } }; var instanceStructureB = new MergerInstanceStructure <NamedArrayObject>(merger.Structure, itemB); var mergeStructure = new MergerCompareStructure <NamedArrayObject>(instanceStructureA, instanceStructureB); Assert.AreEqual(MergerCompareResult.OnlyRight, mergeStructure.Properties.First().Value.First().Result); Assert.AreEqual(MergerCompareResult.Different, mergeStructure.Properties.Second().Value.First().Result); Assert.AreEqual(MergerCompareResult.Equal, mergeStructure.Properties.Second().Value.Second().Result); Assert.AreEqual(MergerCompareResult.Different, mergeStructure.Result); }