diff --git a/mailbox-core/build.gradle b/mailbox-core/build.gradle index fc34695fd31e37055694ca56685ac3531d10e0f6..5549ac793f597f78c3f15ad140d83344db49b49c 100644 --- a/mailbox-core/build.gradle +++ b/mailbox-core/build.gradle @@ -13,6 +13,7 @@ dependencies { api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" api 'com.google.code.findbugs:jsr305:3.0.2' api 'javax.inject:javax.inject:1' // required for @Qualifier in @Wakeful + api 'io.github.willena:sqlite-jdbc:3.35.5.3' implementation "com.google.dagger:hilt-core:$hilt_version" kapt "com.google.dagger:dagger-compiler:$hilt_version" diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/DatabaseCreationTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/DatabaseCreationTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..da9e17d0777a63fbd883099fe0656eca0a28c1f8 --- /dev/null +++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/DatabaseCreationTest.kt @@ -0,0 +1,48 @@ +package org.briarproject.mailbox.core.db + +import kotlinx.coroutines.runBlocking +import org.junit.jupiter.api.Test +import java.nio.file.Files +import java.nio.file.Path +import java.sql.Connection +import java.sql.DriverManager +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +class DatabaseCreationTest { + + @Test + fun createDatabase(): Unit = runBlocking { + val file: Path = Files.createTempFile("test", ".sqlite") + println(file) + val connection: Connection = DriverManager.getConnection("jdbc:sqlite:$file") + + val stmt = connection.createStatement() + stmt.executeUpdate("CREATE TABLE students (id integer, name string)") + stmt.executeUpdate("INSERT INTO students values (1, 'alice')") + stmt.executeUpdate("INSERT INTO students values (2, 'bob')") + + val prep = connection.prepareStatement("SELECT * FROM students") + val results = prep.executeQuery() + for (i in 0..1) { + val available = results.next() + assertTrue(available) + + val id = results.getInt(1) + val name = results.getString(2) + when (i) { + 0 -> { + assertEquals(1, id) + assertEquals("alice", name) + } + 1 -> { + assertEquals(2, id) + assertEquals("bob", name) + } + } + } + + Files.delete(file) + } + +}