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)); }
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)); }
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); }