#3813 Convert MediaClient to Kotlin (#3814)

* #3813 Convert MediaClient to Kotlin - convert

* #3813 Convert MediaClient to Kotlin - update tests

* #3813 Convert MediaClient to Kotlin - fix List typing

* #3813 Convert MediaClient to Kotlin - fix mock injecting
This commit is contained in:
Seán Mac Gillicuddy 2020-06-17 17:38:17 +01:00 committed by GitHub
parent e3213aa5bd
commit 422890cac4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 319 additions and 302 deletions

View file

@ -1,27 +1,21 @@
package fr.free.nrw.commons.contributions
import android.content.Context
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.nhaarman.mockitokotlin2.*
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.auth.SessionManager
import fr.free.nrw.commons.media.MediaClient
import fr.free.nrw.commons.utils.NetworkUtilsTest
import fr.free.nrw.commons.utils.createMockDataSourceFactory
import io.reactivex.Scheduler
import io.reactivex.Single
import io.reactivex.schedulers.Schedulers
import io.reactivex.schedulers.TestScheduler
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.mockito.ArgumentMatchers.*
import org.mockito.InjectMocks
import org.mockito.ArgumentMatchers.anyList
import org.mockito.ArgumentMatchers.anyString
import org.mockito.Mock
import org.mockito.Mockito.mock
import org.mockito.MockitoAnnotations
import java.lang.RuntimeException
import java.util.*
/**
* The unit test class for ContributionBoundaryCallbackTest
@ -136,4 +130,4 @@ class ContributionBoundaryCallbackTest {
verifyZeroInteractions(repository);
verify(mediaClient).getMediaListForUser(anyString());
}
}
}

View file

@ -6,20 +6,18 @@ import fr.free.nrw.commons.media.model.PageMediaListItem
import fr.free.nrw.commons.media.model.PageMediaListResponse
import fr.free.nrw.commons.utils.CommonsDateUtil
import io.reactivex.Observable
import io.reactivex.Single
import junit.framework.Assert.*
import org.junit.Before
import org.junit.Test
import org.mockito.*
import org.mockito.Mockito.*
import org.wikipedia.dataclient.mwapi.ImageDetails
import org.wikipedia.dataclient.mwapi.MwQueryPage
import org.wikipedia.dataclient.mwapi.MwQueryResponse
import org.wikipedia.dataclient.mwapi.MwQueryResult
import org.wikipedia.gallery.ImageInfo
import org.mockito.ArgumentCaptor
import org.mockito.ArgumentMatchers.*
import java.util.*
import org.mockito.Captor
import org.mockito.Mockito.*
class MediaClientTest {
@ -30,6 +28,9 @@ class MediaClientTest {
@Mock
internal var pageMediaInterface: PageMediaInterface? = null
@Mock
internal var mediaDetailInterface: MediaDetailInterface? = null
@InjectMocks
var mediaClient: MediaClient? = null
@ -168,7 +169,7 @@ class MediaClientTest {
`when`(mediaInterface!!.getMediaWithGenerator(filenameCaptor!!.capture()))
.thenReturn(Observable.just(mockResponse))
assertEquals("Test", mediaClient!!.getPictureOfTheDay().blockingGet().filename)
assertEquals("Test", mediaClient!!.pictureOfTheDay.blockingGet().filename)
assertEquals(template, filenameCaptor.value);
}
@ -260,7 +261,7 @@ class MediaClientTest {
val mock = mock(PageMediaListResponse::class.java)
whenever(mock.items).thenReturn(listOf<PageMediaListItem>(mock(PageMediaListItem::class.java)))
`when`(pageMediaInterface!!.getMediaList(ArgumentMatchers.anyString()))
.thenReturn(Observable.just(mock))
.thenReturn(Single.just(mock))
mediaClient!!.doesPageContainMedia("Test").test().assertValue(true)
}
@ -270,7 +271,7 @@ class MediaClientTest {
val mock = mock(PageMediaListResponse::class.java)
whenever(mock.items).thenReturn(listOf<PageMediaListItem>())
`when`(pageMediaInterface!!.getMediaList(ArgumentMatchers.anyString()))
.thenReturn(Observable.just(mock))
.thenReturn(Single.just(mock))
mediaClient!!.doesPageContainMedia("Test").test().assertValue(false)
}
@ -285,4 +286,4 @@ class MediaClientTest {
assertEquals("", mediaClient!!.getPageHtml("abcde").blockingGet())
}
}
}