public void GetClassDefinitions() { MappingReflector mappingReflector = MappingReflectorObjectMother.CreateMappingReflector(TestMappingConfiguration.GetTypeDiscoveryService()); var actualClassDefinitions = mappingReflector.GetClassDefinitions().ToDictionary(cd => cd.ClassType); mappingReflector.GetRelationDefinitions(actualClassDefinitions); Assert.That(actualClassDefinitions, Is.Not.Null); var inheritanceRootClasses = actualClassDefinitions.Values.Select(cd => cd.GetInheritanceRootClass()).Distinct(); // Pretend that all classes have the storage provider definition used by FakeMappingConfiguration var storageProviderDefinition = FakeMappingConfiguration.Current.StorageProviderDefinition; var storageProviderDefinitionFinderStub = MockRepository.GenerateStub <IStorageProviderDefinitionFinder> (); storageProviderDefinitionFinderStub .Stub(stub => stub.GetStorageProviderDefinition(Arg <ClassDefinition> .Is.Anything, Arg <string> .Is.Anything)) .Return(storageProviderDefinition); foreach (ClassDefinition classDefinition in inheritanceRootClasses) { var persistenceModelLoader = storageProviderDefinition.Factory.CreatePersistenceModelLoader(storageProviderDefinition, storageProviderDefinitionFinderStub); persistenceModelLoader.ApplyPersistenceModelToHierarchy(classDefinition); } var classDefinitionChecker = new ClassDefinitionChecker(); classDefinitionChecker.Check(FakeMappingConfiguration.Current.TypeDefinitions.Values, actualClassDefinitions, false, true); classDefinitionChecker.CheckPersistenceModel(FakeMappingConfiguration.Current.TypeDefinitions.Values, actualClassDefinitions); Assert.That(actualClassDefinitions.ContainsKey(typeof(TestDomainBase)), Is.False); }
public static void Initialize() { ProviderCollection <StorageProviderDefinition> providers = new ProviderCollection <StorageProviderDefinition>(); providers.Add(new RdbmsProviderDefinition("PerformanceTestDomain", new SqlStorageObjectFactory(), ConnectionString)); StorageConfiguration storageConfiguration = new StorageConfiguration(providers, providers["PerformanceTestDomain"]); DomainObjectsConfiguration.SetCurrent(new FakeDomainObjectsConfiguration(storage: storageConfiguration)); var rootAssemblyFinder = new FixedRootAssemblyFinder(new RootAssembly(typeof(StandardConfiguration).Assembly, true)); var assemblyLoader = new FilteringAssemblyLoader(ApplicationAssemblyLoaderFilter.Instance); var assemblyFinder = new CachingAssemblyFinderDecorator(new AssemblyFinder(rootAssemblyFinder, assemblyLoader)); ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(assemblyFinder); MappingConfiguration mappingConfiguration = new MappingConfiguration( new MappingReflector( typeDiscoveryService, new ClassIDProvider(), new ReflectionBasedMemberInformationNameResolver(), new PropertyMetadataReflector(), new DomainModelConstraintProvider(), MappingReflector.CreateDomainObjectCreator()), new PersistenceModelLoader(new StorageGroupBasedStorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage))); MappingConfiguration.SetCurrent(mappingConfiguration); }
protected virtual void InitializeConfiguration(string assemblyDirectory) { ApplicationAssemblyLoaderFilter filter = ApplicationAssemblyLoaderFilter.Instance; // TODO: Duplicates logic from AssemblyFinder? The DLL searching part below can probably be removed. List <Assembly> assemblies = new List <Assembly>(); DirectoryInfo dir = new DirectoryInfo(assemblyDirectory); foreach (FileInfo file in dir.GetFiles("*.dll")) { Assembly asm = Assembly.LoadFile(file.FullName); if (filter.ShouldConsiderAssembly(asm.GetName()) && filter.ShouldIncludeAssembly(asm)) { assemblies.Add(asm); } } DomainObjectsConfiguration.SetCurrent( new FakeDomainObjectsConfiguration(DomainObjectsConfiguration.Current.MappingLoader, GetPersistenceConfiguration(), new QueryConfiguration())); var rootAssemblyFinder = new FixedRootAssemblyFinder(assemblies.Select(a => new RootAssembly(a, false)).ToArray()); var assemblyLoader = new FilteringAssemblyLoader(filter); ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(new AssemblyFinder(rootAssemblyFinder, assemblyLoader)); var mappingReflector = new MappingReflector(typeDiscoveryService); var persistenceModelLoader = new PersistenceModelLoader(new StorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage)); var mappingConfiguration = new MappingConfiguration(mappingReflector, persistenceModelLoader); MappingConfiguration.SetCurrent(mappingConfiguration); }
private IEnumerable <ClassDefinition> GetTypeDefinitionsAndValidateMapping(MappingReflector mappingReflector) { var storageGroupBasedStorageProviderDefinitionFinder = new StorageGroupBasedStorageProviderDefinitionFinder( StandardConfiguration.Instance.GetPersistenceConfiguration()); var persistenceModelLoader = new PersistenceModelLoader(storageGroupBasedStorageProviderDefinitionFinder); return(new MappingConfiguration(mappingReflector, persistenceModelLoader).GetTypeDefinitions()); }
public void CreateDomainObjectCreator() { var registryStub = MockRepository.GenerateStub <IPipelineRegistry> (); var serviceLocator = DefaultServiceLocator.Create(); serviceLocator.RegisterSingle <IPipelineRegistry> (() => registryStub); using (new ServiceLocatorScope(serviceLocator)) { var creator = MappingReflector.CreateDomainObjectCreator(); Assert.That(creator.PipelineRegistry, Is.SameAs(registryStub)); } }
public int Run() { try { ServiceLocator.SetLocatorProvider(() => null); var assemblyLoader = new FilteringAssemblyLoader(ApplicationAssemblyLoaderFilter.Instance); var rootAssemblyFinder = new FixedRootAssemblyFinder(new RootAssembly(typeof(BaseSecurityManagerObject).Assembly, true)); var assemblyFinder = new CachingAssemblyFinderDecorator(new AssemblyFinder(rootAssemblyFinder, assemblyLoader)); ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(assemblyFinder); MappingConfiguration.SetCurrent( new MappingConfiguration( new MappingReflector( typeDiscoveryService, new ClassIDProvider(), new ReflectionBasedMemberInformationNameResolver(), new PropertyMetadataReflector(), new DomainModelConstraintProvider(), MappingReflector.CreateDomainObjectCreator()), new PersistenceModelLoader(new StorageGroupBasedStorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage)))); ClientTransaction transaction = ClientTransaction.CreateRootTransaction(); if (_arguments.ImportMetadata) { ImportMetadata(transaction); } transaction.Commit(); if (_arguments.ImportLocalization) { ImportLocalization(transaction); } transaction.Commit(); return(0); } catch (Exception e) { HandleException(e); return(1); } }
public void SetUp() { try { var serviceLocator = DefaultServiceLocator.Create(); serviceLocator.RegisterSingle <ISecurityProvider> (() => new NullSecurityProvider()); serviceLocator.RegisterSingle <IPrincipalProvider> (() => new NullPrincipalProvider()); ServiceLocator.SetLocatorProvider(() => serviceLocator); var providers = new ProviderCollection <StorageProviderDefinition>(); providers.Add(new RdbmsProviderDefinition("SecurityManager", new SecurityManagerSqlStorageObjectFactory(), TestDomainConnectionString)); var storageConfiguration = new StorageConfiguration(providers, providers["SecurityManager"]); storageConfiguration.StorageGroups.Add(new StorageGroupElement(new SecurityManagerStorageGroupAttribute(), "SecurityManager")); DomainObjectsConfiguration.SetCurrent(new FakeDomainObjectsConfiguration(storage: storageConfiguration)); var rootAssemblyFinder = new FixedRootAssemblyFinder(new RootAssembly(typeof(BaseSecurityManagerObject).Assembly, true)); var assemblyLoader = new FilteringAssemblyLoader(ApplicationAssemblyLoaderFilter.Instance); var assemblyFinder = new CachingAssemblyFinderDecorator(new AssemblyFinder(rootAssemblyFinder, assemblyLoader)); ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(assemblyFinder); MappingConfiguration.SetCurrent( new MappingConfiguration( new MappingReflector( typeDiscoveryService, new ClassIDProvider(), new ReflectionBasedMemberInformationNameResolver(), new PropertyMetadataReflector(), new DomainModelConstraintProvider(), MappingReflector.CreateDomainObjectCreator()), new PersistenceModelLoader(new StorageGroupBasedStorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage)))); SqlConnection.ClearAllPools(); DatabaseAgent masterAgent = new DatabaseAgent(MasterConnectionString); masterAgent.ExecuteBatchFile("SecurityManagerCreateDB.sql", false, DatabaseConfiguration.GetReplacementDictionary()); DatabaseAgent databaseAgent = new DatabaseAgent(TestDomainConnectionString); databaseAgent.ExecuteBatchFile("SecurityManagerSetupDB.sql", true); databaseAgent.ExecuteBatchFile("SecurityManagerSetupConstraints.sql", true); databaseAgent.ExecuteBatchFile("SecurityManagerSetupDBSpecialTables.sql", true); } catch (Exception e) { Console.WriteLine(e); } }
public void SetUp() { var mappingLoader = new MappingReflector( new FixedTypeDiscoveryService(GetReflectedTypes()), new ClassIDProvider(), new ReflectionBasedMemberInformationNameResolver(), new PropertyMetadataReflector(), new DomainModelConstraintProvider(), new ThrowingDomainObjectCreator()); _storageObjectFactory = CreateSqlStorageObjectFactory(); var storageProviderDefinitionFinderStub = MockRepository.GenerateStub <IStorageProviderDefinitionFinder>(); _storageProviderDefinition = new RdbmsProviderDefinition("test", _storageObjectFactory, DatabaseTest.TestDomainConnectionString); storageProviderDefinitionFinderStub .Stub(stub => stub.GetStorageProviderDefinition(Arg <ClassDefinition> .Is.Anything, Arg <string> .Is.Anything)) .Return(_storageProviderDefinition); var persistenceModelLoader = _storageObjectFactory.CreatePersistenceModelLoader(_storageProviderDefinition, storageProviderDefinitionFinderStub); _mappingConfiguration = new MappingConfiguration(mappingLoader, persistenceModelLoader); MappingConfiguration.SetCurrent(_mappingConfiguration); }
protected virtual void InitializeConfiguration(string assemblyDirectory) { ApplicationAssemblyLoaderFilter filter = ApplicationAssemblyLoaderFilter.Instance; // TODO: Duplicates logic from AssemblyFinder? The DLL searching part below can probably be removed. List<Assembly> assemblies = new List<Assembly>(); DirectoryInfo dir = new DirectoryInfo (assemblyDirectory); foreach (FileInfo file in dir.GetFiles ("*.dll")) { Assembly asm = Assembly.LoadFile (file.FullName); if (filter.ShouldConsiderAssembly (asm.GetName()) && filter.ShouldIncludeAssembly (asm)) assemblies.Add (asm); } DomainObjectsConfiguration.SetCurrent ( new FakeDomainObjectsConfiguration (DomainObjectsConfiguration.Current.MappingLoader, GetPersistenceConfiguration (), new QueryConfiguration())); var rootAssemblyFinder = new FixedRootAssemblyFinder(assemblies.Select(a => new RootAssembly(a, false)).ToArray()); var assemblyLoader = new FilteringAssemblyLoader(filter); ITypeDiscoveryService typeDiscoveryService = new AssemblyFinderTypeDiscoveryService(new AssemblyFinder(rootAssemblyFinder, assemblyLoader)); var mappingReflector = new MappingReflector (typeDiscoveryService); var persistenceModelLoader = new PersistenceModelLoader(new StorageProviderDefinitionFinder(DomainObjectsConfiguration.Current.Storage)); var mappingConfiguration = new MappingConfiguration (mappingReflector, persistenceModelLoader); MappingConfiguration.SetCurrent (mappingConfiguration); }
public void Initialization_MappingObjectFactory_InstanceCreator() { var defaultCreator = new MappingReflector().MappingObjectFactory.CreateClassDefinition(typeof(Order), null).InstanceCreator; Assert.That(defaultCreator, Is.TypeOf <DomainObjectCreator>()); }
public void Initialization_DefaultTypeDiscoveryService() { var reflector = new MappingReflector(); Assert.That(reflector.TypeDiscoveryService, Is.SameAs(ContextAwareTypeUtility.GetTypeDiscoveryService())); }