Skip to content
Open
Show file tree
Hide file tree
Changes from 15 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ kotlin {
// I/O
implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.9.0")

// SQLite
implementation("androidx.sqlite:sqlite:2.6.2")
implementation("androidx.sqlite:sqlite-bundled:2.6.2")

// HTTP client
implementation("io.ktor:ktor-client-core:3.4.0")
implementation("io.ktor:ktor-client-encoding:3.4.0")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,31 @@
package de.westnordost.streetcomplete.data

import android.database.sqlite.SQLiteOpenHelper
import androidx.sqlite.SQLiteConnection
import androidx.sqlite.driver.bundled.BundledSQLiteDriver
import androidx.test.platform.app.InstrumentationRegistry
import kotlin.test.AfterTest
import kotlin.test.BeforeTest
import kotlin.test.Test
import kotlin.test.assertNotNull

open class ApplicationDbTestCase {
protected lateinit var dbHelper: SQLiteOpenHelper
protected lateinit var database: Database
private lateinit var dbConnection: SQLiteConnection
private val context get() = InstrumentationRegistry.getInstrumentation().targetContext

@BeforeTest fun setUpHelper() {
dbHelper = StreetCompleteSQLiteOpenHelper(
InstrumentationRegistry.getInstrumentation().targetContext,
DATABASE_NAME
)
database = AndroidDatabase(dbHelper.writableDatabase)
val dbPath = context.getDatabasePath(DATABASE_NAME).path
dbConnection = BundledSQLiteDriver().open(dbPath)
database = StreetCompleteDatabase(dbConnection)
}

@Test fun databaseAvailable() {
assertNotNull(dbHelper.readableDatabase)
assertNotNull(database)
}

@AfterTest fun tearDownHelper() {
dbHelper.close()
InstrumentationRegistry.getInstrumentation().targetContext
.deleteDatabase(DATABASE_NAME)
dbConnection.close()
context.deleteDatabase(DATABASE_NAME)
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import kotlin.test.BeforeTest
class SQLiteDatabaseKtTest : ApplicationDbTestCase() {

@BeforeTest fun setUp() {
dbHelper.writableDatabase.execSQL("CREATE TABLE t (a int, b int)")
database.exec("CREATE TABLE t (a int, b int)")
}

@AfterTest fun tearDown() {
dbHelper.writableDatabase.execSQL("DROP TABLE t")
database.exec("DROP TABLE t")
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package de.westnordost.streetcomplete

import android.content.Context
import androidx.sqlite.driver.bundled.BundledSQLiteDriver
import com.russhwolf.settings.ObservableSettings
import com.russhwolf.settings.SharedPreferencesSettings
import de.westnordost.streetcomplete.data.AndroidDatabase
import de.westnordost.streetcomplete.data.CleanerWorker
import de.westnordost.streetcomplete.data.Database
import de.westnordost.streetcomplete.data.StreetCompleteSQLiteOpenHelper
import de.westnordost.streetcomplete.data.StreetCompleteDatabase
import de.westnordost.streetcomplete.data.connection.InternetConnectionState
import de.westnordost.streetcomplete.data.download.DownloadController
import de.westnordost.streetcomplete.data.download.DownloadControllerAndroid
Expand All @@ -28,8 +29,9 @@ val androidModule = module {
// Database on Android

single<Database> {
val sqLite = StreetCompleteSQLiteOpenHelper(get(), ApplicationConstants.DATABASE_NAME)
AndroidDatabase(sqLite.writableDatabase)
val databaseFilePath = get<Context>().getDatabasePath(ApplicationConstants.DATABASE_NAME).path
val databaseConnection = BundledSQLiteDriver().open(databaseFilePath)
StreetCompleteDatabase(databaseConnection)
}

// Workmanager-based on Android
Expand Down

This file was deleted.

This file was deleted.

Loading