Exemplo n.º 1
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);
        }
        public override void SetUp()
        {
            base.SetUp();

            _classDefinitionForFirstStorageProvider1 = ClassDefinitionObjectMother.CreateClassDefinitionWithMixins(typeof(Order));
            _classDefinitionForFirstStorageProvider2 = ClassDefinitionObjectMother.CreateClassDefinitionWithMixins(typeof(OrderItem));
            _classDefinitionForSecondStorageProvider = ClassDefinitionObjectMother.CreateClassDefinitionWithMixins(typeof(Order));
            _classDefinitionForThirdStorageProvider  = ClassDefinitionObjectMother.CreateClassDefinitionWithMixins(typeof(Customer));

            _firstProviderStorageEntityDefinitionStub = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>();
            _firstProviderStorageEntityDefinitionStub.Stub(stub => stub.StorageProviderDefinition).Return(SchemaGenerationFirstStorageProviderDefinition);

            _secondProviderStorageEntityDefinitionStub = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>();
            _secondProviderStorageEntityDefinitionStub.Stub(stub => stub.StorageProviderDefinition).Return(
                SchemaGenerationSecondStorageProviderDefinition);

            _thirdProviderStorageEntityDefinitionStub = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>();
            _thirdProviderStorageEntityDefinitionStub.Stub(stub => stub.StorageProviderDefinition).Return(
                new NoRdbmsUnitTestStorageProviderStubDefinition("Test"));

            _classDefinitionForFirstStorageProvider1.SetStorageEntity(_firstProviderStorageEntityDefinitionStub);
            _classDefinitionForFirstStorageProvider2.SetStorageEntity(_firstProviderStorageEntityDefinitionStub);
            _classDefinitionForSecondStorageProvider.SetStorageEntity(_secondProviderStorageEntityDefinitionStub);
            _classDefinitionForThirdStorageProvider.SetStorageEntity(_thirdProviderStorageEntityDefinitionStub);

            _fakeScriptResult1 = new ScriptPair("CreateScript1", "DropScript1");
            _fakeScriptResult2 = new ScriptPair("CreateScript2", "DropScript2");
            _fakeScriptResult3 = new ScriptPair("CreateScript3", "DropScript3");
            _entityDefininitionProviderMock            = MockRepository.GenerateStrictMock <IRdbmsStorageEntityDefinitionProvider>();
            _scriptBuilderForFirstStorageProviderMock  = MockRepository.GenerateStrictMock <IScriptBuilder>();
            _scriptBuilderForSecondStorageProviderMock = MockRepository.GenerateStrictMock <IScriptBuilder>();
            _scriptBuilderForThirdStorageProviderMock  = MockRepository.GenerateStrictMock <IScriptBuilder>();

            _scriptToStringConverterStub = MockRepository.GenerateStub <IScriptToStringConverter>();
            _scriptToStringConverterStub.Stub(stub => stub.Convert(_scriptBuilderForFirstStorageProviderMock)).Return(_fakeScriptResult1);
            _scriptToStringConverterStub.Stub(stub => stub.Convert(_scriptBuilderForSecondStorageProviderMock)).Return(_fakeScriptResult2);
            _scriptToStringConverterStub.Stub(stub => stub.Convert(_scriptBuilderForThirdStorageProviderMock)).Return(_fakeScriptResult3);


            _scriptGenerator = new ScriptGenerator(
                pd =>
            {
                switch (pd.Name)
                {
                case "SchemaGenerationFirstStorageProvider":
                    return(_scriptBuilderForFirstStorageProviderMock);

                case "SchemaGenerationSecondStorageProvider":
                    return(_scriptBuilderForSecondStorageProviderMock);

                case "SchemaGenerationThirdStorageProvider":
                    return(_scriptBuilderForThirdStorageProviderMock);
                }
                throw new InvalidOperationException("Invalid storage provider!");
            },
                _entityDefininitionProviderMock,
                _scriptToStringConverterStub);

            _fakeEntityDefinition1 = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>();
            _fakeEntityDefinition2 = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>();
            _fakeEntityDefinition3 = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>();
        }