Пример #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}"));
        }
Пример #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);
        }
Пример #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 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)}[]"));
        }
Пример #5
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);
        }
Пример #6
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);
        }