예제 #1
0
        public void EitherEquals()
        {
            var             item    = new T1();
            Either <T1, T2> either1 = item;
            Either <T1, T2> either2 = item;

            Assert.IsTrue(either1.Equals(either2));
            Assert.IsTrue(either2.Equals(either1));

            Assert.IsFalse(item.Equals(either1));
            Assert.IsFalse(either1.Equals(item));

            either2 = new T2();

            Assert.IsFalse(either1.Equals(either2));
            Assert.IsFalse(either2.Equals(either1));
        }
예제 #2
0
        public void ErrorTestEqualsException()
        {
            var        exception = new Exception();
            Error <T1> error1    = exception;
            Error <T1> error2    = exception;

            Assert.IsTrue(error1.Equals(error2));
            Assert.IsTrue(error2.Equals(error1));

            // exception.Equals(error1) is false for non Error<T1> types so
            // error1.Equals(exception) should also return false in that case
            Assert.IsFalse(error1.Equals(exception));
            Assert.IsFalse(exception.Equals(error1));

            error2 = new T1();

            Assert.IsFalse(error1.Equals(error2));
            Assert.IsFalse(error2.Equals(error1));
        }
예제 #3
0
        public void ErrorTestEqualsItem()
        {
            var        item   = new T1();
            Error <T1> error1 = item;
            Error <T1> error2 = item;

            Assert.IsTrue(error1.Equals(error2));
            Assert.IsTrue(error2.Equals(error1));

            // item.Equals(error1) is false for non Error<T1> types so
            // error1.Equals(item) should also return false in that case
            Assert.IsFalse(error1.Equals(item));
            Assert.IsFalse(item.Equals(error1));

            error2 = new T1();

            Assert.IsFalse(error1.Equals(error2));
            Assert.IsFalse(error2.Equals(error1));
        }