protected virtual IStorageProviderCommandFactory <IRdbmsProviderCommandExecutionContext> CreateStorageProviderCommandFactory(
            RdbmsProviderDefinition storageProviderDefinition,
            IStorageTypeInformationProvider storageTypeInformationProvider,
            IStorageNameProvider storageNameProvider,
            IRdbmsPersistenceModelProvider persistenceModelProvider,
            IInfrastructureStoragePropertyDefinitionProvider infrastructureStoragePropertyDefinitionProvider,
            IDataStoragePropertyDefinitionFactory dataStoragePropertyDefinitionFactory)
        {
            ArgumentUtility.CheckNotNull("storageProviderDefinition", storageProviderDefinition);
            ArgumentUtility.CheckNotNull("storageNameProvider", storageNameProvider);
            ArgumentUtility.CheckNotNull("persistenceModelProvider", persistenceModelProvider);
            ArgumentUtility.CheckNotNull("infrastructureStoragePropertyDefinitionProvider", infrastructureStoragePropertyDefinitionProvider);
            ArgumentUtility.CheckNotNull("storageTypeInformationProvider", storageTypeInformationProvider);
            ArgumentUtility.CheckNotNull("dataStoragePropertyDefinitionFactory", dataStoragePropertyDefinitionFactory);

            var dataContainerValidator = CreateDataContainerValidator(storageProviderDefinition);

            var objectReaderFactory = new ObjectReaderFactory(
                persistenceModelProvider,
                infrastructureStoragePropertyDefinitionProvider,
                storageTypeInformationProvider,
                dataContainerValidator);

            var dbCommandBuilderFactory = CreateDbCommandBuilderFactory(storageProviderDefinition);

            return(new RdbmsProviderCommandFactory(
                       storageProviderDefinition,
                       dbCommandBuilderFactory,
                       persistenceModelProvider,
                       objectReaderFactory,
                       new TableDefinitionFinder(persistenceModelProvider),
                       dataStoragePropertyDefinitionFactory));
        }
Beispiel #2
0
        public static RdbmsProvider CreateForIntegrationTest(
            RdbmsProviderDefinition storageProviderDefinition,
            Func <RdbmsProviderDefinition, IPersistenceExtension, IStorageProviderCommandFactory <IRdbmsProviderCommandExecutionContext>, RdbmsProvider> ctorCall = null)
        {
            var storageTypeInformationProvider = new SqlStorageTypeInformationProvider();
            var dbCommandBuilderFactory        = new SqlDbCommandBuilderFactory(new SqlDialect());
            var storageNameProvider            = new ReflectionBasedStorageNameProvider();
            var rdbmsPersistenceModelProvider  = new RdbmsPersistenceModelProvider();
            var infrastructureStoragePropertyDefinitionProvider = new InfrastructureStoragePropertyDefinitionProvider(
                storageTypeInformationProvider, storageNameProvider);
            var dataStoragePropertyDefinitionFactory = new DataStoragePropertyDefinitionFactory(
                new ValueStoragePropertyDefinitionFactory(storageTypeInformationProvider, storageNameProvider),
                new RelationStoragePropertyDefinitionFactory(
                    storageProviderDefinition,
                    false,
                    storageNameProvider,
                    storageTypeInformationProvider,
                    new StorageEntityBasedStorageProviderDefinitionFinder()));
            var dataContainerValidator = new CompoundDataContainerValidator(Enumerable.Empty <IDataContainerValidator>());
            var objectReaderFactory    = new ObjectReaderFactory(
                rdbmsPersistenceModelProvider,
                infrastructureStoragePropertyDefinitionProvider,
                storageTypeInformationProvider,
                dataContainerValidator);
            var commandFactory = new RdbmsProviderCommandFactory(
                storageProviderDefinition,
                dbCommandBuilderFactory,
                rdbmsPersistenceModelProvider,
                objectReaderFactory,
                new TableDefinitionFinder(rdbmsPersistenceModelProvider),
                dataStoragePropertyDefinitionFactory);

            if (ctorCall == null)
            {
                ctorCall = (def, ext, factory) => new RdbmsProvider(def, ext, factory, () => new SqlConnection());
            }

            return(ctorCall(storageProviderDefinition, NullPersistenceExtension.Instance, commandFactory));
        }
Beispiel #3
0
        public override void SetUp()
        {
            base.SetUp();

            _rdbmsPersistenceModelProviderStub = MockRepository.GenerateStub <IRdbmsPersistenceModelProvider>();
            _entityDefinitionStub = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>();
            _storageTypeInformationProviderStub = MockRepository.GenerateStub <IStorageTypeInformationProvider>();
            _dataContainerValidatorStub         = MockRepository.GenerateStub <IDataContainerValidator>();

            _objectIDProperty  = ObjectIDStoragePropertyDefinitionObjectMother.ObjectIDProperty;
            _timestampProperty = SimpleStoragePropertyDefinitionObjectMother.TimestampProperty;
            _entityDefinitionStub.Stub(stub => stub.ObjectIDProperty).Return(_objectIDProperty);
            _entityDefinitionStub.Stub(stub => stub.TimestampProperty).Return(_timestampProperty);

            _column1 = ColumnDefinitionObjectMother.CreateColumn("Column1");
            _column2 = ColumnDefinitionObjectMother.CreateColumn("Column2");

            _infrastructureStoragePropertyDefinitionProviderStub = MockRepository.GenerateStrictMock <IInfrastructureStoragePropertyDefinitionProvider> ();
            _factory = new ObjectReaderFactory(
                _rdbmsPersistenceModelProviderStub,
                _infrastructureStoragePropertyDefinitionProviderStub,
                _storageTypeInformationProviderStub,
                _dataContainerValidatorStub);
        }