Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2918ba8 authored by Hasib Prince's avatar Hasib Prince
Browse files

fixed: unit test for HomeApi

parent b00bfa83
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ class ApplicationRepository @Inject constructor(
) {

    suspend fun getHomeScreenData(authData: AuthData): LiveData<ResultSupreme<List<Home>>> {
        return homeApi.getHomeScreenData(authData)
        return homeApi.fetchHomeScreenData(authData)
    }

    fun getApplicationCategoryPreference(): List<String> {
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ import foundation.e.apps.data.ResultSupreme
import foundation.e.apps.data.application.data.Home

interface HomeApi {
    suspend fun getHomeScreenData(
    suspend fun fetchHomeScreenData(
        authData: AuthData,
    ): LiveData<ResultSupreme<List<Home>>>
}
+3 −3
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import foundation.e.apps.R
import foundation.e.apps.data.ResultSupreme
import foundation.e.apps.data.application.data.Home
import foundation.e.apps.data.application.utils.transformToFusedApp
import foundation.e.apps.data.application.utils.transformToApplication
import foundation.e.apps.data.cleanapk.data.home.HomeScreen
import foundation.e.apps.data.cleanapk.repositories.CleanApkRepository
import foundation.e.apps.data.enums.ResultStatus
@@ -63,7 +63,7 @@ class HomeApiImpl @Inject constructor(
        private const val WEIGHT_OPEN_SOURCE = 2
        private const val WEIGHT_GPLAY = 3
    }
    override suspend fun getHomeScreenData(authData: AuthData): LiveData<ResultSupreme<List<Home>>> {
    override suspend fun fetchHomeScreenData(authData: AuthData): LiveData<ResultSupreme<List<Home>>> {
        val list = mutableListOf<Home>()
        var resultGplay: FusedHomeDeferred? = null
        var resultOpenSource: FusedHomeDeferred? = null
@@ -220,7 +220,7 @@ class HomeApiImpl @Inject constructor(
        val gplayHomeData = gplayRepository.getHomeScreenData() as Map<String, List<App>>
        gplayHomeData.map {
            val fusedApps = it.value.map { app ->
                app.transformToFusedApp (context).apply {
                app.transformToApplication (context).apply {
                    applicationDataManager.updateStatus(this)
                    applicationDataManager.updateFilterLevel(authData, this)
                }
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ import foundation.e.apps.data.application.data.Application
import foundation.e.apps.data.application.data.Ratings
import foundation.e.apps.data.enums.Origin

fun App.transformToFusedApp(context: Context): Application {
fun App.transformToApplication(context: Context): Application {
    val app = Application(
        _id = this.id.toString(),
        author = this.developerName,
+0 −31
Original line number Diff line number Diff line
@@ -756,37 +756,6 @@ class ApplicationApiImplTest {
        assertEquals("getSearchResult", 4, size)
    }

    @Test
    fun testHomeScreenDataWhenDataIsLimited() = runTest {
        val newAppList = mutableListOf<App>(
            App("foundation.e.demoone"),
            App("foundation.e.demotwo"),
            App("foundation.e.demothree"),
        )

        var newHomeData = mapOf<String, List<App>>(Pair("Top Free Apps", newAppList))
        preferenceManagerModule.isGplaySelectedFake = true

        formatterMocked.`when`<String> { Formatter.formatFileSize(any(), any()) }.thenReturn("15MB")
        Mockito.`when`(gPlayAPIRepository.getHomeScreenData()).thenReturn(newHomeData)
        Mockito.`when`(gPlayAPIRepository.getAppDetails(anyString())).thenReturn(App("foundation.e.demothree"))
        Mockito.`when`(gPlayAPIRepository.getDownloadInfo(anyString(), any(), any())).thenReturn(listOf())
        Mockito.`when`(pkgManagerModule.getPackageStatus(any(), any())).thenReturn(Status.UNAVAILABLE)

        var hasLimitedDataFound = false
        val job = launch {
            EventBus.events.collect {
                hasLimitedDataFound = true
            }
        }

        fusedAPIImpl.getHomeScreenData(AUTH_DATA).getOrAwaitValue()
        delay(500)
        job.cancel()

        assert(hasLimitedDataFound)
    }

    @Test
    fun testSearchResultWhenDataIsLimited() = runTest {
        preferenceManagerModule.isGplaySelectedFake = true
Loading