/* * Copyright 2021 Allan Wang * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package com.pitchedapps.frost.db import androidx.room.Room import androidx.room.testing.MigrationTestHelper import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import org.junit.runner.RunWith import kotlin.test.Test @RunWith(AndroidJUnit4::class) class CookieMigrationTest { private val TEST_DB = "cookie_migration_test" private val ALL_MIGRATIONS = arrayOf(COOKIES_MIGRATION_1_2) val helper: MigrationTestHelper = MigrationTestHelper( InstrumentationRegistry.getInstrumentation(), FrostPrivateDatabase::class.java.canonicalName, FrameworkSQLiteOpenHelperFactory() ) @Test fun migrateAll() { // Create earliest version of the database. helper.createDatabase(TEST_DB, 1).apply { close() } // Open latest version of the database. Room will validate the schema // once all migrations execute. Room.databaseBuilder( InstrumentationRegistry.getInstrumentation().targetContext, FrostPrivateDatabase::class.java, TEST_DB ).addMigrations(*ALL_MIGRATIONS).build().apply { openHelper.writableDatabase close() } } }