public void Lists_equivalent()
        {
            var actual   = new[] { 1, 2, 3 };
            var expected = new[] { 1, 2, 3 };

            var listComparerConstraint = new ListComparerConstraint <int>(expected);

            Assert.That(actual, listComparerConstraint);
            Assert.That(listComparerConstraint.DifferenceIndecies, Is.Empty);
        }
        public void Expected_list_smaller()
        {
            var actual   = new[] { 1, 2, 3 };
            var expected = new[] { 1 };

            var listComparerConstraint = new ListComparerConstraint <int>(expected);

            Assert.That(actual, !listComparerConstraint);
            Assert.That(listComparerConstraint.DifferenceIndecies, Is.EquivalentTo(new[] { 1, 2 }));
        }
        public void Custom_comparer_func()
        {
            var actual   = new[] { 0, 0, 0 };
            var expected = new[] { 1, 2, 3 };

            var listComparerConstraint = new ListComparerConstraint <int>(expected)
            {
                EqualityComparerFunc = (x, y) => true
            };

            Assert.That(actual, listComparerConstraint);
            Assert.That(listComparerConstraint.DifferenceIndecies, Is.Empty);
        }
        public void Custom_comparer()
        {
            var actual   = new[] { 0, 0, 0 };
            var expected = new[] { 5, 5, 5 };

            var listComparerConstraint = new ListComparerConstraint <int>(expected)
            {
                EqualityComparer = new IntsAlwaysEqualComparer()
            };

            Assert.That(actual, listComparerConstraint);
            Assert.That(listComparerConstraint.DifferenceIndecies, Is.Empty);
        }
        public void Custom_output()
        {
            var actual   = new[] { 5, 1 };
            var expected = new[] { 10, 10 };

            var listComparerConstraint = new ListComparerConstraint <int>(expected)
            {
                DisplayItem = item => item.ToString("####.00")
            };

            Assert.That(actual, !listComparerConstraint, "Evaulating the constraint.  This assert should not fail.");
            Assert.That(listComparerConstraint.DifferenceIndecies, Is.EquivalentTo(new[] { 0, 1 }), "Verifying all differences were found correctly.  This assert should not fail.");

            OutputFailedResultMessage(listComparerConstraint);
        }
        public void DisplayOnlyDifferences_test()
        {
            var actual   = new[] { 10, 1 };
            var expected = new[] { 10, 10 };

            var listComparerConstraint = new ListComparerConstraint <int>(expected)
            {
                DisplayOnlyDifferences = true,
            };

            Assert.That(actual, !listComparerConstraint, "Evaulating the constraint.  This assert should not fail.");
            Assert.That(listComparerConstraint.DifferenceIndecies, Is.EquivalentTo(new[] { 1 }), "Verifying all differences were found correctly.  This assert should not fail.");

            OutputFailedResultMessage(listComparerConstraint);
        }
        public void Anonymous_types_using_default_comparer()
        {
            var actual = new[]
            {
                new { Value = 1 },
                new { Value = 2 }
            };
            var expected = new[]
            {
                actual[0],
                actual[1]
            };

            var listComparerConstraint = ListComparerConstraint.Create(expected);

            Assert.That(actual, listComparerConstraint);
            Assert.That(listComparerConstraint.DifferenceIndecies, Is.Empty);
        }
        public void Anonymous_types_using_equalityfunc()
        {
            var actual = new[]
            {
                new { Value = 1 },
                new { Value = 2 }
            };
            var expected = new[]
            {
                new { Value = 1 },
                new { Value = 5 }
            };

            var listComparerConstraint = ListComparerConstraint.Create(expected);

            listComparerConstraint.EqualityComparerFunc = (x, y) => x.Value == y.Value;
            Assert.That(actual, !listComparerConstraint);
            Assert.That(listComparerConstraint.DifferenceIndecies, Is.EquivalentTo(new[] { 1 }));
        }