public void VerifyNullMethodInfoThrows()
        {
            // Arrange
            var dummyComposer = new Fixture();
            var sut           = new CopyAndUpdateAssertion(dummyComposer);

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.Verify((MethodInfo)null));
        }
        public void SutIsIdiomaticAssertion()
        {
            // Arrange
            var dummyComposer = new Fixture();
            // Act
            var sut = new CopyAndUpdateAssertion(dummyComposer);

            // Assert
            Assert.IsAssignableFrom <IdiomaticAssertion>(sut);
        }
        public void ComposerIsCorrect()
        {
            // Arrange
            var expectedComposer = new Fixture();
            var sut = new CopyAndUpdateAssertion(expectedComposer);
            // Act
            ISpecimenBuilder result = sut.Builder;

            // Assert
            Assert.Equal(expectedComposer, result);
        }
        public void VerifyWellBehavedDoesNotThrow(Type typeWithCopyUpdateMethod, string copyUpdateMethodName)
        {
            // Arrange
            var dummyComposer = new Fixture();
            var sut           = new CopyAndUpdateAssertion(dummyComposer);
            var method        = typeWithCopyUpdateMethod.GetMethod(copyUpdateMethodName);

            // Act & Assert
            Assert.Null(Record.Exception(() =>
                                         sut.Verify(method)));
        }
Exemple #5
0
        public void SutIsIdiomaticAssertion()
        {
            // Fixture setup
            var dummyComposer = new Fixture();
            // Exercise system
            var sut = new CopyAndUpdateAssertion(dummyComposer);

            // Verify outcome
            Assert.IsAssignableFrom <IdiomaticAssertion>(sut);
            // Teardown
        }
Exemple #6
0
        public void VerifyNullMethodInfoThrows()
        {
            // Fixture setup
            var dummyComposer = new Fixture();
            var sut           = new CopyAndUpdateAssertion(dummyComposer);

            // Exercise system and verify outcome
            Assert.Throws <ArgumentNullException>(() =>
                                                  sut.Verify((MethodInfo)null));
            // Teardown
        }
        public void ComparerIsCorrect()
        {
            // Arrange
            var dummyComposer          = new Fixture();
            IEqualityComparer expected = new MemberInfoEqualityComparer();
            var sut = new CopyAndUpdateAssertion(dummyComposer, expected);
            // Act
            IEqualityComparer actual = sut.Comparer;

            // Assert
            Assert.Equal(expected, actual);
        }
Exemple #8
0
        public void ComposerIsCorrect()
        {
            // Fixture setup
            var expectedComposer = new Fixture();
            var sut = new CopyAndUpdateAssertion(expectedComposer);
            // Exercise system
            ISpecimenBuilder result = sut.Builder;

            // Verify outcome
            Assert.Equal(expectedComposer, result);
            // Teardown
        }
Exemple #9
0
        public void VerifyWellBehavedDoesNotThrow(Type typeWithCopyUpdateMethod, string copyUpdateMethodName)
        {
            // Fixture setup
            var dummyComposer = new Fixture();
            var sut           = new CopyAndUpdateAssertion(dummyComposer);
            var method        = typeWithCopyUpdateMethod.GetMethod(copyUpdateMethodName);

            // Exercise system and verify outcome
            Assert.DoesNotThrow(() =>
                                sut.Verify(method));
            // Teardown
        }
Exemple #10
0
        public void ComparerIsCorrect()
        {
            // Fixture setup
            var dummyComposer          = new Fixture();
            IEqualityComparer expected = new MemberInfoEqualityComparer();
            var sut = new CopyAndUpdateAssertion(dummyComposer, expected);
            // Exercise system
            IEqualityComparer actual = sut.Comparer;

            // Verify outcome
            Assert.Equal(expected, actual);
            // Teardown
        }
Exemple #11
0
        public void VerifyCopyAndUpdateWhenThePropertyTypeIsAssignableFromTheParameterType()
        {
            var fixture = new Fixture();

            var customMatcher = new VisitorEqualityComparer <NameAndType>(
                new NameAndTypeCollectingVisitor(), new NameAndTypeAssignableComparer());

            var assertion = new CopyAndUpdateAssertion(
                fixture, EqualityComparer <object> .Default, customMatcher);

            var copyAndUpdateMethod =
                new Methods <PublicPropertiesAreAssignableFromConstructorParameterTypes>()
                .Select(o => o.WithNumbers(default(int[])));

            assertion.Verify(copyAndUpdateMethod);
        }
        public void VerifyIllBehavedWithInvalidMemberValueThrows(
            Type typeWithCopyUpdateMethod,
            string copyUpdateMethodName,
            string expectedMemberNameWithInvalidValue)
        {
            // Arrange
            var dummyComposer = new Fixture();
            var sut           = new CopyAndUpdateAssertion(dummyComposer);
            var method        = typeWithCopyUpdateMethod.GetMethod(copyUpdateMethodName);
            var member        = typeWithCopyUpdateMethod.GetMember(expectedMemberNameWithInvalidValue).Single();
            // Act & Assert
            var e = Assert.Throws <CopyAndUpdateException>(() =>
                                                           sut.Verify(method));

            AssertExceptionPropertiesEqual(e, method, memberWithInvalidValue: member);
        }
        public void VerifyWhenMethodHasNoMatchingPublicMembersThrows(
            Type copyUpdateMethodType,
            string methodName,
            string argumentNameWithNoMatchingPublicMember)
        {
            // Arrange
            var dummyComposer = new Fixture();
            var sut           = new CopyAndUpdateAssertion(dummyComposer);
            var method        = copyUpdateMethodType.GetMethod(methodName);
            var parameter     = method.GetParameters().Single(p =>
                                                              p.Name == argumentNameWithNoMatchingPublicMember);
            // Act & Assert
            var e = Assert.Throws <CopyAndUpdateException>(() =>
                                                           sut.Verify(method));

            AssertExceptionPropertiesEqual(e, method, parameter);
        }