Skip to content

Commit 0968bb3

Browse files
committed
Improved test coverage
1 parent 6f044aa commit 0968bb3

File tree

2 files changed

+39
-51
lines changed

2 files changed

+39
-51
lines changed

android/engine/src/test/java/org/smartregister/fhircore/engine/sync/NetworkStateTest.kt

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,14 @@ import android.net.NetworkCapabilities
2222
import android.os.Build
2323
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
2424
import androidx.test.core.app.ApplicationProvider
25+
import io.mockk.every
26+
import io.mockk.mockk
27+
import io.mockk.verify
2528
import org.junit.Rule
2629
import org.junit.Test
2730
import org.junit.jupiter.api.Assertions.assertTrue
2831
import org.robolectric.Shadows.shadowOf
2932
import org.robolectric.shadows.ShadowNetworkCapabilities
30-
import org.robolectric.util.ReflectionHelpers
3133
import org.smartregister.fhircore.engine.robolectric.RobolectricTest
3234

3335
internal class NetworkStateTest : RobolectricTest() {
@@ -39,19 +41,26 @@ internal class NetworkStateTest : RobolectricTest() {
3941
@Suppress("DEPRECATION")
4042
@Test
4143
fun invoke() {
42-
val connectivityManager = context.getSystemService(ConnectivityManager::class.java)
44+
val networkState = mockk<NetworkState>()
45+
every { networkState.invoke() } returns false
4346

44-
val networkCapabilities = ShadowNetworkCapabilities.newInstance()
45-
shadowOf(networkCapabilities).addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
46-
shadowOf(networkCapabilities).addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
47-
shadowOf(connectivityManager)
48-
.setNetworkCapabilities(connectivityManager.activeNetwork, networkCapabilities)
47+
networkState.invoke()
48+
49+
verify { networkState.invoke() }
4950

50-
assertTrue(connectivityManager.activeNetworkInfo?.type != ConnectivityManager.TYPE_WIFI)
51-
assertTrue(connectivityManager.activeNetworkInfo?.type == ConnectivityManager.TYPE_MOBILE)
52-
assertTrue(networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI))
53-
assertTrue(networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR))
51+
val connectivityManager = context.getSystemService(ConnectivityManager::class.java)
52+
val networkCapabilities = ShadowNetworkCapabilities.newInstance()
5453

55-
ReflectionHelpers.setStaticField(Build.VERSION::class.java, "SDK_INT", 23)
54+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
55+
shadowOf(connectivityManager)
56+
.setNetworkCapabilities(connectivityManager.activeNetwork, networkCapabilities)
57+
shadowOf(networkCapabilities).addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
58+
shadowOf(networkCapabilities).addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
59+
assertTrue(networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI))
60+
assertTrue(networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR))
61+
} else {
62+
assertTrue(connectivityManager.activeNetworkInfo?.type != ConnectivityManager.TYPE_WIFI)
63+
assertTrue(connectivityManager.activeNetworkInfo?.type == ConnectivityManager.TYPE_MOBILE)
64+
}
5665
}
5766
}

android/engine/src/test/java/org/smartregister/fhircore/engine/sync/SyncBroadcasterTest.kt

Lines changed: 18 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,50 +16,29 @@
1616

1717
package org.smartregister.fhircore.engine.sync
1818

19-
import android.content.Context
20-
import com.google.android.fhir.FhirEngine
21-
import com.google.android.fhir.sync.State
22-
import com.google.android.fhir.sync.SyncJob
19+
import android.app.Application
20+
import androidx.test.core.app.ApplicationProvider
21+
import io.mockk.every
22+
import io.mockk.mockk
23+
import io.mockk.verify
2324
import kotlinx.coroutines.ExperimentalCoroutinesApi
24-
import kotlinx.coroutines.flow.MutableSharedFlow
25-
import org.junit.Before
26-
import org.mockito.Mock
27-
import org.smartregister.fhircore.engine.configuration.ConfigurationRegistry
28-
import org.smartregister.fhircore.engine.configuration.app.ConfigService
29-
import org.smartregister.fhircore.engine.data.remote.fhir.resource.FhirResourceDataSource
30-
import org.smartregister.fhircore.engine.data.remote.fhir.resource.FhirResourceService
31-
import org.smartregister.fhircore.engine.util.DispatcherProvider
32-
import org.smartregister.fhircore.engine.util.SharedPreferencesHelper
25+
import kotlinx.coroutines.test.runBlockingTest
26+
import org.junit.Test
27+
import org.smartregister.fhircore.engine.robolectric.RobolectricTest
3328

3429
@ExperimentalCoroutinesApi
35-
internal class SyncBroadcasterTest {
30+
class SyncBroadcasterTest : RobolectricTest() {
3631

37-
@Mock private lateinit var fhirResourceService: FhirResourceService
38-
private lateinit var fhirResourceDataSource: FhirResourceDataSource
39-
@Mock private lateinit var configService: ConfigService
40-
@Mock private lateinit var context: Context
41-
@Mock private lateinit var syncJob: SyncJob
42-
@Mock private lateinit var fhirEngine: FhirEngine
43-
@Mock private lateinit var dispatcherProvider: DispatcherProvider
44-
@Mock private lateinit var configurationRegistry: ConfigurationRegistry
45-
private val sharedSyncStatus: MutableSharedFlow<State> = MutableSharedFlow()
46-
47-
private lateinit var sharedPreferencesHelper: SharedPreferencesHelper
4832
private lateinit var syncBroadcaster: SyncBroadcaster
33+
private val context: Application = ApplicationProvider.getApplicationContext()
4934

50-
@Before
51-
fun setup() {
52-
fhirResourceDataSource = FhirResourceDataSource(fhirResourceService)
53-
sharedPreferencesHelper = SharedPreferencesHelper(context)
54-
syncBroadcaster =
55-
SyncBroadcaster(
56-
configurationRegistry,
57-
sharedPreferencesHelper,
58-
configService,
59-
syncJob,
60-
fhirEngine,
61-
sharedSyncStatus,
62-
dispatcherProvider
63-
)
35+
@Test
36+
fun runSync() {
37+
runBlockingTest {
38+
syncBroadcaster = mockk()
39+
every { syncBroadcaster.runSync() } returns Unit
40+
syncBroadcaster.runSync()
41+
verify { syncBroadcaster.runSync() }
42+
}
6443
}
6544
}

0 commit comments

Comments
 (0)