Slide 59
Slide 59 text
@RunWith(AndroidJUnit4::class)
class DatabaseMigrationTests {
@Rule @JvmField
var migrationTestHelper: MigrationTestHelper = MigrationTestHelper(
InstrumentationRegistry.getInstrumentation(),
ContactsDatabase::class.java.canonicalName,
FrameworkSQLiteOpenHelperFactory())
private lateinit var database: SupportSQLiteDatabase
@Before
fun setUp() { database = migrationTestHelper.createDatabase(DATABASE_NAME, 1) }
@Test
fun shouldMigrateDatabaseFromFirstToSecondVersion() {
val requiredVersion = 2
val validateDroppedTables = true
SQLiteTestHelper.insertTeam(database, TEAM_TITLE)
SQLiteTestHelper.insertEmployee(database, TEAM_ID, CONTACT_NAME, CONTACT_PHONE)
migrationTestHelper.runMigrationsAndValidate(
DATABASE_NAME, requiredVersion, validateDroppedTables, ContactsDatabase.MIGRATION_1_2)
val employees = SQLiteTestHelper.getMigrationDatabase(migrationTestHelper).employeesDao().getEmployeeListByTeamId(1)
assertEquals(1, employees.size)
...
}
@After
fun tearDown() { SQLiteTestHelper.clearDatabase(database) }
}