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);
        }
        public void CreateRelationDefinitionValidator()
        {
            var validator = (RelationDefinitionValidator)_mappingReflector.CreateRelationDefinitionValidator();

            Assert.That(validator.ValidationRules.Count, Is.EqualTo(10));
            Assert.That(validator.ValidationRules[0], Is.TypeOf(typeof(RdbmsRelationEndPointCombinationIsSupportedValidationRule)));
            Assert.That(validator.ValidationRules[1], Is.TypeOf(typeof(SortExpressionIsSupportedForCardianlityOfRelationPropertyValidationRule)));
            Assert.That(validator.ValidationRules[2], Is.TypeOf(typeof(VirtualRelationEndPointCardinalityMatchesPropertyTypeValidationRule)));
            Assert.That(validator.ValidationRules[3], Is.TypeOf(typeof(VirtualRelationEndPointPropertyTypeIsSupportedValidationRule)));
            Assert.That(validator.ValidationRules[4], Is.TypeOf(typeof(ForeignKeyIsSupportedForCardinalityOfRelationPropertyValidationRule)));
            Assert.That(validator.ValidationRules[5], Is.TypeOf(typeof(RelationEndPointPropertyTypeIsSupportedValidationRule)));
            Assert.That(validator.ValidationRules[6], Is.TypeOf(typeof(RelationEndPointNamesAreConsistentValidationRule)));
            Assert.That(validator.ValidationRules[7], Is.TypeOf(typeof(RelationEndPointTypesAreConsistentValidationRule)));
            Assert.That(validator.ValidationRules[8], Is.TypeOf(typeof(CheckForInvalidRelationEndPointsValidationRule)));
            Assert.That(validator.ValidationRules[9], Is.TypeOf(typeof(CheckForTypeNotFoundClassDefinitionValidationRule)));
        }