mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-04 03:06:41 -04:00
#1865 Add unit tests for NewRecentSearchDao - add remaining tests
This commit is contained in:
parent
c062670efa
commit
a8d6612ee6
@ -21,6 +21,7 @@ package org.kiwix.kiwixmobile.core.dao
|
|||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import io.mockk.mockkStatic
|
import io.mockk.mockkStatic
|
||||||
|
import io.mockk.verify
|
||||||
import io.objectbox.Box
|
import io.objectbox.Box
|
||||||
import io.objectbox.query.Query
|
import io.objectbox.query.Query
|
||||||
import io.objectbox.query.QueryBuilder
|
import io.objectbox.query.QueryBuilder
|
||||||
@ -30,12 +31,13 @@ import org.junit.jupiter.api.Nested
|
|||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.kiwix.kiwixmobile.core.dao.entities.RecentSearchEntity
|
import org.kiwix.kiwixmobile.core.dao.entities.RecentSearchEntity
|
||||||
import org.kiwix.kiwixmobile.core.dao.entities.RecentSearchEntity_
|
import org.kiwix.kiwixmobile.core.dao.entities.RecentSearchEntity_
|
||||||
|
import org.kiwix.kiwixmobile.core.data.local.entity.RecentSearch
|
||||||
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem.RecentSearchListItem
|
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem.RecentSearchListItem
|
||||||
import org.kiwix.sharedFunctions.recentSearchEntity
|
import org.kiwix.sharedFunctions.recentSearchEntity
|
||||||
|
|
||||||
internal class NewRecentSearchDaoTest {
|
internal class NewRecentSearchDaoTest {
|
||||||
|
|
||||||
private val box: Box<RecentSearchEntity> = mockk()
|
private val box: Box<RecentSearchEntity> = mockk(relaxed = true)
|
||||||
private val newRecentSearchDao = NewRecentSearchDao(box)
|
private val newRecentSearchDao = NewRecentSearchDao(box)
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
@ -61,17 +63,17 @@ internal class NewRecentSearchDaoTest {
|
|||||||
fun `recentSearches searches returns distinct entities by searchTerm`() {
|
fun `recentSearches searches returns distinct entities by searchTerm`() {
|
||||||
val queryResult = listOf<RecentSearchEntity>(recentSearchEntity(), recentSearchEntity())
|
val queryResult = listOf<RecentSearchEntity>(recentSearchEntity(), recentSearchEntity())
|
||||||
expectFromRecentSearches(queryResult, "")
|
expectFromRecentSearches(queryResult, "")
|
||||||
newRecentSearchDao.recentSearches(null).test()
|
newRecentSearchDao.recentSearches("").test()
|
||||||
.assertValues(queryResult.take(1).map { RecentSearchListItem(it.searchTerm) })
|
.assertValues(queryResult.take(1).map { RecentSearchListItem(it.searchTerm) })
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `recentSearches searches returns a limitedNumber of entities`() {
|
fun `recentSearches searches returns a limitedNumber of entities`() {
|
||||||
val searchResults: List<RecentSearchEntity> =
|
val searchResults: List<RecentSearchEntity> =
|
||||||
(0..101).map { recentSearchEntity(searchTerm = "$it") }
|
(0..200).map { recentSearchEntity(searchTerm = "$it") }
|
||||||
expectFromRecentSearches(searchResults, "")
|
expectFromRecentSearches(searchResults, "")
|
||||||
newRecentSearchDao.recentSearches(null).test()
|
newRecentSearchDao.recentSearches("").test()
|
||||||
.assertValues(searchResults.take(100).map { RecentSearchListItem(it.searchTerm) })
|
.assertValue { it.size == 100 }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun expectFromRecentSearches(queryResult: List<RecentSearchEntity>, zimId: String) {
|
private fun expectFromRecentSearches(queryResult: List<RecentSearchEntity>, zimId: String) {
|
||||||
@ -87,18 +89,37 @@ internal class NewRecentSearchDaoTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun saveSearch() {
|
fun `saveSearch puts RecentSearchEntity into box`() {
|
||||||
|
newRecentSearchDao.saveSearch("title", "id")
|
||||||
|
verify { box.put(recentSearchEntity(searchTerm = "title", zimId = "id")) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun deleteSearchString() {
|
fun `deleteSearchString removes query results for the term`() {
|
||||||
|
val searchTerm = "searchTerm"
|
||||||
|
val queryBuilder: QueryBuilder<RecentSearchEntity> = mockk()
|
||||||
|
every { box.query() } returns queryBuilder
|
||||||
|
every { queryBuilder.equal(RecentSearchEntity_.searchTerm, searchTerm) } returns queryBuilder
|
||||||
|
val query: Query<RecentSearchEntity> = mockk(relaxed = true)
|
||||||
|
every { queryBuilder.build() } returns query
|
||||||
|
newRecentSearchDao.deleteSearchString(searchTerm)
|
||||||
|
verify { query.remove() }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun deleteSearchHistory() {
|
fun `deleteSearchHistory deletes everything`() {
|
||||||
|
newRecentSearchDao.deleteSearchHistory()
|
||||||
|
verify { box.removeAll() }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrationInsert() {
|
fun `migrationInsert adds old items to box`() {
|
||||||
|
val id = "zimId"
|
||||||
|
val term = "searchString"
|
||||||
|
val recentSearch: RecentSearch = mockk()
|
||||||
|
every { recentSearch.searchString } returns term
|
||||||
|
every { recentSearch.zimID } returns id
|
||||||
|
newRecentSearchDao.migrationInsert(mutableListOf(recentSearch))
|
||||||
|
verify { box.put(listOf(recentSearchEntity(searchTerm = term, zimId = id))) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user