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

Commit 903c1043 authored by Nathan Harold's avatar Nathan Harold
Browse files

Speculatively change IccCardProxyTest Mock Syntax

There is a WrongTypeOfReturnValue Exception thrown
by Mockito once in a while on IccCardProxyTest, which
seems to indicate a multithreading issue. These tests
use the same sort of syntax as other multithreaded
tests, and Mockito suggests using an alternate syntax
for reasons that I cannot understand. I cannot repro
the issue locally (ran > 1000 iterations), but perhaps
this will resolve the problem. It certainly isn't
making anything worse.

Bug: 70949390
Test: runtest -x ...IccCardProxyTest.java
Change-Id: I3d5cbaaf975da7557b5ea6ea8ebffd5d790ac247
parent cc38c1a6
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -20,9 +20,7 @@ import static com.android.internal.telephony.TelephonyTestUtils.waitForMs;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;

import android.os.Handler;
import android.os.HandlerThread;
import android.support.test.filters.FlakyTest;
import android.test.suitebuilder.annotation.SmallTest;
@@ -50,7 +48,6 @@ public class IccCardProxyTest extends TelephonyTest {
    // Must match IccCardProxy.EVENT_ICC_CHANGED
    private static final int EVENT_ICC_CHANGED = 3;

    @Mock private Handler mMockedHandler;
    @Mock private IccCardStatus mIccCardStatus;
    @Mock private UiccCard mUiccCard;
    @Mock private UiccCardApplication mUiccCardApplication;
@@ -97,8 +94,9 @@ public class IccCardProxyTest extends TelephonyTest {
    public void testPowerOn() {
        mSimulatedCommands.setRadioPower(true, null);
        mSimulatedCommands.notifyRadioOn();
        when(mUiccController.getUiccCard(anyInt())).thenReturn(mUiccCard);
        doReturn(mUiccCard).when(mUiccController).getUiccCard(anyInt());
        mIccCardProxyUT.sendMessage(mIccCardProxyUT.obtainMessage(EVENT_ICC_CHANGED));

        waitForMs(SCARY_SLEEP_MS);
        assertEquals(CommandsInterface.RadioState.RADIO_ON, mSimulatedCommands.getRadioState());
        assertEquals(mIccCardProxyUT.getState(), State.NOT_READY);
@@ -109,8 +107,9 @@ public class IccCardProxyTest extends TelephonyTest {
    @SmallTest
    public void testCardLoaded() {
        testPowerOn();
        when(mUiccCard.getCardState()).thenReturn(CardState.CARDSTATE_PRESENT);
        doReturn(CardState.CARDSTATE_PRESENT).when(mUiccCard).getCardState();
        mIccCardProxyUT.sendMessage(mIccCardProxyUT.obtainMessage(EVENT_ICC_CHANGED));

        waitForMs(SCARY_SLEEP_MS);
        assertEquals(mIccCardProxyUT.getState(), State.NOT_READY);
    }
@@ -119,10 +118,10 @@ public class IccCardProxyTest extends TelephonyTest {
    @SmallTest
    public void testAppNotLoaded() {
        testPowerOn();
        when(mUiccCard.getCardState()).thenReturn(CardState.CARDSTATE_PRESENT);
        doReturn(CardState.CARDSTATE_PRESENT).when(mUiccCard).getCardState();
        mIccCardProxyUT.sendMessage(mIccCardProxyUT.obtainMessage(EVENT_ICC_CHANGED));
        when(mUiccCardApplication.getState()).thenReturn(AppState.APPSTATE_UNKNOWN);
        when(mUiccCard.getApplication(anyInt())).thenReturn(mUiccCardApplication);
        doReturn(AppState.APPSTATE_UNKNOWN).when(mUiccCardApplication).getState();
        doReturn(mUiccCardApplication).when(mUiccCard).getApplication(anyInt());

        waitForMs(SCARY_SLEEP_MS);
        assertEquals(mIccCardProxyUT.getState(), State.NOT_READY);
@@ -134,10 +133,10 @@ public class IccCardProxyTest extends TelephonyTest {
    @SmallTest
    public void testAppReady() {
        testPowerOn();
        when(mUiccCard.getCardState()).thenReturn(CardState.CARDSTATE_PRESENT);
        doReturn(CardState.CARDSTATE_PRESENT).when(mUiccCard).getCardState();
        mIccCardProxyUT.sendMessage(mIccCardProxyUT.obtainMessage(EVENT_ICC_CHANGED));
        when(mUiccCardApplication.getState()).thenReturn(AppState.APPSTATE_READY);
        when(mUiccCard.getApplication(anyInt())).thenReturn(mUiccCardApplication);
        doReturn(AppState.APPSTATE_READY).when(mUiccCardApplication).getState();
        doReturn(mUiccCardApplication).when(mUiccCard).getApplication(anyInt());

        waitForMs(SCARY_SLEEP_MS);
        assertEquals(mIccCardProxyUT.getState(), State.READY);