mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-01 15:23:54 +01:00
Convert the LoginClient to kotlin (#5479)
* Convert the result classes to kotlin * Convert response and callback to kotlin * Cleanup code-quality warnings before converting * Converted the LoginClient to kotlin * Updated the UserExtendedInfoClientTest to be kotlin, and live in the correct spot
This commit is contained in:
parent
0541aacdff
commit
02ce017c98
14 changed files with 370 additions and 450 deletions
|
|
@ -0,0 +1,78 @@
|
|||
package fr.free.nrw.commons.auth.login
|
||||
|
||||
import android.net.Uri
|
||||
import com.google.gson.GsonBuilder
|
||||
import com.google.gson.stream.MalformedJsonException
|
||||
import fr.free.nrw.commons.MockWebServerTest
|
||||
import io.reactivex.observers.TestObserver
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.wikipedia.dataclient.WikiSite
|
||||
import org.wikipedia.dataclient.mwapi.MwQueryResponse
|
||||
import org.wikipedia.json.NamespaceTypeAdapter
|
||||
import org.wikipedia.json.PostProcessingTypeAdapter
|
||||
import org.wikipedia.json.UriTypeAdapter
|
||||
import org.wikipedia.json.WikiSiteTypeAdapter
|
||||
import org.wikipedia.page.Namespace
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
|
||||
class UserExtendedInfoClientTest : MockWebServerTest() {
|
||||
private var apiService: LoginInterface? = null
|
||||
private val observer = TestObserver<MwQueryResponse>()
|
||||
private val gson = GsonBuilder()
|
||||
.registerTypeHierarchyAdapter(Uri::class.java, UriTypeAdapter().nullSafe())
|
||||
.registerTypeHierarchyAdapter(Namespace::class.java, NamespaceTypeAdapter().nullSafe())
|
||||
.registerTypeAdapter(WikiSite::class.java, WikiSiteTypeAdapter().nullSafe())
|
||||
.registerTypeAdapterFactory(PostProcessingTypeAdapter())
|
||||
.create()
|
||||
|
||||
@Before
|
||||
@Throws(Throwable::class)
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
|
||||
apiService = Retrofit.Builder()
|
||||
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
||||
.addConverterFactory(GsonConverterFactory.create(gson))
|
||||
.baseUrl(server().url)
|
||||
.build()
|
||||
.create(LoginInterface::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
@Throws(Throwable::class)
|
||||
fun testRequestSuccess() {
|
||||
enqueueFromFile("user_extended_info.json")
|
||||
|
||||
apiService!!.getUserInfo("USER").subscribe(observer)
|
||||
|
||||
observer
|
||||
.assertComplete()
|
||||
.assertNoErrors()
|
||||
.assertValue { result: MwQueryResponse ->
|
||||
result.query()!!
|
||||
.userInfo()!!.id() == 24531888 && result.query()!!.getUserResponse("USER")!!
|
||||
.name() == "USER"
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testRequestResponse404() {
|
||||
enqueue404()
|
||||
|
||||
apiService!!.getUserInfo("USER").subscribe(observer)
|
||||
|
||||
observer.assertError(Exception::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testRequestResponseMalformed() {
|
||||
enqueueMalformed()
|
||||
|
||||
apiService!!.getUserInfo("USER").subscribe(observer)
|
||||
|
||||
observer.assertError(MalformedJsonException::class.java)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue