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

Commit 3fc575ef 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
(clean cherry-pick from internal branch)
Merged-In: Iada89e246faaeb13dc724c9b7591350bbad2b177

Change-Id: I35f67f3edd6d259871886263be97b5c7b9cf1a07
parent 0987f8f8
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)
    }