From 8d60a37b1618cdf7b5fc1c444cefa01de591212e Mon Sep 17 00:00:00 2001 From: Gergely Hegedus Date: Tue, 31 May 2022 12:31:28 +0300 Subject: [PATCH] Issue#67 Fix Code Analysis errors --- .../showcase/ui/AuthComposeInstrumentedTest.kt | 2 +- .../statesetup/SetupAuthenticationState.kt | 6 +++--- .../ui/home/MainActivityInstrumentedTest.kt | 2 +- .../ui/login/AuthActivityInstrumentedTest.kt | 2 +- .../login/codekata/CodeKataSharedRobotTest.kt | 2 +- .../ui/splash/SplashActivityInstrumentedTest.kt | 2 +- .../test/showcase/ui/auth/AuthViewModelTest.kt | 5 +++++ gradlescripts/testdependencies.gradle | 2 +- gradlescripts/versions.gradle | 2 +- .../android/testutil/intent/notIntended.kt | 1 + .../snackbar/SnackbarVerificationHelper.kt | 4 ++-- .../mainThreadSynchronization.kt | 2 +- .../testutil/viewaction/LoopMainThreadFor.kt | 2 +- .../viewaction/LoopMainThreadUntilIdle.kt | 2 +- .../android/testutil/SharedMigrationTestRule.kt | 2 +- .../testutil/SharedMigrationTestRuleFactory.kt | 17 +++++++++-------- 16 files changed, 31 insertions(+), 24 deletions(-) diff --git a/app/src/androidTest/java/org/fnives/test/showcase/ui/AuthComposeInstrumentedTest.kt b/app/src/androidTest/java/org/fnives/test/showcase/ui/AuthComposeInstrumentedTest.kt index 4e3eee0..a402297 100644 --- a/app/src/androidTest/java/org/fnives/test/showcase/ui/AuthComposeInstrumentedTest.kt +++ b/app/src/androidTest/java/org/fnives/test/showcase/ui/AuthComposeInstrumentedTest.kt @@ -4,13 +4,13 @@ import androidx.compose.ui.test.junit4.StateRestorationTester import androidx.compose.ui.test.junit4.createComposeRule import androidx.test.ext.junit.runners.AndroidJUnit4 import org.fnives.test.showcase.R +import org.fnives.test.showcase.android.testutil.synchronization.idlingresources.anyResourceIdling import org.fnives.test.showcase.compose.screen.AppNavigation import org.fnives.test.showcase.core.integration.fake.FakeUserDataLocalStorage import org.fnives.test.showcase.core.login.IsUserLoggedInUseCase import org.fnives.test.showcase.network.mockserver.scenario.auth.AuthScenario import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule import org.fnives.test.showcase.testutils.idling.DatabaseDispatcherTestRule -import org.fnives.test.showcase.android.testutil.synchronization.idlingresources.anyResourceIdling import org.junit.Before import org.junit.Rule import org.junit.Test diff --git a/app/src/sharedTest/java/org/fnives/test/showcase/testutils/statesetup/SetupAuthenticationState.kt b/app/src/sharedTest/java/org/fnives/test/showcase/testutils/statesetup/SetupAuthenticationState.kt index 4e4369b..411f6ea 100644 --- a/app/src/sharedTest/java/org/fnives/test/showcase/testutils/statesetup/SetupAuthenticationState.kt +++ b/app/src/sharedTest/java/org/fnives/test/showcase/testutils/statesetup/SetupAuthenticationState.kt @@ -4,10 +4,10 @@ import androidx.lifecycle.Lifecycle import androidx.test.core.app.ActivityScenario import androidx.test.espresso.intent.Intents import androidx.test.runner.intent.IntentStubberRegistry +import org.fnives.test.showcase.android.testutil.activity.safeClose import org.fnives.test.showcase.network.mockserver.MockServerScenarioSetup import org.fnives.test.showcase.network.mockserver.scenario.auth.AuthScenario import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule -import org.fnives.test.showcase.android.testutil.activity.safeClose import org.fnives.test.showcase.ui.auth.AuthActivity import org.fnives.test.showcase.ui.home.HomeRobot import org.fnives.test.showcase.ui.home.MainActivity @@ -19,7 +19,7 @@ object SetupAuthenticationState : KoinTest { fun setupLogin( mainDispatcherTestRule: MainDispatcherTestRule, mockServerScenarioSetup: MockServerScenarioSetup, - resetIntents: Boolean = true + resetIntents: Boolean = true, ) { resetIntentsIfNeeded(resetIntents) { mockServerScenarioSetup.setScenario(AuthScenario.Success(username = "a", password = "b")) @@ -40,7 +40,7 @@ object SetupAuthenticationState : KoinTest { fun setupLogout( mainDispatcherTestRule: MainDispatcherTestRule, - resetIntents: Boolean = true + resetIntents: Boolean = true, ) { resetIntentsIfNeeded(resetIntents) { val activityScenario = ActivityScenario.launch(MainActivity::class.java) diff --git a/app/src/sharedTest/java/org/fnives/test/showcase/ui/home/MainActivityInstrumentedTest.kt b/app/src/sharedTest/java/org/fnives/test/showcase/ui/home/MainActivityInstrumentedTest.kt index b0eb9c4..1517396 100644 --- a/app/src/sharedTest/java/org/fnives/test/showcase/ui/home/MainActivityInstrumentedTest.kt +++ b/app/src/sharedTest/java/org/fnives/test/showcase/ui/home/MainActivityInstrumentedTest.kt @@ -4,6 +4,7 @@ import androidx.test.core.app.ActivityScenario import androidx.test.espresso.intent.Intents import androidx.test.ext.junit.runners.AndroidJUnit4 import org.fnives.test.showcase.android.testutil.activity.safeClose +import org.fnives.test.showcase.android.testutil.synchronization.loopMainThreadFor import org.fnives.test.showcase.model.content.FavouriteContent import org.fnives.test.showcase.network.mockserver.ContentData import org.fnives.test.showcase.network.mockserver.scenario.content.ContentScenario @@ -11,7 +12,6 @@ import org.fnives.test.showcase.network.mockserver.scenario.refresh.RefreshToken import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule import org.fnives.test.showcase.testutils.idling.AsyncDiffUtilInstantTestRule import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule -import org.fnives.test.showcase.android.testutil.synchronization.loopMainThreadFor import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogin import org.junit.After import org.junit.Before diff --git a/app/src/sharedTest/java/org/fnives/test/showcase/ui/login/AuthActivityInstrumentedTest.kt b/app/src/sharedTest/java/org/fnives/test/showcase/ui/login/AuthActivityInstrumentedTest.kt index fa03d45..7b31b8c 100644 --- a/app/src/sharedTest/java/org/fnives/test/showcase/ui/login/AuthActivityInstrumentedTest.kt +++ b/app/src/sharedTest/java/org/fnives/test/showcase/ui/login/AuthActivityInstrumentedTest.kt @@ -4,10 +4,10 @@ import androidx.test.core.app.ActivityScenario import androidx.test.espresso.intent.Intents import androidx.test.ext.junit.runners.AndroidJUnit4 import org.fnives.test.showcase.R +import org.fnives.test.showcase.android.testutil.activity.safeClose import org.fnives.test.showcase.network.mockserver.scenario.auth.AuthScenario import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule -import org.fnives.test.showcase.android.testutil.activity.safeClose import org.fnives.test.showcase.ui.auth.AuthActivity import org.junit.After import org.junit.Before diff --git a/app/src/sharedTest/java/org/fnives/test/showcase/ui/login/codekata/CodeKataSharedRobotTest.kt b/app/src/sharedTest/java/org/fnives/test/showcase/ui/login/codekata/CodeKataSharedRobotTest.kt index 2c1b5bc..2123cab 100644 --- a/app/src/sharedTest/java/org/fnives/test/showcase/ui/login/codekata/CodeKataSharedRobotTest.kt +++ b/app/src/sharedTest/java/org/fnives/test/showcase/ui/login/codekata/CodeKataSharedRobotTest.kt @@ -8,9 +8,9 @@ import androidx.test.espresso.intent.Intents import androidx.test.espresso.intent.matcher.IntentMatchers import androidx.test.espresso.matcher.ViewMatchers import org.fnives.test.showcase.R +import org.fnives.test.showcase.android.testutil.intent.notIntended import org.fnives.test.showcase.android.testutil.snackbar.SnackbarVerificationHelper.assertSnackBarIsNotShown import org.fnives.test.showcase.android.testutil.snackbar.SnackbarVerificationHelper.assertSnackBarIsShownWithText -import org.fnives.test.showcase.android.testutil.intent.notIntended import org.fnives.test.showcase.ui.home.MainActivity import org.hamcrest.core.IsNot diff --git a/app/src/sharedTest/java/org/fnives/test/showcase/ui/splash/SplashActivityInstrumentedTest.kt b/app/src/sharedTest/java/org/fnives/test/showcase/ui/splash/SplashActivityInstrumentedTest.kt index 34317da..94e34d8 100644 --- a/app/src/sharedTest/java/org/fnives/test/showcase/ui/splash/SplashActivityInstrumentedTest.kt +++ b/app/src/sharedTest/java/org/fnives/test/showcase/ui/splash/SplashActivityInstrumentedTest.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.Lifecycle import androidx.test.core.app.ActivityScenario import androidx.test.espresso.intent.Intents import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.fnives.test.showcase.android.testutil.activity.safeClose import org.fnives.test.showcase.testutils.MockServerScenarioSetupResetingTestRule import org.fnives.test.showcase.testutils.idling.MainDispatcherTestRule -import org.fnives.test.showcase.android.testutil.activity.safeClose import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogin import org.fnives.test.showcase.testutils.statesetup.SetupAuthenticationState.setupLogout import org.junit.After diff --git a/app/src/test/java/org/fnives/test/showcase/ui/auth/AuthViewModelTest.kt b/app/src/test/java/org/fnives/test/showcase/ui/auth/AuthViewModelTest.kt index 8d9a4af..64570b3 100644 --- a/app/src/test/java/org/fnives/test/showcase/ui/auth/AuthViewModelTest.kt +++ b/app/src/test/java/org/fnives/test/showcase/ui/auth/AuthViewModelTest.kt @@ -44,6 +44,11 @@ internal class AuthViewModelTest { @DisplayName("GIVEN initialized viewModel WHEN observed THEN loading false other fields are empty") @Test fun initialSetup() { + var a = "" + repeat(1200 / 2) { + a += "a " + } + System.err.println(a+"b") val usernameTestObserver = sut.username.test() val passwordTestObserver = sut.password.test() val loadingTestObserver = sut.loading.test() diff --git a/gradlescripts/testdependencies.gradle b/gradlescripts/testdependencies.gradle index c43b981..05ed31e 100644 --- a/gradlescripts/testdependencies.gradle +++ b/gradlescripts/testdependencies.gradle @@ -49,7 +49,7 @@ project.ext { def testing_json_assert_version = propertyOrNull('json_assert_version') ?: "1.5.0" def testing_okhttp3 = propertyOrNull('okhttp_version') ?: "4.9.3" def testing_turbine_version = propertyOrNull('turbine_version') ?: "0.7.0" - def testing_androidx_room_version = propertyOrNull('room_version') ?: "2.4.1" + def testing_androidx_room_version = propertyOrNull('room_version') ?: "2.4.2" def testing_livedata_version = propertyOrNull('testing_livedata_version') ?: "1.2.0" def testing_compose_version = propertyOrNull('compose_version') ?: "1.1.0" def testing_hamcrest_version = propertyOrNull('hamcrest_version')?: "2.2" diff --git a/gradlescripts/versions.gradle b/gradlescripts/versions.gradle index f8beeed..031de2a 100644 --- a/gradlescripts/versions.gradle +++ b/gradlescripts/versions.gradle @@ -5,7 +5,7 @@ project.ext { androidx_constraintlayout_version = "2.1.3" androidx_livedata_version = "2.4.0" androidx_swiperefreshlayout_version = "1.1.0" - room_version = "2.4.1" + room_version = "2.4.2" activity_ktx_version = "1.4.0" androidx_navigation = "2.4.0" diff --git a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/intent/notIntended.kt b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/intent/notIntended.kt index d520eb3..a9c6123 100644 --- a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/intent/notIntended.kt +++ b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/intent/notIntended.kt @@ -5,6 +5,7 @@ import androidx.test.espresso.intent.Intents.intended import org.hamcrest.Matcher import org.hamcrest.StringDescription +@Suppress("SwallowedException") fun notIntended(matcher: Matcher) { try { intended(matcher) diff --git a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/snackbar/SnackbarVerificationHelper.kt b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/snackbar/SnackbarVerificationHelper.kt index 3d49d99..6065d14 100644 --- a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/snackbar/SnackbarVerificationHelper.kt +++ b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/snackbar/SnackbarVerificationHelper.kt @@ -9,10 +9,10 @@ import androidx.test.espresso.ViewAction import androidx.test.espresso.action.ViewActions import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.matcher.ViewMatchers -import com.google.android.material.R as MaterialR import com.google.android.material.snackbar.Snackbar import org.hamcrest.Matcher import org.hamcrest.Matchers +import com.google.android.material.R as MaterialR object SnackbarVerificationHelper { @@ -41,4 +41,4 @@ object SnackbarVerificationHelper { } } } -} \ No newline at end of file +} diff --git a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/synchronization/mainThreadSynchronization.kt b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/synchronization/mainThreadSynchronization.kt index f32febe..25a3518 100644 --- a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/synchronization/mainThreadSynchronization.kt +++ b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/synchronization/mainThreadSynchronization.kt @@ -32,4 +32,4 @@ fun loopMainThreadFor(delay: Long) { } else { Espresso.onView(ViewMatchers.isRoot()).perform(LoopMainThreadFor(delay)) } -} \ No newline at end of file +} diff --git a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/viewaction/LoopMainThreadFor.kt b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/viewaction/LoopMainThreadFor.kt index ada5b04..a298b8c 100644 --- a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/viewaction/LoopMainThreadFor.kt +++ b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/viewaction/LoopMainThreadFor.kt @@ -14,4 +14,4 @@ class LoopMainThreadFor(private val delayInMillis: Long) : ViewAction { override fun perform(uiController: UiController, view: View?) { uiController.loopMainThreadForAtLeast(delayInMillis) } -} \ No newline at end of file +} diff --git a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/viewaction/LoopMainThreadUntilIdle.kt b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/viewaction/LoopMainThreadUntilIdle.kt index 99cc28e..81fe989 100644 --- a/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/viewaction/LoopMainThreadUntilIdle.kt +++ b/test-util-android/src/main/java/org/fnives/test/showcase/android/testutil/viewaction/LoopMainThreadUntilIdle.kt @@ -14,4 +14,4 @@ class LoopMainThreadUntilIdle : ViewAction { override fun perform(uiController: UiController, view: View?) { uiController.loopMainThreadUntilIdle() } -} \ No newline at end of file +} diff --git a/test-util-shared-robolectric/src/main/java/org/fnives/test/showcase/android/testutil/SharedMigrationTestRule.kt b/test-util-shared-robolectric/src/main/java/org/fnives/test/showcase/android/testutil/SharedMigrationTestRule.kt index b35c199..efee50e 100644 --- a/test-util-shared-robolectric/src/main/java/org/fnives/test/showcase/android/testutil/SharedMigrationTestRule.kt +++ b/test-util-shared-robolectric/src/main/java/org/fnives/test/showcase/android/testutil/SharedMigrationTestRule.kt @@ -26,4 +26,4 @@ interface SharedMigrationTestRule : TestRule { fun closeWhenFinished(db: SupportSQLiteDatabase) fun closeWhenFinished(db: RoomDatabase) -} \ No newline at end of file +} diff --git a/test-util-shared-robolectric/src/main/java/org/fnives/test/showcase/android/testutil/SharedMigrationTestRuleFactory.kt b/test-util-shared-robolectric/src/main/java/org/fnives/test/showcase/android/testutil/SharedMigrationTestRuleFactory.kt index 2e3db83..cd49bdb 100644 --- a/test-util-shared-robolectric/src/main/java/org/fnives/test/showcase/android/testutil/SharedMigrationTestRuleFactory.kt +++ b/test-util-shared-robolectric/src/main/java/org/fnives/test/showcase/android/testutil/SharedMigrationTestRuleFactory.kt @@ -6,8 +6,8 @@ import androidx.room.migration.AutoMigrationSpec import androidx.sqlite.db.SupportSQLiteOpenHelper import org.fnives.test.showcase.android.testutil.robolectric.RobolectricMigrationTestRule -inline fun SharedMigrationTestRule( - instrumentation: Instrumentation +inline fun SharedMigrationTestRule( + instrumentation: Instrumentation, ): SharedMigrationTestRule = createAndroidClassOrRobolectric( androidClassFactory = { androidClass -> @@ -22,9 +22,9 @@ inline fun SharedMigrationTestRule( } ) -inline fun SharedMigrationTestRule( +inline fun SharedMigrationTestRule( instrumentation: Instrumentation, - specs: List + specs: List, ): SharedMigrationTestRule = createAndroidClassOrRobolectric( androidClassFactory = { androidClass -> @@ -40,10 +40,10 @@ inline fun SharedMigrationTestRule( } ) -inline fun SharedMigrationTestRule( +inline fun SharedMigrationTestRule( instrumentation: Instrumentation, specs: List, - openFactory: SupportSQLiteOpenHelper.Factory + openFactory: SupportSQLiteOpenHelper.Factory, ): SharedMigrationTestRule = createAndroidClassOrRobolectric( androidClassFactory = { androidClass -> @@ -62,7 +62,7 @@ inline fun SharedMigrationTestRule( fun createAndroidClassOrRobolectric( androidClassFactory: (Class<*>) -> Any, - robolectricFactory: () -> SharedMigrationTestRule + robolectricFactory: () -> SharedMigrationTestRule, ): SharedMigrationTestRule { val androidClass = getAndroidClass() return if (androidClass == null) { @@ -72,8 +72,9 @@ fun createAndroidClassOrRobolectric( } } +@Suppress("SwallowedException") private fun getAndroidClass() = try { Class.forName("org.fnives.test.showcase.android.testutil.AndroidMigrationTestRule") } catch (classNotFoundException: ClassNotFoundException) { null -} \ No newline at end of file +}