public override void SetUp()
        {
            base.SetUp();

            _indexScriptElementFactoryStub = MockRepository.GenerateStub <IIndexScriptElementFactory>();

            _builder = new IndexScriptBuilder(_indexScriptElementFactoryStub, new SqlCommentScriptElementFactory());

            _indexDefinition1 = MockRepository.GenerateStub <IIndexDefinition>();
            _indexDefinition2 = MockRepository.GenerateStub <IIndexDefinition>();
            _indexDefinition3 = MockRepository.GenerateStub <IIndexDefinition>();

            _tableDefinition1 = TableDefinitionObjectMother.CreateWithIndexes(
                SchemaGenerationFirstStorageProviderDefinition,
                new[] { _indexDefinition1 });
            _tableDefinition2 = TableDefinitionObjectMother.CreateWithIndexes(
                SchemaGenerationFirstStorageProviderDefinition,
                new[] { _indexDefinition2, _indexDefinition3 });
            _unionViewDefinition1 = UnionViewDefinitionObjectMother.CreateWithIndexes(
                SchemaGenerationFirstStorageProviderDefinition,
                new[] { _indexDefinition1 });
            _unionViewDefinition2 = UnionViewDefinitionObjectMother.CreateWithIndexes(
                SchemaGenerationFirstStorageProviderDefinition,
                new[] { _indexDefinition2, _indexDefinition3 });
            _filterViewDefinition1 = FilterViewDefinitionObjectMother.CreateWithIndexes(
                SchemaGenerationFirstStorageProviderDefinition,
                new[] { _indexDefinition1 });
            _filterViewDefinition2 = FilterViewDefinitionObjectMother.CreateWithIndexes(
                SchemaGenerationFirstStorageProviderDefinition,
                new[] { _indexDefinition2, _indexDefinition3 });

            _fakeElement1 = MockRepository.GenerateStub <IScriptElement>();
            _fakeElement2 = MockRepository.GenerateStub <IScriptElement>();
            _fakeElement3 = MockRepository.GenerateStub <IScriptElement>();
        }
        public IndexScriptBuilder(IIndexScriptElementFactory indexScriptElementFactory, ICommentScriptElementFactory commentFactory)
        {
            ArgumentUtility.CheckNotNull("indexScriptElementFactory", indexScriptElementFactory);
            ArgumentUtility.CheckNotNull("commentFactory", commentFactory);

            _indexScriptElementFactory = indexScriptElementFactory;
            _createScriptElements      = new ScriptElementCollection();
            _createScriptElements.AddElement(commentFactory.GetCommentElement("Create indexes for tables that were created above"));
            _dropScriptElements = new ScriptElementCollection();
            _dropScriptElements.AddElement(commentFactory.GetCommentElement("Drop all indexes"));
        }