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)); }
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)); }
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)); }