public void TestCollateWithComaparerByNullCollectionsThrowsException()
        {
            var students1 = CollectionsMockBuilder.GetValidStudentsList();
            var students2 = new List <Student>
            {
                new Student()
                {
                    Name = "AA", Age = 17, ClassName = "SSC"
                },
                new Student()
                {
                    Name = "BB", Age = 23, ClassName = "SSC"
                },
                new Student()
                {
                    Name = "CC", Age = 14, ClassName = "SSC"
                }
            };

            Assert.Throws <ArgumentNullException>(
                () => CollectionUtils.Collate(null, students2, new StudentComparer(), false));
            Assert.Throws <ArgumentNullException>(
                () => CollectionUtils.Collate(students1, null, new StudentComparer(), false));
            Assert.Throws <ArgumentException>(() => CollectionUtils.Collate(students1, students2, null, false));
        }
        public void TestCollateByStringByNullCollectionThrowsException()
        {
            var collection = new List <string> {
                "Satish", "Kumar", "Zoro"
            };
            IList <string> elements = new List <string> {
                "Roronoa", "Zoro"
            };

            Assert.Throws <ArgumentNullException>(() => CollectionUtils.Collate(null, elements));
            Assert.Throws <ArgumentNullException>(() => CollectionUtils.Collate(collection, null));
        }
        public void TestCollateByInt()
        {
            var collection = new List <int> {
                1, 2
            };
            var elements = new[] { 3, 4 };
            var expected = new List <int> {
                1, 2, 3, 4
            };
            var actual = CollectionUtils.Collate(collection, elements);

            Assert.AreEqual(expected, actual);
            Assert.True(actual[2] == 3);
        }
        public void TestCollateByStringWithDuplicates()
        {
            var collection = new List <string> {
                "Satish", "Kumar", "Zoro"
            };
            IList <string> elements = new List <string> {
                "Roronoa", "Zoro"
            };
            var actual   = CollectionUtils.Collate(collection, elements, false);
            var expected = new List <string> {
                "Kumar", "Roronoa", "Satish", "Zoro", "Zoro"
            };

            Assert.AreEqual(expected, actual);
            Assert.True(actual[3] == "Zoro");
        }
        public void TestCollateWithComaparerSuccess()
        {
            var students1 = CollectionsMockBuilder.GetValidStudentsList();
            var students2 = new List <Student>
            {
                new Student()
                {
                    Name = "AA", Age = 17, ClassName = "SSC"
                },
                new Student()
                {
                    Name = "BB", Age = 23, ClassName = "SSC"
                },
                new Student()
                {
                    Name = "CC", Age = 14, ClassName = "SSC"
                }
            };
            var actual = CollectionUtils.Collate(students1, students2, new StudentComparer(), false);

            Assert.IsNotNull(actual);
            Assert.AreEqual(6, actual.Count);
        }