ソースを参照

Add abstract viewmodel test for main thread execution

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
Álvaro Brey 2 年 前
コミット
5f8e52b312

+ 22 - 0
app/src/test/java/com/nextcloud/talk/viewmodels/AbstractViewModelTest.kt

@@ -0,0 +1,22 @@
+package com.nextcloud.talk.viewmodels
+
+import androidx.arch.core.executor.testing.InstantTaskExecutorRule
+import io.reactivex.android.plugins.RxAndroidPlugins
+import io.reactivex.schedulers.Schedulers
+import org.junit.BeforeClass
+import org.junit.Rule
+
+open class AbstractViewModelTest {
+    @get:Rule
+    val instantExecutorRule = InstantTaskExecutorRule()
+
+    companion object {
+        @JvmStatic
+        @BeforeClass
+        fun setUpClass() {
+            RxAndroidPlugins.setInitMainThreadSchedulerHandler {
+                Schedulers.trampoline()
+            }
+        }
+    }
+}

+ 1 - 19
app/src/test/java/com/nextcloud/talk/viewmodels/CallRecordingViewModelTest.kt

@@ -1,20 +1,12 @@
 package com.nextcloud.talk.viewmodels
 
-import androidx.arch.core.executor.testing.InstantTaskExecutorRule
 import com.nextcloud.talk.test.fakes.FakeCallRecordingRepository
 import com.vividsolutions.jts.util.Assert
-import io.reactivex.android.plugins.RxAndroidPlugins
-import io.reactivex.schedulers.Schedulers
 import org.junit.Before
-import org.junit.BeforeClass
-import org.junit.Rule
 import org.junit.Test
 import org.mockito.MockitoAnnotations
 
-class CallRecordingViewModelTest {
-
-    @get:Rule
-    val instantExecutorRule = InstantTaskExecutorRule()
+class CallRecordingViewModelTest : AbstractViewModelTest() {
 
     val repository = FakeCallRecordingRepository()
 
@@ -35,14 +27,4 @@ class CallRecordingViewModelTest {
 
         Assert.equals(CallRecordingViewModel.RecordingStartLoadingState, viewModel.viewState.value)
     }
-
-    companion object {
-        @JvmStatic
-        @BeforeClass
-        fun setUpClass() {
-            RxAndroidPlugins.setInitMainThreadSchedulerHandler {
-                Schedulers.trampoline()
-            }
-        }
-    }
 }