From 8a4fb43a874da9a0024eaffbbf7a7a80fe015e9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de> Date: Wed, 25 Aug 2021 13:13:36 +0200 Subject: [PATCH] Add test that creates database on Android --- mailbox-android/build.gradle | 3 ++ .../mailbox/core/DatabaseCreationTest.kt | 50 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 mailbox-android/src/androidTest/java/org/briarproject/mailbox/core/DatabaseCreationTest.kt diff --git a/mailbox-android/build.gradle b/mailbox-android/build.gradle index 323ed59f..a926079f 100644 --- a/mailbox-android/build.gradle +++ b/mailbox-android/build.gradle @@ -78,8 +78,11 @@ dependencies { testImplementation 'junit:junit:4.13.2' + androidTestImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + androidTestImplementation 'androidx.test:runner:1.1.0' + androidTestImplementation 'androidx.test:rules:1.1.0' } def torBinariesDir = 'src/main/res/raw' diff --git a/mailbox-android/src/androidTest/java/org/briarproject/mailbox/core/DatabaseCreationTest.kt b/mailbox-android/src/androidTest/java/org/briarproject/mailbox/core/DatabaseCreationTest.kt new file mode 100644 index 00000000..ba16626b --- /dev/null +++ b/mailbox-android/src/androidTest/java/org/briarproject/mailbox/core/DatabaseCreationTest.kt @@ -0,0 +1,50 @@ +package org.briarproject.mailbox.core + +import kotlinx.coroutines.runBlocking +import org.junit.Test +import org.sqlite.mc.SQLiteMCConfig +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", + SQLiteMCConfig().withKey("very-secret").toProperties()) + + 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) + } + +} \ No newline at end of file -- GitLab