33 lines
1.0 KiB
Kotlin
33 lines
1.0 KiB
Kotlin
|
package org.schabi.newpipe.testUtil
|
||
|
|
||
|
import androidx.room.Room
|
||
|
import androidx.test.core.app.ApplicationProvider
|
||
|
import org.junit.Assert.assertSame
|
||
|
import org.schabi.newpipe.NewPipeDatabase
|
||
|
import org.schabi.newpipe.database.AppDatabase
|
||
|
|
||
|
class TestDatabase {
|
||
|
companion object {
|
||
|
fun createReplacingNewPipeDatabase(): AppDatabase {
|
||
|
val database = Room.inMemoryDatabaseBuilder(
|
||
|
ApplicationProvider.getApplicationContext(),
|
||
|
AppDatabase::class.java
|
||
|
)
|
||
|
.allowMainThreadQueries()
|
||
|
.build()
|
||
|
|
||
|
val databaseField = NewPipeDatabase::class.java.getDeclaredField("databaseInstance")
|
||
|
databaseField.isAccessible = true
|
||
|
databaseField.set(NewPipeDatabase::class, database)
|
||
|
|
||
|
assertSame(
|
||
|
"Mocking database failed!",
|
||
|
database,
|
||
|
NewPipeDatabase.getInstance(ApplicationProvider.getApplicationContext())
|
||
|
)
|
||
|
|
||
|
return database
|
||
|
}
|
||
|
}
|
||
|
}
|