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);
        }
示例#2
0
        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));
            }
        }
示例#6
0
        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);
            }
        }
示例#7
0
        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);
            }
        }
示例#8
0
        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()));
        }