public void WhenApplyingTheConventionToAnUndecoratedProperty()
        {
            // Arrange
            IPropertyConvention subject = new StringLengthConvention();
            var member = new TestMember(typeof(DecoratedEntity).GetProperty("UndecoratedProperty"));
            var propertyInstanceMock = new Mock <IPropertyInstance>();

            propertyInstanceMock.SetupGet(instance => instance.Property).Returns(member);

            // Act
            subject.Apply(propertyInstanceMock.Object);

            // Assert
            propertyInstanceMock.Verify(instance => instance.Length(StringLengthConvention.DefaultStringLength));
        }
        public void WhenDeterminingIfTheConventionShouldBeAppliedToAnUndecoratedNonStringProperty()
        {
            // Arrange
            IPropertyConventionAcceptance subject = new StringLengthConvention();
            var acceptanceCriteriaMock            = new Mock <IAcceptanceCriteria <IPropertyInspector> >();
            var testMember = new TestMember(typeof(DecoratedEntity).GetProperty("UndecoratedIntProperty"));

            acceptanceCriteriaMock.Setup(criteria => criteria.Expect(It.Is <Func <IPropertyInspector, bool> >(func => VerifyCriteriaExpectation(func, testMember, false))));

            // Act
            subject.Accept(acceptanceCriteriaMock.Object);

            // Assert
            acceptanceCriteriaMock.Verify();
        }