Example #1
0
        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}"));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #8
0
        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"));
        }
Example #12
0
        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);
        }
Example #14
0
        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);
        }