Merge "Refactoring and mocking to make sure unit test doesn't call the real service"
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user