using System.Threading.Tasks; using EntityFramework.Jet.FunctionalTests.TestUtilities; using EntityFrameworkCore.Jet; using EntityFrameworkCore.Jet.Infrastructure; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; using Microsoft.EntityFrameworkCore.TestUtilities; using Xunit; #pragma warning disable xUnit1003 // Theory methods must have test data namespace EntityFramework.Jet.FunctionalTests { public class TransactionJetTest : TransactionTestBase { public TransactionJetTest(TransactionJetFixture fixture) : base(fixture) { } protected override DbContext CreateContextWithConnectionString() { var options = Fixture.AddOptions( new DbContextOptionsBuilder() .UseJet(TestStore.ConnectionString, b => b.ApplyConfiguration().CommandTimeout(JetTestStore.CommandTimeout))) .UseInternalServiceProvider(Fixture.ServiceProvider); return new DbContext(options.Options); } protected override bool SnapshotSupported => false; [Theory(Skip = "Unsupported by JET")] public override Task Can_use_open_connection_with_started_transaction(bool a) { return Task.CompletedTask; } [Theory(Skip = "Unsupported by JET")] public override Task QueryAsync_uses_explicit_transaction(bool a) { return Task.CompletedTask; } [Theory(Skip = "Unsupported by JET")] public override void Query_uses_explicit_transaction(bool a) { } public class TransactionJetFixture : TransactionFixtureBase { protected override ITestStoreFactory TestStoreFactory => JetTestStoreFactory.Instance; public override void Reseed() { using (var context = CreateContext()) { context.Set().RemoveRange(context.Set()); context.SaveChanges(); base.Seed(context); } } public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder) { new JetDbContextOptionsBuilder( base.AddOptions(builder) .ConfigureWarnings( w => w.Log(RelationalEventId.QueryClientEvaluationWarning) .Log(CoreEventId.FirstWithoutOrderByAndFilterWarning))) .MaxBatchSize(1); return builder; } } } }