private static async Task Create_creates_physical_database_but_not_tables_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: false)) { var creator = GetDatabaseCreator(testDatabase); Assert.False(creator.Exists()); if (async) { await creator.CreateAsync(); } else { creator.Create(); } Assert.True(creator.Exists()); if (testDatabase.State != ConnectionState.Open) { await testDatabase.OpenAsync(); } Assert.Equal(0, (testDatabase.Query <string>("SELECT NAME FROM (SHOW TABLES)")).Count()); Assert.True(testDatabase.Exists()); } }
private static async Task Exists_returns_true_when_database_exists_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: true)) { var creator = GetDatabaseCreator(testDatabase); Assert.True(async ? await creator.ExistsAsync() : creator.Exists()); } }
private static async Task HasTables_returns_false_when_database_exists_but_has_no_tables_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: true)) { var creator = GetDatabaseCreator(testDatabase); Assert.False(async ? await((TestDatabaseCreator)creator).HasTablesAsyncBase() : ((TestDatabaseCreator)creator).HasTablesBase()); } }
private static async Task HasTables_returns_true_when_database_exists_and_has_any_tables_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: true)) { testDatabase.ExecuteNonQuery("CREATE TABLE SomeTable (Id uniqueidentifier)"); var creator = GetDatabaseCreator(testDatabase); Assert.True(async ? await((TestDatabaseCreator)creator).HasTablesAsyncBase() : ((TestDatabaseCreator)creator).HasTablesBase()); } }
public void Empty_Migration_Creates_Database() { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: false)) { using (var context = CreateContext(testDatabase)) { context.Database.Migrate(); Assert.True(context.GetService <IRelationalDatabaseCreator>().Exists()); } } }
private static async Task Create_throws_if_database_already_exists_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: true)) { var creator = GetDatabaseCreator(testDatabase); string errorDescription = async ? (await Assert.ThrowsAsync <Exception>(() => creator.CreateAsync())).Message : Assert.Throws <Exception>(() => creator.Create()).Message; } }
private static async Task HasTables_throws_when_database_doesnt_exist_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: false)) { var creator = GetDatabaseCreator(testDatabase); var errorNumber = async ? (await Assert.ThrowsAsync <OleDbException>(() => ((TestDatabaseCreator)creator).HasTablesAsyncBase())).ErrorCode : Assert.Throws <OleDbException>(() => ((TestDatabaseCreator)creator).HasTablesBase()).ErrorCode; Assert.Equal( 25046, // The database file cannot be found. Check the path to the database. errorNumber); } }
private static async Task CreateTables_throws_if_database_does_not_exist_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: false)) { var creator = GetDatabaseCreator(testDatabase); var errorNumber = async ? (await Assert.ThrowsAsync <OleDbException>(() => creator.CreateTablesAsync())).ErrorCode : Assert.Throws <OleDbException>(() => creator.CreateTables()).ErrorCode; Assert.Equal( -2147467259, // The database file cannot be found. Check the path to the database. errorNumber); } }
private static async Task Delete_throws_when_database_doesnt_exist_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: false)) { var creator = GetDatabaseCreator(testDatabase); if (async) { await Assert.ThrowsAsync <System.IO.FileNotFoundException>(() => creator.DeleteAsync()); } else { Assert.Throws <System.IO.FileNotFoundException>(() => creator.Delete()); } } }
public override JetTestStore CreateTestStore() { var testStore = JetTestStore.CreateScratch(true); _options = new DbContextOptionsBuilder() .UseJet(testStore.Connection, b => b.ApplyConfiguration()) .UseInternalServiceProvider(_serviceProvider) .Options; using (var context = new GraphUpdatesContext(_options)) { context.Database.EnsureClean(); Seed(context); } return(testStore); }
private static async Task CreateTables_creates_schema_in_existing_database_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: true)) { var serviceCollection = new ServiceCollection(); serviceCollection .AddEntityFrameworkJet(); var serviceProvider = serviceCollection.BuildServiceProvider(); var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseJet(testDatabase.ConnectionString); using (var context = new BloggingContext(optionsBuilder.Options)) { var creator = (RelationalDatabaseCreator)context.GetService <IDatabaseCreator>(); if (async) { await creator.CreateTablesAsync(); testDatabase.Dispose(); JetConnection.ClearAllPools(); await testDatabase.OpenAsync(); } else { creator.CreateTables(); testDatabase.Dispose(); JetConnection.ClearAllPools(); testDatabase.Open(); } var tables = testDatabase.Query <string>("SHOW TABLES"); Assert.Equal(1, tables.Count()); Assert.Equal("Blogs", tables.Single()); var columns = testDatabase.Query <string>("SELECT Id FROM (SHOW TABLECOLUMNS)"); Assert.Equal(2, columns.Count()); Assert.True(columns.Any(c => c == "Blogs.Id")); Assert.True(columns.Any(c => c == "Blogs.Name")); } } }
public OneToOneQueryJetFixture() { _testStore = JetTestStore.CreateScratch(true); _options = new DbContextOptionsBuilder() .UseJet(_testStore.ConnectionString, b => b.ApplyConfiguration()) .UseInternalServiceProvider(new ServiceCollection() .AddEntityFrameworkJet() .AddSingleton(TestModelSource.GetFactory(OnModelCreating)) .AddSingleton <ILoggerFactory>(TestSqlLoggerFactory) .BuildServiceProvider()) .Options; using (var context = new DbContext(_options)) { context.Database.EnsureCreated(); AddTestData(context); } }
public BuiltInDataTypesJetFixture() { _testStore = JetTestStore.CreateScratch(createDatabase: true); var serviceProvider = new ServiceCollection() .AddEntityFrameworkJet() .AddSingleton(TestModelSource.GetFactory(OnModelCreating)) .AddSingleton <ILoggerFactory>(TestSqlLoggerFactory) .BuildServiceProvider(); _options = new DbContextOptionsBuilder() .UseJet(_testStore.Connection, b => b.ApplyConfiguration()) .EnableSensitiveDataLogging() .UseInternalServiceProvider(serviceProvider) .Options; using (var context = new DbContext(_options)) { context.Database.EnsureCreated(); } }
private static async Task Delete_will_delete_database_test(bool async) { using (var testDatabase = JetTestStore.CreateScratch(createDatabase: true)) { testDatabase.Dispose(); var creator = GetDatabaseCreator(testDatabase); Assert.True(async ? await creator.ExistsAsync() : creator.Exists()); if (async) { await creator.DeleteAsync(); } else { creator.Delete(); } Assert.False(async ? await creator.ExistsAsync() : creator.Exists()); } }