From 9ba3b500425d279a147990ce5dc5c8efbbb053de Mon Sep 17 00:00:00 2001 From: hasibprince Date: Tue, 1 Nov 2022 17:32:20 +0600 Subject: [PATCH 1/3] Unit test added for testing exception of getAppDetails --- .../foundation/e/apps/FusedApiImplTest.kt | 91 +++++++++++++++++-- 1 file changed, 84 insertions(+), 7 deletions(-) diff --git a/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt b/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt index 8400436f4..cfb09af30 100644 --- a/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt +++ b/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt @@ -43,6 +43,7 @@ import foundation.e.apps.utils.enums.Status import foundation.e.apps.utils.modules.PWAManagerModule import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest +import org.junit.After import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue @@ -50,6 +51,7 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import org.mockito.Mock +import org.mockito.MockedStatic import org.mockito.Mockito import org.mockito.MockitoAnnotations import org.mockito.kotlin.any @@ -88,9 +90,12 @@ class FusedApiImplTest { private lateinit var preferenceManagerModule: FakePreferenceModule + private lateinit var formatterMocked: MockedStatic + @Before fun setup() { MockitoAnnotations.openMocks(this) + formatterMocked = Mockito.mockStatic(Formatter::class.java) preferenceManagerModule = FakePreferenceModule(context) fusedAPIImpl = FusedAPIImpl( cleanApkRepository, @@ -102,6 +107,11 @@ class FusedApiImplTest { ) } + @After + fun after() { + formatterMocked.close() + } + @Test fun `is any app updated when new list is empty`() { val oldAppList = mutableListOf( @@ -747,11 +757,22 @@ class FusedApiImplTest { preferenceManagerModule.isOpenSourceelectedFake = true preferenceManagerModule.isGplaySelectedFake = true val gplayLivedata = - MutableLiveData(Pair(listOf(App("a.b.c"), App("c.d.e"), App("d.e.f"), App("d.e.g")), false)) + MutableLiveData( + Pair( + listOf(App("a.b.c"), App("c.d.e"), App("d.e.f"), App("d.e.g")), + false + ) + ) - setupMockingSearchApp(packageNameSearchResponse, authData, gplayPackageResult, gplayLivedata) + setupMockingSearchApp( + packageNameSearchResponse, + authData, + gplayPackageResult, + gplayLivedata + ) - val searchResultLiveData = fusedAPIImpl.getSearchResults("com.search.package", authData).getOrAwaitValue() + val searchResultLiveData = + fusedAPIImpl.getSearchResults("com.search.package", authData).getOrAwaitValue() val size = searchResultLiveData.data?.first?.size ?: -2 assertEquals("getSearchResult", 8, size) } @@ -760,7 +781,8 @@ class FusedApiImplTest { packageNameSearchResponse: Response?, authData: AuthData, gplayPackageResult: App, - gplayLivedata: MutableLiveData, Boolean>> + gplayLivedata: MutableLiveData, Boolean>>, + willThrowException: Boolean = false ) { Mockito.`when`(pwaManagerModule.getPwaStatus(any())).thenReturn(Status.UNAVAILABLE) Mockito.`when`(pkgManagerModule.getPackageStatus(any(), any())) @@ -771,11 +793,15 @@ class FusedApiImplTest { by = "package_name" ) ).thenReturn(packageNameSearchResponse) - val formatterMocked = Mockito.mockStatic(Formatter::class.java) formatterMocked.`when` { Formatter.formatFileSize(any(), any()) }.thenReturn("15MB") - Mockito.`when`(gPlayAPIRepository.getAppDetails(eq("com.search.package"), eq(authData))) - .thenReturn(gplayPackageResult) + if (willThrowException) { + Mockito.`when`(gPlayAPIRepository.getAppDetails("com.search.package", authData)) + .thenThrow(RuntimeException()) + } else { + Mockito.`when`(gPlayAPIRepository.getAppDetails(eq("com.search.package"), eq(authData))) + .thenReturn(gplayPackageResult) + } Mockito.`when`(cleanApkRepository.searchApps(keyword = "com.search.package")) .thenReturn(packageNameSearchResponse) @@ -790,4 +816,55 @@ class FusedApiImplTest { Mockito.`when`(gPlayAPIRepository.getSearchResults(eq("com.search.package"), eq(authData))) .thenReturn(gplayLivedata) } + + @Test + fun `getSearchResult When getApplicationDetailsThrowsException`() = runTest { + val authData = AuthData("e@e.email", "AtadyMsIAtadyM") + val appList = mutableListOf( + FusedApp( + _id = "111", + status = Status.UNAVAILABLE, + name = "Demo One", + package_name = "foundation.e.demoone", + latest_version_code = 123 + ), + FusedApp( + _id = "112", + status = Status.UNAVAILABLE, + name = "Demo Two", + package_name = "foundation.e.demotwo", + latest_version_code = 123 + ), + FusedApp( + _id = "113", + status = Status.UNAVAILABLE, + name = "Demo Three", + package_name = "foundation.e.demothree", + latest_version_code = 123 + ) + ) + val searchResult = Search(apps = appList, numberOfResults = 1, success = true) + val packageNameSearchResponse = Response.success(searchResult) + val gplayPackageResult = App("com.search.package") + + val gplayLivedata = + MutableLiveData(Pair(listOf(App("a.b.c"), App("c.d.e"), App("d.e.f")), false)) + + setupMockingSearchApp( + packageNameSearchResponse, + authData, + gplayPackageResult, + gplayLivedata, + true + ) + + preferenceManagerModule.isPWASelectedFake = false + preferenceManagerModule.isOpenSourceelectedFake = false + preferenceManagerModule.isGplaySelectedFake = true + + val searchResultLiveData = + fusedAPIImpl.getSearchResults("com.search.package", authData).getOrAwaitValue() + val size = searchResultLiveData.data?.first?.size ?: -2 + assertEquals("getSearchResult", 3, size) + } } -- GitLab From 1ad15a57b1783a086178fc5de5411fe5705c95db Mon Sep 17 00:00:00 2001 From: hasibprince Date: Thu, 3 Nov 2022 12:40:07 +0600 Subject: [PATCH 2/3] Refactored: FusedApiImplTest --- .../foundation/e/apps/FusedApiImplTest.kt | 249 ++++++++---------- 1 file changed, 111 insertions(+), 138 deletions(-) diff --git a/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt b/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt index cfb09af30..dc33041dd 100644 --- a/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt +++ b/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt @@ -92,6 +92,8 @@ class FusedApiImplTest { private lateinit var formatterMocked: MockedStatic + val authData = AuthData("e@e.email", "AtadyMsIAtadyM") + @Before fun setup() { MockitoAnnotations.openMocks(this) @@ -120,22 +122,20 @@ class FusedApiImplTest { status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo" - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", package_name = "foundation.e.demothree" ) ) - val newAppList = mutableListOf() + val newAppList = mutableListOf() val isFusedAppUpdated = fusedAPIImpl.isAnyFusedAppUpdated(newAppList, oldAppList) assertTrue("isAnyAppUpdated", isFusedAppUpdated) } @@ -154,34 +154,31 @@ class FusedApiImplTest { status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo" - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", package_name = "foundation.e.demothree" ) ) + val newAppList = mutableListOf( FusedApp( _id = "111", status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo" - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -202,15 +199,13 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -218,6 +213,7 @@ class FusedApiImplTest { latest_version_code = 123 ) ) + Mockito.`when`(pkgManagerModule.getPackageStatus(eq("foundation.e.demoone"), eq(123))) .thenReturn( Status.UNAVAILABLE @@ -230,6 +226,7 @@ class FusedApiImplTest { .thenReturn( Status.UNAVAILABLE ) + val isAppStatusUpdated = fusedAPIImpl.isAnyAppInstallStatusChanged(oldAppList) assertTrue("hasInstallStatusUpdated", isAppStatusUpdated) } @@ -243,15 +240,13 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -259,6 +254,7 @@ class FusedApiImplTest { latest_version_code = 123 ) ) + Mockito.`when`(pkgManagerModule.getPackageStatus(eq("foundation.e.demoone"), eq(123))) .thenReturn( Status.UNAVAILABLE @@ -271,6 +267,7 @@ class FusedApiImplTest { .thenReturn( Status.UNAVAILABLE ) + val isAppStatusUpdated = fusedAPIImpl.isAnyAppInstallStatusChanged(oldAppList) assertFalse("hasInstallStatusUpdated", isAppStatusUpdated) } @@ -284,15 +281,13 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -300,6 +295,7 @@ class FusedApiImplTest { latest_version_code = 123 ) ) + Mockito.`when`(pkgManagerModule.getPackageStatus(eq("foundation.e.demoone"), eq(123))) .thenReturn( Status.UNAVAILABLE @@ -312,6 +308,7 @@ class FusedApiImplTest { .thenReturn( Status.UNAVAILABLE ) + val isAppStatusUpdated = fusedAPIImpl.isAnyAppInstallStatusChanged(oldAppList) assertFalse("hasInstallStatusUpdated", isAppStatusUpdated) } @@ -325,15 +322,13 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -341,6 +336,7 @@ class FusedApiImplTest { latest_version_code = 123 ) ) + val newAppList = mutableListOf( FusedApp( _id = "111", @@ -348,15 +344,13 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -364,6 +358,7 @@ class FusedApiImplTest { latest_version_code = 123 ) ) + val oldHomeData = listOf(FusedHome("Top Free Apps", oldAppList), FusedHome("Top Free Games", oldAppList)) var newHomeData = @@ -372,6 +367,7 @@ class FusedApiImplTest { assertFalse("isHomeDataUpdated/NO", isHomeDataUpdated) newHomeData = listOf(FusedHome("Top Free Apps", oldAppList), FusedHome("Top Free Games", newAppList)) + isHomeDataUpdated = fusedAPIImpl.isHomeDataUpdated(newHomeData, oldHomeData) assertTrue("isHomeDataUpdated/YES", isHomeDataUpdated) } @@ -408,7 +404,9 @@ class FusedApiImplTest { latest_version_code = 123, is_pwa = true ) + Mockito.`when`(pwaManagerModule.getPwaStatus(fusedApp)).thenReturn(fusedApp.status) + val installationStatus = fusedAPIImpl.getFusedAppInstallationStatus(fusedApp) assertEquals("getFusedAppInstallationStatusWhenPWA", fusedApp.status, installationStatus) } @@ -421,12 +419,13 @@ class FusedApiImplTest { package_name = "foundation.e.demothree", latest_version_code = 123, ) + Mockito.`when`( pkgManagerModule.getPackageStatus( - fusedApp.package_name, - fusedApp.latest_version_code + fusedApp.package_name, fusedApp.latest_version_code ) ).thenReturn(Status.INSTALLED) + val installationStatus = fusedAPIImpl.getFusedAppInstallationStatus(fusedApp) assertEquals("getFusedAppInstallationStatusWhenPWA", Status.INSTALLED, installationStatus) } @@ -439,7 +438,7 @@ class FusedApiImplTest { package_name = "", latest_version_code = 123, ) - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) assertEquals("getAppFilterLevel", FilterLevel.UNKNOWN, filterLevel) } @@ -454,7 +453,6 @@ class FusedApiImplTest { origin = Origin.CLEANAPK ) - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) assertEquals("getAppFilterLevel", FilterLevel.NONE, filterLevel) } @@ -468,6 +466,7 @@ class FusedApiImplTest { latest_version_code = 123, origin = Origin.CLEANAPK ) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, null) assertEquals("getAppFilterLevel", FilterLevel.NONE, filterLevel) } @@ -484,7 +483,7 @@ class FusedApiImplTest { isFree = false, price = "" ) - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) assertEquals("getAppFilterLevel", FilterLevel.UI, filterLevel) } @@ -501,7 +500,7 @@ class FusedApiImplTest { isFree = false, price = "" ) - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) assertEquals("getAppFilterLevel", FilterLevel.UI, filterLevel) } @@ -519,7 +518,7 @@ class FusedApiImplTest { isFree = true, price = "" ) - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") + Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, authData)) .thenReturn(App(fusedApp.package_name)) @@ -531,71 +530,65 @@ class FusedApiImplTest { authData ) ).thenReturn(listOf()) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) assertEquals("getAppFilterLevel", FilterLevel.NONE, filterLevel) } @Test - fun `getAppFilterLevel when app is restricted and getAppDetails throws exception`() = - runTest { - val fusedApp = FusedApp( - _id = "113", - name = "Demo Three", - package_name = "foundation.e.demothree", - latest_version_code = 123, - origin = Origin.GPLAY, - restriction = Constants.Restriction.UNKNOWN, - isFree = true, - price = "" + fun `getAppFilterLevel when app is restricted and getAppDetails throws exception`() = runTest { + val fusedApp = FusedApp( + _id = "113", + name = "Demo Three", + package_name = "foundation.e.demothree", + latest_version_code = 123, + origin = Origin.GPLAY, + restriction = Constants.Restriction.UNKNOWN, + isFree = true, + price = "" + ) + + Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, authData)) + .thenThrow(RuntimeException()) + + Mockito.`when`( + gPlayAPIRepository.getDownloadInfo( + fusedApp.package_name, fusedApp.latest_version_code, fusedApp.offer_type, authData ) - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") - Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, authData)) - .thenThrow(RuntimeException()) + ).thenReturn(listOf()) - Mockito.`when`( - gPlayAPIRepository.getDownloadInfo( - fusedApp.package_name, - fusedApp.latest_version_code, - fusedApp.offer_type, - authData - ) - ).thenReturn(listOf()) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) - assertEquals("getAppFilterLevel", FilterLevel.DATA, filterLevel) - } + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + assertEquals("getAppFilterLevel", FilterLevel.DATA, filterLevel) + } @Test - fun `getAppFilterLevel when app is restricted and getDownoadInfo throws exception`() = - runTest { - val fusedApp = FusedApp( - _id = "113", - name = "Demo Three", - package_name = "foundation.e.demothree", - latest_version_code = 123, - origin = Origin.GPLAY, - restriction = Constants.Restriction.UNKNOWN, - isFree = true, - price = "" + fun `getAppFilterLevel when app is restricted and getDownoadInfo throws exception`() = runTest { + val fusedApp = FusedApp( + _id = "113", + name = "Demo Three", + package_name = "foundation.e.demothree", + latest_version_code = 123, + origin = Origin.GPLAY, + restriction = Constants.Restriction.UNKNOWN, + isFree = true, + price = "" + ) + + Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, authData)) + .thenReturn(App(fusedApp.package_name)) + + Mockito.`when`( + gPlayAPIRepository.getDownloadInfo( + fusedApp.package_name, fusedApp.latest_version_code, fusedApp.offer_type, authData ) - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") - Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, authData)) - .thenReturn(App(fusedApp.package_name)) + ).thenThrow(RuntimeException()) - Mockito.`when`( - gPlayAPIRepository.getDownloadInfo( - fusedApp.package_name, - fusedApp.latest_version_code, - fusedApp.offer_type, - authData - ) - ).thenThrow(RuntimeException()) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) - assertEquals("getAppFilterLevel", FilterLevel.UI, filterLevel) - } + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + assertEquals("getAppFilterLevel", FilterLevel.UI, filterLevel) + } @Test fun `getCategory when only pwa is selected`() = runTest { - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") val categories = Categories(listOf("app one", "app two", "app three"), listOf("game 1", "game 2"), true) val response = Response.success(categories) @@ -605,8 +598,7 @@ class FusedApiImplTest { Mockito.`when`( cleanApkRepository.getCategoriesList( - eq(CleanAPKInterface.APP_TYPE_PWA), - eq(CleanAPKInterface.APP_SOURCE_ANY) + eq(CleanAPKInterface.APP_TYPE_PWA), eq(CleanAPKInterface.APP_SOURCE_ANY) ) ).thenReturn(response) @@ -614,12 +606,12 @@ class FusedApiImplTest { val categoryListResponse = fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + assertEquals("getCategory", 3, categoryListResponse.first.size) } @Test fun `getCategory when only open source is selected`() = runTest { - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") val categories = Categories(listOf("app one", "app two", "app three"), listOf("game 1", "game 2"), true) val response = Response.success(categories) @@ -630,20 +622,19 @@ class FusedApiImplTest { Mockito.`when`( cleanApkRepository.getCategoriesList( - eq(CleanAPKInterface.APP_TYPE_ANY), - eq(CleanAPKInterface.APP_SOURCE_FOSS) + eq(CleanAPKInterface.APP_TYPE_ANY), eq(CleanAPKInterface.APP_SOURCE_FOSS) ) ).thenReturn(response) Mockito.`when`(context.getString(eq(R.string.open_source))).thenReturn("Open source") val categoryListResponse = fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + assertEquals("getCategory", 3, categoryListResponse.first.size) } @Test fun `getCategory when gplay source is selected`() = runTest { - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") val categories = listOf(Category(), Category(), Category(), Category()) preferenceManagerModule.isPWASelectedFake = false @@ -656,14 +647,12 @@ class FusedApiImplTest { val categoryListResponse = fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + assertEquals("getCategory", 4, categoryListResponse.first.size) } @Test fun `getCategory when gplay source is selected return error`() = runTest { - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") - val categories = listOf(Category(), Category(), Category(), Category()) - preferenceManagerModule.isPWASelectedFake = false preferenceManagerModule.isOpenSourceelectedFake = false preferenceManagerModule.isGplaySelectedFake = true @@ -674,20 +663,17 @@ class FusedApiImplTest { val categoryListResponse = fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + assertEquals("getCategory", 0, categoryListResponse.first.size) assertEquals("getCategory", ResultStatus.UNKNOWN, categoryListResponse.third) } @Test fun `getCategory when All source is selected`() = runTest { - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") val gplayCategories = listOf(Category(), Category(), Category(), Category()) - val openSourcecategories = - Categories( - listOf("app one", "app two", "app three", "app four"), - listOf("game 1", "game 2"), - true - ) + val openSourcecategories = Categories( + listOf("app one", "app two", "app three", "app four"), listOf("game 1", "game 2"), true + ) val openSourceResponse = Response.success(openSourcecategories) val pwaCategories = Categories(listOf("app one", "app two", "app three"), listOf("game 1", "game 2"), true) @@ -695,15 +681,13 @@ class FusedApiImplTest { Mockito.`when`( cleanApkRepository.getCategoriesList( - eq(CleanAPKInterface.APP_TYPE_ANY), - eq(CleanAPKInterface.APP_SOURCE_FOSS) + eq(CleanAPKInterface.APP_TYPE_ANY), eq(CleanAPKInterface.APP_SOURCE_FOSS) ) ).thenReturn(openSourceResponse) Mockito.`when`( cleanApkRepository.getCategoriesList( - eq(CleanAPKInterface.APP_TYPE_PWA), - eq(CleanAPKInterface.APP_SOURCE_ANY) + eq(CleanAPKInterface.APP_TYPE_PWA), eq(CleanAPKInterface.APP_SOURCE_ANY) ) ).thenReturn(pwaResponse) @@ -720,12 +704,12 @@ class FusedApiImplTest { val categoryListResponse = fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + assertEquals("getCategory", 11, categoryListResponse.first.size) } @Test fun `getSearchResult When all sources are selected`() = runTest { - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") val appList = mutableListOf( FusedApp( _id = "111", @@ -733,15 +717,13 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -749,6 +731,7 @@ class FusedApiImplTest { latest_version_code = 123 ) ) + val searchResult = Search(apps = appList, numberOfResults = 1, success = true) val packageNameSearchResponse = Response.success(searchResult) val gplayPackageResult = App("com.search.package") @@ -756,23 +739,19 @@ class FusedApiImplTest { preferenceManagerModule.isPWASelectedFake = true preferenceManagerModule.isOpenSourceelectedFake = true preferenceManagerModule.isGplaySelectedFake = true - val gplayLivedata = - MutableLiveData( - Pair( - listOf(App("a.b.c"), App("c.d.e"), App("d.e.f"), App("d.e.g")), - false - ) + val gplayLivedata = MutableLiveData( + Pair( + listOf(App("a.b.c"), App("c.d.e"), App("d.e.f"), App("d.e.g")), false ) + ) setupMockingSearchApp( - packageNameSearchResponse, - authData, - gplayPackageResult, - gplayLivedata + packageNameSearchResponse, authData, gplayPackageResult, gplayLivedata ) val searchResultLiveData = fusedAPIImpl.getSearchResults("com.search.package", authData).getOrAwaitValue() + val size = searchResultLiveData.data?.first?.size ?: -2 assertEquals("getSearchResult", 8, size) } @@ -789,8 +768,7 @@ class FusedApiImplTest { .thenReturn(Status.UNAVAILABLE) Mockito.`when`( cleanApkRepository.searchApps( - keyword = "com.search.package", - by = "package_name" + keyword = "com.search.package", by = "package_name" ) ).thenReturn(packageNameSearchResponse) formatterMocked.`when` { Formatter.formatFileSize(any(), any()) }.thenReturn("15MB") @@ -819,7 +797,6 @@ class FusedApiImplTest { @Test fun `getSearchResult When getApplicationDetailsThrowsException`() = runTest { - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") val appList = mutableListOf( FusedApp( _id = "111", @@ -827,15 +804,13 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), - FusedApp( + ), FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -843,6 +818,7 @@ class FusedApiImplTest { latest_version_code = 123 ) ) + val searchResult = Search(apps = appList, numberOfResults = 1, success = true) val packageNameSearchResponse = Response.success(searchResult) val gplayPackageResult = App("com.search.package") @@ -851,11 +827,7 @@ class FusedApiImplTest { MutableLiveData(Pair(listOf(App("a.b.c"), App("c.d.e"), App("d.e.f")), false)) setupMockingSearchApp( - packageNameSearchResponse, - authData, - gplayPackageResult, - gplayLivedata, - true + packageNameSearchResponse, authData, gplayPackageResult, gplayLivedata, true ) preferenceManagerModule.isPWASelectedFake = false @@ -864,6 +836,7 @@ class FusedApiImplTest { val searchResultLiveData = fusedAPIImpl.getSearchResults("com.search.package", authData).getOrAwaitValue() + val size = searchResultLiveData.data?.first?.size ?: -2 assertEquals("getSearchResult", 3, size) } -- GitLab From 4be64e60aea9bbf7dd39ab1a17d2cb02d5418883 Mon Sep 17 00:00:00 2001 From: hasibprince Date: Thu, 3 Nov 2022 14:01:53 +0600 Subject: [PATCH 3/3] Refactoring:AUTHDATA is declared as static variable --- .../foundation/e/apps/FusedApiImplTest.kt | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt b/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt index dc33041dd..2ced7456a 100644 --- a/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt +++ b/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt @@ -92,7 +92,9 @@ class FusedApiImplTest { private lateinit var formatterMocked: MockedStatic - val authData = AuthData("e@e.email", "AtadyMsIAtadyM") + companion object { + private val AUTH_DATA = AuthData("e@e.email", "AtadyMsIAtadyM") + } @Before fun setup() { @@ -439,7 +441,7 @@ class FusedApiImplTest { latest_version_code = 123, ) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, AUTH_DATA) assertEquals("getAppFilterLevel", FilterLevel.UNKNOWN, filterLevel) } @@ -453,7 +455,7 @@ class FusedApiImplTest { origin = Origin.CLEANAPK ) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, AUTH_DATA) assertEquals("getAppFilterLevel", FilterLevel.NONE, filterLevel) } @@ -484,7 +486,7 @@ class FusedApiImplTest { price = "" ) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, AUTH_DATA) assertEquals("getAppFilterLevel", FilterLevel.UI, filterLevel) } @@ -501,7 +503,7 @@ class FusedApiImplTest { price = "" ) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, AUTH_DATA) assertEquals("getAppFilterLevel", FilterLevel.UI, filterLevel) } @@ -519,7 +521,7 @@ class FusedApiImplTest { price = "" ) - Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, authData)) + Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, AUTH_DATA)) .thenReturn(App(fusedApp.package_name)) Mockito.`when`( @@ -527,11 +529,11 @@ class FusedApiImplTest { fusedApp.package_name, fusedApp.latest_version_code, fusedApp.offer_type, - authData + AUTH_DATA ) ).thenReturn(listOf()) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, AUTH_DATA) assertEquals("getAppFilterLevel", FilterLevel.NONE, filterLevel) } @@ -548,16 +550,16 @@ class FusedApiImplTest { price = "" ) - Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, authData)) + Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, AUTH_DATA)) .thenThrow(RuntimeException()) Mockito.`when`( gPlayAPIRepository.getDownloadInfo( - fusedApp.package_name, fusedApp.latest_version_code, fusedApp.offer_type, authData + fusedApp.package_name, fusedApp.latest_version_code, fusedApp.offer_type, AUTH_DATA ) ).thenReturn(listOf()) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, AUTH_DATA) assertEquals("getAppFilterLevel", FilterLevel.DATA, filterLevel) } @@ -574,16 +576,16 @@ class FusedApiImplTest { price = "" ) - Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, authData)) + Mockito.`when`(gPlayAPIRepository.getAppDetails(fusedApp.package_name, AUTH_DATA)) .thenReturn(App(fusedApp.package_name)) Mockito.`when`( gPlayAPIRepository.getDownloadInfo( - fusedApp.package_name, fusedApp.latest_version_code, fusedApp.offer_type, authData + fusedApp.package_name, fusedApp.latest_version_code, fusedApp.offer_type, AUTH_DATA ) ).thenThrow(RuntimeException()) - val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, authData) + val filterLevel = fusedAPIImpl.getAppFilterLevel(fusedApp, AUTH_DATA) assertEquals("getAppFilterLevel", FilterLevel.UI, filterLevel) } @@ -605,7 +607,7 @@ class FusedApiImplTest { Mockito.`when`(context.getString(eq(R.string.pwa))).thenReturn("PWA") val categoryListResponse = - fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) assertEquals("getCategory", 3, categoryListResponse.first.size) } @@ -628,7 +630,7 @@ class FusedApiImplTest { Mockito.`when`(context.getString(eq(R.string.open_source))).thenReturn("Open source") val categoryListResponse = - fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) assertEquals("getCategory", 3, categoryListResponse.first.size) } @@ -642,11 +644,11 @@ class FusedApiImplTest { preferenceManagerModule.isGplaySelectedFake = true Mockito.`when`( - gPlayAPIRepository.getCategoriesList(Category.Type.APPLICATION, authData) + gPlayAPIRepository.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) ).thenReturn(categories) val categoryListResponse = - fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) assertEquals("getCategory", 4, categoryListResponse.first.size) } @@ -658,11 +660,11 @@ class FusedApiImplTest { preferenceManagerModule.isGplaySelectedFake = true Mockito.`when`( - gPlayAPIRepository.getCategoriesList(Category.Type.APPLICATION, authData) + gPlayAPIRepository.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) ).thenThrow(RuntimeException()) val categoryListResponse = - fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) assertEquals("getCategory", 0, categoryListResponse.first.size) assertEquals("getCategory", ResultStatus.UNKNOWN, categoryListResponse.third) @@ -692,7 +694,7 @@ class FusedApiImplTest { ).thenReturn(pwaResponse) Mockito.`when`( - gPlayAPIRepository.getCategoriesList(Category.Type.APPLICATION, authData) + gPlayAPIRepository.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) ).thenReturn(gplayCategories) Mockito.`when`(context.getString(eq(R.string.open_source))).thenReturn("Open source") @@ -703,7 +705,7 @@ class FusedApiImplTest { preferenceManagerModule.isGplaySelectedFake = true val categoryListResponse = - fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, authData) + fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) assertEquals("getCategory", 11, categoryListResponse.first.size) } @@ -746,11 +748,11 @@ class FusedApiImplTest { ) setupMockingSearchApp( - packageNameSearchResponse, authData, gplayPackageResult, gplayLivedata + packageNameSearchResponse, AUTH_DATA, gplayPackageResult, gplayLivedata ) val searchResultLiveData = - fusedAPIImpl.getSearchResults("com.search.package", authData).getOrAwaitValue() + fusedAPIImpl.getSearchResults("com.search.package", AUTH_DATA).getOrAwaitValue() val size = searchResultLiveData.data?.first?.size ?: -2 assertEquals("getSearchResult", 8, size) @@ -827,7 +829,7 @@ class FusedApiImplTest { MutableLiveData(Pair(listOf(App("a.b.c"), App("c.d.e"), App("d.e.f")), false)) setupMockingSearchApp( - packageNameSearchResponse, authData, gplayPackageResult, gplayLivedata, true + packageNameSearchResponse, AUTH_DATA, gplayPackageResult, gplayLivedata, true ) preferenceManagerModule.isPWASelectedFake = false @@ -835,7 +837,7 @@ class FusedApiImplTest { preferenceManagerModule.isGplaySelectedFake = true val searchResultLiveData = - fusedAPIImpl.getSearchResults("com.search.package", authData).getOrAwaitValue() + fusedAPIImpl.getSearchResults("com.search.package", AUTH_DATA).getOrAwaitValue() val size = searchResultLiveData.data?.first?.size ?: -2 assertEquals("getSearchResult", 3, size) -- GitLab