Пример #1
0
        public void SetUp()
        {
            _globalizationServiceMock = MockRepository.GenerateStub <IGlobalizationService>();
            _resourceManagerMock      = MockRepository.GenerateStrictMock <IResourceManager>();
            _resourceManagerMock.Stub(stub => stub.IsNull).Return(false);
            _resourceManagerMock.Stub(stub => stub.Name).Return("RM1");

            _typeInformationStub = MockRepository.GenerateStub <ITypeInformation>();
            _typeInformationStub.Stub(stub => stub.Name).Return("TypeName");

            _typeInformationForResourceResolutionStub = MockRepository.GenerateStub <ITypeInformation>();
            _typeInformationForResourceResolutionStub.Stub(stub => stub.Name).Return("TypeNameForResourceResolution");

            _propertyInformationStub = MockRepository.GenerateStub <IPropertyInformation>();
            _propertyInformationStub.Stub(stub => stub.Name).Return("PropertyName");

            _memberInformationNameResolverStub = MockRepository.GenerateStub <IMemberInformationNameResolver>();
            _memberInformationNameResolverStub.Stub(stub => stub.GetPropertyName(_propertyInformationStub)).Return("FakePropertyFullName");
            _memberInformationNameResolverStub.Stub(stub => stub.GetTypeName(_typeInformationStub)).Return("FakeTypeFullName");

            _shortPropertyResourceID = "property:PropertyName";
            _longPropertyResourceID  = "property:FakePropertyFullName";
            _shortTypeResourceID     = "type:TypeName";
            _longTypeResourceID      = "type:FakeTypeFullName";

            _service = new ResourceManagerBasedMemberInformationGlobalizationService(_globalizationServiceMock, _memberInformationNameResolverStub);
        }
Пример #2
0
        public ClassReflector(
            Type type,
            IMappingObjectFactory mappingObjectFactory,
            IMemberInformationNameResolver nameResolver,
            IClassIDProvider classIDProvider,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider,
            IDomainObjectCreator instanceCreator)
        {
            ArgumentUtility.CheckNotNullAndTypeIsAssignableFrom("type", type, typeof(DomainObject));
            ArgumentUtility.CheckNotNull("mappingObjectFactory", mappingObjectFactory);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("classIDProvider", classIDProvider);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);
            ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider);
            ArgumentUtility.CheckNotNull("instanceCreator", instanceCreator);

            _type = type;
            _mappingObjectFactory          = mappingObjectFactory;
            _nameResolver                  = nameResolver;
            _classIDProvider               = classIDProvider;
            _propertyMetadataProvider      = propertyMetadataProvider;
            _domainModelConstraintProvider = domainModelConstraintProvider;
            _instanceCreator               = instanceCreator;
        }
Пример #3
0
        public MappingReflector(
            ITypeDiscoveryService typeDiscoveryService,
            IClassIDProvider classIDProvider,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider,
            IDomainObjectCreator domainObjectCreator)
        {
            ArgumentUtility.CheckNotNull("typeDiscoveryService", typeDiscoveryService);
            ArgumentUtility.CheckNotNull("classIDProvider", classIDProvider);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);
            ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("domainObjectCreator", domainObjectCreator);

            _typeDiscoveryService          = typeDiscoveryService;
            _classIDProvider               = classIDProvider;
            _propertyMetadataProvider      = propertyMetadataProvider;
            _domainModelConstraintProvider = domainModelConstraintProvider;
            _nameResolver         = nameResolver;
            _mappingObjectFactory = new ReflectionBasedMappingObjectFactory(
                _nameResolver,
                _classIDProvider,
                _propertyMetadataProvider,
                _domainModelConstraintProvider,
                domainObjectCreator);
        }
 protected abstract PropertyFinderBase CreateNewFinder(
     Type type,
     bool includeBaseProperties,
     bool includeMixinProperties,
     IMemberInformationNameResolver nameResolver,
     IPersistentMixinFinder persistentMixinFinder,
     IPropertyMetadataProvider propertyMetadataProvider);
 public RelationReflector(
     ClassDefinition classDefinition,
     IPropertyInformation propertyInfo,
     IMemberInformationNameResolver nameResolver,
     IPropertyMetadataProvider propertyMetadataProvider)
     : base(classDefinition, propertyInfo, nameResolver, propertyMetadataProvider)
 {
 }
 public void SetUp()
 {
     _mappingObjectFactoryMock          = MockRepository.GenerateStrictMock <IMappingObjectFactory>();
     _memberInformationNameResolverMock = MockRepository.GenerateStrictMock <IMemberInformationNameResolver>();
     _factory = new RelationEndPointDefinitionCollectionFactory(
         _mappingObjectFactoryMock,
         _memberInformationNameResolverMock,
         new PropertyMetadataReflector());
 }
Пример #7
0
 public RdbmsRelationEndPointReflector(
     ClassDefinition classDefinition,
     IPropertyInformation propertyInfo,
     IMemberInformationNameResolver nameResolver,
     IPropertyMetadataProvider propertyMetadataProvider,
     IDomainModelConstraintProvider domainModelConstraintProvider)
     : base(classDefinition, propertyInfo, nameResolver, propertyMetadataProvider, domainModelConstraintProvider)
 {
 }
        public MappingAttributesAreOnlyAppliedOnOriginalPropertyDeclarationsValidationRule(
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            _nameResolver             = nameResolver;
            _propertyMetadataProvider = propertyMetadataProvider;
        }
 public StubPropertyFinderBase(
     Type type,
     bool includeBaseProperties,
     bool includeMixinProperties,
     IMemberInformationNameResolver nameResolver,
     IPersistentMixinFinder persistentMixinFinder,
     IPropertyMetadataProvider propertyMetadataProvider)
     : base(type, includeBaseProperties, includeMixinProperties, nameResolver, persistentMixinFinder, propertyMetadataProvider)
 {
 }
        public ResourceManagerBasedMemberInformationGlobalizationService(
            IGlobalizationService globalizationService,
            IMemberInformationNameResolver memberInformationNameResolver)
        {
            ArgumentUtility.CheckNotNull("globalizationService", globalizationService);
            ArgumentUtility.CheckNotNull("memberInformationNameResolver", memberInformationNameResolver);

            _globalizationService          = globalizationService;
            _memberInformationNameResolver = memberInformationNameResolver;
        }
        public void SetUp()
        {
            _validationCollectorProviderMock        = MockRepository.GenerateStrictMock <IValidationCollectorProvider>();
            _validationCollectorMergerMock          = MockRepository.GenerateStrictMock <IValidationCollectorMerger>();
            _metaRulesValidatorFactoryStub          = MockRepository.GenerateStub <IMetaRulesValidatorFactory>();
            _metaRuleValidatorMock                  = MockRepository.GenerateStrictMock <IMetaRuleValidator>();
            _validationRuleGlobalizationServiceMock = MockRepository.GenerateStrictMock <IValidationRuleMetadataService>();
            _memberInformationNameResolverMock      = MockRepository.GenerateStrictMock <IMemberInformationNameResolver>();
            _collectorValidatorMock                 = MockRepository.GenerateStrictMock <ICollectorValidator> ();

            _metaValidationRule1Stub = MockRepository.GenerateStub <IAddingComponentPropertyMetaValidationRule>();
            _metaValidationRule2Stub = MockRepository.GenerateStub <IAddingComponentPropertyMetaValidationRule>();
            _metaValidationRule3Stub = MockRepository.GenerateStub <IAddingComponentPropertyMetaValidationRule>();

            _componenValidationCollectorStub1 = MockRepository.GenerateStub <IComponentValidationCollector>();
            _componenValidationCollectorStub1.Stub(stub => stub.AddedPropertyMetaValidationRules).Return(new[] { _metaValidationRule1Stub });
            _componenValidationCollectorStub2 = MockRepository.GenerateStub <IComponentValidationCollector>();
            _componenValidationCollectorStub2.Stub(stub => stub.AddedPropertyMetaValidationRules)
            .Return(new[] { _metaValidationRule2Stub, _metaValidationRule3Stub });
            _componenValidationCollectorStub3 = MockRepository.GenerateStub <IComponentValidationCollector>();
            _componenValidationCollectorStub3.Stub(stub => stub.AddedPropertyMetaValidationRules)
            .Return(new IAddingComponentPropertyMetaValidationRule[0]);

            _validationCollectorInfo1 = new ValidationCollectorInfo(
                _componenValidationCollectorStub1,
                typeof(ApiBasedComponentValidationCollectorProvider));
            _validationCollectorInfo2 = new ValidationCollectorInfo(
                _componenValidationCollectorStub2,
                typeof(ApiBasedComponentValidationCollectorProvider));
            _validationCollectorInfo3 = new ValidationCollectorInfo(
                _componenValidationCollectorStub3,
                typeof(ApiBasedComponentValidationCollectorProvider));

            _validationRuleStub1 = MockRepository.GenerateStub <IValidationRule>();
            _validationRuleStub2 = MockRepository.GenerateStub <IValidationRule>();
            _validationRuleStub3 = PropertyRule.Create(ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.FirstName));
            _validationRuleStub4 = PropertyRule.Create(ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.LastName));

            _fakeValidationRuleResult           = new[] { _validationRuleStub1, _validationRuleStub2, _validationRuleStub3, _validationRuleStub4 };
            _fakeValidationCollectorMergeResult = new ValidationCollectorMergeResult(_fakeValidationRuleResult, MockRepository.GenerateStub <ILogContext>());

            _fluentValidationBuilder = new FluentValidatorBuilder(
                _validationCollectorProviderMock,
                _validationCollectorMergerMock,
                _metaRulesValidatorFactoryStub,
                _validationRuleGlobalizationServiceMock,
                _memberInformationNameResolverMock,
                _collectorValidatorMock);

            _validMetaValidationResult1   = MetaValidationRuleValidationResult.CreateValidResult();
            _validMetaValidationResult2   = MetaValidationRuleValidationResult.CreateValidResult();
            _invalidMetaValidationResult1 = MetaValidationRuleValidationResult.CreateInvalidResult("Error1");
            _invalidMetaValidationResult2 = MetaValidationRuleValidationResult.CreateInvalidResult("Error2");
        }
        protected RelationReflectorBase(
            ClassDefinition classDefinition,
            IPropertyInformation propertyInfo,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider)
            : base(propertyInfo, nameResolver, propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("classDefinition", classDefinition);

            ClassDefinition = classDefinition;
            BidirectionalRelationAttribute = PropertyInfo.GetCustomAttribute <T> (true);
        }
Пример #13
0
        public RelationEndPointDefinitionCollectionFactory(
            IMappingObjectFactory mappingObjectFactory,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("mappingObjectFactory", mappingObjectFactory);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            _mappingObjectFactory     = mappingObjectFactory;
            _nameResolver             = nameResolver;
            _propertyMetadataProvider = propertyMetadataProvider;
        }
Пример #14
0
        public NameBasedPropertyFinder(
            string propertyName,
            Type type,
            bool includeBaseProperties,
            bool includeMixinProperties,
            IMemberInformationNameResolver nameResolver,
            IPersistentMixinFinder persistentMixinFinder,
            IPropertyMetadataProvider propertyMetadataProvider)
            : base(type, includeBaseProperties, includeMixinProperties, nameResolver, persistentMixinFinder, propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNullOrEmpty("propertyName", propertyName);

            _propertyName = propertyName;
        }
Пример #15
0
        public PropertyReflector(
            ClassDefinition classDefinition,
            IPropertyInformation propertyInfo,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider)
            : base(propertyInfo, nameResolver, propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("classDefinition", classDefinition);
            ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider);

            _classDefinition = classDefinition;
            _domainModelConstraintProvider = domainModelConstraintProvider;
        }
        protected MemberReflectorBase(
            IPropertyInformation propertyInfo,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("propertyInfo", propertyInfo);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            _propertyInfo             = propertyInfo;
            _nameResolver             = nameResolver;
            _propertyMetadataProvider = propertyMetadataProvider;
            _storageClassAttribute    = PropertyInfo.GetCustomAttribute <StorageClassAttribute> (true);
        }
Пример #17
0
        public PropertyFinder(
            Type type,
            ClassDefinition classDefinition,
            bool includeBaseProperties,
            bool includeMixinProperties,
            IMemberInformationNameResolver nameResolver,
            IPersistentMixinFinder persistentMixinFinder,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider)
            : base(type, includeBaseProperties, includeMixinProperties, nameResolver, persistentMixinFinder, propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("classDefinition", classDefinition);

            _classDefinition = classDefinition;
            _domainModelConstraintProvider = domainModelConstraintProvider;
        }
 protected override PropertyFinderBase CreateNewFinder(
     Type type,
     bool includeBaseProperties,
     bool includeMixinProperties,
     IMemberInformationNameResolver nameResolver,
     IPersistentMixinFinder persistentMixinFinder,
     IPropertyMetadataProvider propertyMetadataProvider)
 {
     return(new StubPropertyFinderBase(
                type,
                includeBaseProperties,
                includeMixinProperties,
                nameResolver,
                persistentMixinFinder,
                propertyMetadataProvider));
 }
Пример #19
0
 protected override PropertyFinderBase CreateNewFinder(
     Type type,
     bool includeBaseProperties,
     bool includeMixinProperties,
     IMemberInformationNameResolver nameResolver,
     IPersistentMixinFinder persistentMixinFinder,
     IPropertyMetadataProvider propertyMetadataProvider)
 {
     return(new PropertyFinder(
                type,
                _classDefinition,
                includeBaseProperties,
                includeMixinProperties,
                nameResolver,
                persistentMixinFinder,
                propertyMetadataProvider,
                _domainModelConstraintProvider));
 }
Пример #20
0
        public ReflectionBasedMappingObjectFactory(
            IMemberInformationNameResolver nameResolver,
            IClassIDProvider classIDProvider,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider,
            IDomainObjectCreator instanceCreator)
        {
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("classIDProvider", classIDProvider);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);
            ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider);
            ArgumentUtility.CheckNotNull("instanceCreator", instanceCreator);

            _nameResolver                  = nameResolver;
            _classIDProvider               = classIDProvider;
            _propertyMetadataProvider      = propertyMetadataProvider;
            _domainModelConstraintProvider = domainModelConstraintProvider;
            _instanceCreator               = instanceCreator;
        }
        protected override PropertyFinderBase CreateNewFinder(
            Type type,
            bool includeBaseProperties,
            bool includeMixinProperties,
            IMemberInformationNameResolver nameResolver,
            IPersistentMixinFinder persistentMixinFinder,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("type", type);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("persistentMixinFinder", persistentMixinFinder);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            return(new AllMappingPropertiesFinder(
                       type,
                       includeBaseProperties,
                       includeMixinProperties,
                       nameResolver,
                       persistentMixinFinder,
                       propertyMetadataProvider));
        }
Пример #22
0
        // construction and disposing

        public MappingConfiguration(IMappingLoader mappingLoader, IPersistenceModelLoader persistenceModelLoader)
        {
            ArgumentUtility.CheckNotNull("mappingLoader", mappingLoader);
            ArgumentUtility.CheckNotNull("persistenceModelLoader", persistenceModelLoader);

            s_log.Info("Building mapping configuration...");

            using (StopwatchScope.CreateScope(s_log, LogLevel.Info, "Time needed to build and validate mapping configuration: {elapsed}."))
            {
                var mappingConfigurationValidationHelper = new MappingConfigurationValidationHelper(mappingLoader, persistenceModelLoader);

                var typeDefinitions = mappingLoader.GetClassDefinitions();
                _typeDefinitions = new ReadOnlyDictionary <Type, ClassDefinition> (typeDefinitions.ToDictionary(td => td.ClassType));
                mappingConfigurationValidationHelper.ValidateDuplicateClassIDs(typeDefinitions.OfType <ClassDefinition>());
                _classDefinitions = new ReadOnlyDictionary <string, ClassDefinition> (typeDefinitions.ToDictionary(cd => cd.ID));

                mappingConfigurationValidationHelper.ValidateClassDefinitions(_typeDefinitions.Values);
                mappingConfigurationValidationHelper.ValidatePropertyDefinitions(_typeDefinitions.Values);

                var relationDefinitions = mappingLoader.GetRelationDefinitions(_typeDefinitions);
                _relationDefinitions = new ReadOnlyDictionary <string, RelationDefinition> (relationDefinitions.ToDictionary(rd => rd.ID));

                mappingConfigurationValidationHelper.ValidateRelationDefinitions(_relationDefinitions.Values);

                foreach (var rootClass in GetInheritanceRootClasses(_typeDefinitions.Values))
                {
                    persistenceModelLoader.ApplyPersistenceModelToHierarchy(rootClass);
                    mappingConfigurationValidationHelper.VerifyPersistenceModelApplied(rootClass);
                    mappingConfigurationValidationHelper.ValidatePersistenceMapping(rootClass);
                }

                _resolveTypes = mappingLoader.ResolveTypes;
                _nameResolver = mappingLoader.NameResolver;

                SetMappingReadOnly();

                mappingConfigurationValidationHelper.ValidateSortExpression(_relationDefinitions.Values);
            }
        }
Пример #23
0
        public FluentValidatorBuilder(
            IValidationCollectorProvider validationCollectorProvider,
            IValidationCollectorMerger validationCollectorMerger,
            IMetaRulesValidatorFactory metaRuleValidatorFactory,
            IValidationRuleMetadataService validationRuleGlobalizationService,
            IMemberInformationNameResolver memberInformationNameResolver,
            ICollectorValidator collectorValidator)
        {
            ArgumentUtility.CheckNotNull("validationCollectorProvider", validationCollectorProvider);
            ArgumentUtility.CheckNotNull("validationCollectorMerger", validationCollectorMerger);
            ArgumentUtility.CheckNotNull("metaRuleValidatorFactory", metaRuleValidatorFactory);
            ArgumentUtility.CheckNotNull("validationRuleGlobalizationService", validationRuleGlobalizationService);
            ArgumentUtility.CheckNotNull("memberInformationNameResolver", memberInformationNameResolver);
            ArgumentUtility.CheckNotNull("collectorValidator", collectorValidator);

            _validationCollectorProvider        = validationCollectorProvider;
            _validationCollectorMerger          = validationCollectorMerger;
            _metaRulesValidatorFactory          = metaRuleValidatorFactory;
            _validationRuleGlobalizationService = validationRuleGlobalizationService;
            _memberInformationNameResolver      = memberInformationNameResolver;
            _collectorValidator = collectorValidator;
        }
        protected PropertyFinderBase(
            Type type,
            bool includeBaseProperties,
            bool includeMixinProperties,
            IMemberInformationNameResolver nameResolver,
            IPersistentMixinFinder persistentMixinFinder,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("type", type);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("persistentMixinFinder", persistentMixinFinder);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            _type = type;
            _includeBaseProperties            = includeBaseProperties;
            _includeMixinProperties           = includeMixinProperties;
            _nameResolver                     = nameResolver;
            _persistentMixinFinder            = persistentMixinFinder;
            _propertyMetadataProvider         = propertyMetadataProvider;
            _explicitInterfaceImplementations = new Lazy <HashSet <IMethodInformation> > (
                () => new HashSet <IMethodInformation> (
                    s_explicitInterfaceImplementations.GetOrCreateValue(_type, GetExplicitInterfaceImplementations)
                    .Select(MethodInfoAdapter.Create)));
        }
Пример #25
0
 public void SetUp()
 {
     _globalizationServiceStub          = MockRepository.GenerateStub <IGlobalizationService>();
     _memberInformationNameResolverStub = MockRepository.GenerateStub <IMemberInformationNameResolver>();
     _service = new ResourceManagerBasedEnumerationGlobalizationService(_globalizationServiceStub, _memberInformationNameResolverStub);
 }