Ejemplo n.º 1
0
        public void ShouldScriptAddForeignKey()
        {
            SetupResult.For(templateManager.CreateForeignKey).Return(@"CreateForeignKey.vm");
            mocks.ReplayAll();

            TableStub      fkTable = db.AddStubbedTable("Customer");
            ColumnStub     fkCol   = fkTable.AddStubbedColumn("BillingID", "INT");
            ForeignKeyStub fk      = fkCol.AddForeignKeyStub("FK_Customer_BillingID");

            TableStub  pkTable = db.AddStubbedTable("Billing");
            ColumnStub pkCol   = pkTable.AddStubbedColumn("BillingID", "INT");

            fk.primaryColumns.Add(pkCol);
            fk.primaryTable = pkTable;

            SqlScript script = scriptBuilder.Create(fk);
            string    sql    = script.ToScript();

            Console.WriteLine(sql);
            Assert.IsTrue(sql.Contains("IF NOT EXISTS"), "Missing IF NOT EXISTS");
            Assert.IsTrue(sql.Contains("ALTER TABLE [dbo].[Customer]"), "Missing ALTER TABLE");
            Assert.IsTrue(sql.Contains("ADD CONSTRAINT"), "Missing ADD CONSTRAINT");
            Assert.IsTrue(sql.Contains("FK_Customer_BillingID"), "Missing FK_Customer_BillingID");
            Assert.IsTrue(sql.Contains("REFERENCES [dbo].[Billing]"), "Missing REFERENCES Billing");
        }
Ejemplo n.º 2
0
        public void ShouldReturnForeignKeyDoesNotExistWhenTableDoesNotExist()
        {
            DatabaseStub srcDB    = new DatabaseStub("SourceDB");
            TableStub    srcTable = srcDB.AddStubbedTable("Table1");
            ColumnStub   srcCol   = srcTable.AddStubbedColumn("Col1", "INT");

            srcCol.AddForeignKeyStub("FK1");

            DatabaseStub targetDB = new DatabaseStub("TargetDB");

            Assert.IsFalse(comparer.ForeignKey(srcTable.ForeignKeys[0]).ExistsIn(targetDB));
        }
Ejemplo n.º 3
0
        public void ShouldReturnIndexDoesNotExistWhenTableDoesNotExist()
        {
            DatabaseStub srcDB    = new DatabaseStub("SourceDB");
            TableStub    srcTable = srcDB.AddStubbedTable("Table1");
            ColumnStub   srcCol   = srcTable.AddStubbedColumn("Col1", "INT");

            srcTable.AddStubbedIndex(srcCol, "IX_COL1");

            DatabaseStub targetDB = new DatabaseStub("TargetDB");

            Assert.IsFalse(comparer.Index(srcTable.Indexes[0]).ExistsIn(targetDB));
        }
Ejemplo n.º 4
0
        public void ShouldScriptDropColumn()
        {
            SetupResult.For(templateManager.DropColumn).Return(@"DropColumn.vm");
            mocks.ReplayAll();

            ColumnStub column = table.AddStubbedColumn("LastName", "NVARCVHAR(50)");

            SqlScript script = scriptBuilder.Drop(column);
            string    sql    = script.ToScript();

            Console.WriteLine(sql);
            Assert.IsTrue(sql.Contains("IF EXISTS"), "Missing IF EXISTS");
            Assert.IsTrue(sql.Contains("ALTER TABLE [dbo].[Customer]"), "Missing ALTER TABLE");
            Assert.IsTrue(sql.Contains("DROP [LastName]"), "Missing DROP column");
        }
Ejemplo n.º 5
0
        public void SetUp()
        {
            table = new TableStub(new DatabaseStub("Test"), "Customers");
            ColumnStub col1 = table.AddStubbedColumn("CustomerID", "INT");

            col1.DataType = (int)OleDbType.Integer;
            ColumnStub col2 = table.AddStubbedColumn("FirstName", "NVARCHAR(50)");

            col2.DataType = (int)OleDbType.VarWChar;
            ColumnStub col3 = table.AddStubbedColumn("DateOfBirth", "DATETIME");

            col3.DataType = (int)OleDbType.Date;

            gen = new SqlServerXsdGenerator();
        }
Ejemplo n.º 6
0
        public void ShouldScriptAddColumn()
        {
            SetupResult.For(templateManager.CreateColumn).Return(@"AddColumn.vm");
            mocks.ReplayAll();

            ColumnStub column = table.AddStubbedColumn("LastName", "NVARCHAR(50)");

            column.isNullable = false;

            SqlScript script = scriptBuilder.Create(column);
            string    sql    = script.ToScript();

            Console.WriteLine(sql);
            Assert.IsTrue(sql.Contains("IF NOT EXISTS"), "Missing IF NOT EXISTS");
            Assert.IsTrue(sql.Contains("ALTER TABLE [dbo].[Customer]"), "Missing ALTER TABLE");
            Assert.IsTrue(sql.Contains("ADD [LastName] NVARCHAR(50) NOT NULL"), "Missing ADD column");
        }
Ejemplo n.º 7
0
        public void ShouldScriptCreateUniqueIndex()
        {
            SetupResult.For(templateManager.CreateIndex).Return(@"CreateIndex.vm");
            mocks.ReplayAll();

            ColumnStub column = table.AddStubbedColumn("LastName", "NVARCHAR(50)");
            IndexStub  index  = table.AddStubbedIndex(column, "IX_LastName");

            index.unique = true;

            SqlScript script = scriptBuilder.Create(index);
            string    sql    = script.ToScript();

            Console.WriteLine(sql);
            Assert.IsTrue(sql.Contains("IF NOT EXISTS"), "Missing IF NOT EXISTS");
            Assert.IsTrue(sql.Contains("CREATE UNIQUE NONCLUSTERED INDEX [IX_LastName]"),
                          "Missing CREATE NONCLUSTERED INDEX");
            Assert.IsTrue(sql.Contains("[dbo].[Customer]"), "Missing [dbo].[Customer]");
            Assert.IsTrue(sql.Contains("LastName"), "Missing LastName");
        }