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