enable and fix tests

pull/131/head
Christopher Jolly 3 years ago
parent ed726d7478
commit 2f2de12dd5

@ -725,6 +725,11 @@ namespace Microsoft.EntityFrameworkCore.Migrations
}
var columnType = GetColumnType(schema, table, name, operation, model);
//int has no size - ignore
if (columnType.StartsWith("int("))
{
columnType = "int";
}
builder
.Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(name))
.Append(" ")

@ -0,0 +1,29 @@
using System.Data.Common;
using EntityFrameworkCore.Jet.Data;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace EntityFrameworkCore.Jet.FunctionalTests
{
[TestClass]
public class AssemblyInitialization
{
//public static DbConnection Connection;
[AssemblyInitialize]
public static void AssemblyInitialize(TestContext testContext)
{
// This is the only reason why we include the Provider
JetConfiguration.ShowSqlStatements = true;
JetConfiguration.UseConnectionPooling = false;
//Connection = Helpers.CreateAndOpenJetDatabase(Helpers.DefaultJetStoreName);
}
[AssemblyCleanup]
public static void AssemblyCleanup()
{
//Connection?.Dispose();
//Helpers.DeleteJetDatabase(Helpers.DefaultJetStoreName);
}
}
}

@ -2994,7 +2994,7 @@ UnicodeDataTypes.StringUnicode ---> `nullable nvarchar` [MaxLength = -1]
NUMERIC_PRECISION,
NUMERIC_SCALE,
DATETIME_PRECISION
FROM INFORMATION_SCHEMA.COLUMNS";
FROM [INFORMATION_SCHEMA].[COLUMNS]";
var columns = new List<ColumnInfo>();
@ -3169,6 +3169,7 @@ UnicodeDataTypes.StringUnicode ---> `nullable nvarchar` [MaxLength = -1]
public override bool SupportsBinaryKeys => true;
public override DateTime DefaultDateTime => new DateTime();
public override bool PreservesDateTimeKind { get; }
}
[Flags]

@ -181,6 +181,7 @@ UnicodeDataTypes.StringUnicode ---> `nullable nvarchar` [MaxLength = -1]
public override bool SupportsDecimalComparisons => true;
public override DateTime DefaultDateTime => new DateTime();
public override bool PreservesDateTimeKind { get; }
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
=> base

@ -209,6 +209,7 @@ User.Id ---> `uniqueidentifier`
public override bool SupportsDecimalComparisons => true;
public override DateTime DefaultDateTime => new DateTime();
public override bool PreservesDateTimeKind { get; }
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
=> base

@ -12,6 +12,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
<PackageReference Include="xunit.core" />
<PackageReference Include="xunit.assert" />
<PackageReference Include="xunit.runner.visualstudio" />
@ -69,65 +70,20 @@
<None Include="..\xunit.runner.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="BatchingTest.cs" />
<None Include="BuiltInDataTypesJetTest.cs" />
<None Include="CommandConfigurationTest.cs" />
<None Include="CommandInterceptionJetTest.cs" />
<None Include="CompositeKeyEndToEndJetTest.cs" />
<None Include="ComputedColumnTest.cs" />
<None Include="ConcurrencyDetectorJetTest.cs" />
<None Include="ConferencePlannerJetTest.cs" />
<None Include="ConnectionInterceptionJetTest.cs" />
<None Include="ConnectionSpecificationTest.cs" />
<None Include="ConvertToProviderTypesJetTest.cs" />
<None Include="CustomConvertersJetTest.cs" />
<None Include="DataAnnotationJetTest.cs" />
<None Include="DataBindingJetTest.cs" />
<None Include="DbContextPoolingTest.cs" />
<None Include="DefaultValuesTest.cs" />
<None Include="EverythingIsBytesJetTest.cs" />
<None Include="EverythingIsStringsJetTest.cs" />
<None Include="ExecutionStrategyTest.cs" />
<None Include="ExistingConnectionTest.cs" />
<None Include="F1JetFixture.cs" />
<None Include="FieldMappingJetTest.cs" />
<None Include="FindJetTest.cs" />
<None Include="GraphUpdates\GraphUpdatesJetTest.cs" />
<None Include="GraphUpdates\ProxyGraphUpdatesJetTest.cs" />
<None Include="JetComplianceTest.cs" />
<None Include="JetConfigPatternsTest.cs" />
<None Include="JetDatabaseCreatorTest.cs" />
<None Include="JetEndToEndTest.cs" />
<None Include="JetFixture.cs" />
<None Include="JetMigrationsSqlGeneratorTest.cs" />
<None Include="JetQueryTriggersTest.cs" />
<None Include="JetServiceCollectionExtensionsTest.cs" />
<None Include="JetTriggersTest.cs" />
<None Include="JetValueGenerationScenariosTest.cs" />
<None Include="LazyLoadProxyJetTest.cs" />
<None Include="LoadJetTest.cs" />
<None Include="LoggingJetTest.cs" />
<None Include="MigrationsInfrastructureJetTest.cs" />
<None Include="MigrationsJetFixture.cs" />
<None Include="MigrationsSqlGeneratorTestBase.cs" />
<None Include="MonsterFixupChangedChangingJetTest.cs" />
<None Include="MusicStoreJetTest.cs" />
<None Include="NotificationEntitiesJetTest.cs" />
<None Include="OptimisticConcurrencyJetTest.cs" />
<None Include="PropertyEntryJetTest.cs" />
<None Include="PropertyValuesJetTest.cs" />
<None Include="Query\AsyncFromSqlQueryJetTest.cs" />
<None Include="Query\AsyncGearsOfWarQueryJetTest.cs" />
<None Include="Query\ComplexNavigationsQueryJetFixture.cs" />
<None Include="Query\ComplexNavigationsQueryJetTest.cs" />
<None Include="Query\ComplexNavigationsWeakQueryJetFixture.cs" />
<None Include="Query\ComplexNavigationsWeakQueryJetTest.cs" />
<None Include="Query\DbFunctionsJetTest.cs" />
<None Include="Query\FiltersInheritanceQueryJetFixture.cs" />
<None Include="Query\FiltersInheritanceQueryJetTest.cs" />
<None Include="Query\FiltersJetTest.cs" />
<None Include="Query\FromSqlQueryJetTest.cs" />
<None Include="Query\FromSqlSprocQueryJetTest.cs" />
<None Include="Query\FunkyDataQueryJetTest.cs" />
<None Include="Query\GearsOfWarFromSqlQueryJetTest.cs" />
<None Include="Query\GearsOfWarQueryJetFixture.cs" />
@ -152,7 +108,6 @@
<None Include="Query\NorthwindKeylessEntitiesQueryJetTest.cs" />
<None Include="Query\NorthwindMiscellaneousQueryJetTest.cs" />
<None Include="Query\NorthwindNavigationsQueryJetTest.cs" />
<None Include="Query\NorthwindQueryJetFixture.cs" />
<None Include="Query\NorthwindQueryTaggingQueryJetTest.cs" />
<None Include="Query\NorthwindSelectQueryJetTest.cs" />
<None Include="Query\NorthwindSetOperationsQueryJetTest.cs" />
@ -168,17 +123,6 @@
<None Include="Query\SqlExecutorJetTest.cs" />
<None Include="Query\UdfDbFunctionJetTests.cs" />
<None Include="Query\WarningsJetTest.cs" />
<None Include="Scaffolding\JetDatabaseModelFactoryTest.cs" />
<None Include="SeedingJetTest.cs" />
<None Include="SequentialGuidEndToEndTest.cs" />
<None Include="StoreGeneratedFixupJetTest.cs" />
<None Include="StoreGeneratedJetTest.cs" />
<None Include="TableSplittingJetTest.cs" />
<None Include="TransactionInterceptionJetTest.cs" />
<None Include="TransactionJetTest.cs" />
<None Include="UpdatesJetFixture.cs" />
<None Include="UpdatesJetTest.cs" />
<None Include="WithConstructorsJetTest.cs" />
<None Remove="TestResults\**" />
</ItemGroup>
@ -208,65 +152,20 @@
</ItemGroup>
<ItemGroup>
<Compile Remove="BatchingTest.cs" />
<Compile Remove="BuiltInDataTypesJetTest.cs" />
<Compile Remove="CommandConfigurationTest.cs" />
<Compile Remove="CommandInterceptionJetTest.cs" />
<Compile Remove="CompositeKeyEndToEndJetTest.cs" />
<Compile Remove="ComputedColumnTest.cs" />
<Compile Remove="ConcurrencyDetectorJetTest.cs" />
<Compile Remove="ConferencePlannerJetTest.cs" />
<Compile Remove="ConnectionInterceptionJetTest.cs" />
<Compile Remove="ConnectionSpecificationTest.cs" />
<Compile Remove="ConvertToProviderTypesJetTest.cs" />
<Compile Remove="CustomConvertersJetTest.cs" />
<Compile Remove="DataAnnotationJetTest.cs" />
<Compile Remove="DataBindingJetTest.cs" />
<Compile Remove="DbContextPoolingTest.cs" />
<Compile Remove="DefaultValuesTest.cs" />
<Compile Remove="EverythingIsBytesJetTest.cs" />
<Compile Remove="EverythingIsStringsJetTest.cs" />
<Compile Remove="ExecutionStrategyTest.cs" />
<Compile Remove="ExistingConnectionTest.cs" />
<Compile Remove="F1JetFixture.cs" />
<Compile Remove="FieldMappingJetTest.cs" />
<Compile Remove="FindJetTest.cs" />
<Compile Remove="GraphUpdates\GraphUpdatesJetTest.cs" />
<Compile Remove="GraphUpdates\ProxyGraphUpdatesJetTest.cs" />
<Compile Remove="JetComplianceTest.cs" />
<Compile Remove="JetConfigPatternsTest.cs" />
<Compile Remove="JetDatabaseCreatorTest.cs" />
<Compile Remove="JetEndToEndTest.cs" />
<Compile Remove="JetFixture.cs" />
<Compile Remove="JetMigrationsSqlGeneratorTest.cs" />
<Compile Remove="JetQueryTriggersTest.cs" />
<Compile Remove="JetServiceCollectionExtensionsTest.cs" />
<Compile Remove="JetTriggersTest.cs" />
<Compile Remove="JetValueGenerationScenariosTest.cs" />
<Compile Remove="LazyLoadProxyJetTest.cs" />
<Compile Remove="LoadJetTest.cs" />
<Compile Remove="LoggingJetTest.cs" />
<Compile Remove="MigrationsInfrastructureJetTest.cs" />
<Compile Remove="MigrationsJetFixture.cs" />
<Compile Remove="MigrationsSqlGeneratorTestBase.cs" />
<Compile Remove="MonsterFixupChangedChangingJetTest.cs" />
<Compile Remove="MusicStoreJetTest.cs" />
<Compile Remove="NotificationEntitiesJetTest.cs" />
<Compile Remove="OptimisticConcurrencyJetTest.cs" />
<Compile Remove="PropertyEntryJetTest.cs" />
<Compile Remove="PropertyValuesJetTest.cs" />
<Compile Remove="Query\AsyncFromSqlQueryJetTest.cs" />
<Compile Remove="Query\AsyncGearsOfWarQueryJetTest.cs" />
<Compile Remove="Query\ComplexNavigationsQueryJetFixture.cs" />
<Compile Remove="Query\ComplexNavigationsQueryJetTest.cs" />
<Compile Remove="Query\ComplexNavigationsWeakQueryJetFixture.cs" />
<Compile Remove="Query\ComplexNavigationsWeakQueryJetTest.cs" />
<Compile Remove="Query\DbFunctionsJetTest.cs" />
<Compile Remove="Query\FiltersInheritanceQueryJetFixture.cs" />
<Compile Remove="Query\FiltersInheritanceQueryJetTest.cs" />
<Compile Remove="Query\FiltersJetTest.cs" />
<Compile Remove="Query\FromSqlQueryJetTest.cs" />
<Compile Remove="Query\FromSqlSprocQueryJetTest.cs" />
<Compile Remove="Query\FunkyDataQueryJetTest.cs" />
<Compile Remove="Query\GearsOfWarFromSqlQueryJetTest.cs" />
<Compile Remove="Query\GearsOfWarQueryJetFixture.cs" />
@ -291,7 +190,6 @@
<Compile Remove="Query\NorthwindKeylessEntitiesQueryJetTest.cs" />
<Compile Remove="Query\NorthwindMiscellaneousQueryJetTest.cs" />
<Compile Remove="Query\NorthwindNavigationsQueryJetTest.cs" />
<Compile Remove="Query\NorthwindQueryJetFixture.cs" />
<Compile Remove="Query\NorthwindQueryTaggingQueryJetTest.cs" />
<Compile Remove="Query\NorthwindSelectQueryJetTest.cs" />
<Compile Remove="Query\NorthwindSetOperationsQueryJetTest.cs" />
@ -307,17 +205,6 @@
<Compile Remove="Query\SqlExecutorJetTest.cs" />
<Compile Remove="Query\UdfDbFunctionJetTests.cs" />
<Compile Remove="Query\WarningsJetTest.cs" />
<Compile Remove="Scaffolding\JetDatabaseModelFactoryTest.cs" />
<Compile Remove="SeedingJetTest.cs" />
<Compile Remove="SequentialGuidEndToEndTest.cs" />
<Compile Remove="StoreGeneratedFixupJetTest.cs" />
<Compile Remove="StoreGeneratedJetTest.cs" />
<Compile Remove="TableSplittingJetTest.cs" />
<Compile Remove="TransactionInterceptionJetTest.cs" />
<Compile Remove="TransactionJetTest.cs" />
<Compile Remove="UpdatesJetFixture.cs" />
<Compile Remove="UpdatesJetTest.cs" />
<Compile Remove="WithConstructorsJetTest.cs" />
</ItemGroup>
</Project>

@ -197,6 +197,7 @@ UnicodeDataTypes.StringUnicode ---> `nullable varbinary` [MaxLength = -1]
public override bool SupportsDecimalComparisons => true;
public override DateTime DefaultDateTime => new DateTime();
public override bool PreservesDateTimeKind { get; }
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
=> base

@ -10,6 +10,7 @@ using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.EntityFrameworkCore.TestUtilities;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
using System.Linq;
// ReSharper disable InconsistentNaming
namespace EntityFrameworkCore.Jet.FunctionalTests
@ -198,6 +199,19 @@ UnicodeDataTypes.StringUnicode ---> `nullable nvarchar` [MaxLength = -1]
public override bool SupportsDecimalComparisons => true;
public override DateTime DefaultDateTime => new DateTime();
public override bool PreservesDateTimeKind { get; }
public override string ReallyLargeString
{
get
{
//Jet max is 255
var res = string.Join("", Enumerable.Repeat("testphrase", 25));
return res;
}
}
public override int LongStringLength => 255;
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
=> base
@ -282,21 +296,22 @@ UnicodeDataTypes.StringUnicode ---> `nullable nvarchar` [MaxLength = -1]
}
}
//Note - 255 is the max short text length in Jet
if (clrType == typeof(string))
{
var isAnsi = mappingInfo.IsUnicode == false;
var isFixedLength = mappingInfo.IsFixedLength == true;
var baseName = isAnsi ? "varchar" : "nvarchar";
var maxSize = isAnsi ? 8000 : 4000;
var maxSize = 255;
var size = mappingInfo.Size ?? (mappingInfo.IsKeyOrIndex ? (int?)(isAnsi ? 900 : 450) : null);
var size = mappingInfo.Size ?? (mappingInfo.IsKeyOrIndex ? (int?)255 : 255);
if (size > maxSize)
{
size = isFixedLength ? maxSize : (int?)null;
}
return new JetStringTypeMapping(
baseName + "(" + (size == null ? "max" : size.ToString()) + ")",
baseName + "(" + (size == null ? "255" : size.ToString()) + ")",
!isAnsi,
size,
isFixedLength,

@ -132,7 +132,7 @@ WHERE `i`.`Id` = {AssertSqlHelper.Parameter("@__p_0")}");
base.Find_string_key_from_store();
AssertSql(
$@"{AssertSqlHelper.Declaration("@__p_0='Cat' (Size = 450)")}
$@"{AssertSqlHelper.Declaration("@__p_0='Cat' (Size = 255)")}
SELECT TOP 1 `s`.`Id`, `s`.`Foo`
FROM `StringKey` AS `s`
@ -144,7 +144,7 @@ WHERE `s`.`Id` = {AssertSqlHelper.Parameter("@__p_0")}");
base.Returns_null_for_string_key_not_in_store();
AssertSql(
$@"{AssertSqlHelper.Declaration("@__p_0='Fox' (Size = 450)")}
$@"{AssertSqlHelper.Declaration("@__p_0='Fox' (Size = 255)")}
SELECT TOP 1 `s`.`Id`, `s`.`Foo`
FROM `StringKey` AS `s`
@ -164,8 +164,7 @@ WHERE `s`.`Id` = {AssertSqlHelper.Parameter("@__p_0")}");
AssertSql(
$@"{AssertSqlHelper.Declaration("@__p_0='77'")}
{AssertSqlHelper.Declaration("@__p_1='Dog' (Size = 450)")}
{AssertSqlHelper.Declaration("@__p_1='Dog' (Size = 255)")}
SELECT TOP 1 `c`.`Id1`, `c`.`Id2`, `c`.`Foo`
FROM `CompositeKey` AS `c`
@ -178,8 +177,7 @@ WHERE (`c`.`Id1` = {AssertSqlHelper.Parameter("@__p_0")}) AND (`c`.`Id2` = {Asse
AssertSql(
$@"{AssertSqlHelper.Declaration("@__p_0='77'")}
{AssertSqlHelper.Declaration("@__p_1='Fox' (Size = 450)")}
{AssertSqlHelper.Declaration("@__p_1='Fox' (Size = 255)")}
SELECT TOP 1 `c`.`Id1`, `c`.`Id2`, `c`.`Foo`
FROM `CompositeKey` AS `c`
@ -193,6 +191,13 @@ WHERE (`c`.`Id1` = {AssertSqlHelper.Parameter("@__p_0")}) AND (`c`.`Id2` = {Asse
Assert.Equal("", Sql);
}
public override async Task Find_base_type_tracked_async()
{
await base.Find_base_type_tracked_async();
Assert.Equal("", Sql);
}
public override void Find_base_type_from_store()
{
base.Find_base_type_from_store();
@ -202,7 +207,18 @@ WHERE (`c`.`Id1` = {AssertSqlHelper.Parameter("@__p_0")}) AND (`c`.`Id2` = {Asse
SELECT TOP 1 `b`.`Id`, `b`.`Discriminator`, `b`.`Foo`, `b`.`Boo`
FROM `BaseType` AS `b`
WHERE `b`.`Discriminator` IN ('BaseType', 'DerivedType') AND (`b`.`Id` = {AssertSqlHelper.Parameter("@__p_0")})");
WHERE `b`.`Id` = {AssertSqlHelper.Parameter("@__p_0")}");
}
public override async Task Find_base_type_from_store_async()
{
await base.Find_base_type_from_store_async();
AssertSql(
$@"{AssertSqlHelper.Declaration("@__p_0='77'")}
SELECT TOP 1 `b`.`Id`, `b`.`Discriminator`, `b`.`Foo`, `b`.`Boo`
FROM `BaseType` AS `b`
WHERE `b`.`Id` = {AssertSqlHelper.Parameter("@__p_0")}");
}
public override void Returns_null_for_base_type_not_in_store()
@ -214,7 +230,7 @@ WHERE `b`.`Discriminator` IN ('BaseType', 'DerivedType') AND (`b`.`Id` = {Assert
SELECT TOP 1 `b`.`Id`, `b`.`Discriminator`, `b`.`Foo`, `b`.`Boo`
FROM `BaseType` AS `b`
WHERE `b`.`Discriminator` IN ('BaseType', 'DerivedType') AND (`b`.`Id` = {AssertSqlHelper.Parameter("@__p_0")})");
WHERE `b`.`Id` = {AssertSqlHelper.Parameter("@__p_0")}");
}
public override void Find_derived_type_tracked()
@ -288,7 +304,7 @@ WHERE (`b`.`Discriminator` = 'DerivedType') AND (`b`.`Id` = {AssertSqlHelper.Par
SELECT TOP 1 `b`.`Id`, `b`.`Discriminator`, `b`.`Foo`, `b`.`Boo`
FROM `BaseType` AS `b`
WHERE `b`.`Discriminator` IN ('BaseType', 'DerivedType') AND (`b`.`Id` = {AssertSqlHelper.Parameter("@__p_0")})");
WHERE `b`.`Id` = {AssertSqlHelper.Parameter("@__p_0")}");
}
public override void Find_shadow_key_tracked()

@ -403,7 +403,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
using (var testDatabase = JetTestStore.GetOrCreate("NonExisting"))
{
var databaseCreator = GetDatabaseCreator(testDatabase);
await databaseCreator.ExecutionStrategyFactory.Create().ExecuteAsync(
await databaseCreator.ExecutionStrategy.ExecuteAsync(
databaseCreator,
async creator =>
{
@ -848,7 +848,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
return HasTablesAsync(cancellationToken);
}
public IExecutionStrategyFactory ExecutionStrategyFactory => Dependencies.ExecutionStrategyFactory;
public IExecutionStrategy ExecutionStrategy => Dependencies.ExecutionStrategy;
}
}
}

@ -23,5 +23,6 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
.UseJet("Data Source=LoggingJetTest.db", TestEnvironment.DataAccessProviderFactory, relationalAction);
protected override string ProviderName => "EntityFrameworkCore.Jet";
protected override string ProviderVersion { get; }
}
}

@ -67,7 +67,7 @@ WHERE `c`.`ContactName` LIKE '!%' ESCAPE '!'");
AssertSql(
$@"SELECT COUNT(*)
FROM `Orders` AS `o`
WHERE DATEDIFF(YEAR, `o`.`OrderDate`, GETDATE()) = 0");
WHERE DATEDIFF('yyyy', `o`.`OrderDate`, NOW()) = 0");
}
}
@ -83,7 +83,7 @@ WHERE DATEDIFF(YEAR, `o`.`OrderDate`, GETDATE()) = 0");
AssertSql(
$@"SELECT COUNT(*)
FROM `Orders` AS `o`
WHERE DATEDIFF(MONTH, `o`.`OrderDate`, GETDATE()) = 0");
WHERE DATEDIFF('m', `o`.`OrderDate`, NOW()) = 0");
}
}
@ -99,7 +99,7 @@ WHERE DATEDIFF(MONTH, `o`.`OrderDate`, GETDATE()) = 0");
AssertSql(
$@"SELECT COUNT(*)
FROM `Orders` AS `o`
WHERE DATEDIFF(DAY, `o`.`OrderDate`, GETDATE()) = 0");
WHERE DATEDIFF('d', `o`.`OrderDate`, NOW()) = 0");
}
}
@ -115,7 +115,7 @@ WHERE DATEDIFF(DAY, `o`.`OrderDate`, GETDATE()) = 0");
AssertSql(
$@"SELECT COUNT(*)
FROM `Orders` AS `o`
WHERE DATEDIFF(HOUR, `o`.`OrderDate`, GETDATE()) = 0");
WHERE DATEDIFF('h', `o`.`OrderDate`, NOW()) = 0");
}
}
@ -131,7 +131,7 @@ WHERE DATEDIFF(HOUR, `o`.`OrderDate`, GETDATE()) = 0");
AssertSql(
$@"SELECT COUNT(*)
FROM `Orders` AS `o`
WHERE DATEDIFF(MINUTE, `o`.`OrderDate`, GETDATE()) = 0");
WHERE DATEDIFF('n', `o`.`OrderDate`, NOW()) = 0");
}
}
@ -147,7 +147,7 @@ WHERE DATEDIFF(MINUTE, `o`.`OrderDate`, GETDATE()) = 0");
AssertSql(
$@"SELECT COUNT(*)
FROM `Orders` AS `o`
WHERE DATEDIFF(SECOND, `o`.`OrderDate`, GETDATE()) = 0");
WHERE DATEDIFF('s', `o`.`OrderDate`, NOW()) = 0");
}
}

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using EntityFrameworkCore.Jet.Data;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.EntityFrameworkCore.Internal;
using Microsoft.EntityFrameworkCore.Metadata;
@ -21,6 +22,7 @@ using Microsoft.EntityFrameworkCore.Scaffolding;
using Microsoft.EntityFrameworkCore.TestUtilities;
using Microsoft.Extensions.Logging;
using Xunit;
using Xunit.Abstractions;
// ReSharper disable InconsistentNaming
@ -29,11 +31,15 @@ namespace EntityFrameworkCore.Jet.FunctionalTests.Scaffolding
public class JetDatabaseModelFactoryTest : IClassFixture<JetDatabaseModelFactoryTest.JetDatabaseModelFixture>
{
protected JetDatabaseModelFixture Fixture { get; }
private readonly ITestOutputHelper _testOutputHelper;
public JetDatabaseModelFactoryTest(JetDatabaseModelFixture fixture)
public JetDatabaseModelFactoryTest(JetDatabaseModelFixture fixture, ITestOutputHelper testOutputHelper)
{
Fixture = fixture;
Fixture.ListLoggerFactory.Clear();
_testOutputHelper = testOutputHelper;
//Fixture.ListLoggerFactory.Clear();
Fixture.ListLoggerFactory.SetTestOutputHelper(testOutputHelper);
JetConfiguration.ShowSqlStatements = true;
}
#region Model
@ -189,7 +195,7 @@ SELECT
Test(
@"
CREATE TABLE PrimaryKeyTable (
Id int PRIMARY KEY
Id int CONSTRAINT PK__PrimaryKeyTable PRIMARY KEY
);",
Enumerable.Empty<string>(),
Enumerable.Empty<string>(),
@ -371,7 +377,7 @@ CREATE TABLE TypeAlias (
var column = Assert.Single(dbModel.Tables.Single().Columns.Where(c => c.Name == "typeAliasColumn"));
// ReSharper disable once PossibleNullReferenceException
Assert.Equal("varchar(128)", column.StoreType);
Assert.Equal("varchar(255)", column.StoreType);
Assert.False(column.IsNullable);
},
@"
@ -986,7 +992,7 @@ CREATE TABLE NullableColumns (
CREATE TABLE CompositePrimaryKeyTable (
Id1 int,
Id2 int,
PRIMARY KEY (Id2, Id1)
CONSTRAINT PK__CompositePrimaryKeyTable PRIMARY KEY (Id2, Id1)
);",
Enumerable.Empty<string>(),
Enumerable.Empty<string>(),

@ -18,6 +18,8 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
return context;
}
protected override TestStore TestStore { get; }
protected class SeedingJetContext : SeedingContext
{
public SeedingJetContext(string testId)

@ -1,5 +1,6 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks;
using EntityFrameworkCore.Jet.FunctionalTests.TestUtilities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.TestUtilities;
@ -16,9 +17,9 @@ namespace EntityFrameworkCore.Jet.FunctionalTests
protected override ITestStoreFactory TestStoreFactory => JetTestStoreFactory.Instance;
public override void Can_use_with_redundant_relationships()
public override async Task Can_use_with_redundant_relationships()
{
base.Can_use_with_redundant_relationships();
await base.Can_use_with_redundant_relationships();
// TODO: `Name` shouldn't be selected multiple times and no joins are needed
AssertSql(
@ -86,9 +87,9 @@ WHERE `v`.`Discriminator` IN ('Vehicle', 'PoweredVehicle')
ORDER BY `v`.`Name`");
}
public override void Can_query_shared()
public override async Task Can_query_shared()
{
base.Can_query_shared();
await base.Can_query_shared();
AssertSql(
$@"SELECT `v`.`Name`, `v`.`Operator_Discriminator`, `v`.`Operator_Name`, `v`.`LicenseType`
@ -101,9 +102,9 @@ INNER JOIN (
WHERE `v`.`Operator_Discriminator` IN ('Operator', 'LicensedOperator')");
}
public override void Can_query_shared_nonhierarchy()
public override async Task Can_query_shared_nonhierarchy()
{
base.Can_query_shared_nonhierarchy();
await base.Can_query_shared_nonhierarchy();
AssertSql(
$@"SELECT `t0`.`Name`, `t0`.`Operator_Name`
@ -127,9 +128,9 @@ INNER JOIN (
) AS `t1` ON `t0`.`Name` = `t1`.`Name`");
}
public override void Can_query_shared_nonhierarchy_with_nonshared_dependent()
public override async Task Can_query_shared_nonhierarchy_with_nonshared_dependent()
{
base.Can_query_shared_nonhierarchy_with_nonshared_dependent();
await base.Can_query_shared_nonhierarchy_with_nonshared_dependent();
AssertSql(
$@"SELECT `t`.`Name`, `t`.`Operator_Name`
@ -149,9 +150,9 @@ INNER JOIN (
) AS `t0` ON `t`.`Name` = `t0`.`Name`");
}
public override void Can_query_shared_derived_hierarchy()
public override async Task Can_query_shared_derived_hierarchy()
{
base.Can_query_shared_derived_hierarchy();
await base.Can_query_shared_derived_hierarchy();
AssertSql(
$@"SELECT `v`.`Name`, `v`.`Capacity`, `v`.`FuelTank_Discriminator`, `v`.`FuelType`, `v`.`GrainGeometry`
@ -177,9 +178,9 @@ INNER JOIN (
) AS `t1` ON `v1`.`Name` = `t1`.`Name`");
}
public override void Can_query_shared_derived_nonhierarchy()
public override async Task Can_query_shared_derived_nonhierarchy()
{
base.Can_query_shared_derived_nonhierarchy();
await base.Can_query_shared_derived_nonhierarchy();
AssertSql(
$@"SELECT `v`.`Name`, `v`.`Capacity`, `v`.`FuelType`
@ -205,9 +206,9 @@ INNER JOIN (
) AS `t1` ON `v1`.`Name` = `t1`.`Name`");
}
public override void Can_query_shared_derived_nonhierarchy_all_required()
public override async Task Can_query_shared_derived_nonhierarchy_all_required()
{
base.Can_query_shared_derived_nonhierarchy_all_required();
await base.Can_query_shared_derived_nonhierarchy_all_required();
AssertSql(
$@"SELECT `v`.`Name`, `v`.`Capacity`, `v`.`FuelType`
@ -233,9 +234,9 @@ INNER JOIN (
) AS `t1` ON `v1`.`Name` = `t1`.`Name`");
}
public override void Can_change_dependent_instance_non_derived()
public override async Task Can_change_dependent_instance_non_derived()
{
base.Can_change_dependent_instance_non_derived();
await base.Can_change_dependent_instance_non_derived();
AssertSql(
$@"{AssertSqlHelper.Declaration("@p3='Trek Pro Fit Madone 6 Series' (Nullable = false) (Size = 450)")}
@ -252,9 +253,9 @@ WHERE `Name` = {AssertSqlHelper.Parameter("@p3")};
SELECT @@ROWCOUNT;");
}
public override void Can_change_principal_instance_non_derived()
public override async Task Can_change_principal_instance_non_derived()
{
base.Can_change_principal_instance_non_derived();
await base.Can_change_principal_instance_non_derived();
AssertSql(
$@"{AssertSqlHelper.Declaration("@p1='Trek Pro Fit Madone 6 Series' (Nullable = false) (Size = 450)")}

@ -22,10 +22,10 @@ namespace EntityFrameworkCore.Jet.FunctionalTests.TestUtilities
public static string Declaration(string fullDeclaration)
=> Declaration(fullDeclaration, DataAccessProviderType);
//TODO:confirm which way odbc and oledb do this
public static string Declaration(string fullDeclaration, DataAccessProviderType dataAccessProviderType)
=> dataAccessProviderType == DataAccessProviderType.Odbc
? string.Empty
: fullDeclaration;
? fullDeclaration
: string.Empty;
}
}

@ -103,7 +103,7 @@ namespace EntityFrameworkCore.Jet.FunctionalTests.TestUtilities
}
public override DbContextOptionsBuilder AddProviderOptions(DbContextOptionsBuilder builder)
=> builder.UseJet(Connection, b => b.ApplyConfiguration());
=> builder.UseJet(Connection, b => b.ApplyConfiguration()).EnableSensitiveDataLogging().EnableDetailedErrors();
private bool CreateDatabase(Action<DbContext> clean)
{

Loading…
Cancel
Save