public override void CanDeleteDataForAllRowsWithCustomSchema() { var expression = GeneratorTestHelper.GetDeleteDataAllRowsExpression(); expression.SchemaName = "TestSchema"; var result = Generator.Generate(expression); result.ShouldBe("DELETE FROM [TestSchema].[TestTable1] WHERE 1 = 1"); }
public override void CanAlterColumnWithCustomSchema() { //TODO: This will fail if there are any keys attached var expression = GeneratorTestHelper.GetAlterColumnExpression(); expression.SchemaName = "TestSchema"; var result = Generator.Generate(expression); result.ShouldBe("ALTER TABLE [TestSchema].[TestTable1] ALTER COLUMN [TestColumn1] NVARCHAR(20) NOT NULL"); }
public void CanCreateTableWithDefaultSchema() { var expression = GeneratorTestHelper.GetCreateTableExpression(); var sql = generator.Generate(expression); sql.ShouldBe("CREATE TABLE [dbo].[TestTable1] ([TestColumn1] NVARCHAR(255) NOT NULL, [TestColumn2] INT NOT NULL)"); }
public void CanInsertDataWithDefaultSchema() { var expression = GeneratorTestHelper.GetInsertDataExpression(); var sql = generator.Generate(expression); var expected = "INSERT INTO [dbo].[TestTable1] ([Id], [Name], [Website]) VALUES (1, 'Just''in', 'codethinked.com');"; expected += @" INSERT INTO [dbo].[TestTable1] ([Id], [Name], [Website]) VALUES (2, 'Na\te', 'kohari.org')"; sql.ShouldBe(expected); }
public override void CanCreateTableWithCustomColumnTypeWithCustomSchema() { var expression = GeneratorTestHelper.GetCreateTableExpression(); expression.SchemaName = "TestSchema"; expression.Columns[0].IsPrimaryKey = true; expression.Columns[1].Type = null; expression.Columns[1].CustomType = "[timestamp]"; var result = Generator.Generate(expression); result.ShouldBe("CREATE TABLE [TestSchema].[TestTable1] ([TestColumn1] NVARCHAR(255) NOT NULL, [TestColumn2] [timestamp] NOT NULL, PRIMARY KEY ([TestColumn1]))"); }
public void CanDropColumnWithDefaultSchema() { //This does not work if it is a primary key var expression = GeneratorTestHelper.GetDeleteColumnExpression(); var sql = generator.Generate(expression); string expected = "DECLARE @default sysname, @sql nvarchar(max);" + Environment.NewLine + Environment.NewLine + "-- get name of default constraint" + Environment.NewLine + "SELECT @default = name" + Environment.NewLine + "FROM sys.default_constraints" + Environment.NewLine + "WHERE parent_object_id = object_id('[dbo].[TestTable1]')" + Environment.NewLine + "AND type = 'D'" + Environment.NewLine + "AND parent_column_id = (" + Environment.NewLine + "SELECT column_id" + Environment.NewLine + "FROM sys.columns" + Environment.NewLine + "WHERE object_id = object_id('[dbo].[TestTable1]')" + Environment.NewLine + "AND name = 'TestColumn1'" + Environment.NewLine + ");" + Environment.NewLine + Environment.NewLine + "-- create alter table command to drop constraint as string and run it" + Environment.NewLine + "SET @sql = N'ALTER TABLE [dbo].[TestTable1] DROP CONSTRAINT ' + @default;" + Environment.NewLine + "EXEC sp_executesql @sql;" + Environment.NewLine + Environment.NewLine + "-- now we can finally drop column" + Environment.NewLine + "ALTER TABLE [dbo].[TestTable1] DROP COLUMN [TestColumn1];" + Environment.NewLine; sql.ShouldBe(expected); }
public override void CanCreateClusteredIndexWithCustomSchema() { var expression = GeneratorTestHelper.GetCreateIndexExpression(); expression.Index.SchemaName = "TestSchema"; expression.Index.IsClustered = true; var result = Generator.Generate(expression); result.ShouldBe("CREATE CLUSTERED INDEX [TestIndex] ON [TestSchema].[TestTable1] ([TestColumn1] ASC)"); }
public void CanAddColumnWithDefaultSchema() { var expression = GeneratorTestHelper.GetCreateColumnExpression(); var sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE [dbo].[TestTable1] ADD [TestColumn1] NVARCHAR(5) NOT NULL"); }
public override void CanCreateNullableColumnWithCustomDomainTypeAndCustomSchema() { var expression = GeneratorTestHelper.GetCreateColumnExpressionWithNullableCustomType(); expression.SchemaName = "TestSchema"; var result = Generator.Generate(expression); result.ShouldBe("ALTER TABLE [TestSchema].[TestTable1] ADD [TestColumn1] MyDomainType NULL"); }
public void CanCreateTableWithIgnoredRowGuidCol() { var expression = new CreateTableExpression() { TableName = "TestTable1", }; var serviceProvider = new ServiceCollection().BuildServiceProvider(); var querySchema = new Mock <IQuerySchema>(); new CreateTableExpressionBuilder(expression, new MigrationContext(querySchema.Object, serviceProvider, null, null)) .WithColumn("Id").AsGuid().PrimaryKey().RowGuid(); var result = Generator.Generate(expression); result.ShouldBe("CREATE TABLE [dbo].[TestTable1] ([Id] UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL, PRIMARY KEY ([Id]))"); }