test(ReasonBuilder): fix tests according to new behavior

This commit is contained in:
Rohit Verma 2025-06-23 09:26:48 +05:30
parent 7d374ceb07
commit 93d43a289b

View file

@ -5,13 +5,14 @@ import android.content.res.Resources
import fr.free.nrw.commons.Media
import fr.free.nrw.commons.R
import fr.free.nrw.commons.auth.SessionManager
import fr.free.nrw.commons.fileusages.GlobalFileUsagesResponse
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
import fr.free.nrw.commons.profile.achievements.FeedbackResponse
import fr.free.nrw.commons.profile.leaderboard.LeaderboardResponse
import fr.free.nrw.commons.profile.leaderboard.UpdateAvatarResponse
import fr.free.nrw.commons.utils.ViewUtilWrapper
import io.reactivex.Observable
import io.reactivex.Single
import kotlinx.coroutines.test.runTest
import media
import org.junit.Before
import org.junit.Test
@ -58,16 +59,16 @@ class ReasonBuilderTest {
PowerMockito.`when`(context?.getString(R.string.user_not_logged_in))
.thenReturn("Log-in expired. Please log in again.")
reasonBuilder!!.getReason(mock(Media::class.java), "test")
reasonBuilder!!.getReason(mock(Media::class.java), "test").test()
verify(sessionManager, times(1))!!.forceLogin(any(Context::class.java))
}
@Test
fun getReason() {
fun getReason() = runTest {
`when`(sessionManager?.userName).thenReturn("Testuser")
`when`(sessionManager?.doesAccountExist()).thenReturn(true)
`when`(okHttpJsonApiClient!!.getAchievements(anyString()))
.thenReturn(Single.just(mock(FeedbackResponse::class.java)))
`when`(okHttpJsonApiClient!!.getGlobalFileUsages(anyString(), anyInt()))
.thenReturn(mock(GlobalFileUsagesResponse::class.java))
`when`(okHttpJsonApiClient!!.getLeaderboard(anyString(), anyString(), anyString(), anyString(), anyString()))
.thenReturn(Observable.just(mock(LeaderboardResponse::class.java)))
`when`(okHttpJsonApiClient!!.setAvatar(anyString(), anyString()))
@ -75,8 +76,8 @@ class ReasonBuilderTest {
val media = media(filename = "test_file", dateUploaded = Date())
reasonBuilder!!.getReason(media, "test")
reasonBuilder!!.getReason(media, "test").test()
verify(sessionManager, times(0))!!.forceLogin(any(Context::class.java))
verify(okHttpJsonApiClient, times(1))!!.getAchievements(anyString())
verify(okHttpJsonApiClient, times(1))!!.getGlobalFileUsages(anyString(), anyInt())
}
}