CrmContactDaoTest.kt 48 lignes · 1325 octets
package fr.ebii.card2vcf.data

import android.content.Context
import androidx.room.Room
import androidx.test.core.app.ApplicationProvider
import kotlinx.coroutines.runBlocking
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config

@RunWith(RobolectricTestRunner::class)
@Config(sdk = [31])
class CrmContactDaoTest {
    private lateinit var db: CrmDatabase
    private lateinit var dao: CrmContactDao

    @Before
    fun setUp() {
        val ctx = ApplicationProvider.getApplicationContext<Context>()
        db = Room.inMemoryDatabaseBuilder(ctx, CrmDatabase::class.java)
            .allowMainThreadQueries()
            .build()
        dao = db.crmContactDao()
    }

    @After
    fun tearDown() = db.close()

    @Test
    fun insertAndSearchNotes() = runBlocking {
        val id = dao.insert(
            CrmContactEntity(
                fullName = "Ada",
                notes = "salon Lyon 2026",
                phonesText = "",
                emailsText = "",
                createdAt = 1L,
                updatedAt = 1L,
            ),
        )
        val hits = dao.searchIds("Lyon*")
        assertEquals(listOf(id), hits)
    }
}