2021-10-28 01:37:39 +02:00
|
|
|
package jp.juggler.subwaytooter.database
|
|
|
|
|
2023-01-15 08:51:13 +01:00
|
|
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
2023-02-05 16:44:28 +01:00
|
|
|
import androidx.test.platform.app.InstrumentationRegistry
|
|
|
|
import jp.juggler.subwaytooter.table.AppDatabaseHolder
|
|
|
|
import jp.juggler.subwaytooter.table.DB_VERSION
|
|
|
|
import org.junit.Assert.assertEquals
|
2021-10-28 01:37:39 +02:00
|
|
|
import org.junit.Test
|
|
|
|
import org.junit.runner.RunWith
|
|
|
|
|
|
|
|
@RunWith(AndroidJUnit4::class)
|
|
|
|
class TestDatabase {
|
|
|
|
|
2023-02-05 16:44:28 +01:00
|
|
|
// 新規インストールで最新バージョンのDBを作る
|
2021-10-28 01:37:39 +02:00
|
|
|
@Test
|
|
|
|
fun testCreateAll() {
|
|
|
|
val context = InstrumentationRegistry.getInstrumentation().targetContext
|
|
|
|
val dbName = "testCreateAll"
|
|
|
|
context.deleteDatabase(dbName)
|
2023-02-05 16:44:28 +01:00
|
|
|
val db = AppDatabaseHolder(context, dbName, DB_VERSION).database
|
|
|
|
assertEquals("db version", DB_VERSION, db.version)
|
|
|
|
}
|
|
|
|
|
|
|
|
// スキーマバージョン1で作って順にアップグレードをかける
|
|
|
|
@Test
|
|
|
|
fun testUpgrade() {
|
|
|
|
val context = InstrumentationRegistry.getInstrumentation().targetContext
|
|
|
|
val dbName = "testUpgrade"
|
|
|
|
context.deleteDatabase(dbName)
|
2023-03-31 04:17:11 +02:00
|
|
|
for (v in 1..DB_VERSION) {
|
2023-02-05 16:44:28 +01:00
|
|
|
run {
|
|
|
|
val holder = AppDatabaseHolder(context, dbName, v)
|
|
|
|
assertEquals("db version", v, holder.database.version)
|
|
|
|
holder.close()
|
|
|
|
}
|
|
|
|
}
|
2021-10-28 01:37:39 +02:00
|
|
|
}
|
|
|
|
}
|