Ejemplo n.º 1
0
        public void EmptyList()
        {
            var aList = new List <A>();
            var bList = new List <B>
            {
                new B {
                    Key = 1, Value = "B1"
                },
                new B {
                    Key = 1, Value = "B2"
                },
                new B {
                    Key = 2, Value = "B3"
                },
                new B {
                    Key = 2, Value = "B4"
                },
            };

            var sorter1 = new SortedListConnector <A, B>(aList, bList, (a, b) => a.Key.CompareTo(b.Key));

            Assert.IsNull(sorter1.GetNextPair());

            var sorter2 = new SortedListConnector <B, A>(bList, aList, (a, b) => a.Key.CompareTo(b.Key));

            Assert.IsNull(sorter2.GetNextPair());
            CollectionAssert.AreEquivalent(bList, sorter2.NotProcessed);

            bList   = new List <B>();
            sorter2 = new SortedListConnector <B, A>(bList, aList, (a, b) => a.Key.CompareTo(b.Key));
            Assert.IsNull(sorter2.GetNextPair());
        }
Ejemplo n.º 2
0
        public void ManyToMany()
        {
            var aList = new List <A>
            {
                new A {
                    Key = 1, Value = "A1"
                },
                new A {
                    Key = 2, Value = "A2"
                },
                new A {
                    Key = 2, Value = "A3"
                },
                new A {
                    Key = 3, Value = "A4"
                },
            };

            var bList = new List <B>
            {
                new B {
                    Key = 1, Value = "B1"
                },
                new B {
                    Key = 1, Value = "B2"
                },
                new B {
                    Key = 2, Value = "B3"
                },
                new B {
                    Key = 2, Value = "B4"
                },
            };

            var sorter = new SortedListConnector <A, B>(aList, bList, (a, b) => a.Key.CompareTo(b.Key));

            CheckPair(sorter.GetNextPair(), "A1", "B1");
            CheckPair(sorter.GetNextPair(), "A1", "B2");
            CheckPair(sorter.GetNextPair(), "A2", "B3");
            CheckPair(sorter.GetNextPair(), "A2", "B4");
            CheckPair(sorter.GetNextPair(), "A3", "B3");
            CheckPair(sorter.GetNextPair(), "A3", "B4");
            Assert.IsNull(sorter.GetNextPair());
            CollectionAssert.AreEquivalent(new[] { aList[3] }, sorter.NotProcessed);
        }
Ejemplo n.º 3
0
        public void OneToOne()
        {
            var aList = new List <A>
            {
                new A {
                    Key = 1, Value = "A1"
                },
                new A {
                    Key = 2, Value = "A2"
                },
                new A {
                    Key = 3, Value = "A3"
                },
            };

            var bList = new List <B>
            {
                new B {
                    Key = 1, Value = "B1"
                },
                new B {
                    Key = 2, Value = "B2"
                },
                new B {
                    Key = 3, Value = "B3"
                },
            };

            var sorter = new SortedListConnector <A, B>(aList, bList, (a, b) => a.Key.CompareTo(b.Key));

            CheckPair(sorter.GetNextPair(), "A1", "B1");
            CheckPair(sorter.GetNextPair(), "A2", "B2");
            CheckPair(sorter.GetNextPair(), "A3", "B3");
            Assert.IsNull(sorter.GetNextPair());
            CollectionAssert.IsEmpty(sorter.NotProcessed);
        }