public FilterViewDefinition( StorageProviderDefinition storageProviderDefinition, EntityNameDefinition viewName, IRdbmsStorageEntityDefinition baseEntity, IEnumerable <string> classIDs, ObjectIDStoragePropertyDefinition objectIDProperty, IRdbmsStoragePropertyDefinition timestampProperty, IEnumerable <IRdbmsStoragePropertyDefinition> dataProperties, IEnumerable <IIndexDefinition> indexes, IEnumerable <EntityNameDefinition> synonyms) : base( storageProviderDefinition, viewName, objectIDProperty, timestampProperty, dataProperties, indexes, synonyms) { ArgumentUtility.CheckNotNull("baseEntity", baseEntity); ArgumentUtility.CheckNotNull("classIDs", classIDs); var classIDsList = classIDs.ToList().AsReadOnly(); ArgumentUtility.CheckNotNullOrEmpty("classIDs", classIDsList); if (!(baseEntity is TableDefinition || baseEntity is FilterViewDefinition)) { throw new ArgumentException("The base entity must either be a TableDefinition or a FilterViewDefinition.", "baseEntity"); } _baseEntity = baseEntity; _classIDs = classIDsList; }
private IEnumerable <EntityNameDefinition> CreateSynonymsForFilterViewDefinition( ClassDefinition classDefinition, IRdbmsStorageEntityDefinition baseEntity) { ArgumentUtility.CheckNotNull("classDefinition", classDefinition); ArgumentUtility.CheckNotNull("baseEntity", baseEntity); return(Enumerable.Empty <EntityNameDefinition>()); }
public void AddEntityDefinition(IRdbmsStorageEntityDefinition entityDefinition) { ArgumentUtility.CheckNotNull("entityDefinition", entityDefinition); foreach (var scriptBuilder in _scriptBuilders) { scriptBuilder.AddEntityDefinition(entityDefinition); } }
public void AddEntityDefinition(IRdbmsStorageEntityDefinition entityDefinition) { ArgumentUtility.CheckNotNull("entityDefinition", entityDefinition); InlineRdbmsStorageEntityDefinitionVisitor.Visit( entityDefinition, (table, continuation) => AddTableDefinition(table), (filterView, continuation) => AddFilterViewDefinition(filterView), (unionView, contination) => AddUnionViewDefinition(unionView), (emptyView, continuation) => AddEmptyViewDefinition(emptyView)); }
public void AddEntityDefinition(IRdbmsStorageEntityDefinition entityDefinition) { ArgumentUtility.CheckNotNull("entityDefinition", entityDefinition); InlineRdbmsStorageEntityDefinitionVisitor.Visit( entityDefinition, (table, continuation) => AddIndexes(table.Indexes, table.TableName), (filterView, continuation) => AddIndexes(filterView.Indexes, filterView.ViewName), (unionView, contination) => AddIndexes(unionView.Indexes, unionView.ViewName), (emptyView, continuation) => { }); }
protected virtual IEnumerable <IIndexDefinition> CreateIndexesForFilterViewDefinition( ClassDefinition classDefinition, IRdbmsStorageEntityDefinition baseEntity, IReadOnlyList <IRdbmsStoragePropertyDefinition> allProperties) { ArgumentUtility.CheckNotNull("classDefinition", classDefinition); ArgumentUtility.CheckNotNull("baseEntity", baseEntity); ArgumentUtility.CheckNotNull("allProperties", allProperties); return(Enumerable.Empty <IIndexDefinition>()); }
private void CheckEntityDefinition( IRdbmsStorageEntityDefinition expectedEntityDefinition, string expectedStorageProviderID, string expectedViewName, IRdbmsStoragePropertyDefinition[] expectedStoragePropertyDefinitions, IIndexDefinition[] expectedIndexDefinitions, EntityNameDefinition[] expectedSynonyms) { Assert.That(expectedEntityDefinition.StorageProviderID, Is.EqualTo(expectedStorageProviderID)); Assert.That(expectedEntityDefinition.ViewName, Is.EqualTo(new EntityNameDefinition(null, expectedViewName))); Assert.That(expectedEntityDefinition.GetAllProperties(), Is.EqualTo(expectedStoragePropertyDefinitions)); Assert.That(expectedEntityDefinition.Indexes, Is.EqualTo(expectedIndexDefinitions)); Assert.That(expectedEntityDefinition.Synonyms, Is.EqualTo(expectedSynonyms)); }
private void CheckEmptyViewDefinition( IRdbmsStorageEntityDefinition actualEntityDefinition, string expectedStorageProviderID, string expectedViewName, IRdbmsStoragePropertyDefinition[] expectedStoragePropertyDefinitions, IIndexDefinition[] expectedIndexDefinitions, EntityNameDefinition[] expectedSynonyms) { Assert.That(actualEntityDefinition, Is.TypeOf(typeof(EmptyViewDefinition))); CheckEntityDefinition( actualEntityDefinition, expectedStorageProviderID, expectedViewName, expectedStoragePropertyDefinitions, expectedIndexDefinitions, expectedSynonyms); }
public static FilterViewDefinition Create( StorageProviderDefinition storageProviderDefinition, EntityNameDefinition viewName, IRdbmsStorageEntityDefinition baseEntity, IEnumerable <string> classIDs, ObjectIDStoragePropertyDefinition objectIDProperty, SimpleStoragePropertyDefinition timestampProperty, IEnumerable <IRdbmsStoragePropertyDefinition> dataProperties) { return(new FilterViewDefinition( storageProviderDefinition, viewName, baseEntity, classIDs, objectIDProperty, timestampProperty, dataProperties, new IIndexDefinition[0], new EntityNameDefinition[0])); }
private void CheckUnionViewDefinition( IRdbmsStorageEntityDefinition actualEntityDefinition, string expectedStorageProviderID, string expectedViewName, IStorageEntityDefinition[] expectedStorageEntityDefinitions, IRdbmsStoragePropertyDefinition[] expectedStoragePropertyDefinitions, IIndexDefinition[] expectedIndexDefinitions, EntityNameDefinition[] expectedSynonyms) { Assert.That(actualEntityDefinition, Is.TypeOf(typeof(UnionViewDefinition))); Assert.That(((UnionViewDefinition)actualEntityDefinition).UnionedEntities, Is.EqualTo(expectedStorageEntityDefinitions)); CheckEntityDefinition( actualEntityDefinition, expectedStorageProviderID, expectedViewName, expectedStoragePropertyDefinitions, expectedIndexDefinitions, expectedSynonyms); }
public static void Visit( IRdbmsStorageEntityDefinition entityDefinition, Action <TableDefinition, Action <IRdbmsStorageEntityDefinition> > tableDefinitionHandler, Action <FilterViewDefinition, Action <IRdbmsStorageEntityDefinition> > filterViewDefinitionHandler, Action <UnionViewDefinition, Action <IRdbmsStorageEntityDefinition> > unionViewDefinitionHandler, Action <EmptyViewDefinition, Action <IRdbmsStorageEntityDefinition> > emptyViewDefinitionHandler) { ArgumentUtility.CheckNotNull("entityDefinition", entityDefinition); ArgumentUtility.CheckNotNull("tableDefinitionHandler", tableDefinitionHandler); ArgumentUtility.CheckNotNull("filterViewDefinitionHandler", filterViewDefinitionHandler); ArgumentUtility.CheckNotNull("unionViewDefinitionHandler", unionViewDefinitionHandler); ArgumentUtility.CheckNotNull("emptyViewDefinitionHandler", emptyViewDefinitionHandler); var visitor = new RdbmsStorageEntityDefinitionVisitor( tableDefinitionHandler, filterViewDefinitionHandler, unionViewDefinitionHandler, emptyViewDefinitionHandler); entityDefinition.Accept(visitor); }
public static T Visit <T> ( IRdbmsStorageEntityDefinition entityDefinition, Func <TableDefinition, Func <IRdbmsStorageEntityDefinition, T>, T> tableDefinitionHandler, Func <FilterViewDefinition, Func <IRdbmsStorageEntityDefinition, T>, T> filterViewDefinitionHandler, Func <UnionViewDefinition, Func <IRdbmsStorageEntityDefinition, T>, T> unionViewDefinitionHandler, Func <EmptyViewDefinition, Func <IRdbmsStorageEntityDefinition, T>, T> emptyViewDefinitionHandler) { ArgumentUtility.CheckNotNull("entityDefinition", entityDefinition); ArgumentUtility.CheckNotNull("tableDefinitionHandler", tableDefinitionHandler); ArgumentUtility.CheckNotNull("filterViewDefinitionHandler", filterViewDefinitionHandler); ArgumentUtility.CheckNotNull("unionViewDefinitionHandler", unionViewDefinitionHandler); ArgumentUtility.CheckNotNull("emptyViewDefinitionHandler", emptyViewDefinitionHandler); var visitor = new RdbmsStorageEntityDefinitionVisitor <T> ( tableDefinitionHandler, filterViewDefinitionHandler, unionViewDefinitionHandler, emptyViewDefinitionHandler); entityDefinition.Accept(visitor); return(visitor.ReturnValue); }
private void CheckFilterViewDefinition( IRdbmsStorageEntityDefinition actualEntityDefinition, string expectedStorageProviderID, string expectedViewName, IStorageEntityDefinition expectedBaseEntity, string[] expectedClassIDs, IRdbmsStoragePropertyDefinition[] expectedStoragePropertyDefinitions, IIndexDefinition[] expectedIndexDefinitions, EntityNameDefinition[] expectedSynonyms) { Assert.That(actualEntityDefinition, Is.TypeOf(typeof(FilterViewDefinition))); Assert.That(((FilterViewDefinition)actualEntityDefinition).BaseEntity, Is.SameAs(expectedBaseEntity)); Assert.That(((FilterViewDefinition)actualEntityDefinition).ClassIDs, Is.EqualTo(expectedClassIDs)); CheckEntityDefinition( actualEntityDefinition, expectedStorageProviderID, expectedViewName, expectedStoragePropertyDefinitions, expectedIndexDefinitions, expectedSynonyms); }
public virtual IRdbmsStorageEntityDefinition CreateFilterViewDefinition( ClassDefinition classDefinition, IRdbmsStorageEntityDefinition baseEntity) { ArgumentUtility.CheckNotNull("classDefinition", classDefinition); ArgumentUtility.CheckNotNull("baseEntity", baseEntity); var objectIDProperty = _infrastructureStoragePropertyDefinitionProvider.GetObjectIDStoragePropertyDefinition(); var timestampProperty = _infrastructureStoragePropertyDefinitionProvider.GetTimestampStoragePropertyDefinition(); var dataProperties = _storagePropertyDefinitionResolver.GetStoragePropertiesForHierarchy(classDefinition).ToList(); var allProperties = new[] { objectIDProperty, timestampProperty }.Concat(dataProperties).ToList().AsReadOnly(); return(new FilterViewDefinition( _storageProviderDefinition, _storageNameProvider.GetViewName(classDefinition), baseEntity, GetClassIDsForBranch(classDefinition), objectIDProperty, timestampProperty, dataProperties, CreateIndexesForFilterViewDefinition(classDefinition, baseEntity, allProperties), CreateSynonymsForFilterViewDefinition(classDefinition, baseEntity))); }
private void CheckTableDefinition( IRdbmsStorageEntityDefinition actualEntityDefinition, string expectedStorageProviderID, string expectedTableName, string expectedViewName, IRdbmsStoragePropertyDefinition[] expectedStoragePropertyDefinitions, ITableConstraintDefinition[] expectedTableConstraintDefinitions, IIndexDefinition[] expectedIndexDefinitions, EntityNameDefinition[] expectedSynonyms) { Assert.That(actualEntityDefinition, Is.TypeOf(typeof(TableDefinition))); Assert.That(((TableDefinition)actualEntityDefinition).TableName, Is.EqualTo(new EntityNameDefinition(null, expectedTableName))); CheckEntityDefinition( actualEntityDefinition, expectedStorageProviderID, expectedViewName, expectedStoragePropertyDefinitions, expectedIndexDefinitions, expectedSynonyms); var tableConstraints = ((TableDefinition)actualEntityDefinition).Constraints; Assert.That(tableConstraints.Count, Is.EqualTo(expectedTableConstraintDefinitions.Length)); for (var i = 0; i < expectedTableConstraintDefinitions.Length; i++) { var expectedPrimaryKeyConstraint = expectedTableConstraintDefinitions[i] as PrimaryKeyConstraintDefinition; if (expectedPrimaryKeyConstraint != null) { CheckPrimaryKeyConstraint(tableConstraints[i], expectedPrimaryKeyConstraint); } else { Assert.That(tableConstraints[i], Is.EqualTo(expectedTableConstraintDefinitions[i])); } } }
public void SetUp() { _storageProviderID = "DefaultStorageProvider"; _storageProviderDefinition = new UnitTestStorageProviderStubDefinition(_storageProviderID); _testModel = new RdbmsPersistenceModelLoaderTestHelper(); _entityDefinitionFactoryMock = MockRepository.GenerateStrictMock <IRdbmsStorageEntityDefinitionFactory>(); _dataStoragePropertyDefinitionFactoryMock = MockRepository.GenerateStrictMock <IDataStoragePropertyDefinitionFactory>(); _storageNameProviderStub = MockRepository.GenerateStub <IStorageNameProvider>(); _storageNameProviderStub.Stub(stub => stub.GetTableName(_testModel.TableClassDefinition1)).Return( new EntityNameDefinition(null, _testModel.TableClassDefinition1.ID)); _storageNameProviderStub.Stub(stub => stub.GetTableName(_testModel.TableClassDefinition2)).Return( new EntityNameDefinition(null, _testModel.TableClassDefinition2.ID)); _rdbmsPersistenceModelLoader = new RdbmsPersistenceModelLoader( _entityDefinitionFactoryMock, _dataStoragePropertyDefinitionFactoryMock, _storageNameProviderStub, new RdbmsPersistenceModelProvider()); _fakeEntityDefinitionBaseBase = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>(); _fakeEntityDefinitionBase = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>(); _fakeEntityDefinitionTable1 = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>(); _fakeEntityDefinitionTable2 = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>(); _fakeEntityDefinitionDerived1 = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>(); _fakeEntityDefinitionDerived2 = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>(); _fakeEntityDefinitionDerivedDerived = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>(); _fakeEntityDefinitionDerivedDerivedDerived = MockRepository.GenerateStub <IRdbmsStorageEntityDefinition>(); _fakeColumnDefinition1 = SimpleStoragePropertyDefinitionObjectMother.CreateStorageProperty("Test1"); _fakeColumnDefinition2 = SimpleStoragePropertyDefinitionObjectMother.CreateStorageProperty("Test2"); _fakeColumnDefinition3 = SimpleStoragePropertyDefinitionObjectMother.CreateStorageProperty("Test3"); _fakeColumnDefinition4 = SimpleStoragePropertyDefinitionObjectMother.CreateStorageProperty("Test4"); _fakeColumnDefinition5 = SimpleStoragePropertyDefinitionObjectMother.CreateStorageProperty("Test5"); _fakeColumnDefinition6 = SimpleStoragePropertyDefinitionObjectMother.CreateStorageProperty("Test6"); _fakeColumnDefinition7 = SimpleStoragePropertyDefinitionObjectMother.CreateStorageProperty("Test7"); }
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 static FilterViewDefinition Create( StorageProviderDefinition storageProviderDefinition, EntityNameDefinition viewName, IRdbmsStorageEntityDefinition baseEntity) { return(Create( storageProviderDefinition, viewName, baseEntity, new[] { "ClassID1" }, ObjectIDStoragePropertyDefinitionObjectMother.ObjectIDProperty, SimpleStoragePropertyDefinitionObjectMother.TimestampProperty, new IRdbmsStoragePropertyDefinition[0])); }
public void AddEntityDefinition(IRdbmsStorageEntityDefinition entityDefinition) { ArgumentUtility.CheckNotNull("entityDefinition", entityDefinition); _innerScriptBuilder.AddEntityDefinition(entityDefinition); }
private T ContinueWithNextEntity(IRdbmsStorageEntityDefinition entityDefinition) { entityDefinition.Accept(this); return(_returnValue); }
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>(); }