public void IsNotEqualTo_Expression_IEqualityComparer_succeeds_when_not_equal(
     string candidate,
     string value) =>
 Invoking(() => Ensure.That(() => candidate).IsNotEqualTo(
              () => value,
              TestEqualityComparer <string> .NeverEqual()))
 .Should().NotThrow();
Example #2
0
        public void TestGuardValueWithEqualityComparer()
        {
            var equalityComparer = new TestEqualityComparer();
            var instance         = Maybe.Just("test");

            var result = instance.Guard("test", equalityComparer);

            result.AssertJust("test");

            result = instance.Guard("notTest", equalityComparer);
            result.AssertNothing();

            result = instance.Guard(default(string), equalityComparer);
            result.AssertNothing();

            result = instance.Guard(() => "test", equalityComparer);
            result.AssertJust("test");

            result = instance.Guard(() => "notTest", equalityComparer);
            result.AssertNothing();

            result = instance.Guard(() => default(string), equalityComparer);
            result.AssertNothing();

            Assert.Throws <ArgumentNullException>(() => instance.Guard("test", null));
            Assert.Throws <ArgumentNullException>(() => instance.Guard(() => "test", null));
            Assert.Throws <ArgumentNullException>(() => instance.Guard(default(Func <string>), equalityComparer));
            Assert.Throws <ArgumentNullException>(() => instance.Guard(default(Func <string>), null));
        }
 public void IsEqualTo_T_IEqualityComparer_succeeds_when_equal(
     string candidate,
     string value) =>
 Invoking(() => Ensure.That(() => candidate).IsEqualTo(
              value,
              TestEqualityComparer <string> .AlwaysEqual()))
 .Should().NotThrow();
Example #4
0
        public void CapacityAndEqualityComparerWorks()
        {
            var c = new TestEqualityComparer();
            var d = new Dictionary <string, string>(10, c);

            Assert.AreEqual(d.Count, 0);
            Assert.AreStrictEqual(d.Comparer, c);
        }
Example #5
0
        public void EqualityComparerOnlyConstructorWorks()
        {
            var c = new TestEqualityComparer();
            var d = new Dictionary <string, int>(c);

            Assert.AreEqual(d.Count, 0);
            Assert.AreStrictEqual(d.Comparer, c);
        }
 public void IsEqualTo_Expression_IEqualityComparer_fails_when_not_equal(
     string candidate,
     string value) =>
 Invoking(() => Ensure.That(() => candidate).IsEqualTo(
              () => value,
              TestEqualityComparer <string> .NeverEqual()))
 .Should().Throw <GuardClauseNotMetException>()
 .WithMessage(nameof(candidate).ShouldEqual(nameof(value)));
 public void IsNotEqualTo_T_IEqualityComparer_fails_when_equal(
     string candidate,
     string value) =>
 Invoking(() =>
          Ensure.That(() => candidate).IsNotEqualTo(
              value,
              TestEqualityComparer <string> .AlwaysEqual()))
 .Should().Throw <GuardClauseNotMetException>()
 .WithMessage(nameof(candidate).ShouldNotEqual(value));
Example #8
0
        public void JsDictionaryAndEqualityComparerConstructorWorks()
        {
            var c    = new TestEqualityComparer();
            var orig = JsDictionary <string, int> .GetDictionary(new { a = 1, b = 2 });

            var d = new Dictionary <string, int>(orig, c);

            Assert.IsFalse((object)d == (object)orig);
            Assert.AreEqual(d.Count, 2);
            Assert.AreEqual(d["a"], 1);
            Assert.AreEqual(d["b"], 2);
            Assert.AreStrictEqual(d.Comparer, c);
        }
Example #9
0
        public void TestIsEqualityComparer()
        {
            var instance         = Maybe.Just("test");
            var equalityComparer = new TestEqualityComparer();

            Assert.True(instance.Is("test", equalityComparer));
            Assert.False(instance.Is("notTest", equalityComparer));

            Assert.Throws <ArgumentNullException>(() => instance.Is("test", null));
            Assert.Throws <ArgumentNullException>(() => instance.Is(default(Func <string>), equalityComparer));
            Assert.Throws <ArgumentNullException>(() => instance.Is(default(Func <string>), null));

            Assert.True(instance.Is(() => "test", equalityComparer));
            Assert.False(instance.Is(() => "notTest", equalityComparer));
        }
        public void ConstructorWithBothDictionaryAndEqualityComparerWorks()
        {
            var c    = new TestEqualityComparer();
            var orig = new Dictionary <string, int>();

            orig["a"] = 1;
            orig["b"] = 2;

            var d  = new Dictionary <string, int>(orig);
            var d2 = new Dictionary <string, int>(d, c);

            Assert.False((object)d == (object)d2);
            Assert.AreEqual(2, d2.Count);
            Assert.AreEqual(1, d2["a"]);
            Assert.AreEqual(2, d2["b"]);
            Assert.AreStrictEqual(c, d2.Comparer);
        }
        public void TakeAroundTest()
        {
            IEnumerable <int>          source;
            IEnumerable <int>          expected;
            TestEqualityComparer <int> et;
            int item;
            int count;
            int before;
            int after;

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 4, 5, 6, 7, 8 };
            item     = 6;
            count    = 2;

            IEnumerable <int> actual;

            actual = source.TakeAround(item, count);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 4, 5, 6, 7 };
            item     = 6;
            before   = 2;
            after    = 1;

            actual = source.TakeAround(item, before, after);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 4, 5, 6, 7, 8 };
            item     = 6;
            count    = 2;
            et       = new TestEqualityComparer <int>();

            actual = source.TakeAround(item, count, et);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 4, 5, 6, 7, 8 };
            item     = 6;
            count    = 2;

            actual = source.TakeAround(item, count);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 4, 5, 6, 7 };
            item     = 6;
            before   = 2;
            after    = 1;
            et       = new TestEqualityComparer <int>();

            actual = source.TakeAround(item, before, after, et);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 4, 5, 6, 7 };
            item     = 6;
            before   = 2;
            after    = 1;

            actual = source.TakeAround(item, before, after);
            Assert.IsTrue(actual.SequenceEqual(expected));
        }
        public void TakeSelfAndAfterTest()
        {
            IEnumerable <int>          source;
            IEnumerable <int>          expected;
            IEnumerable <int>          actual;
            TestEqualityComparer <int> et;
            int item;
            int count;

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 6, 7, 8, 9, 10 };
            item     = 6;

            actual = source.TakeSelfAndAfter(item);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 6, 7, 8 };
            item     = 6;
            count    = 2;

            actual = source.TakeSelfAndAfter(item, count);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 6, 7, 8, 9, 10 };
            item     = 6;
            et       = new TestEqualityComparer <int>();

            actual = source.TakeSelfAndAfter(item, et);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 6, 7, 8, 9, 10 };
            item     = 6;

            actual = source.TakeSelfAndAfter(item);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//
            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 5, 6, 7 };
            item     = 5;
            count    = 2;
            et       = new TestEqualityComparer <int>();

            actual = source.TakeSelfAndAfter(item, count, et);
            Assert.IsTrue(actual.SequenceEqual(expected));

            //------------------------------//

            source   = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            expected = new int[] { 5, 6, 7 };
            item     = 5;
            count    = 2;

            actual = source.TakeSelfAndAfter(item, count);
            Assert.IsTrue(actual.SequenceEqual(expected));
        }