From 165c1951807c03d8ffdead78df8943b9d83a2931 Mon Sep 17 00:00:00 2001 From: Christopher Jolly Date: Mon, 1 Jan 2024 01:19:09 +0800 Subject: [PATCH] Use a different string for the ReallyLargeString. When using the new line the string concatenation of chr(10) & chr(13) etc became too complex for Jet --- test/EFCore.Jet.FunctionalTests/BatchingTest.cs | 2 +- .../BuiltInDataTypesJetTest.cs | 9 +-------- .../BulkUpdates/NonSharedModelBulkUpdatesJetTest.cs | 10 +++++----- .../ConvertToProviderTypesJetTest.cs | 4 ++++ .../CustomConvertersJetTest.cs | 4 ++++ .../EverythingIsBytesJetTest.cs | 9 +-------- .../EverythingIsStringsJetTest.cs | 9 +-------- .../MigrationsInfrastructureJetTest.cs | 12 ++++++------ .../Query/NorthwindSelectQueryJetTest.cs | 3 +-- 9 files changed, 24 insertions(+), 38 deletions(-) diff --git a/test/EFCore.Jet.FunctionalTests/BatchingTest.cs b/test/EFCore.Jet.FunctionalTests/BatchingTest.cs index 9b8df7c..dbea563 100644 --- a/test/EFCore.Jet.FunctionalTests/BatchingTest.cs +++ b/test/EFCore.Jet.FunctionalTests/BatchingTest.cs @@ -133,7 +133,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests context => { var owner1 = new Owner { Id = "0", Name = "Zero" }; - var owner2 = new Owner { Id = "A", Name = string.Join("", Enumerable.Repeat('A', 900)) }; + var owner2 = new Owner { Id = "A", Name = string.Join("", Enumerable.Repeat('A', 255)) }; context.Owners.Add(owner1); context.Owners.Add(owner2); diff --git a/test/EFCore.Jet.FunctionalTests/BuiltInDataTypesJetTest.cs b/test/EFCore.Jet.FunctionalTests/BuiltInDataTypesJetTest.cs index 333a244..4d90917 100644 --- a/test/EFCore.Jet.FunctionalTests/BuiltInDataTypesJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/BuiltInDataTypesJetTest.cs @@ -3118,14 +3118,7 @@ UnicodeDataTypes.StringUnicode ---> [nullable varchar] [MaxLength = 255] public override int LongStringLength => 255; public override string ReallyLargeString - { - get - { - //Jet max is 255 - var res = string.Join("", Enumerable.Repeat("testphrase", 25)); - return res; - } - } + => string.Join("", Enumerable.Repeat("testphrase", 25)); } [Flags] diff --git a/test/EFCore.Jet.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesJetTest.cs b/test/EFCore.Jet.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesJetTest.cs index da7b2e1..8dce3ce 100644 --- a/test/EFCore.Jet.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/BulkUpdates/NonSharedModelBulkUpdatesJetTest.cs @@ -93,16 +93,16 @@ SET `b`.`CreationTimestamp` = #2020-01-01# } //see efcore 31407 for the same problem on SQL Server - public override async Task Update_non_main_table_in_entity_with_entity_splitting(bool async) + public override Task Update_non_main_table_in_entity_with_entity_splitting(bool async) { - await base.Update_non_main_table_in_entity_with_entity_splitting(async); - - AssertSql( + return Assert.ThrowsAnyAsync( + () => base.Update_non_main_table_in_entity_with_entity_splitting(async)); + /*AssertSql( """ UPDATE `BlogsPart1` AS `b0` SET `b0`.`Rating` = IIF(LEN(`b0`.`Title`) IS NULL, NULL, CLNG(LEN(`b0`.`Title`))), `b0`.`Title` = (`b0`.`Rating` & '') -"""); +""");*/ } public override async Task Delete_entity_with_auto_include(bool async) diff --git a/test/EFCore.Jet.FunctionalTests/ConvertToProviderTypesJetTest.cs b/test/EFCore.Jet.FunctionalTests/ConvertToProviderTypesJetTest.cs index ffeebbc..b63da6a 100644 --- a/test/EFCore.Jet.FunctionalTests/ConvertToProviderTypesJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/ConvertToProviderTypesJetTest.cs @@ -1,6 +1,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Linq; using EntityFrameworkCore.Jet.FunctionalTests.TestUtilities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; @@ -183,6 +184,9 @@ UnicodeDataTypes.StringUnicode ---> `nullable nvarchar` [MaxLength = -1] public override DateTime DefaultDateTime => new DateTime(); public override bool PreservesDateTimeKind { get; } + public override string ReallyLargeString + => string.Join("", Enumerable.Repeat("testphrase", 25)); + public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder) => base .AddOptions(builder) diff --git a/test/EFCore.Jet.FunctionalTests/CustomConvertersJetTest.cs b/test/EFCore.Jet.FunctionalTests/CustomConvertersJetTest.cs index 6924f6e..19cbeba 100644 --- a/test/EFCore.Jet.FunctionalTests/CustomConvertersJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/CustomConvertersJetTest.cs @@ -1,6 +1,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Linq; using EntityFrameworkCore.Jet.FunctionalTests.TestUtilities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; @@ -211,6 +212,9 @@ User.Id ---> `uniqueidentifier` public override DateTime DefaultDateTime => new DateTime(); public override bool PreservesDateTimeKind { get; } + public override string ReallyLargeString + => string.Join("", Enumerable.Repeat("testphrase", 25)); + public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder) => base .AddOptions(builder) diff --git a/test/EFCore.Jet.FunctionalTests/EverythingIsBytesJetTest.cs b/test/EFCore.Jet.FunctionalTests/EverythingIsBytesJetTest.cs index ff6bcd5..005b099 100644 --- a/test/EFCore.Jet.FunctionalTests/EverythingIsBytesJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/EverythingIsBytesJetTest.cs @@ -226,14 +226,7 @@ UnicodeDataTypes.StringUnicode ---> [nullable varbinary] [MaxLength = 510] public override bool PreservesDateTimeKind { get; } public override string ReallyLargeString - { - get - { - //Jet max is 255 - var res = string.Join("", Enumerable.Repeat("testphrase", 25)); - return res; - } - } + => string.Join("", Enumerable.Repeat("testphrase", 25)); public override int LongStringLength => 255; diff --git a/test/EFCore.Jet.FunctionalTests/EverythingIsStringsJetTest.cs b/test/EFCore.Jet.FunctionalTests/EverythingIsStringsJetTest.cs index 2824f32..5429bb6 100644 --- a/test/EFCore.Jet.FunctionalTests/EverythingIsStringsJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/EverythingIsStringsJetTest.cs @@ -216,14 +216,7 @@ UnicodeDataTypes.StringUnicode ---> [nullable varchar] [MaxLength = 255] public override bool PreservesDateTimeKind { get; } public override string ReallyLargeString - { - get - { - //Jet max is 255 - var res = string.Join("", Enumerable.Repeat("testphrase", 25)); - return res; - } - } + => string.Join("", Enumerable.Repeat("testphrase", 25)); public override int LongStringLength => 255; diff --git a/test/EFCore.Jet.FunctionalTests/MigrationsInfrastructureJetTest.cs b/test/EFCore.Jet.FunctionalTests/MigrationsInfrastructureJetTest.cs index 120bdfd..86420e8 100644 --- a/test/EFCore.Jet.FunctionalTests/MigrationsInfrastructureJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/MigrationsInfrastructureJetTest.cs @@ -484,7 +484,7 @@ COMMIT TRANSACTION; b.HasIndex("NormalizedName") .IsUnique() .HasName("RoleNameIndex") // Don't change to HasDatabaseName - .HasFilter("`NormalizedName` IS NOT NULL"); + .HasFilter("IGNORE NULL"); b.ToTable("AspNetRoles"); }); @@ -557,7 +557,7 @@ COMMIT TRANSACTION; b.HasIndex("NormalizedUserName") .IsUnique() .HasName("UserNameIndex") - .HasFilter("`NormalizedUserName` IS NOT NULL"); + .HasFilter("IGNORE NULL"); b.ToTable("AspNetUsers"); }); @@ -725,7 +725,7 @@ COMMIT TRANSACTION; b.HasIndex("NormalizedName") .IsUnique() .HasName("RoleNameIndex") - .HasFilter("`NormalizedName` IS NOT NULL"); + .HasFilter("IGNORE NULL"); b.ToTable("AspNetRoles"); }); @@ -798,7 +798,7 @@ COMMIT TRANSACTION; b.HasIndex("NormalizedUserName") .IsUnique() .HasName("UserNameIndex") - .HasFilter("`NormalizedUserName` IS NOT NULL"); + .HasFilter("IGNORE NULL"); b.ToTable("AspNetUsers"); }); @@ -969,7 +969,7 @@ COMMIT TRANSACTION; b.HasIndex("NormalizedName") .IsUnique() .HasName("RoleNameIndex") - .HasFilter("`NormalizedName` IS NOT NULL"); + .HasFilter("IGNORE NULL"); b.ToTable("AspNetRoles"); }); @@ -1060,7 +1060,7 @@ COMMIT TRANSACTION; b.HasIndex("NormalizedUserName") .IsUnique() .HasName("UserNameIndex") - .HasFilter("`NormalizedUserName` IS NOT NULL"); + .HasFilter("IGNORE NULL"); b.ToTable("AspNetUsers"); }); diff --git a/test/EFCore.Jet.FunctionalTests/Query/NorthwindSelectQueryJetTest.cs b/test/EFCore.Jet.FunctionalTests/Query/NorthwindSelectQueryJetTest.cs index 8f4f4d4..302be6f 100644 --- a/test/EFCore.Jet.FunctionalTests/Query/NorthwindSelectQueryJetTest.cs +++ b/test/EFCore.Jet.FunctionalTests/Query/NorthwindSelectQueryJetTest.cs @@ -698,7 +698,6 @@ FROM `Customers` AS `c`"); FROM `Customers` AS `c`"); } - [ConditionalTheory(Skip = "`SELECT (SELECT TOP 1) FROM` is not supported by Jet.")] public override async Task Project_single_element_from_collection_with_OrderBy_Distinct_and_FirstOrDefault(bool isAsync) { await base.Project_single_element_from_collection_with_OrderBy_Distinct_and_FirstOrDefault(isAsync); @@ -2351,7 +2350,7 @@ WHERE `c`.`CustomerID` = 'ALFKI' SELECT 1 FROM `Customers` AS `c` """, - // +// """ SELECT 1 FROM `Customers` AS `c`