public void Generate_can_output_rename_procedure_statements() { var model1 = new TestContext(); var model2 = new TestContext_v2(); var commandTreeGenerator = new ModificationCommandTreeGenerator(TestContext.CreateDynamicUpdateModel()); var renameProcedureOperation = new EdmModelDiffer() .Diff( model1.GetModel(), model2.GetModel(), new Lazy<ModificationCommandTreeGenerator>(() => commandTreeGenerator), new SqlServerMigrationSqlGenerator()) .OfType<RenameProcedureOperation>() .Single(); var migrationSqlGenerator = new SqlServerMigrationSqlGenerator(); var sql = migrationSqlGenerator.Generate(new[] { renameProcedureOperation }, "2008").Join(s => s.Sql, Environment.NewLine); Assert.Equal(@"EXECUTE sp_rename @objname = N'dbo.Order_Insert', @newname = N'sproc_A', @objtype = N'OBJECT'", sql); }
public void Generate_can_output_alter_procedure_statements() { var model1 = new TestContext(); var model2 = new TestContext_v2(); var commandTreeGenerator = new ModificationCommandTreeGenerator(TestContext.CreateDynamicUpdateModel()); var alterProcedureOperation = new EdmModelDiffer() .Diff( model1.GetModel(), model2.GetModel(), new Lazy<ModificationCommandTreeGenerator>(() => commandTreeGenerator), new SqlServerMigrationSqlGenerator()) .OfType<AlterProcedureOperation>() .Single(c => c.Name == "dbo.Order_Update"); var migrationSqlGenerator = new SqlServerMigrationSqlGenerator(); var sql = migrationSqlGenerator.Generate(new[] { alterProcedureOperation }, "2008").Join(s => s.Sql, Environment.NewLine); Assert.Equal( @"ALTER PROCEDURE [dbo].[Order_Update] @order_id [int], @key_for_update2 [uniqueidentifier], @Code [nvarchar](128), @Signature [varbinary](128), @Name [nvarchar](max), @Name_Original [nvarchar](max), @Address_Street [nvarchar](max), @Address_City [nvarchar](max), @Address_CountryOrRegion_Name [nvarchar](max), @OrderGroupId [int], @RowVersion_Original [rowversion], @Customer_CustomerId [int] AS BEGIN UPDATE [dbo].[Orders] SET [Name] = @Name, [Address_Street] = @Address_Street, [Address_City] = @Address_City, [Address_CountryOrRegion_Name] = @Address_CountryOrRegion_Name, [OrderGroupId] = @OrderGroupId, [Customer_CustomerId] = @Customer_CustomerId WHERE (((((([order_id] = @order_id) AND ([Key] = @key_for_update2)) AND ([Code] = @Code)) AND ([Signature] = @Signature)) AND (([Name] = @Name_Original) OR ([Name] IS NULL AND @Name_Original IS NULL))) AND (([RowVersion] = @RowVersion_Original) OR ([RowVersion] IS NULL AND @RowVersion_Original IS NULL))) SELECT t0.[OrderNo], t0.[RowVersion] FROM [dbo].[Orders] AS t0 WHERE @@ROWCOUNT > 0 AND t0.[order_id] = @order_id AND t0.[Key] = @key_for_update2 AND t0.[Code] = @Code AND t0.[Signature] = @Signature END", sql); }