From 8d18299e281a00efcfc7f624a8de0be20b273931 Mon Sep 17 00:00:00 2001 From: Nazanin Date: Mon, 19 Apr 2021 16:39:20 -0700 Subject: [PATCH] Refactoring and mocking to make sure unit test doesn't call the real service Bug: 180938364 Test: utest Change-Id: Ic6a5a84c1d985fa02f8cf52c8c2ff144669b30c1 --- .../server/net/NetworkStatsServiceTest.java | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java index eeeb4fb1d9..0ab4d2be4d 100644 --- a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java +++ b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java @@ -67,6 +67,7 @@ import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -88,8 +89,8 @@ import android.net.NetworkStateSnapshot; import android.net.NetworkStats; import android.net.NetworkStatsHistory; import android.net.NetworkTemplate; -import android.net.UnderlyingNetworkInfo; import android.net.TelephonyNetworkSpecifier; +import android.net.UnderlyingNetworkInfo; import android.net.netstats.provider.INetworkStatsProviderCallback; import android.os.ConditionVariable; import android.os.Handler; @@ -165,9 +166,9 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest { private long mElapsedRealtime; - private BroadcastInterceptingContext mServiceContext; private File mStatsDir; - + private MockContext mServiceContext; + private @Mock TelephonyManager mTelephonyManager; private @Mock INetworkManagementService mNetManager; private @Mock NetworkStatsFactory mStatsFactory; private @Mock NetworkStatsSettings mSettings; @@ -183,19 +184,32 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest { private ContentObserver mContentObserver; 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) { @Override public long millis() { return currentTimeMillis(); } }; - @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); final Context context = InstrumentationRegistry.getContext(); - - mServiceContext = new BroadcastInterceptingContext(context); + mServiceContext = new MockContext(context); mStatsDir = context.getFilesDir(); if (mStatsDir.exists()) { IoUtils.deleteContents(mStatsDir); @@ -217,7 +231,6 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest { expectDefaultSettings(); expectNetworkStatsUidDetail(buildEmptyStats()); expectSystemReady(); - mService.systemReady(); // Verify that system ready fetches realtime stats verify(mStatsFactory).readNetworkStatsDetail(UID_ALL, INTERFACES_ALL, TAG_ALL); @@ -228,6 +241,9 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest { verify(mNetworkStatsSubscriptionsMonitor).start(); reset(mNetworkStatsSubscriptionsMonitor); + doReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS).when(mTelephonyManager) + .checkCarrierPrivilegesForPackageAnyPhone(anyString()); + mSession = mService.openSession(); assertNotNull("openSession() failed", mSession);