@@ -22,12 +22,14 @@ import android.net.NetworkCapabilities
2222import android.os.Build
2323import androidx.arch.core.executor.testing.InstantTaskExecutorRule
2424import androidx.test.core.app.ApplicationProvider
25+ import io.mockk.every
26+ import io.mockk.mockk
27+ import io.mockk.verify
2528import org.junit.Rule
2629import org.junit.Test
2730import org.junit.jupiter.api.Assertions.assertTrue
2831import org.robolectric.Shadows.shadowOf
2932import org.robolectric.shadows.ShadowNetworkCapabilities
30- import org.robolectric.util.ReflectionHelpers
3133import org.smartregister.fhircore.engine.robolectric.RobolectricTest
3234
3335internal 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}
0 commit comments