public void ShouldNotThrowWhenEqualsIsIdentityCheckAndIsSymmetric(EqualsSymmetricAssertion sut)
 {
     var exception =
         Record.Exception(
             () => sut.Verify(typeof (object).GetMethod("Equals", BindingFlags.Public | BindingFlags.Instance)));
     Assert.Null(exception);
 }
        public void ShouldNotThrowWhenEqualsIsIdentityCheckAndIsSymmetric(EqualsSymmetricAssertion sut)
        {
            var exception =
                Record.Exception(
                    () => sut.Verify(typeof(object).GetMethod("Equals", BindingFlags.Public | BindingFlags.Instance)));

            Assert.Null(exception);
        }
 public void ShouldNotThrowWhenValueObjectEqualsImplementationIsSymmetric(EqualsSymmetricAssertion sut)
 {
     var exception =
         Record.Exception(
             () =>
                 sut.Verify(typeof (ValueObjectSymmetricEqualsImplementationExample).GetMethod("Equals",
                     BindingFlags.Public | BindingFlags.Instance)));
     Assert.Null(exception);
 }
        public void ShouldExceptionMessageContainTypeName(EqualsSymmetricAssertion sut)
        {
            var exception =
                Record.Exception(
                    () =>
                    sut.Verify(typeof(NotSymmetricEqualsImplementationExample).GetMethod("Equals",
                                                                                         BindingFlags.Public | BindingFlags.Instance)));

            Assert.Contains(typeof(NotSymmetricEqualsImplementationExample).Name, exception.Message);
        }
        public void ShouldThrowWhenEqualsImplementationIsNotSymmetric(EqualsSymmetricAssertion sut)
        {
            var exception =
                Record.Exception(
                    () =>
                    sut.Verify(typeof(NotSymmetricEqualsImplementationExample).GetMethod("Equals",
                                                                                         BindingFlags.Public | BindingFlags.Instance)));

            Assert.IsType <EqualsSymmetricException>(exception);
        }
        public void ShouldNotThrowWhenValueObjectEqualsImplementationIsSymmetric(EqualsSymmetricAssertion sut)
        {
            var exception =
                Record.Exception(
                    () =>
                    sut.Verify(typeof(ValueObjectSymmetricEqualsImplementationExample).GetMethod("Equals",
                                                                                                 BindingFlags.Public | BindingFlags.Instance)));

            Assert.Null(exception);
        }
        public void ShouldThrowWhenEqualsImplementationIsNotSymmetric(EqualsSymmetricAssertion sut)
        {
            var exception =
                Record.Exception(
                    () =>
                        sut.Verify(typeof (NotSymmetricEqualsImplementationExample).GetMethod("Equals",
                            BindingFlags.Public | BindingFlags.Instance)));

            Assert.IsType<EqualsSymmetricException>(exception);
        }
        public void ShouldExceptionMessageContainTypeName(EqualsSymmetricAssertion sut)
        {
            var exception =
                Record.Exception(
                    () =>
                        sut.Verify(typeof (NotSymmetricEqualsImplementationExample).GetMethod("Equals",
                            BindingFlags.Public | BindingFlags.Instance)));

            Assert.Contains(typeof (NotSymmetricEqualsImplementationExample).Name, exception.Message);
        }
 public void ShouldBeIdiomaticAssertion(EqualsSymmetricAssertion sut)
 {
     Assert.IsAssignableFrom<IdiomaticAssertion>(sut);
 }
 public void ShouldBeIdiomaticAssertion(EqualsSymmetricAssertion sut)
 {
     Assert.IsAssignableFrom <IdiomaticAssertion>(sut);
 }