public async Task HasTables_returns_false_when_database_is_empty(bool async)
    {
        using var testStore = SqliteTestStore.GetOrCreateInitialized("Empty");
        var context = CreateContext(testStore.ConnectionString);

        var creator = context.GetService <IRelationalDatabaseCreator>();

        Assert.False(async ? await creator.HasTablesAsync() : creator.HasTables());
    }
    public async Task HasTables_returns_true_when_database_is_not_empty(bool async)
    {
        using var testStore = SqliteTestStore.GetOrCreateInitialized($"HasATable{(async ? 'A' : 'S')}");
        var context = CreateContext(testStore.ConnectionString);

        context.Database.ExecuteSqlRaw("CREATE TABLE Dummy (Foo INTEGER)");

        var creator = context.GetService <IRelationalDatabaseCreator>();

        Assert.True(async ? await creator.HasTablesAsync() : creator.HasTables());
    }
    public async Task Exists_returns_true_when_database_exists(bool async, bool useCanConnect)
    {
        using var testStore = SqliteTestStore.GetOrCreateInitialized("Empty");
        var context = CreateContext(testStore.ConnectionString);

        if (useCanConnect)
        {
            Assert.True(async ? await context.Database.CanConnectAsync() : context.Database.CanConnect());
        }
        else
        {
            var creator = context.GetService <IRelationalDatabaseCreator>();
            Assert.True(async ? await creator.ExistsAsync() : creator.Exists());
        }
    }