Coverage Summary for Class: MindboxDatabase (cloud.mindbox.mobile_sdk.repository)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| MindboxDatabase |
0%
(0/2)
|
|
0%
(0/3)
|
0%
(0/10)
|
| MindboxDatabase$Companion |
0%
(0/2)
|
0%
(0/2)
|
0%
(0/12)
|
0%
(0/40)
|
| MindboxDatabase$Companion$MIGRATION_1_2$1 |
0%
(0/2)
|
|
0%
(0/3)
|
0%
(0/9)
|
| MindboxDatabase$Companion$MIGRATION_2_3$1 |
0%
(0/2)
|
|
0%
(0/3)
|
0%
(0/7)
|
| Total |
0%
(0/8)
|
0%
(0/2)
|
0%
(0/21)
|
0%
(0/66)
|
package cloud.mindbox.mobile_sdk.repository
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase
import cloud.mindbox.mobile_sdk.converters.MindboxRoomConverter
import cloud.mindbox.mobile_sdk.data.ConfigurationsDao
import cloud.mindbox.mobile_sdk.data.EventsDao
import cloud.mindbox.mobile_sdk.managers.DbManager.CONFIGURATION_TABLE_NAME
import cloud.mindbox.mobile_sdk.models.Configuration
import cloud.mindbox.mobile_sdk.models.Event
@Database(entities = [Configuration::class, Event::class], exportSchema = false, version = 3)
@TypeConverters(MindboxRoomConverter::class)
internal abstract class MindboxDatabase : RoomDatabase() {
companion object {
private const val DATABASE_NAME = "mindbox_db"
private val MIGRATION_1_2 = object : Migration(1, 2) {
override fun migrate(db: SupportSQLiteDatabase) {
val query = "ALTER TABLE $CONFIGURATION_TABLE_NAME " +
"ADD COLUMN shouldCreateCustomer INTEGER NOT NULL DEFAULT 1"
db.execSQL(query)
}
}
private val MIGRATION_2_3 = object : Migration(2, 3) {
override fun migrate(db: SupportSQLiteDatabase) {
db.execSQL(
"ALTER TABLE $CONFIGURATION_TABLE_NAME ADD COLUMN operationsDomain TEXT"
)
}
}
internal var isTestMode = false
internal fun getInstance(context: Context) = if (!isTestMode) {
Room
.databaseBuilder(
context.applicationContext,
MindboxDatabase::class.java,
DATABASE_NAME,
).addMigrations(
MIGRATION_1_2,
MIGRATION_2_3
)
.build()
} else {
Room
.inMemoryDatabaseBuilder(context.applicationContext, MindboxDatabase::class.java)
.allowMainThreadQueries()
.build()
}
}
abstract fun configurationDao(): ConfigurationsDao
abstract fun eventsDao(): EventsDao
}