From 0f5422f19d7998495d6af66222c09e31ecc0a15f Mon Sep 17 00:00:00 2001 From: Vivek Maskara Date: Fri, 29 Nov 2019 16:55:36 +0530 Subject: [PATCH] With wikidata client tests (#3240) --- .../commons/wikidata/WikidataClientTest.kt | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 app/src/test/kotlin/fr/free/nrw/commons/wikidata/WikidataClientTest.kt diff --git a/app/src/test/kotlin/fr/free/nrw/commons/wikidata/WikidataClientTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/wikidata/WikidataClientTest.kt new file mode 100644 index 0000000000..9d8a0aaed8 --- /dev/null +++ b/app/src/test/kotlin/fr/free/nrw/commons/wikidata/WikidataClientTest.kt @@ -0,0 +1,56 @@ +package fr.free.nrw.commons.wikidata + +import fr.free.nrw.commons.wikidata.model.AddEditTagResponse +import fr.free.nrw.commons.wikidata.model.WbCreateClaimResponse +import io.reactivex.Observable +import okhttp3.RequestBody +import org.junit.Before +import org.junit.Test +import org.mockito.ArgumentMatchers.* +import org.mockito.InjectMocks +import org.mockito.Mock +import org.mockito.Mockito.`when` +import org.mockito.Mockito.mock +import org.mockito.MockitoAnnotations +import org.wikipedia.dataclient.mwapi.MwQueryResponse +import org.wikipedia.dataclient.mwapi.MwQueryResult + +class WikidataClientTest { + + @Mock + internal var wikidataInterface: WikidataInterface? = null + + @InjectMocks + var wikidataClient: WikidataClient? = null + + @Before + @Throws(Exception::class) + fun setUp() { + MockitoAnnotations.initMocks(this) + val mwQueryResponse = mock(MwQueryResponse::class.java) + val mwQueryResult = mock(MwQueryResult::class.java) + `when`(mwQueryResult!!.csrfToken()).thenReturn("test_token") + `when`(mwQueryResponse.query()).thenReturn(mwQueryResult) + `when`(wikidataInterface!!.getCsrfToken()) + .thenReturn(Observable.just(mwQueryResponse)) + } + + @Test + fun createClaim() { + `when`(wikidataInterface!!.postCreateClaim(any(RequestBody::class.java), + any(RequestBody::class.java), + any(RequestBody::class.java), + any(RequestBody::class.java), + any(RequestBody::class.java), + any(RequestBody::class.java))) + .thenReturn(Observable.just(mock(WbCreateClaimResponse::class.java))) + wikidataClient!!.createClaim("Q1", "test.jpg") + } + + @Test + fun addEditTag() { + `when`(wikidataInterface!!.addEditTag(anyString(), anyString(), anyString(), anyString())) + .thenReturn(Observable.just(mock(AddEditTagResponse::class.java))) + wikidataClient!!.addEditTag(1L, "test", "test") + } +} \ No newline at end of file