From f89c46bf3886fc0769526c9aaac25c10fbcd9bc2 Mon Sep 17 00:00:00 2001 From: Shay Rojansky Date: Fri, 24 Jan 2020 23:27:25 +0100 Subject: [PATCH] Minor fixes to migration tests Discovered during implementing on Npgsql Follow-up to #19039 --- .../MigrationsTestBase.cs | 59 ++++++++++--------- .../MigrationsSqlServerTest.cs | 20 +++---- 2 files changed, 40 insertions(+), 39 deletions(-) diff --git a/test/EFCore.Relational.Specification.Tests/MigrationsTestBase.cs b/test/EFCore.Relational.Specification.Tests/MigrationsTestBase.cs index 4867c874e89..b4369174a16 100644 --- a/test/EFCore.Relational.Specification.Tests/MigrationsTestBase.cs +++ b/test/EFCore.Relational.Specification.Tests/MigrationsTestBase.cs @@ -89,7 +89,7 @@ await Test( e.HasKey("CustomId"); e.HasAlternateKey("SSN"); - e.HasCheckConstraint("CK_SSN", $"{DelimitIdentifier("SSN")} > 0"); + e.HasCheckConstraint("CK_EmployerId", $"{DelimitIdentifier("EmployerId")} > 0"); e.HasOne("Employers").WithMany("People").HasForeignKey("EmployerId"); e.HasComment("Table comment"); @@ -338,17 +338,16 @@ public virtual Task Add_column_with_defaultValueSql() => Test( builder => builder.Entity("People").Property("Id"), builder => { }, - builder => builder.Entity("People").Property("Birthday") - .HasColumnType("date") - .HasDefaultValueSql("CURRENT_TIMESTAMP"), + builder => builder.Entity("People").Property("Sum") + .HasDefaultValueSql("1 + 2"), model => { var table = Assert.Single(model.Tables); Assert.Equal(2, table.Columns.Count); - var nameColumn = Assert.Single(table.Columns, c => c.Name == "Birthday"); - Assert.Equal("date", nameColumn.StoreType); - Assert.True(nameColumn.IsNullable); - Assert.Equal("(getdate())", nameColumn.DefaultValueSql); + var sumColumn = Assert.Single(table.Columns, c => c.Name == "Sum"); + Assert.Contains("1", sumColumn.DefaultValueSql); + Assert.Contains("+", sumColumn.DefaultValueSql); + Assert.Contains("2", sumColumn.DefaultValueSql); }); [ConditionalFact] @@ -358,17 +357,17 @@ public virtual Task Add_column_with_computedSql() "People", e => { e.Property("Id"); - e.Property("FirstName"); - e.Property("LastName"); + e.Property("X"); + e.Property("Y"); }), builder => { }, - builder => builder.Entity("People").Property("FullName").HasComputedColumnSql("FirstName + ' ' + LastName"), + builder => builder.Entity("People").Property("Sum").HasComputedColumnSql($"{DelimitIdentifier("X")} + {DelimitIdentifier("Y")}"), model => { var table = Assert.Single(model.Tables); - var column = Assert.Single(table.Columns, c => c.Name == "FullName"); - Assert.Contains("FirstName", column.ComputedColumnSql); - Assert.Contains("LastName", column.ComputedColumnSql); + var sumColumn = Assert.Single(table.Columns, c => c.Name == "Sum"); + Assert.Contains("X", sumColumn.ComputedColumnSql); + Assert.Contains("Y", sumColumn.ComputedColumnSql); }); // TODO: Check this out @@ -581,17 +580,18 @@ public virtual Task Alter_column_make_computed() "People", e => { e.Property("Id"); - e.Property("FirstName"); - e.Property("LastName"); + e.Property("X"); + e.Property("Y"); }), - builder => builder.Entity("People").Property("FullName"), - builder => builder.Entity("People").Property("FullName").HasComputedColumnSql("FirstName + ' ' + LastName"), + builder => builder.Entity("People").Property("Sum"), + builder => builder.Entity("People").Property("Sum").HasComputedColumnSql($"{DelimitIdentifier("X")} + {DelimitIdentifier("Y")}"), model => { var table = Assert.Single(model.Tables); - var column = Assert.Single(table.Columns, c => c.Name == "FullName"); - Assert.Contains("FirstName", column.ComputedColumnSql); - Assert.Contains("LastName", column.ComputedColumnSql); + var sumColumn = Assert.Single(table.Columns, c => c.Name == "Sum"); + Assert.Contains("X", sumColumn.ComputedColumnSql); + Assert.Contains("Y", sumColumn.ComputedColumnSql); + Assert.Contains("+", sumColumn.ComputedColumnSql); }); [ConditionalFact] @@ -601,18 +601,19 @@ public virtual Task Alter_column_change_computed() "People", e => { e.Property("Id"); - e.Property("FirstName"); - e.Property("LastName"); - e.Property("FullName"); + e.Property("X"); + e.Property("Y"); + e.Property("Sum"); }), - builder => builder.Entity("People").Property("FullName").HasComputedColumnSql("FirstName + ' ' + LastName"), - builder => builder.Entity("People").Property("FullName").HasComputedColumnSql("FirstName + ', ' + LastName"), + builder => builder.Entity("People").Property("Sum").HasComputedColumnSql($"{DelimitIdentifier("X")} + {DelimitIdentifier("Y")}"), + builder => builder.Entity("People").Property("Sum").HasComputedColumnSql($"{DelimitIdentifier("X")} - {DelimitIdentifier("Y")}"), model => { var table = Assert.Single(model.Tables); - var column = Assert.Single(table.Columns, c => c.Name == "FullName"); - Assert.Contains("FirstName", column.ComputedColumnSql); - Assert.Contains("LastName", column.ComputedColumnSql); + var sumColumn = Assert.Single(table.Columns, c => c.Name == "Sum"); + Assert.Contains("X", sumColumn.ComputedColumnSql); + Assert.Contains("Y", sumColumn.ComputedColumnSql); + Assert.Contains("-", sumColumn.ComputedColumnSql); }); [ConditionalFact] diff --git a/test/EFCore.SqlServer.FunctionalTests/MigrationsSqlServerTest.cs b/test/EFCore.SqlServer.FunctionalTests/MigrationsSqlServerTest.cs index a2a461b5418..39b99cfe142 100644 --- a/test/EFCore.SqlServer.FunctionalTests/MigrationsSqlServerTest.cs +++ b/test/EFCore.SqlServer.FunctionalTests/MigrationsSqlServerTest.cs @@ -28,7 +28,7 @@ public MigrationsSqlServerTest(MigrationsSqlServerFixture fixture, ITestOutputHe : base(fixture) { Fixture.TestSqlLoggerFactory.Clear(); - //Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); + Fixture.TestSqlLoggerFactory.SetTestOutputHelper(testOutputHelper); } public override async Task Create_table() @@ -56,7 +56,7 @@ public override async Task Create_table_all_settings() [SSN] nvarchar(11) NOT NULL, CONSTRAINT [PK_People] PRIMARY KEY ([CustomId]), CONSTRAINT [AK_People_SSN] UNIQUE ([SSN]), - CONSTRAINT [CK_SSN] CHECK ([SSN] > 0), + CONSTRAINT [CK_EmployerId] CHECK ([EmployerId] > 0), CONSTRAINT [FK_People_Employers_EmployerId] FOREIGN KEY ([EmployerId]) REFERENCES [Employers] ([Id]) ON DELETE NO ACTION ); EXEC sp_addextendedproperty 'MS_Description', N'Table comment', 'SCHEMA', N'dbo2', 'TABLE', N'People'; @@ -315,7 +315,7 @@ public override async Task Add_column_with_defaultValueSql() await base.Add_column_with_defaultValueSql(); AssertSql( - @"ALTER TABLE [People] ADD [Birthday] date NULL DEFAULT (CURRENT_TIMESTAMP);"); + @"ALTER TABLE [People] ADD [Sum] int NOT NULL DEFAULT (1 + 2);"); } public override async Task Add_column_with_computedSql() @@ -323,7 +323,7 @@ public override async Task Add_column_with_computedSql() await base.Add_column_with_computedSql(); AssertSql( - @"ALTER TABLE [People] ADD [FullName] AS FirstName + ' ' + LastName;"); + @"ALTER TABLE [People] ADD [Sum] AS [X] + [Y];"); } public override async Task Add_column_with_required() @@ -495,10 +495,10 @@ public override async Task Alter_column_make_computed() SELECT @var0 = [d].[name] FROM [sys].[default_constraints] [d] INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id] -WHERE ([d].[parent_object_id] = OBJECT_ID(N'[People]') AND [c].[name] = N'FullName'); +WHERE ([d].[parent_object_id] = OBJECT_ID(N'[People]') AND [c].[name] = N'Sum'); IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [People] DROP CONSTRAINT [' + @var0 + '];'); -ALTER TABLE [People] DROP COLUMN [FullName]; -ALTER TABLE [People] ADD [FullName] AS FirstName + ' ' + LastName;"); +ALTER TABLE [People] DROP COLUMN [Sum]; +ALTER TABLE [People] ADD [Sum] AS [X] + [Y];"); } public override async Task Alter_column_change_computed() @@ -510,10 +510,10 @@ public override async Task Alter_column_change_computed() SELECT @var0 = [d].[name] FROM [sys].[default_constraints] [d] INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id] -WHERE ([d].[parent_object_id] = OBJECT_ID(N'[People]') AND [c].[name] = N'FullName'); +WHERE ([d].[parent_object_id] = OBJECT_ID(N'[People]') AND [c].[name] = N'Sum'); IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [People] DROP CONSTRAINT [' + @var0 + '];'); -ALTER TABLE [People] DROP COLUMN [FullName]; -ALTER TABLE [People] ADD [FullName] AS FirstName + ', ' + LastName;"); +ALTER TABLE [People] DROP COLUMN [Sum]; +ALTER TABLE [People] ADD [Sum] AS [X] - [Y];"); } [ConditionalFact]