Add tests

This commit is contained in:
savsch 2025-01-15 00:03:07 +05:30
parent 5012126567
commit 936e50d327
3 changed files with 108 additions and 10 deletions

View file

@ -18,7 +18,7 @@ import java.util.Date
fun depictedItem( fun depictedItem(
name: String = "label", name: String = "label",
description: String = "desc", description: String = "desc",
imageUrl: String = "", primaryImage: String = "",
instanceOfs: List<String> = listOf(), instanceOfs: List<String> = listOf(),
commonsCategories: List<CategoryItem> = listOf(), commonsCategories: List<CategoryItem> = listOf(),
isSelected: Boolean = false, isSelected: Boolean = false,
@ -26,7 +26,7 @@ fun depictedItem(
) = DepictedItem( ) = DepictedItem(
name = name, name = name,
description = description, description = description,
imageUrl = imageUrl, primaryImage = primaryImage,
instanceOfs = instanceOfs, instanceOfs = instanceOfs,
commonsCategories = commonsCategories, commonsCategories = commonsCategories,
isSelected = isSelected, isSelected = isSelected,

View file

@ -1,7 +1,9 @@
package fr.free.nrw.commons.category package fr.free.nrw.commons.category
import categoryItem import categoryItem
import com.nhaarman.mockitokotlin2.any
import com.nhaarman.mockitokotlin2.mock import com.nhaarman.mockitokotlin2.mock
import com.nhaarman.mockitokotlin2.times
import com.nhaarman.mockitokotlin2.verify import com.nhaarman.mockitokotlin2.verify
import com.nhaarman.mockitokotlin2.whenever import com.nhaarman.mockitokotlin2.whenever
import depictedItem import depictedItem
@ -90,14 +92,18 @@ class CategoriesModelTest {
val depictedItem = val depictedItem =
depictedItem( depictedItem(
commonsCategories = commonsCategories =
listOf( listOf(
CategoryItem( CategoryItem(
"depictionCategory", "depictionCategory",
"", "",
"", "",
false, false,
),
), ),
),
)
val depictedItemWithoutCategories =
depictedItem(
primaryImage = "P18"
) )
whenever(gpsCategoryModel.categoriesFromLocation) whenever(gpsCategoryModel.categoriesFromLocation)
@ -159,6 +165,23 @@ class CategoriesModelTest {
), ),
), ),
) )
whenever(
categoryClient.getCategoriesOfImage(
"P18",
25,
),
).thenReturn(
Single.just(
listOf(
CategoryItem(
"categoriesOfP18",
"",
"",
false,
),
),
),
)
val imageTitleList = listOf("Test") val imageTitleList = listOf("Test")
CategoriesModel(categoryClient, categoryDao, gpsCategoryModel) CategoriesModel(categoryClient, categoryDao, gpsCategoryModel)
.searchAll("", imageTitleList, listOf(depictedItem)) .searchAll("", imageTitleList, listOf(depictedItem))
@ -171,8 +194,21 @@ class CategoriesModelTest {
categoryItem("recentCategories"), categoryItem("recentCategories"),
), ),
) )
CategoriesModel(categoryClient, categoryDao, gpsCategoryModel)
.searchAll("", imageTitleList, listOf(depictedItemWithoutCategories))
.test()
.assertValue(
listOf(
categoryItem("categoriesOfP18"),
categoryItem("gpsCategory"),
categoryItem("titleSearch"),
categoryItem("recentCategories"),
),
)
imageTitleList.forEach { imageTitleList.forEach {
verify(categoryClient).searchCategories(it, CategoriesModel.SEARCH_CATS_LIMIT) verify(categoryClient, times(2)).searchCategories(it, CategoriesModel.SEARCH_CATS_LIMIT)
verify(categoryClient).getCategoriesByName(any(), any(), any(), any())
verify(categoryClient).getCategoriesOfImage(any(), any())
} }
} }

View file

@ -132,6 +132,45 @@ class CategoryClientTest {
) )
} }
@Test
fun getCategoriesByTitlesFound() {
val mockResponse = withMockResponse("Category:Test")
whenever(
categoryInterface.getCategoriesByTitles(
anyString(),
anyInt(),
),
).thenReturn(Single.just(mockResponse))
categoryClient
.getCategoriesOfImage("tes", 10)
.test()
.assertValues(
listOf(
CategoryItem(
"Test",
"",
"",
false,
),
),
)
categoryClient
.getCategoriesOfImage(
"tes",
10,
).test()
.assertValues(
listOf(
CategoryItem(
"Test",
"",
"",
false,
),
),
)
}
@Test @Test
fun getCategoriesByNameNull() { fun getCategoriesByNameNull() {
val mockResponse = withNullPages() val mockResponse = withNullPages()
@ -160,6 +199,29 @@ class CategoryClientTest {
.assertValues(emptyList()) .assertValues(emptyList())
} }
@Test
fun getCategoriesByTitlesNull() {
val mockResponse = withNullPages()
whenever(
categoryInterface.getCategoriesByTitles(
anyString(),
anyInt(),
),
).thenReturn(Single.just(mockResponse))
categoryClient
.getCategoriesOfImage(
"tes",
10,
).test()
.assertValues(emptyList())
categoryClient
.getCategoriesOfImage(
"tes",
10,
).test()
.assertValues(emptyList())
}
@Test @Test
fun getParentCategoryListFound() { fun getParentCategoryListFound() {
val mockResponse = withMockResponse("Category:Test") val mockResponse = withMockResponse("Category:Test")