From de1f93fa2c2b9081dd8c6373d45323931239c64f Mon Sep 17 00:00:00 2001 From: Shay Rojansky Date: Thu, 7 May 2020 20:33:24 +0200 Subject: [PATCH] Add test coverage for altering check constraints (#20877) --- .../MigrationsTestBase.cs | 16 ++++++++++++++++ .../MigrationsSqlServerTest.cs | 10 ++++++++++ .../MigrationsSqliteTest.cs | 4 ++++ 3 files changed, 30 insertions(+) diff --git a/test/EFCore.Relational.Specification.Tests/MigrationsTestBase.cs b/test/EFCore.Relational.Specification.Tests/MigrationsTestBase.cs index 1b9d9c1260a..6f7ed9b1339 100644 --- a/test/EFCore.Relational.Specification.Tests/MigrationsTestBase.cs +++ b/test/EFCore.Relational.Specification.Tests/MigrationsTestBase.cs @@ -1114,6 +1114,22 @@ public virtual Task Add_check_constraint_with_name() // TODO: no scaffolding support for check constraints, https://github.com/aspnet/EntityFrameworkCore/issues/15408 }); + [ConditionalFact] + public virtual Task Alter_check_constraint() + => Test( + builder => builder.Entity( + "People", e => + { + e.Property("Id"); + e.Property("DriverLicense"); + }), + builder => builder.Entity("People").HasCheckConstraint("CK_Foo", $"{DelimitIdentifier("DriverLicense")} > 0"), + builder => builder.Entity("People").HasCheckConstraint("CK_Foo", $"{DelimitIdentifier("DriverLicense")} > 1"), + model => + { + // TODO: no scaffolding support for check constraints, https://github.com/aspnet/EntityFrameworkCore/issues/15408 + }); + [ConditionalFact] public virtual Task Drop_check_constraint() => Test( diff --git a/test/EFCore.SqlServer.FunctionalTests/MigrationsSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/MigrationsSqlServerTest.cs index 8318bee4e62..855d3b9606a 100644 --- a/test/EFCore.SqlServer.FunctionalTests/MigrationsSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/MigrationsSqlServerTest.cs @@ -1565,6 +1565,16 @@ public override async Task Add_check_constraint_with_name() @"ALTER TABLE [People] ADD CONSTRAINT [CK_Foo] CHECK ([DriverLicense] > 0);"); } + public override async Task Alter_check_constraint() + { + await base.Alter_check_constraint(); + + AssertSql( + @"ALTER TABLE [People] DROP CONSTRAINT [CK_Foo];", + // + @"ALTER TABLE [People] ADD CONSTRAINT [CK_Foo] CHECK ([DriverLicense] > 1);"); + } + public override async Task Drop_check_constraint() { await base.Drop_check_constraint(); diff --git a/test/EFCore.Sqlite.FunctionalTests/MigrationsSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/MigrationsSqliteTest.cs index adbc99d98bc..cce2f16ffa7 100644 --- a/test/EFCore.Sqlite.FunctionalTests/MigrationsSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/MigrationsSqliteTest.cs @@ -387,6 +387,10 @@ public override Task Add_check_constraint_with_name() => AssertNotSupportedAsync( base.Add_check_constraint_with_name, SqliteStrings.InvalidMigrationOperation("CreateCheckConstraintOperation")); + public override Task Alter_check_constraint() + => AssertNotSupportedAsync( + base.Alter_check_constraint, SqliteStrings.InvalidMigrationOperation("DropCheckConstraintOperation")); + public override Task Drop_check_constraint() => AssertNotSupportedAsync(base.Drop_check_constraint, SqliteStrings.InvalidMigrationOperation("DropCheckConstraintOperation"));