Added advanced query support in Nearby (#4714)

* Added feature for advanced query options in Nearby

* Fix unit-tests coverage

* wip-tests

* Added log to identify if the nearby request is via an advanced query

* Rolledback test-dependency updates

* Fix tests

* build fix

* Added basic tests for relevant method in OkHttpJsonApiClient & NearbyController

* Added NearbyParentFragmentPresenter Tests

* Added AdvancedQueryFragment Unit Tests

* Added more tests for NearbyParentFragmentPresenter

* Reset ContributionsFragment with Upstream

* Overload method loadNearbyPlaces for CustomQuery

* Added more tests

* Added more tests

* Fixed tests for NearbyParentFragmentPresenter
This commit is contained in:
Ashish 2021-12-13 21:11:33 +05:30 committed by GitHub
parent bd00ce2071
commit a0ff15cdc2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 823 additions and 47 deletions

View file

@ -0,0 +1,89 @@
package fr.free.nrw.commons
import com.google.gson.Gson
import com.nhaarman.mockitokotlin2.any
import com.nhaarman.mockitokotlin2.verify
import fr.free.nrw.commons.explore.depictions.DepictsClient
import fr.free.nrw.commons.location.LatLng
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
import okhttp3.Call
import okhttp3.HttpUrl
import okhttp3.OkHttpClient
import okhttp3.Response
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.MockitoAnnotations
import java.lang.Exception
class OkHttpJsonApiClientTests {
@Mock
lateinit var okhttpClient: OkHttpClient
@Mock
lateinit var depictsClient: DepictsClient
@Mock
lateinit var wikiMediaToolforgeUrl: HttpUrl
@Mock
lateinit var wikiMediaTestToolforgeUrl: HttpUrl
var sparqlQueryUrl: String = "https://www.testqparql.com"
var campaignsUrl: String = "https://www.testcampaignsurl.com"
@Mock
lateinit var gson: Gson
@Mock
lateinit var latLng: LatLng
private lateinit var okHttpJsonApiClient: OkHttpJsonApiClient
@Mock
lateinit var call: Call
@Mock
lateinit var response: Response
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
okHttpJsonApiClient = OkHttpJsonApiClient(
okhttpClient,
depictsClient,
wikiMediaToolforgeUrl,
wikiMediaTestToolforgeUrl,
sparqlQueryUrl,
campaignsUrl,
gson
)
Mockito.`when`(okhttpClient.newCall(any())).thenReturn(call)
Mockito.`when`(call.execute()).thenReturn(response)
}
@Test
fun testGetNearbyPlacesCustomQuery() {
Mockito.`when`(response.message()).thenReturn("test")
try {
okHttpJsonApiClient.getNearbyPlaces(latLng, "test", 10.0, true, "test")
} catch (e: Exception) {
assert(e.message.equals("test"))
}
verify(okhttpClient).newCall(any())
verify(call).execute()
}
@Test
fun testGetNearbyPlaces() {
Mockito.`when`(response.message()).thenReturn("test")
try {
okHttpJsonApiClient.getNearbyPlaces(latLng, "test", 10.0, true)
} catch (e: Exception) {
assert(e.message.equals("test"))
}
verify(okhttpClient).newCall(any())
verify(call).execute()
}
}