public void SetUp()
        {
            _propertyWithoutAttribute       = typeof(TypeWithDomainObjectAttributes).GetProperty("PropertyWithoutAttribute");
            _propertyWithMandatoryAttribute = typeof(TypeWithDomainObjectAttributes).GetProperty("PropertyWithMandatoryAttribute");
            _propertyWithNullableStringPropertyAttribute =
                typeof(TypeWithDomainObjectAttributes).GetProperty("PropertyWithNullableStringPropertyAttribute");
            _propertyWithMandatoryStringPropertyAttribute =
                typeof(TypeWithDomainObjectAttributes).GetProperty("PropertyWithMandatoryStringPropertyAttribute");
            _binaryProperty     = typeof(TypeWithDomainObjectAttributes).GetProperty("BinaryProperty");
            _collectionProperty = typeof(TypeWithDomainObjectAttributes).GetProperty("CollectionProperty");

            _propertyWithoutAttributeReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                _propertyWithoutAttribute,
                _propertyWithoutAttribute);
            _propertyWithMandatoryAttributeReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                _propertyWithMandatoryAttribute,
                _propertyWithMandatoryAttribute);
            _propertyWithNullableStringPropertyAttributeReflector =
                new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                    _propertyWithNullableStringPropertyAttribute,
                    _propertyWithNullableStringPropertyAttribute);
            _propertyWithMandatoryStringPropertyAttributeReflector =
                new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                    _propertyWithMandatoryStringPropertyAttribute,
                    _propertyWithMandatoryStringPropertyAttribute);
            _binaryPropertyReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                _binaryProperty,
                _binaryProperty);
            _collectionPropertyReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                _collectionProperty,
                _collectionProperty);
        }
        public void SetUp()
        {
            _mixinPropertyWithoutAttribute =
                typeof(MixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("PropertyWithoutAttribute");
            _interfacePropertyWithoutAttribute =
                typeof(IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("PropertyWithoutAttribute");

            _mixinPropertyWithMandatoryAttribute =
                typeof(MixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("PropertyWithMandatoryAttribute");
            _interfacePropertyWithMandatoryAttribute =
                typeof(IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("PropertyWithMandatoryAttribute");

            _mixinBidirectionalRelationProperty =
                typeof(MixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("BidirectionalPropertyWithMandatoryAttribute");
            _interfaceBidirectionalRelationProperty =
                typeof(IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("BidirectionalPropertyWithMandatoryAttribute");

            _mixinBidirectionalMultipleRelationProperty =
                typeof(MixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("BidirectionalMultiplePropertyWithMandatoryAttribute");
            _interfaceBidirectionalMultipleRelationProperty =
                typeof(IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("BidirectionalMultiplePropertyWithMandatoryAttribute");

            _mixinPropertyWithNullableStringPropertyAttribute =
                typeof(MixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("PropertyWithNullableStringPropertyAttribute");
            _interfacePropertyWithNullableStringPropertyAttribute =
                typeof(IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("PropertyWithNullableStringPropertyAttribute");

            _mixinPropertyWithMandatoryStringPropertyAttribute =
                typeof(MixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("PropertyWithMandatoryStringPropertyAttribute");
            _interfacePropertyWithMandatoryStringPropertyAttribute =
                typeof(IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty(
                    "PropertyWithMandatoryStringPropertyAttribute");

            _mixinIntProperty =
                typeof(MixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("IntProperty");
            _interfaceIntProperty =
                typeof(IMixinTypeWithDomainObjectAttributes_AnnotatedPropertiesPartOfInterface).GetProperty("IntProperty");

            _propertyWithoutAttributeReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                _interfacePropertyWithoutAttribute,
                _mixinPropertyWithoutAttribute);
            _propertyWithMandatoryAttributeReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                _interfacePropertyWithMandatoryAttribute,
                _mixinPropertyWithMandatoryAttribute
                );
            _propertyWithNullableStringPropertyAttributeReflector =
                new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                    _interfacePropertyWithNullableStringPropertyAttribute,
                    _mixinPropertyWithNullableStringPropertyAttribute
                    );
            _propertyWithMandatoryStringPropertyAttributeReflector =
                new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                    _interfacePropertyWithMandatoryStringPropertyAttribute,
                    _mixinPropertyWithMandatoryStringPropertyAttribute
                    );

            _intPropertyReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(_interfaceIntProperty, _mixinIntProperty);

            _bidirectionalRelationReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                _interfaceBidirectionalRelationProperty,
                _mixinBidirectionalRelationProperty);

            _bidirectionalMultipleRelationReflector = new DomainObjectAttributesBasedValidationPropertyRuleReflector(
                _interfaceBidirectionalMultipleRelationProperty,
                _mixinBidirectionalMultipleRelationProperty);
        }