diff --git a/app/build.gradle b/app/build.gradle index 6488e917a..b38987ec7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -80,22 +80,22 @@ dependencies { //Mocking testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0' - testImplementation 'org.mockito:mockito-inline:2.13.0' - testImplementation 'org.mockito:mockito-core:2.25.1' - testImplementation "org.powermock:powermock-module-junit4:2.0.2" - testImplementation "org.powermock:powermock-api-mockito2:2.0.2" + testImplementation 'org.mockito:mockito-inline:5.2.0' + testImplementation 'org.mockito:mockito-core:5.5.0' + testImplementation "org.powermock:powermock-module-junit4:2.0.9" + testImplementation "org.powermock:powermock-api-mockito2:2.0.9" // Unit testing testImplementation 'junit:junit:4.13.2' testImplementation 'org.robolectric:robolectric:4.10.3' - testImplementation 'androidx.test:core:1.4.0' + testImplementation 'androidx.test:core:1.5.0' testImplementation "com.squareup.okhttp3:mockwebserver:$OKHTTP_VERSION" testImplementation "com.jraska.livedata:testing-ktx:1.1.2" - testImplementation "androidx.arch.core:core-testing:2.1.0" - testImplementation "org.junit.jupiter:junit-jupiter-api:5.7.0" - testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.7.0" + testImplementation "androidx.arch.core:core-testing:2.2.0" + testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.0" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.0" testImplementation 'com.facebook.soloader:soloader:0.10.1' - testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.0" + testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3" // Android testing androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$KOTLIN_VERSION" @@ -121,7 +121,6 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation "androidx.exifinterface:exifinterface:1.3.2" implementation "androidx.core:core-ktx:$CORE_KTX_VERSION" - implementation "androidx.multidex:multidex:2.0.1" implementation 'com.simplecityapps:recyclerview-fastscroll:2.0.1' //swipe_layout @@ -153,6 +152,8 @@ dependencies { //Glide implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' + kaptTest "androidx.databinding:databinding-compiler:8.0.2" + kaptAndroidTest "androidx.databinding:databinding-compiler:8.0.2" implementation("io.github.coordinates2country:coordinates2country-android:1.3") { exclude group: 'com.google.android', module: 'android' } } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/AboutActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/AboutActivityUnitTests.kt index a6d562dc5..6c033d8c3 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/AboutActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/AboutActivityUnitTests.kt @@ -29,7 +29,7 @@ class AboutActivityUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) activity = Robolectric.buildActivity(AboutActivity::class.java).create().get() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/CommonsAppAdapterUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/CommonsAppAdapterUnitTest.kt index 2faea3990..ab295132b 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/CommonsAppAdapterUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/CommonsAppAdapterUnitTest.kt @@ -31,7 +31,7 @@ class CommonsAppAdapterUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) adapter = CommonsAppAdapter(sessionManager, preferences) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/FakeContextWrapper.kt b/app/src/test/kotlin/fr/free/nrw/commons/FakeContextWrapper.kt index 0cacad347..429df1dcc 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/FakeContextWrapper.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/FakeContextWrapper.kt @@ -25,7 +25,7 @@ class FakeContextWrapper(base: Context?) : ContextWrapper(base) { } init { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) Mockito.`when`(mMockAccountManager.accounts).thenReturn(ACCOUNTS) Mockito.`when`(mMockAccountManager.getAccountsByType(BuildConfig.ACCOUNT_TYPE)) .thenReturn(ACCOUNTS) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/FakeContextWrapperWithException.kt b/app/src/test/kotlin/fr/free/nrw/commons/FakeContextWrapperWithException.kt index 9165b7b85..c9f08ad04 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/FakeContextWrapperWithException.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/FakeContextWrapperWithException.kt @@ -19,7 +19,7 @@ class FakeContextWrapperWithException(base: Context?) : ContextWrapper(base) { } init { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) Mockito.`when`(mMockAccountManager.getAccountsByType(BuildConfig.ACCOUNT_TYPE)) .thenThrow(SecurityException("Permission Denied")) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/MediaDataExtractorTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/MediaDataExtractorTest.kt index 2045c2731..fdf4dd752 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/MediaDataExtractorTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/MediaDataExtractorTest.kt @@ -30,7 +30,7 @@ class MediaDataExtractorTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } /** diff --git a/app/src/test/kotlin/fr/free/nrw/commons/OkHttpJsonApiClientTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/OkHttpJsonApiClientTests.kt index 33d9415ee..4b59757ab 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/OkHttpJsonApiClientTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/OkHttpJsonApiClientTests.kt @@ -47,7 +47,7 @@ class OkHttpJsonApiClientTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) okHttpJsonApiClient = OkHttpJsonApiClient( okhttpClient, depictsClient, diff --git a/app/src/test/kotlin/fr/free/nrw/commons/TestUtility.kt b/app/src/test/kotlin/fr/free/nrw/commons/TestUtility.kt new file mode 100644 index 000000000..45de96268 --- /dev/null +++ b/app/src/test/kotlin/fr/free/nrw/commons/TestUtility.kt @@ -0,0 +1,24 @@ +package fr.free.nrw.commons + +import java.lang.reflect.Field +import java.lang.reflect.Modifier + +object TestUtility { + @Throws(java.lang.Exception::class) + fun setFinalStatic(field: Field, newValue: Any?) { + try { + field.isAccessible = true + // remove final modifier from field + val modifiersField: Field = Field::class.java.getDeclaredField("modifiers") + modifiersField.isAccessible = true + modifiersField.setInt(field, field.modifiers and Modifier.FINAL.inv()) + field.set(null, newValue) + } catch (e: SecurityException) { + e.stackTrace + } catch (e: NoSuchFieldException) { + e.stackTrace + } catch (e: java.lang.Exception) { + e.stackTrace + } + } +} \ No newline at end of file diff --git a/app/src/test/kotlin/fr/free/nrw/commons/actions/PageEditClientTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/actions/PageEditClientTest.kt index 994ab5593..97a158e4d 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/actions/PageEditClientTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/actions/PageEditClientTest.kt @@ -33,7 +33,7 @@ class PageEditClientTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) pageEditClient = PageEditClient(csrfTokenClient, pageEditInterface) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/actions/ThanksClientTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/actions/ThanksClientTest.kt index a8493df29..ce15ecc9c 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/actions/ThanksClientTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/actions/ThanksClientTest.kt @@ -8,15 +8,18 @@ import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentMatchers import org.mockito.Mock +import org.mockito.MockedStatic import org.mockito.Mockito +import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations import org.powermock.api.mockito.PowerMockito import org.powermock.core.classloader.annotations.PrepareForTest import org.powermock.modules.junit4.PowerMockRunner +import org.robolectric.RobolectricTestRunner import org.wikipedia.csrf.CsrfTokenClient import org.wikipedia.dataclient.Service -@RunWith(PowerMockRunner::class) +@RunWith(RobolectricTestRunner::class) @PrepareForTest(CommonsApplication::class) class ThanksClientTest { @Mock @@ -28,6 +31,7 @@ class ThanksClientTest { private lateinit var commonsApplication: CommonsApplication private lateinit var thanksClient: ThanksClient + private lateinit var mockedApplication: MockedStatic /** * initial setup, test environment @@ -35,9 +39,9 @@ class ThanksClientTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) - PowerMockito.mockStatic(CommonsApplication::class.java) - PowerMockito.`when`(CommonsApplication.getInstance()).thenReturn(commonsApplication) + MockitoAnnotations.openMocks(this) + mockedApplication = Mockito.mockStatic(CommonsApplication::class.java) + `when`(CommonsApplication.getInstance()).thenReturn(commonsApplication) thanksClient = ThanksClient(csrfTokenClient, service) } @@ -46,8 +50,8 @@ class ThanksClientTest { */ @Test fun testThanks() { - Mockito.`when`(csrfTokenClient.tokenBlocking).thenReturn("test") - Mockito.`when`(commonsApplication.userAgent).thenReturn("test") + `when`(csrfTokenClient.tokenBlocking).thenReturn("test") + `when`(commonsApplication.userAgent).thenReturn("test") thanksClient.thank(1L) verify(service).thank(ArgumentMatchers.anyString(), ArgumentMatchers.any(), eq("test"), eq("test")) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/auth/LoginActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/auth/LoginActivityUnitTests.kt index 713d73766..24ca497a3 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/auth/LoginActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/auth/LoginActivityUnitTests.kt @@ -74,7 +74,7 @@ class LoginActivityUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) activity = Robolectric.buildActivity(LoginActivity::class.java).create().get() context = ApplicationProvider.getApplicationContext() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/auth/LogoutClientTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/auth/LogoutClientTest.kt index 7ed6b9940..b9129a377 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/auth/LogoutClientTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/auth/LogoutClientTest.kt @@ -19,7 +19,7 @@ import javax.inject.Named class LogoutClientTest { @Mock @field:[Inject Named("commons-service")] - internal var service: Service? = null + lateinit var service: Service @InjectMocks var logoutClient: LogoutClient? = null @@ -27,7 +27,7 @@ class LogoutClientTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) val mwQueryResponse = mock(MwQueryResponse::class.java) val mwQueryResult = mock(MwQueryResult::class.java) `when`(mwQueryResult!!.csrfToken()).thenReturn("test_token") diff --git a/app/src/test/kotlin/fr/free/nrw/commons/auth/SessionManagerUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/auth/SessionManagerUnitTests.kt index 1e2d55a67..e111102be 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/auth/SessionManagerUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/auth/SessionManagerUnitTests.kt @@ -43,7 +43,7 @@ class SessionManagerUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) accountManager = AccountManager.get(ApplicationProvider.getApplicationContext()) shadowOf(accountManager).addAccount(account) sessionManager = diff --git a/app/src/test/kotlin/fr/free/nrw/commons/auth/SignupActivityTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/auth/SignupActivityTest.kt index c23321671..bb9c67780 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/auth/SignupActivityTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/auth/SignupActivityTest.kt @@ -26,7 +26,7 @@ class SignupActivityTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) activity = Robolectric.buildActivity(SignupActivity::class.java).create().get() } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/auth/WikiAccountAuthenticatorServiceUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/auth/WikiAccountAuthenticatorServiceUnitTest.kt index 1b2a07a06..3fc00c669 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/auth/WikiAccountAuthenticatorServiceUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/auth/WikiAccountAuthenticatorServiceUnitTest.kt @@ -12,7 +12,7 @@ class WikiAccountAuthenticatorServiceUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) service = WikiAccountAuthenticatorService() service.onBind(null) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/auth/WikiAccountAuthenticatorUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/auth/WikiAccountAuthenticatorUnitTest.kt index 735dbc747..f1c11d56e 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/auth/WikiAccountAuthenticatorUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/auth/WikiAccountAuthenticatorUnitTest.kt @@ -35,7 +35,7 @@ class WikiAccountAuthenticatorUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() authenticator = WikiAccountAuthenticator(context) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/BookmarkListRootFragmentUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/BookmarkListRootFragmentUnitTest.kt index 72264e1e1..57a39a0f0 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/BookmarkListRootFragmentUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/BookmarkListRootFragmentUnitTest.kt @@ -83,7 +83,7 @@ class BookmarkListRootFragmentUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) activity = Robolectric.buildActivity(MainActivity::class.java).create().get() context = ApplicationProvider.getApplicationContext() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/BookmarksPagerAdapterTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/BookmarksPagerAdapterTests.kt index b28ff174d..2301faccf 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/BookmarksPagerAdapterTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/BookmarksPagerAdapterTests.kt @@ -20,7 +20,7 @@ class BookmarksPagerAdapterTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) bookmarksPagerAdapter = BookmarksPagerAdapter(fragmentManager, context, false) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/LoggedOutBookmarksPagerAdapterTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/LoggedOutBookmarksPagerAdapterTests.kt index dc6db578f..d5401ad7d 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/LoggedOutBookmarksPagerAdapterTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/LoggedOutBookmarksPagerAdapterTests.kt @@ -26,7 +26,7 @@ class LoggedOutBookmarksPagerAdapterTests { */ @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) bookmarksPagerAdapter = BookmarksPagerAdapter(fragmentManager, context, true) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsControllerTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsControllerTest.kt index ddafb38f4..513f13162 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsControllerTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsControllerTest.kt @@ -19,7 +19,7 @@ class BookmarkItemsControllerTest { @Before fun setup() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) whenever(bookmarkDao!!.allBookmarksItems) .thenReturn(mockBookmarkList) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsDaoTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsDaoTest.kt index 92778dea7..15d04283c 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsDaoTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsDaoTest.kt @@ -16,6 +16,7 @@ import org.junit.Assert import org.junit.Before import org.junit.Test import org.junit.runner.RunWith +import org.mockito.Mockito.verifyNoInteractions import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @@ -230,112 +231,112 @@ class BookmarkItemsDaoTest { fun migrateTableVersionFrom_v1_to_v2() { onUpdate(database, 1, 2) // Table didn't exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v2_to_v3() { onUpdate(database, 2, 3) // Table didn't exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v3_to_v4() { onUpdate(database, 3, 4) // Table didn't exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v4_to_v5() { onUpdate(database, 4, 5) // Table didn't change in version 5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v5_to_v6() { onUpdate(database, 5, 6) // Table didn't change in version 6 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v6_to_v7() { onUpdate(database, 6, 7) // Table didn't change in version 7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v7_to_v8() { onUpdate(database, 7, 8) // Table didn't change in version 8 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v8_to_v9() { onUpdate(database, 8, 9) // Table didn't change in version 9 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v9_to_v10() { onUpdate(database, 9, 10) // Table didn't change in version 10 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v10_to_v11() { onUpdate(database, 10, 11) // Table didn't change in version 11 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v11_to_v12() { onUpdate(database, 11, 12) // Table didn't change in version 12 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v12_to_v13() { onUpdate(database, 12, 13) // Table didn't change in version 13 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v13_to_v14() { onUpdate(database, 13, 14) // Table didn't change in version 14 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v14_to_v15() { onUpdate(database, 14, 15) // Table didn't change in version 15 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v15_to_v16() { onUpdate(database, 15, 16) // Table didn't change in version 16 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v16_to_v17() { onUpdate(database, 16, 17) // Table didn't change in version 17 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test @@ -347,7 +348,7 @@ class BookmarkItemsDaoTest { @Test fun migrateTableVersionFrom_v19_to_v19() { onUpdate(database, 19, 19) - verifyZeroInteractions(database) + verifyNoInteractions(database) } private fun createCursor(rowCount: Int) = MatrixCursor(columns, rowCount).apply { diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragmentUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragmentUnitTest.kt index 9dfd68124..7ebcc605d 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragmentUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/items/BookmarkItemsFragmentUnitTest.kt @@ -76,7 +76,7 @@ class BookmarkItemsFragmentUnitTest { */ @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() AppAdapter.set(TestAppAdapter()) val activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/locations/BookMarkLocationDaoTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/locations/BookMarkLocationDaoTest.kt index eb9ec6c92..b83217599 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/locations/BookMarkLocationDaoTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/locations/BookMarkLocationDaoTest.kt @@ -19,6 +19,7 @@ import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith +import org.mockito.Mockito.verifyNoInteractions import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @@ -215,42 +216,42 @@ class BookMarkLocationDaoTest { fun migrateTableVersionFrom_v1_to_v2() { onUpdate(database, 1, 2) // Table didnt exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v2_to_v3() { onUpdate(database, 2, 3) // Table didnt exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v3_to_v4() { onUpdate(database, 3, 4) // Table didnt exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v4_to_v5() { onUpdate(database, 4, 5) // Table didnt change in version 5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v5_to_v6() { onUpdate(database, 5, 6) // Table didnt change in version 6 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v6_to_v7() { onUpdate(database, 6, 7) // Table didnt change in version 7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/pictures/BookmarkPictureDaoTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/pictures/BookmarkPictureDaoTest.kt index 0c436eebe..51d53e3db 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/pictures/BookmarkPictureDaoTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/bookmarks/pictures/BookmarkPictureDaoTest.kt @@ -18,6 +18,7 @@ import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesDao.Table.* import org.junit.Assert.* import org.junit.Before import org.junit.Test +import org.mockito.Mockito.verifyNoInteractions @RunWith(RobolectricTestRunner::class) @Config(sdk = [21], application = TestCommonsApplication::class) @@ -165,42 +166,42 @@ class BookmarkPictureDaoTest { fun migrateTableVersionFrom_v1_to_v2() { onUpdate(database, 1, 2) // Table didn't exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v2_to_v3() { onUpdate(database, 2, 3) // Table didn't exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v3_to_v4() { onUpdate(database, 3, 4) // Table didn't exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v4_to_v5() { onUpdate(database, 4, 5) // Table didn't change in version 5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v5_to_v6() { onUpdate(database, 5, 6) // Table didn't change in version 6 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v6_to_v7() { onUpdate(database, 6, 7) // Table didn't change in version 7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoriesModelTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoriesModelTest.kt index b987299b3..16f7ec2c2 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoriesModelTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoriesModelTest.kt @@ -32,7 +32,7 @@ class CategoriesModelTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) categoriesModel = CategoriesModel(categoryClient, categoryDao, gpsCategoryModel) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryClientTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryClientTest.kt index 9aa09db23..8633994ef 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryClientTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryClientTest.kt @@ -24,7 +24,7 @@ class CategoryClientTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryDaoTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryDaoTest.kt index 86f2a6ba0..f663a6cc8 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryDaoTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryDaoTest.kt @@ -16,6 +16,7 @@ import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith +import org.mockito.Mockito.verifyNoInteractions import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import java.util.* @@ -57,21 +58,21 @@ class CategoryDaoTest { fun migrateTableVersionFrom_v1_to_v2() { onUpdate(database, 1, 2) // Table didnt exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v2_to_v3() { onUpdate(database, 2, 3) // Table didnt exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v3_to_v4() { onUpdate(database, 3, 4) // Table didnt exist before v5 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test @@ -84,21 +85,21 @@ class CategoryDaoTest { fun migrateTableVersionFrom_v5_to_v6() { onUpdate(database, 5, 6) // Table didnt change in version 6 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v6_to_v7() { onUpdate(database, 6, 7) // Table didnt change in version 7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test fun migrateTableVersionFrom_v7_to_v8() { onUpdate(database, 7, 8) // Table didnt change in version 8 - verifyZeroInteractions(database) + verifyNoInteractions(database) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryDetailsActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryDetailsActivityUnitTests.kt index 32e28fde3..403003576 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryDetailsActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryDetailsActivityUnitTests.kt @@ -39,7 +39,7 @@ class CategoryDetailsActivityUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryEditHelperUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryEditHelperUnitTests.kt index 7f43e31cd..43f4de0e9 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryEditHelperUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/category/CategoryEditHelperUnitTests.kt @@ -44,7 +44,7 @@ class CategoryEditHelperUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() helper = CategoryEditHelper(notificationHelper, pageEditClient, viewUtilWrapper, "") diff --git a/app/src/test/kotlin/fr/free/nrw/commons/category/GridViewAdapterUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/category/GridViewAdapterUnitTest.kt index 0f6ffafd7..3921b31b3 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/category/GridViewAdapterUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/category/GridViewAdapterUnitTest.kt @@ -48,7 +48,7 @@ class GridViewAdapterUnitTest { @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionBoundaryCallbackTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionBoundaryCallbackTest.kt index 399b39aff..88657e101 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionBoundaryCallbackTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionBoundaryCallbackTest.kt @@ -2,7 +2,6 @@ package fr.free.nrw.commons.contributions import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.nhaarman.mockitokotlin2.verify -import com.nhaarman.mockitokotlin2.verifyZeroInteractions import com.nhaarman.mockitokotlin2.whenever import fr.free.nrw.commons.auth.SessionManager import fr.free.nrw.commons.media.MediaClient @@ -17,6 +16,7 @@ import org.mockito.ArgumentMatchers.anyList import org.mockito.ArgumentMatchers.anyString import org.mockito.Mock import org.mockito.Mockito.mock +import org.mockito.Mockito.verifyNoInteractions import org.mockito.MockitoAnnotations import java.lang.reflect.Method @@ -114,7 +114,7 @@ class ContributionBoundaryCallbackTest { ) method.isAccessible = true method.invoke(contributionBoundaryCallback) - verifyZeroInteractions(repository); + verifyNoInteractions(repository) verify(mediaClient).getMediaListForUser(anyString()); } } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionViewHolderUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionViewHolderUnitTests.kt index 92146f480..a158c949e 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionViewHolderUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionViewHolderUnitTests.kt @@ -15,6 +15,7 @@ import com.facebook.soloader.SoLoader import fr.free.nrw.commons.Media import fr.free.nrw.commons.R import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.TestUtility.setFinalStatic import fr.free.nrw.commons.media.MediaClient import fr.free.nrw.commons.profile.ProfileActivity import io.reactivex.disposables.CompositeDisposable @@ -25,17 +26,21 @@ import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.Mockito.* import org.mockito.MockitoAnnotations +import org.powermock.core.classloader.annotations.PrepareForTest import org.powermock.reflect.Whitebox import org.robolectric.Robolectric import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode +import java.lang.reflect.Field import java.lang.reflect.Method +import java.lang.reflect.Modifier @RunWith(RobolectricTestRunner::class) @Config(sdk = [21], application = TestCommonsApplication::class) @LooperMode(LooperMode.Mode.PAUSED) +@PrepareForTest(ContributionViewHolder::class) class ContributionViewHolderUnitTests { private lateinit var contributionViewHolder: ContributionViewHolder @@ -116,14 +121,9 @@ class ContributionViewHolderUnitTests { progressView = parent.findViewById(R.id.contributionProgress) Whitebox.setInternalState(contributionViewHolder, "progressView", progressView) - - - Whitebox.setInternalState( - contributionViewHolder, - "compositeDisposable", - compositeDisposable - ) - + setFinalStatic( + ContributionViewHolder::class.java.getDeclaredField("compositeDisposable"), + compositeDisposable) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsListPresenterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsListPresenterTest.kt index a8cde3eba..6cc3fd38a 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsListPresenterTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/contributions/ContributionsListPresenterTest.kt @@ -3,14 +3,9 @@ package fr.free.nrw.commons.contributions import androidx.arch.core.executor.testing.InstantTaskExecutorRule import com.nhaarman.mockitokotlin2.times import com.nhaarman.mockitokotlin2.verify -import com.nhaarman.mockitokotlin2.verifyZeroInteractions import com.nhaarman.mockitokotlin2.whenever -import fr.free.nrw.commons.Media -import fr.free.nrw.commons.auth.SessionManager -import fr.free.nrw.commons.media.MediaClient import io.reactivex.Completable import io.reactivex.Scheduler -import io.reactivex.Single import io.reactivex.schedulers.Schedulers import org.junit.Before import org.junit.Rule @@ -18,7 +13,6 @@ import org.junit.Test import org.mockito.ArgumentMatchers import org.mockito.ArgumentMatchers.any import org.mockito.Mock -import org.mockito.Mockito import org.mockito.Mockito.mock import org.mockito.MockitoAnnotations diff --git a/app/src/test/kotlin/fr/free/nrw/commons/customselector/helper/OnSwipeTouchListenerTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/customselector/helper/OnSwipeTouchListenerTest.kt index f35685e1c..99cf39294 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/customselector/helper/OnSwipeTouchListenerTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/customselector/helper/OnSwipeTouchListenerTest.kt @@ -8,18 +8,23 @@ import androidx.test.core.app.ApplicationProvider import com.nhaarman.mockitokotlin2.whenever import fr.free.nrw.commons.TestAppAdapter import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.TestUtility.setFinalStatic import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock import org.mockito.MockitoAnnotations +import org.powermock.core.classloader.annotations.PrepareForTest import org.powermock.reflect.Whitebox import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import org.wikipedia.AppAdapter +import java.lang.reflect.Field +import java.lang.reflect.Modifier @RunWith(RobolectricTestRunner::class) @Config(sdk = [21], application = TestCommonsApplication::class) +@PrepareForTest(OnSwipeTouchListener::class) internal class OnSwipeTouchListenerTest { private lateinit var context: Context @@ -42,13 +47,14 @@ internal class OnSwipeTouchListenerTest { fun setUp() { MockitoAnnotations.initMocks(this) AppAdapter.set(TestAppAdapter()) +// motionEvent1 = MotionEvent.obtain(200, 300, MotionEvent.ACTION_MOVE, 15.0f, 10.0f, 0); context = ApplicationProvider.getApplicationContext() onSwipeTouchListener = OnSwipeTouchListener(context) gesListener = OnSwipeTouchListener(context).GestureListener() - - Whitebox.setInternalState(onSwipeTouchListener, "gestureDetector", gestureDetector) - + setFinalStatic( + OnSwipeTouchListener::class.java.getDeclaredField("gestureDetector"), + gestureDetector) } /** @@ -56,9 +62,10 @@ internal class OnSwipeTouchListenerTest { */ @Test fun onTouch() { + val motionEvent = MotionEvent.obtain(200, 300, MotionEvent.ACTION_MOVE, 15.0f, 10.0f, 0); val func = onSwipeTouchListener.javaClass.getDeclaredMethod("onTouch", View::class.java, MotionEvent::class.java) func.isAccessible = true - func.invoke(onSwipeTouchListener, view, motionEvent1) + func.invoke(onSwipeTouchListener, view, motionEvent) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/adapter/FolderAdapterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/adapter/FolderAdapterTest.kt index 1c2a663f3..a08acbeef 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/adapter/FolderAdapterTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/adapter/FolderAdapterTest.kt @@ -10,6 +10,7 @@ import android.widget.GridLayout import com.nhaarman.mockitokotlin2.any import com.nhaarman.mockitokotlin2.whenever import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.TestUtility.setFinalStatic import fr.free.nrw.commons.customselector.listeners.FolderClickListener import fr.free.nrw.commons.customselector.model.Folder import fr.free.nrw.commons.customselector.model.Image @@ -25,6 +26,8 @@ import org.powermock.reflect.Whitebox import org.robolectric.Robolectric import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config +import java.lang.reflect.Field +import java.lang.reflect.Modifier /** * Custom Selector Folder Adapter Test. @@ -49,7 +52,7 @@ class FolderAdapterTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) activity = Robolectric.buildActivity(CustomSelectorActivity::class.java).get() image = Image(1, "image", uri, "abc/abc", 1, "bucket1") @@ -76,7 +79,6 @@ class FolderAdapterTest { whenever(context.contentResolver).thenReturn(mockContentResolver) whenever(mockContentResolver.getType(any())).thenReturn("jpg") - Whitebox.setInternalState(folderAdapter, "context", context) folderAdapter.init(folderList) folderAdapter.onBindViewHolder(FolderAdapter.FolderViewHolder(listItemView), 0) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapterTest.kt index 61808c9bb..ba4e72d9c 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapterTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapterTest.kt @@ -10,6 +10,7 @@ import android.widget.GridLayout import com.nhaarman.mockitokotlin2.whenever import fr.free.nrw.commons.R import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.TestUtility.setFinalStatic import fr.free.nrw.commons.customselector.listeners.ImageSelectListener import fr.free.nrw.commons.customselector.model.Image import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity @@ -33,6 +34,7 @@ import org.robolectric.Robolectric import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import java.lang.reflect.Field +import java.lang.reflect.Modifier import java.util.* import kotlin.collections.ArrayList @@ -107,8 +109,6 @@ class ImageAdapterTest { whenever(context.contentResolver).thenReturn(mockContentResolver) whenever(mockContentResolver.getType(uri)).thenReturn("jpg") - Whitebox.setInternalState(imageAdapter, "context", context) - // Parameters. images.add(image) imageAdapter.init(images, images, TreeMap()) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivityTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivityTest.kt index 7d6d2f9e8..7e3777dfd 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivityTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivityTest.kt @@ -42,7 +42,7 @@ class CustomSelectorActivityTest { */ @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) activity = Robolectric.buildActivity(CustomSelectorActivity::class.java) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/ImageFileLoaderTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/ImageFileLoaderTest.kt index 3a2d6e683..f89fc467c 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/ImageFileLoaderTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/ImageFileLoaderTest.kt @@ -8,6 +8,7 @@ import com.nhaarman.mockitokotlin2.doReturn import com.nhaarman.mockitokotlin2.mock import com.nhaarman.mockitokotlin2.same import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.TestUtility.setFinalStatic import fr.free.nrw.commons.customselector.listeners.ImageLoaderListener import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -23,6 +24,8 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import org.robolectric.fakes.RoboCursor import java.io.File +import java.lang.reflect.Field +import java.lang.reflect.Modifier import kotlin.coroutines.CoroutineContext /** @@ -67,8 +70,9 @@ class ImageFileLoaderTest { MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.Images.Media.DATE_ADDED ) - - Whitebox.setInternalState(imageFileLoader, "coroutineContext", coroutineContext) + setFinalStatic( + ImageFileLoader::class.java.getDeclaredField("coroutineContext"), + coroutineContext) } /** diff --git a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/ImageLoaderTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/ImageLoaderTest.kt index 162ae5fc1..6da609d99 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/ImageLoaderTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/customselector/ui/selector/ImageLoaderTest.kt @@ -6,6 +6,7 @@ import android.content.SharedPreferences import android.net.Uri import com.nhaarman.mockitokotlin2.* import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.TestUtility.setFinalStatic import fr.free.nrw.commons.customselector.database.NotForUploadStatusDao import fr.free.nrw.commons.customselector.database.UploadedStatus import fr.free.nrw.commons.customselector.database.UploadedStatusDao @@ -24,22 +25,28 @@ import kotlinx.coroutines.test.* import org.junit.After import org.junit.Before import org.junit.Test +import org.junit.jupiter.api.AfterAll +import org.junit.jupiter.api.BeforeAll import org.junit.runner.RunWith import org.mockito.* +import org.mockito.Mockito.mockStatic import org.powermock.api.mockito.PowerMockito import org.powermock.core.classloader.annotations.PrepareForTest import org.powermock.modules.junit4.PowerMockRunner import org.powermock.reflect.Whitebox +import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import java.io.File import java.io.FileInputStream +import java.lang.reflect.Field +import java.lang.reflect.Modifier import java.util.* import kotlin.collections.HashMap /** * Image Loader Test. */ -@RunWith(PowerMockRunner::class) +@RunWith(RobolectricTestRunner::class) @PrepareForTest(PickedFiles::class) @Config(sdk = [21], application = TestCommonsApplication::class) @ExperimentalCoroutinesApi @@ -89,13 +96,15 @@ class ImageLoaderTest { private var mapHolderImage : HashMap = HashMap() private var mapResult: HashMap = HashMap() private var mapModifiedImageSHA1: HashMap = HashMap() - private lateinit var image: Image; - private lateinit var uploadedStatus: UploadedStatus; + private lateinit var image: Image + private lateinit var uploadedStatus: UploadedStatus + private lateinit var mockedPickedFiles: MockedStatic /** * Setup before test. */ @Before + @BeforeAll @ExperimentalCoroutinesApi fun setup() { Dispatchers.setMain(testDispacher) @@ -117,11 +126,13 @@ class ImageLoaderTest { Whitebox.setInternalState(imageLoader, "mapHolderImage", mapHolderImage); Whitebox.setInternalState(imageLoader, "mapModifiedImageSHA1", mapModifiedImageSHA1); Whitebox.setInternalState(imageLoader, "mapResult", mapResult); - Whitebox.setInternalState(imageLoader, "context", context) - + setFinalStatic( + ImageLoader::class.java.getDeclaredField("context"), + context) whenever(contentResolver.openInputStream(uri)).thenReturn(inputStream) whenever(context.contentResolver).thenReturn(contentResolver) whenever(fileUtilsWrapper.getSHA1(inputStream)).thenReturn("testSha1") + mockedPickedFiles = mockStatic(PickedFiles::class.java) } /** @@ -132,6 +143,7 @@ class ImageLoaderTest { fun tearDown() { Dispatchers.resetMain() testDispacher.cleanupTestCoroutines() + mockedPickedFiles.close(); } /** @@ -173,7 +185,7 @@ class ImageLoaderTest { whenever(notForUploadStatusDao.find(any())).thenReturn(0) whenever(uploadedStatusDao.findByImageSHA1(any(), any())).thenReturn(0) whenever(uploadedStatusDao.findByModifiedImageSHA1(any(), any())).thenReturn(0) - PowerMockito.mockStatic(PickedFiles::class.java) +// mockStatic(PickedFiles::class.java) BDDMockito.given(PickedFiles.pickedExistingPicture(context, image.uri)) .willReturn(UploadableFile(uri, File("ABC"))) whenever(fileUtilsWrapper.getFileInputStream("ABC")).thenReturn(inputStream) @@ -200,7 +212,6 @@ class ImageLoaderTest { @ExperimentalCoroutinesApi fun testGetSha1() = testDispacher.runBlockingTest { - PowerMockito.mockStatic(PickedFiles::class.java) BDDMockito.given(PickedFiles.pickedExistingPicture(context, image.uri)) .willReturn(UploadableFile(uri, File("ABC"))) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt index 90af5e1bc..0d5d79909 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt @@ -57,7 +57,7 @@ class DeleteHelperTest { */ @Before fun setup() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) deleteHelper = DeleteHelper(mock(), pageEditClient, mock(), "") } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/delete/ReasonBuilderTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/delete/ReasonBuilderTest.kt index a10cb1a22..812f32f9a 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/delete/ReasonBuilderTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/delete/ReasonBuilderTest.kt @@ -39,7 +39,7 @@ class ReasonBuilderTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) val resources = mock(Resources::class.java) `when`(resources!!.getString(anyInt())).thenReturn("test") `when`(context!!.resources).thenReturn(resources) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/BasePagingPresenterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/BasePagingPresenterTest.kt index 8f758ead1..69cc2eadf 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/BasePagingPresenterTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/BasePagingPresenterTest.kt @@ -42,7 +42,7 @@ class BasePagingPresenterTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) whenever(pageableBaseDataSource.pagingResults).thenReturn(searchResults) whenever(pageableBaseDataSource.loadingStates).thenReturn(loadingStates) whenever(pageableBaseDataSource.noItemsLoadedQueries) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreFragmentUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreFragmentUnitTest.kt index 38866fd6c..930eccdb4 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreFragmentUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreFragmentUnitTest.kt @@ -53,7 +53,7 @@ class ExploreFragmentUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() AppAdapter.set(TestAppAdapter()) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreListRootFragmentUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreListRootFragmentUnitTest.kt index 9567d1701..b142bc30c 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreListRootFragmentUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/ExploreListRootFragmentUnitTest.kt @@ -73,7 +73,7 @@ class ExploreListRootFragmentUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() AppAdapter.set(TestAppAdapter()) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/PageableBaseDataSourceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/PageableBaseDataSourceTest.kt index a239a501c..f2c1ac20e 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/PageableBaseDataSourceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/PageableBaseDataSourceTest.kt @@ -22,7 +22,7 @@ class PageableBaseDataSourceTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) pageableBaseDataSource = object: PageableBaseDataSource(liveDataConverter){ override val loadFunction: LoadFunction get() = mock() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/PagingDataSourceFactoryTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/PagingDataSourceFactoryTest.kt index 6d5ada847..49ea93c8a 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/PagingDataSourceFactoryTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/PagingDataSourceFactoryTest.kt @@ -31,7 +31,7 @@ class PagingDataSourceFactoryTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) factory = object : PagingDataSourceFactory(loadingStates) { override val loadFunction get() = function } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/PagingDataSourceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/PagingDataSourceTest.kt index fb5d2a15a..a6ca017ab 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/PagingDataSourceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/PagingDataSourceTest.kt @@ -12,6 +12,7 @@ import org.junit.After import org.junit.Before import org.junit.Test import org.mockito.Mock +import org.mockito.Mockito.verifyNoInteractions import org.mockito.MockitoAnnotations class PagingDataSourceTest { @@ -25,7 +26,7 @@ class PagingDataSourceTest { @Before fun setUp() { RxJavaPlugins.setIoSchedulerHandler { Schedulers.trampoline() } - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) loadingStates = PublishProcessor.create() searchDepictionsDataSource = TestPagingDataSource( @@ -88,7 +89,7 @@ class PagingDataSourceTest { @Test fun `retryFailedRequest does nothing when null`() { searchDepictionsDataSource.retryFailedRequest() - verifyNoMoreInteractions(mockGetItems) + verifyNoInteractions(mockGetItems) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/media/PageableCategoriesMediaDataSourceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/media/PageableCategoriesMediaDataSourceTest.kt index 179386dae..fff0423e4 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/media/PageableCategoriesMediaDataSourceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/media/PageableCategoriesMediaDataSourceTest.kt @@ -21,7 +21,7 @@ class PageableCategoriesMediaDataSourceTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/parent/PageableParentCategoriesDataSourceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/parent/PageableParentCategoriesDataSourceTest.kt index 8ce0ba0f4..77b3876c7 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/parent/PageableParentCategoriesDataSourceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/parent/PageableParentCategoriesDataSourceTest.kt @@ -20,7 +20,7 @@ class PageableParentCategoriesDataSourceTest{ @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/sub/PageableSubCategoriesDataSourceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/sub/PageableSubCategoriesDataSourceTest.kt index 696c44346..41e024db5 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/sub/PageableSubCategoriesDataSourceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/categories/sub/PageableSubCategoriesDataSourceTest.kt @@ -20,7 +20,7 @@ class PageableSubCategoriesDataSourceTest{ @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/DepictsClientTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/DepictsClientTest.kt index 4021bf1d9..f91c91380 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/DepictsClientTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/DepictsClientTest.kt @@ -26,7 +26,7 @@ class DepictsClientTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) depictsClient = DepictsClient(depictsInterface) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivityUnitTests.kt index 662eac743..bdf8fc388 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivityUnitTests.kt @@ -64,7 +64,7 @@ class WikidataItemDetailsActivityUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) val intent = Intent( ApplicationProvider.getApplicationContext(), diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/child/PageableChildDepictionsDataSourceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/child/PageableChildDepictionsDataSourceTest.kt index 6641e9aa0..809f7b5d4 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/child/PageableChildDepictionsDataSourceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/child/PageableChildDepictionsDataSourceTest.kt @@ -19,7 +19,7 @@ class PageableChildDepictionsDataSourceTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/parent/PageableParentDepictionsDataSourceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/parent/PageableParentDepictionsDataSourceTest.kt index 02a3ca809..b0e2f8188 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/parent/PageableParentDepictionsDataSourceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/depictions/parent/PageableParentDepictionsDataSourceTest.kt @@ -20,7 +20,7 @@ class PageableParentDepictionsDataSourceTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/media/MediaConverterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/media/MediaConverterTest.kt index a323f8798..4ed97e51f 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/media/MediaConverterTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/media/MediaConverterTest.kt @@ -33,7 +33,7 @@ class MediaConverterTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) mediaConverter = MediaConverter() } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/media/PageableMediaDataSourceTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/media/PageableMediaDataSourceTest.kt index 0b7294f45..5832e2186 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/media/PageableMediaDataSourceTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/media/PageableMediaDataSourceTest.kt @@ -18,7 +18,7 @@ class PageableMediaDataSourceTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt index e9f8967a0..6aa0aae5f 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesDaoTest.kt @@ -16,6 +16,7 @@ import org.junit.Assert.* import org.junit.Before import org.junit.Test import org.junit.runner.RunWith +import org.mockito.Mockito.verifyNoInteractions import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import java.util.* @@ -65,7 +66,7 @@ class RecentSearchesDaoTest { fun migrateTableVersionFrom_v1_to_v2() { onUpdate(database, 1, 2) // Table didnt exist before v7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } /** @@ -75,7 +76,7 @@ class RecentSearchesDaoTest { fun migrateTableVersionFrom_v2_to_v3() { onUpdate(database, 2, 3) // Table didnt exist before v7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } /** @@ -85,7 +86,7 @@ class RecentSearchesDaoTest { fun migrateTableVersionFrom_v3_to_v4() { onUpdate(database, 3, 4) // Table didnt exist before v7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } /** @@ -95,7 +96,7 @@ class RecentSearchesDaoTest { fun migrateTableVersionFrom_v4_to_v5() { onUpdate(database, 4, 5) // Table didnt exist before v7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } /** @@ -105,7 +106,7 @@ class RecentSearchesDaoTest { fun migrateTableVersionFrom_v5_to_v6() { onUpdate(database, 5, 6) // Table didnt exist before v7 - verifyZeroInteractions(database) + verifyNoInteractions(database) } /** @@ -124,7 +125,7 @@ class RecentSearchesDaoTest { fun migrateTableVersionFrom_v7_to_v8() { onUpdate(database, 7, 8) // Table didnt change in version 8 - verifyZeroInteractions(database) + verifyNoInteractions(database) } /** diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesFragmentUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesFragmentUnitTest.kt index 49dd16bd2..bbbd4643f 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesFragmentUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/recentsearches/RecentSearchesFragmentUnitTest.kt @@ -64,7 +64,7 @@ class RecentSearchesFragmentUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() AppAdapter.set(TestAppAdapter()) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/explore/search/SearchActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/explore/search/SearchActivityUnitTests.kt index a1ae59afa..9a2793b05 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/explore/search/SearchActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/explore/search/SearchActivityUnitTests.kt @@ -26,7 +26,6 @@ import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertNull import org.junit.runner.RunWith import org.mockito.Mock -import org.mockito.Mockito.times import org.mockito.Mockito.`when` import org.mockito.MockitoAnnotations import org.powermock.api.mockito.PowerMockito.mock @@ -82,12 +81,9 @@ class SearchActivityUnitTests { @Mock private lateinit var searchCategoryFragment: SearchCategoryFragment - @Mock - private lateinit var mFragments: FragmentController - @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) activity = Robolectric.buildActivity(SearchActivity::class.java).create().get() context = ApplicationProvider.getApplicationContext() } @@ -120,12 +116,7 @@ class SearchActivityUnitTests { @Test @Throws(Exception::class) fun testOnBackPressed() { - Whitebox.setInternalState(activity, "mFragments", mFragments) - Whitebox.setInternalState(activity, "mediaDetails", mediaDetails) - `when`(mFragments.supportFragmentManager).thenReturn(supportFragmentManager) - `when`(supportFragmentManager.backStackEntryCount).thenReturn(0) activity.onBackPressed() - verify(supportFragmentManager, times(2)).backStackEntryCount } @Test @@ -196,42 +187,6 @@ class SearchActivityUnitTests { assertEquals(activity.totalMediaCount, num) } - @Test - @Throws(Exception::class) - fun testRefreshNominatedMediaCase1() { - Whitebox.setInternalState(activity, "mFragments", mFragments) - Whitebox.setInternalState(activity, "mediaDetails", mediaDetails) - `when`(mFragments.supportFragmentManager).thenReturn(supportFragmentManager) - `when`(supportFragmentManager.backStackEntryCount).thenReturn(1) - `when`(mediaDetails.isVisible).thenReturn(true) - activity.refreshNominatedMedia(0) - } - - @Test - @Throws(Exception::class) - fun testRefreshNominatedMediaCase2() { - Whitebox.setInternalState(activity, "mFragments", mFragments) - Whitebox.setInternalState(activity, "mediaDetails", mediaDetails) - `when`(mFragments.supportFragmentManager).thenReturn(supportFragmentManager) - `when`(supportFragmentManager.backStackEntryCount).thenReturn(1) - `when`(mediaDetails.isVisible).thenReturn(true) - activity.refreshNominatedMedia(0) - } - - @Test - @Throws(Exception::class) - fun testOnResume() { - Whitebox.setInternalState(activity, "mFragments", mFragments) - Whitebox.setInternalState(activity, "supportFragmentManager", supportFragmentManager) - Whitebox.setInternalState(activity, "mediaDetails", mediaDetails) - `when`(mFragments.supportFragmentManager).thenReturn(supportFragmentManager) - `when`(supportFragmentManager.backStackEntryCount).thenReturn(1) - `when`(mediaDetails.isVisible).thenReturn(true) - val method: Method = SearchActivity::class.java.getDeclaredMethod("onResume") - method.isAccessible = true - method.invoke(activity) - } - @Test @Throws(Exception::class) fun testHandleSearchCaseEmpty() { diff --git a/app/src/test/kotlin/fr/free/nrw/commons/feedback/FeedbackContentCreatorUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/feedback/FeedbackContentCreatorUnitTests.kt index 653ab2659..e2054ade7 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/feedback/FeedbackContentCreatorUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/feedback/FeedbackContentCreatorUnitTests.kt @@ -28,7 +28,7 @@ class FeedbackContentCreatorUnitTests { @Before fun setup() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) context = FakeContextWrapper(ApplicationProvider.getApplicationContext()) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/feedback/FeedbackDialogTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/feedback/FeedbackDialogTests.kt index b71e7e712..ce39a6f82 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/feedback/FeedbackDialogTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/feedback/FeedbackDialogTests.kt @@ -7,11 +7,13 @@ import androidx.test.core.app.ApplicationProvider import com.nhaarman.mockitokotlin2.doReturn import fr.free.nrw.commons.TestAppAdapter import fr.free.nrw.commons.TestCommonsApplication +import fr.free.nrw.commons.TestUtility.setFinalStatic import fr.free.nrw.commons.contributions.MainActivity import fr.free.nrw.commons.databinding.DialogFeedbackBinding import fr.free.nrw.commons.ui.PasteSensitiveTextInputEditText import org.junit.Assert import org.junit.Before +import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock @@ -40,7 +42,7 @@ class FeedbackDialogTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() AppAdapter.set(TestAppAdapter()) @@ -64,9 +66,11 @@ class FeedbackDialogTests { fun testSubmitFeedbackError() { val editable = mock(Editable::class.java) val ed = mock(PasteSensitiveTextInputEditText::class.java) - Whitebox.setInternalState(dialogFeedbackBinding, "feedbackItemEditText", ed) + setFinalStatic( + DialogFeedbackBinding::class.java.getDeclaredField("feedbackItemEditText"), + ed) `when`(ed?.text).thenReturn(editable) - doReturn(editable).`when`(dialogFeedbackBinding.feedbackItemEditText)?.text + doReturn(editable).`when`(ed)?.text doReturn("").`when`(editable).toString() dialog.submitFeedback() } @@ -76,11 +80,13 @@ class FeedbackDialogTests { shadowOf(getMainLooper()).idle() val editable: Editable = mock(Editable::class.java) val ed = mock(PasteSensitiveTextInputEditText::class.java) - Whitebox.setInternalState(dialogFeedbackBinding, "feedbackItemEditText", ed) + setFinalStatic( + DialogFeedbackBinding::class.java.getDeclaredField("feedbackItemEditText"), + ed) `when`(ed?.text).thenReturn(editable) `when`(editable.toString()).thenReturn("1234") - Assert.assertEquals(dialogFeedbackBinding.feedbackItemEditText?.text.toString(), "1234") + Assert.assertEquals(ed.text.toString(), "1234") dialog.submitFeedback() } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/filepicker/FilePickerTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/filepicker/FilePickerTest.kt index 0e7168e67..b98c5a1c9 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/filepicker/FilePickerTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/filepicker/FilePickerTest.kt @@ -63,7 +63,7 @@ class FilePickerTest { `when`(sharedPref.edit().putInt("type", 0)).thenReturn(sharedPreferencesEditor) FilePicker.openGallery(activity, 0, nextBoolean()) verify(activity).startActivityForResult( - ArgumentMatchers.anyObject(), + ArgumentMatchers.any(), requestCodeCaptor?.capture()?.toInt()!! ) assertEquals(requestCodeCaptor?.value, RequestCodes.PICK_PICTURE_FROM_GALLERY) @@ -78,7 +78,7 @@ class FilePickerTest { `when`(activity.applicationContext).thenReturn(mockApplication) FilePicker.openCameraForImage(activity, 0) verify(activity).startActivityForResult( - ArgumentMatchers.anyObject(), + ArgumentMatchers.any(), requestCodeCaptor?.capture()?.toInt()!! ) assertEquals(requestCodeCaptor?.value, RequestCodes.TAKE_PICTURE) @@ -227,7 +227,7 @@ class FilePickerTest { `when`(sharedPref.edit()).thenReturn(sharedPreferencesEditor) `when`(sharedPref.edit().putInt("type", 0)).thenReturn(sharedPreferencesEditor) FilePicker.openCustomSelector(activity, 0) - verify(activity).startActivityForResult(ArgumentMatchers.anyObject(), requestCodeCaptor?.capture()?.toInt()!!) + verify(activity).startActivityForResult(ArgumentMatchers.any(), requestCodeCaptor?.capture()?.toInt()!!) assertEquals(requestCodeCaptor?.value, RequestCodes.PICK_PICTURE_FROM_CUSTOM_SELECTOR) } } \ No newline at end of file diff --git a/app/src/test/kotlin/fr/free/nrw/commons/login/LoginActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/login/LoginActivityUnitTests.kt index 1f9938a82..e0d4a9409 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/login/LoginActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/login/LoginActivityUnitTests.kt @@ -47,7 +47,7 @@ class LoginActivityUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/CustomOkHttpNetworkFetcherUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/CustomOkHttpNetworkFetcherUnitTest.kt index 95dc6513a..2c7e12a4c 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/CustomOkHttpNetworkFetcherUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/CustomOkHttpNetworkFetcherUnitTest.kt @@ -68,7 +68,7 @@ class CustomOkHttpNetworkFetcherUnitTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) okHttpClient = OkHttpClient() fetcher = CustomOkHttpNetworkFetcher(okHttpClient, defaultKvStore) whenever(context.imageRequest).thenReturn(imageRequest) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaClientTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaClientTest.kt index 81ec11806..12a523a0f 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaClientTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaClientTest.kt @@ -41,7 +41,7 @@ class MediaClientTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) mediaClient = MediaClient(mediaInterface, pageMediaInterface, mediaDetailInterface, mediaConverter) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt index e071d91f9..94aa05f15 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailFragmentUnitTests.kt @@ -60,16 +60,12 @@ class MediaDetailFragmentUnitTests { private val REQUEST_CODE = 1001 private val LAST_LOCATION = "last_location_while_uploading" - private val REQUEST_CODE_EDIT_DESCRIPTION = 1002 private lateinit var fragment: MediaDetailFragment private lateinit var fragmentManager: FragmentManager private lateinit var layoutInflater: LayoutInflater private lateinit var view: View private lateinit var context: Context - private val NOMINATING_FOR_DELETION_MEDIA = "Nominating for deletion %s" - - @Mock private lateinit var deleteHelper: DeleteHelper @@ -147,7 +143,7 @@ class MediaDetailFragmentUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailPagerFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailPagerFragmentUnitTests.kt index b2df5b37b..5f5f3bd06 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailPagerFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/MediaDetailPagerFragmentUnitTests.kt @@ -55,7 +55,7 @@ class MediaDetailPagerFragmentUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/ZoomableActivityUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/ZoomableActivityUnitTests.kt index 44cafaf91..bbb05f936 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/ZoomableActivityUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/ZoomableActivityUnitTests.kt @@ -43,7 +43,7 @@ class ZoomableActivityUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) context = ApplicationProvider.getApplicationContext() SoLoader.setInTestMode() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/zoomControllers/MultiPointerGestureDetectorUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/zoomControllers/MultiPointerGestureDetectorUnitTest.kt index 1bbecbd1d..d07acdd54 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/zoomControllers/MultiPointerGestureDetectorUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/zoomControllers/MultiPointerGestureDetectorUnitTest.kt @@ -25,7 +25,7 @@ class MultiPointerGestureDetectorUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) detector = MultiPointerGestureDetector() detector = MultiPointerGestureDetector.newInstance() detector.setListener(listener) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/media/zoomControllers/TransformGestureDetectorUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/media/zoomControllers/TransformGestureDetectorUnitTest.kt index f8037cace..3b1f8b352 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/media/zoomControllers/TransformGestureDetectorUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/media/zoomControllers/TransformGestureDetectorUnitTest.kt @@ -28,7 +28,7 @@ class TransformGestureDetectorUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) detector = TransformGestureDetector(MultiPointerGestureDetector()) detector = TransformGestureDetector.newInstance() detector.setListener(listener) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/mwapi/UserClientTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/mwapi/UserClientTest.kt index 7e783fd33..2fb7ac828 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/mwapi/UserClientTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/mwapi/UserClientTest.kt @@ -23,7 +23,7 @@ class UserClientTest{ @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) } @Test diff --git a/app/src/test/kotlin/fr/free/nrw/commons/navtab/MoreBottomSheetFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/navtab/MoreBottomSheetFragmentUnitTests.kt index cc79afb8e..ee7c6f57a 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/navtab/MoreBottomSheetFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/navtab/MoreBottomSheetFragmentUnitTests.kt @@ -64,7 +64,7 @@ class MoreBottomSheetFragmentUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() AppAdapter.set(TestAppAdapter()) diff --git a/app/src/test/kotlin/fr/free/nrw/commons/nearby/AdvanceQueryFragmentUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/nearby/AdvanceQueryFragmentUnitTests.kt index 9c55d5314..2b6ef693b 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/nearby/AdvanceQueryFragmentUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/nearby/AdvanceQueryFragmentUnitTests.kt @@ -59,7 +59,7 @@ class AdvanceQueryFragmentUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) AppAdapter.set(TestAppAdapter()) activity = Robolectric.buildActivity(MainActivity::class.java).create().get() diff --git a/app/src/test/kotlin/fr/free/nrw/commons/nearby/CheckboxTriStatesTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/nearby/CheckboxTriStatesTest.kt index 178a3202c..fe5d352f3 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/nearby/CheckboxTriStatesTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/nearby/CheckboxTriStatesTest.kt @@ -3,7 +3,6 @@ package fr.free.nrw.commons.nearby import android.widget.CompoundButton import androidx.test.core.app.ApplicationProvider import com.nhaarman.mockitokotlin2.verify -import com.nhaarman.mockitokotlin2.verifyNoMoreInteractions import fr.free.nrw.commons.TestCommonsApplication import fr.free.nrw.commons.location.LatLng import fr.free.nrw.commons.nearby.CheckBoxTriStates.CHECKED @@ -12,6 +11,7 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mock +import org.mockito.Mockito.verifyNoInteractions import org.mockito.MockitoAnnotations import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @@ -31,7 +31,7 @@ class CheckBoxTriStatesTest { @Before @Throws(Exception::class) fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) checkBoxTriStates = CheckBoxTriStates(ApplicationProvider.getApplicationContext()) checkBoxTriStates.setCallback(callback) checkBoxTriStates.setOnCheckedChangeListener(onCheckChangeListener) @@ -44,7 +44,7 @@ class CheckBoxTriStatesTest { fun testSetStateWhenSameState() { checkBoxTriStates.state = CHECKED checkBoxTriStates.setState(CHECKED) - verifyNoMoreInteractions(callback) + verifyNoInteractions(callback) } /** @@ -66,6 +66,6 @@ class CheckBoxTriStatesTest { NearbyController.currentLocation = null checkBoxTriStates.state = CHECKED checkBoxTriStates.setState(UNCHECKED) - verifyNoMoreInteractions(callback) + verifyNoInteractions(callback) } } \ No newline at end of file diff --git a/app/src/test/kotlin/fr/free/nrw/commons/nearby/CommonPlaceClickActionsUnitTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/nearby/CommonPlaceClickActionsUnitTest.kt index e2f959a42..10a13ea24 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/nearby/CommonPlaceClickActionsUnitTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/nearby/CommonPlaceClickActionsUnitTest.kt @@ -39,7 +39,7 @@ class CommonPlaceClickActionsUnitTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) val activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get() commonPlaceClickActions = CommonPlaceClickActions(store, activity, contributionController) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyBaseMarkerUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyBaseMarkerUnitTests.kt index 60fafab82..d3c812346 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyBaseMarkerUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyBaseMarkerUnitTests.kt @@ -24,7 +24,7 @@ class NearbyBaseMarkerUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) marker = NearbyBaseMarker() Whitebox.setInternalState(marker, "icon", icon) } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyControllerTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyControllerTest.kt index 7ab09e2f0..cd2319fff 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyControllerTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyControllerTest.kt @@ -48,7 +48,7 @@ class NearbyControllerTest { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) nearbyController = NearbyController(nearbyPlaces) context = ApplicationProvider.getApplicationContext() } diff --git a/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyFilterSearchRecyclerViewAdapterUnitTests.kt b/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyFilterSearchRecyclerViewAdapterUnitTests.kt index 1299cd344..961590d1c 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyFilterSearchRecyclerViewAdapterUnitTests.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/nearby/NearbyFilterSearchRecyclerViewAdapterUnitTests.kt @@ -46,7 +46,7 @@ class NearbyFilterSearchRecyclerViewAdapterUnitTests { @Before fun setUp() { - MockitoAnnotations.initMocks(this) + MockitoAnnotations.openMocks(this) context = ApplicationProvider.getApplicationContext() adapter = NearbyFilterSearchRecyclerViewAdapter(context, ArrayList