Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b67930c3 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Use setServiceForTest instead of static mocking

setServiceForTest makes the mocking more straightforward.

Test: atest NetworkStackTests NetworkStackNextTests
Bug: 151243982
Change-Id: Iada89e246faaeb13dc724c9b7591350bbad2b177
parent 62ea8f72
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -29,8 +29,6 @@ import android.os.Build
import android.os.IBinder
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn
import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession
import com.android.networkstack.apishim.ShimUtils
import org.junit.After
import org.junit.Assume.assumeTrue
@@ -39,11 +37,11 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.any
import org.mockito.Mock
import org.mockito.Mockito.doReturn
import org.mockito.Mockito.never
import org.mockito.Mockito.timeout
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
import org.mockito.MockitoSession

@RunWith(AndroidJUnit4::class)
@SmallTest
@@ -52,8 +50,6 @@ class ModuleNetworkStackClientTest {
    private val TEST_NETWORK = Network(43)
    private val TEST_TIMEOUT_MS = 500L

    private var mSession: MockitoSession? = null

    @Mock
    private lateinit var mContext: Context
    @Mock
@@ -73,7 +69,6 @@ class ModuleNetworkStackClientTest {
    fun setUp() {
        // ModuleNetworkStackClient is only available after Q
        assumeTrue(ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.Q))
        mSession = mockitoSession().spyStatic(NetworkStack::class.java).startMocking()
        MockitoAnnotations.initMocks(this)
        doReturn(mConnector).`when`(mConnectorBinder).queryLocalInterface(
                INetworkStackConnector::class.qualifiedName!!)
@@ -81,13 +76,13 @@ class ModuleNetworkStackClientTest {

    @After
    fun tearDown() {
        mSession?.finishMocking()
        ModuleNetworkStackClient.resetInstanceForTest()
        NetworkStack.setServiceForTest(null)
    }

    @Test
    fun testIpClientServiceAvailableImmediately() {
        doReturn(mConnectorBinder).`when` { NetworkStack.getService() }
        NetworkStack.setServiceForTest(mConnectorBinder)
        ModuleNetworkStackClient.getInstance(mContext).makeIpClient(TEST_IFNAME, mIpClientCb)
        verify(mConnector).makeIpClient(TEST_IFNAME, mIpClientCb)
    }
@@ -98,14 +93,14 @@ class ModuleNetworkStackClientTest {

        Thread.sleep(TEST_TIMEOUT_MS)
        verify(mConnector, never()).makeIpClient(any(), any())
        doReturn(mConnectorBinder).`when` { NetworkStack.getService() }
        NetworkStack.setServiceForTest(mConnectorBinder)
        // Use a longer timeout as polling can cause larger delays
        verify(mConnector, timeout(TEST_TIMEOUT_MS * 4)).makeIpClient(TEST_IFNAME, mIpClientCb)
    }

    @Test
    fun testDhcpServerAvailableImmediately() {
        doReturn(mConnectorBinder).`when` { NetworkStack.getService() }
        NetworkStack.setServiceForTest(mConnectorBinder)
        val testParams = DhcpServingParamsParcel()
        ModuleNetworkStackClient.getInstance(mContext).makeDhcpServer(TEST_IFNAME, testParams,
                mDhcpServerCb)
@@ -114,7 +109,7 @@ class ModuleNetworkStackClientTest {

    @Test
    fun testNetworkMonitorAvailableImmediately() {
        doReturn(mConnectorBinder).`when` { NetworkStack.getService() }
        NetworkStack.setServiceForTest(mConnectorBinder)
        val testName = "NetworkMonitorName"
        ModuleNetworkStackClient.getInstance(mContext).makeNetworkMonitor(TEST_NETWORK, testName,
                mNetworkMonitorCb)
@@ -123,7 +118,7 @@ class ModuleNetworkStackClientTest {

    @Test
    fun testIpMemoryStoreAvailableImmediately() {
        doReturn(mConnectorBinder).`when` { NetworkStack.getService() }
        NetworkStack.setServiceForTest(mConnectorBinder)
        ModuleNetworkStackClient.getInstance(mContext).fetchIpMemoryStore(mIpMemoryStoreCb)
        verify(mConnector).fetchIpMemoryStore(mIpMemoryStoreCb)
    }