mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 12:53:55 +01:00
Set Media legend for wikidata entity (#3838)
* Set media legends and P18 * Minor * Make media legends work * Add test cases * Use statement partial * With minor refactoring * Fix build
This commit is contained in:
parent
7caf73fb4b
commit
f26784e9c3
12 changed files with 195 additions and 199 deletions
|
|
@ -1,7 +1,9 @@
|
|||
package fr.free.nrw.commons.wikidata
|
||||
|
||||
import com.nhaarman.mockitokotlin2.mock
|
||||
import fr.free.nrw.commons.wikidata.model.AddEditTagResponse
|
||||
import com.google.gson.Gson
|
||||
import com.nhaarman.mockitokotlin2.whenever
|
||||
import fr.free.nrw.commons.wikidata.model.PageInfo
|
||||
import fr.free.nrw.commons.wikidata.model.WbCreateClaimResponse
|
||||
import io.reactivex.Observable
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
|
@ -14,12 +16,16 @@ import org.mockito.Mockito.mock
|
|||
import org.mockito.MockitoAnnotations
|
||||
import org.wikipedia.dataclient.mwapi.MwQueryResponse
|
||||
import org.wikipedia.dataclient.mwapi.MwQueryResult
|
||||
import org.wikipedia.wikidata.Statement_partial
|
||||
|
||||
class WikidataClientTest {
|
||||
|
||||
@Mock
|
||||
internal var wikidataInterface: WikidataInterface? = null
|
||||
|
||||
@Mock
|
||||
internal var gson: Gson? = null
|
||||
|
||||
@InjectMocks
|
||||
var wikidataClient: WikidataClient? = null
|
||||
|
||||
|
|
@ -35,26 +41,18 @@ class WikidataClientTest {
|
|||
.thenReturn(Observable.just(mwQueryResponse))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun createClaim() {
|
||||
`when`(
|
||||
wikidataInterface!!.postCreateClaim(
|
||||
any(),
|
||||
any(),
|
||||
any(),
|
||||
any(),
|
||||
any(),
|
||||
any()
|
||||
)
|
||||
)
|
||||
.thenReturn(Observable.just(mock()))
|
||||
wikidataClient!!.createImageClaim(mock(), "test.jpg")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun addEditTag() {
|
||||
`when`(wikidataInterface!!.addEditTag(anyString(), anyString(), anyString(), anyString()))
|
||||
.thenReturn(Observable.just(mock(AddEditTagResponse::class.java)))
|
||||
wikidataClient!!.addEditTag(1L, "test", "test")
|
||||
val response = mock(WbCreateClaimResponse::class.java)
|
||||
val pageInfo = mock(PageInfo::class.java)
|
||||
whenever(pageInfo.lastrevid).thenReturn(1)
|
||||
whenever(response.pageinfo).thenReturn(pageInfo)
|
||||
`when`(wikidataInterface!!.postSetClaim(anyString(), anyString(), anyString()))
|
||||
.thenReturn(Observable.just(response))
|
||||
whenever(gson!!.toJson(any(Statement_partial::class.java))).thenReturn("claim")
|
||||
val request = mock(Statement_partial::class.java)
|
||||
|
||||
val claim = wikidataClient!!.setClaim(request, "test").test()
|
||||
.assertValue(1L)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
package fr.free.nrw.commons.wikidata
|
||||
|
||||
import android.content.Context
|
||||
import com.google.gson.Gson
|
||||
import com.nhaarman.mockitokotlin2.mock
|
||||
import com.nhaarman.mockitokotlin2.verifyZeroInteractions
|
||||
import com.nhaarman.mockitokotlin2.whenever
|
||||
import fr.free.nrw.commons.kvstore.JsonKvStore
|
||||
import fr.free.nrw.commons.upload.UploadResult
|
||||
import fr.free.nrw.commons.upload.WikidataPlace
|
||||
import fr.free.nrw.commons.wikidata.model.AddEditTagResponse
|
||||
import io.reactivex.Observable
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
|
@ -15,7 +15,6 @@ import org.mockito.ArgumentMatchers.any
|
|||
import org.mockito.ArgumentMatchers.anyString
|
||||
import org.mockito.InjectMocks
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.*
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
class WikidataEditServiceTest {
|
||||
|
|
@ -31,6 +30,9 @@ class WikidataEditServiceTest {
|
|||
@Mock
|
||||
internal lateinit var wikibaseClient: WikiBaseClient
|
||||
|
||||
@Mock
|
||||
internal lateinit var gson: Gson
|
||||
|
||||
@InjectMocks
|
||||
lateinit var wikidataEditService: WikidataEditService
|
||||
|
||||
|
|
@ -44,7 +46,7 @@ class WikidataEditServiceTest {
|
|||
fun noClaimsWhenLocationIsNotCorrect() {
|
||||
whenever(directKvStore.getBoolean("Picture_Has_Correct_Location", true))
|
||||
.thenReturn(false)
|
||||
wikidataEditService.createImageClaim(mock(), mock())
|
||||
wikidataEditService.createClaim(mock(), "Test.jpg", hashMapOf())
|
||||
verifyZeroInteractions(wikidataClient)
|
||||
}
|
||||
|
||||
|
|
@ -52,15 +54,16 @@ class WikidataEditServiceTest {
|
|||
fun createImageClaim() {
|
||||
whenever(directKvStore.getBoolean("Picture_Has_Correct_Location", true))
|
||||
.thenReturn(true)
|
||||
whenever(wikidataClient.createImageClaim(any(), any()))
|
||||
.thenReturn(Observable.just(1L))
|
||||
whenever(wikidataClient.addEditTag(anyLong(), anyString(), anyString()))
|
||||
.thenReturn(Observable.just(mock(AddEditTagResponse::class.java)))
|
||||
whenever(wikibaseClient.getFileEntityId(any())).thenReturn(Observable.just(1L))
|
||||
val wikidataPlace:WikidataPlace = mock()
|
||||
whenever(wikidataClient.setClaim(any(), anyString()))
|
||||
.thenReturn(Observable.just(1L))
|
||||
val wikidataPlace: WikidataPlace = mock()
|
||||
val uploadResult = mock<UploadResult>()
|
||||
whenever(uploadResult.filename).thenReturn("file")
|
||||
wikidataEditService.createImageClaim(wikidataPlace, uploadResult)
|
||||
verify(wikidataClient, times(1)).createImageClaim(wikidataPlace, """"file"""")
|
||||
wikidataEditService.createClaim(
|
||||
wikidataPlace,
|
||||
uploadResult.filename,
|
||||
hashMapOf<String, String>()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue