public void GetRelationDefinitions() { var actualClassDefinitions = _mappingReflector.GetClassDefinitions().ToDictionary(cd => cd.ClassType); var actualRelationDefinitions = _mappingReflector.GetRelationDefinitions(actualClassDefinitions).ToDictionary(rd => rd.ID); var relationDefinitionChecker = new RelationDefinitionChecker(); relationDefinitionChecker.Check(FakeMappingConfiguration.Current.RelationDefinitions.Values, actualRelationDefinitions, true); }
public void SetCurrentRejectsUnresolvedTypes() { SetupResult.For(_mockMappingLoader.GetClassDefinitions()).Return(_emptyClassDefinitions); SetupResult.For(_mockMappingLoader.GetRelationDefinitions(null)).IgnoreArguments().Return(_emptyRelationDefinitions); SetupResult.For(_mockMappingLoader.ResolveTypes).Return(false); SetupResult.For(_mockMappingLoader.NameResolver).Return(_memberInformationNameResolver); SetupResult.For(_mockMappingLoader.CreateClassDefinitionValidator()).Return(new ClassDefinitionValidator()); SetupResult.For(_mockMappingLoader.CreatePropertyDefinitionValidator()).Return(new PropertyDefinitionValidator()); SetupResult.For(_mockMappingLoader.CreateRelationDefinitionValidator()).Return(new RelationDefinitionValidator()); SetupResult.For(_mockMappingLoader.CreateSortExpressionValidator()).Return(new SortExpressionValidator()); _mockRepository.ReplayAll(); var configuration = new MappingConfiguration( _mockMappingLoader, new PersistenceModelLoader(new StorageGroupBasedStorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage))); _mockRepository.VerifyAll(); MappingConfiguration.SetCurrent(configuration); }
// 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); } }