Update to kotlin-1.3.41 and fix some tests issues
authorDa Risk <da_risk@geekorum.com>
Fri, 05 Jul 2019 14:00:13 -0700
changeset 353 058a6bef0a39
parent 352 09c2e952560a
child 354 14a679b8ce11
Update to kotlin-1.3.41 and fix some tests issues
app/src/test/java/com/geekorum/ttrss/BatteryFriendlyActivityTest.kt
build.gradle.kts
manage_feeds/src/androidTest/java/com/geekorum/ttrss/manage_feeds/add_feed/EnterFeedUrlFragmentTest.kt
manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/SubscribeToFeedViewModel.kt
--- a/app/src/test/java/com/geekorum/ttrss/BatteryFriendlyActivityTest.kt	Fri Jul 05 12:02:06 2019 -0700
+++ b/app/src/test/java/com/geekorum/ttrss/BatteryFriendlyActivityTest.kt	Fri Jul 05 14:00:13 2019 -0700
@@ -71,7 +71,7 @@
     fun testThatWhenPowerSaveIsOnNightModeConfigurationIsUsed() {
         val scenario = ActivityScenario.launch(BatteryFriendlyActivityRecordNightModeChanged::class.java)
         scenario.onActivity {
-            assertThat(it.nightMode).isEqualTo(MODE_NIGHT_FOLLOW_SYSTEM)
+            assertThat(it.nightMode).isEqualTo(MODE_NIGHT_UNSPECIFIED)
         }
 
         val powerManager = Shadows.shadowOf(application.getSystemService<PowerManager>())
@@ -87,7 +87,7 @@
     fun testThatWhenBatteryIsLowNightModeConfigurationIsUsed() {
         val scenario = ActivityScenario.launch(BatteryFriendlyActivityRecordNightModeChanged::class.java)
         scenario.onActivity {
-            assertThat(it.nightMode).isEqualTo(MODE_NIGHT_FOLLOW_SYSTEM)
+            assertThat(it.nightMode).isEqualTo(MODE_NIGHT_UNSPECIFIED)
         }
 
         val application = ApplicationProvider.getApplicationContext<Application>()
--- a/build.gradle.kts	Fri Jul 05 12:02:06 2019 -0700
+++ b/build.gradle.kts	Fri Jul 05 14:00:13 2019 -0700
@@ -27,9 +27,9 @@
     id("com.google.android.gms.oss-licenses-plugin") version "0.9.5.1" apply false
     id("com.google.gms.google-services") version "3.2.0" apply false
     id("io.fabric") version "1.29.0" apply false
-    kotlin("android") version "1.3.40" apply false
-    kotlin("kapt") version "1.3.40" apply false
-    id("kotlinx-serialization") version "1.3.40" apply false
+    kotlin("android") version "1.3.41" apply false
+    kotlin("kapt") version "1.3.41" apply false
+    id("kotlinx-serialization") version "1.3.41" apply false
     id("androidx.navigation.safeargs.kotlin") version "2.1.0-alpha06" apply false
 }
 
@@ -38,7 +38,7 @@
 extra["compileSdkVersion"] = "android-29"
 extra["daggerVersion"] = "2.21"
 extra["lifecycleVersion"] = "2.2.0-alpha01"
-extra["kotlinVersion"] = "1.3.40"
+extra["kotlinVersion"] = "1.3.41"
 extra["coroutinesVersion"] = "1.3.0-M2"
 
 
--- a/manage_feeds/src/androidTest/java/com/geekorum/ttrss/manage_feeds/add_feed/EnterFeedUrlFragmentTest.kt	Fri Jul 05 12:02:06 2019 -0700
+++ b/manage_feeds/src/androidTest/java/com/geekorum/ttrss/manage_feeds/add_feed/EnterFeedUrlFragmentTest.kt	Fri Jul 05 14:00:13 2019 -0700
@@ -30,11 +30,11 @@
 import androidx.test.espresso.matcher.ViewMatchers.withId
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.work.WorkManager
-import androidx.work.WorkRequest
 import com.geekorum.geekdroid.app.lifecycle.Event
 import com.geekorum.ttrss.manage_feeds.R
 import com.google.android.material.textfield.TextInputLayout
 import io.mockk.mockk
+import io.mockk.spyk
 import io.mockk.verify
 import junit.framework.AssertionFailedError
 import org.junit.runner.RunWith
@@ -56,7 +56,7 @@
     fun setUp() {
         framentFactory = mockk()
         workManager = mockk(relaxed = true)
-        subscribeToFeedViewModel = SubscribeToFeedViewModel(mockk(), workManager, mockk())
+        subscribeToFeedViewModel = spyk(SubscribeToFeedViewModel(mockk(), workManager, mockk()))
         navController = mockk(relaxed = true)
         viewModelFactory = object : ViewModelProvider.Factory {
             override fun <T : ViewModel> create(modelClass: Class<T>): T {
@@ -142,7 +142,11 @@
             subscribeToFeedViewModel._feedsFound.value = listOf(FeedsFinder.FeedResult(FeedsFinder.Source.URL, "url"))
         }
 
-        verify { workManager.enqueue(any<WorkRequest>()) }
+        verify {
+            // enqueue() is final and cannot be mocked on api < 28, so we spy the call to subscribeToFeed instead
+            // workManager.enqueue(any<WorkRequest>())
+            subscribeToFeedViewModel.subscribeToFeed(any())
+        }
     }
 
     @Test
--- a/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/SubscribeToFeedViewModel.kt	Fri Jul 05 12:02:06 2019 -0700
+++ b/manage_feeds/src/main/java/com/geekorum/ttrss/manage_feeds/add_feed/SubscribeToFeedViewModel.kt	Fri Jul 05 14:00:13 2019 -0700
@@ -42,7 +42,8 @@
 import javax.inject.Inject
 
 
-class SubscribeToFeedViewModel @Inject constructor(
+// open for mocking in androidTests
+open class SubscribeToFeedViewModel @Inject constructor(
     private val feedsFinder: FeedsFinder,
     private val workManager: WorkManager,
     private val account: Account
@@ -85,7 +86,7 @@
     }
 
 
-    fun subscribeToFeed(feedInfo: FeedInformation) {
+    open fun subscribeToFeed(feedInfo: FeedInformation) {
         subscribeToFeed(account, feedInfo.href)
     }