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

Commit 68bf2c52 authored by Nazanin Bakhshi's avatar Nazanin Bakhshi Committed by Gerrit Code Review
Browse files

Merge "Refactoring and mocking to make sure unit test doesn't call the real service"

parents 653935b5 52cb2e15
Loading
Loading
Loading
Loading
+23 −7
Original line number Original line Diff line number Diff line
@@ -67,6 +67,7 @@ import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verify;
@@ -88,8 +89,8 @@ import android.net.NetworkStateSnapshot;
import android.net.NetworkStats;
import android.net.NetworkStats;
import android.net.NetworkStatsHistory;
import android.net.NetworkStatsHistory;
import android.net.NetworkTemplate;
import android.net.NetworkTemplate;
import android.net.UnderlyingNetworkInfo;
import android.net.TelephonyNetworkSpecifier;
import android.net.TelephonyNetworkSpecifier;
import android.net.UnderlyingNetworkInfo;
import android.net.netstats.provider.INetworkStatsProviderCallback;
import android.net.netstats.provider.INetworkStatsProviderCallback;
import android.os.ConditionVariable;
import android.os.ConditionVariable;
import android.os.Handler;
import android.os.Handler;
@@ -165,9 +166,9 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {


    private long mElapsedRealtime;
    private long mElapsedRealtime;


    private BroadcastInterceptingContext mServiceContext;
    private File mStatsDir;
    private File mStatsDir;

    private MockContext mServiceContext;
    private @Mock TelephonyManager mTelephonyManager;
    private @Mock INetworkManagementService mNetManager;
    private @Mock INetworkManagementService mNetManager;
    private @Mock NetworkStatsFactory mStatsFactory;
    private @Mock NetworkStatsFactory mStatsFactory;
    private @Mock NetworkStatsSettings mSettings;
    private @Mock NetworkStatsSettings mSettings;
@@ -183,19 +184,32 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
    private ContentObserver mContentObserver;
    private ContentObserver mContentObserver;
    private Handler mHandler;
    private Handler mHandler;


    private class MockContext extends BroadcastInterceptingContext {
        private final Context mBaseContext;

        MockContext(Context base) {
            super(base);
            mBaseContext = base;
        }

        @Override
        public Object getSystemService(String name) {
            if (Context.TELEPHONY_SERVICE.equals(name)) return mTelephonyManager;
            return mBaseContext.getSystemService(name);
        }
    }

    private final Clock mClock = new SimpleClock(ZoneOffset.UTC) {
    private final Clock mClock = new SimpleClock(ZoneOffset.UTC) {
        @Override
        @Override
        public long millis() {
        public long millis() {
            return currentTimeMillis();
            return currentTimeMillis();
        }
        }
    };
    };

    @Before
    @Before
    public void setUp() throws Exception {
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        MockitoAnnotations.initMocks(this);
        final Context context = InstrumentationRegistry.getContext();
        final Context context = InstrumentationRegistry.getContext();

        mServiceContext = new MockContext(context);
        mServiceContext = new BroadcastInterceptingContext(context);
        mStatsDir = context.getFilesDir();
        mStatsDir = context.getFilesDir();
        if (mStatsDir.exists()) {
        if (mStatsDir.exists()) {
            IoUtils.deleteContents(mStatsDir);
            IoUtils.deleteContents(mStatsDir);
@@ -217,7 +231,6 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
        expectDefaultSettings();
        expectDefaultSettings();
        expectNetworkStatsUidDetail(buildEmptyStats());
        expectNetworkStatsUidDetail(buildEmptyStats());
        expectSystemReady();
        expectSystemReady();

        mService.systemReady();
        mService.systemReady();
        // Verify that system ready fetches realtime stats
        // Verify that system ready fetches realtime stats
        verify(mStatsFactory).readNetworkStatsDetail(UID_ALL, INTERFACES_ALL, TAG_ALL);
        verify(mStatsFactory).readNetworkStatsDetail(UID_ALL, INTERFACES_ALL, TAG_ALL);
@@ -228,6 +241,9 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
        verify(mNetworkStatsSubscriptionsMonitor).start();
        verify(mNetworkStatsSubscriptionsMonitor).start();
        reset(mNetworkStatsSubscriptionsMonitor);
        reset(mNetworkStatsSubscriptionsMonitor);


        doReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS).when(mTelephonyManager)
                .checkCarrierPrivilegesForPackageAnyPhone(anyString());

        mSession = mService.openSession();
        mSession = mService.openSession();
        assertNotNull("openSession() failed", mSession);
        assertNotNull("openSession() failed", mSession);