Rename members in TestConnectivityManager.

These members are public mutable and their names are confusing.
Make them package-private and final.

Bug: 173068192
Test: test-only change
Change-Id: I87131c48f67b6614c25aa99e1cbc53196f49aa7c
This commit is contained in:
Lorenzo Colitti
2021-03-31 20:21:49 +09:00
parent 3e09f80e8a
commit 9bbdac6275
2 changed files with 90 additions and 90 deletions

View File

@@ -58,17 +58,17 @@ import java.util.Objects;
* that state changes), this may become less important or unnecessary. * that state changes), this may become less important or unnecessary.
*/ */
public class TestConnectivityManager extends ConnectivityManager { public class TestConnectivityManager extends ConnectivityManager {
public Map<NetworkCallback, NetworkRequestInfo> allCallbacks = new ArrayMap<>(); final Map<NetworkCallback, NetworkRequestInfo> mAllCallbacks = new ArrayMap<>();
public Map<NetworkCallback, NetworkRequestInfo> trackingDefault = new ArrayMap<>(); final Map<NetworkCallback, NetworkRequestInfo> mTrackingDefault = new ArrayMap<>();
public TestNetworkAgent defaultNetwork = null; final Map<NetworkCallback, NetworkRequestInfo> mListening = new ArrayMap<>();
public Map<NetworkCallback, NetworkRequestInfo> listening = new ArrayMap<>(); final Map<NetworkCallback, NetworkRequestInfo> mRequested = new ArrayMap<>();
public Map<NetworkCallback, NetworkRequestInfo> requested = new ArrayMap<>(); final Map<NetworkCallback, Integer> mLegacyTypeMap = new ArrayMap<>();
public Map<NetworkCallback, Integer> legacyTypeMap = new ArrayMap<>();
private final NetworkRequest mDefaultRequest; private final NetworkRequest mDefaultRequest;
private final Context mContext; private final Context mContext;
private int mNetworkId = 100; private int mNetworkId = 100;
private TestNetworkAgent mDefaultNetwork = null;
/** /**
* Constructs a TestConnectivityManager. * Constructs a TestConnectivityManager.
@@ -94,26 +94,26 @@ public class TestConnectivityManager extends ConnectivityManager {
} }
boolean hasNoCallbacks() { boolean hasNoCallbacks() {
return allCallbacks.isEmpty() return mAllCallbacks.isEmpty()
&& trackingDefault.isEmpty() && mTrackingDefault.isEmpty()
&& listening.isEmpty() && mListening.isEmpty()
&& requested.isEmpty() && mRequested.isEmpty()
&& legacyTypeMap.isEmpty(); && mLegacyTypeMap.isEmpty();
} }
boolean onlyHasDefaultCallbacks() { boolean onlyHasDefaultCallbacks() {
return (allCallbacks.size() == 1) return (mAllCallbacks.size() == 1)
&& (trackingDefault.size() == 1) && (mTrackingDefault.size() == 1)
&& listening.isEmpty() && mListening.isEmpty()
&& requested.isEmpty() && mRequested.isEmpty()
&& legacyTypeMap.isEmpty(); && mLegacyTypeMap.isEmpty();
} }
boolean isListeningForAll() { boolean isListeningForAll() {
final NetworkCapabilities empty = new NetworkCapabilities(); final NetworkCapabilities empty = new NetworkCapabilities();
empty.clearAll(); empty.clearAll();
for (NetworkRequestInfo nri : listening.values()) { for (NetworkRequestInfo nri : mListening.values()) {
if (nri.request.networkCapabilities.equalRequestableCapabilities(empty)) { if (nri.request.networkCapabilities.equalRequestableCapabilities(empty)) {
return true; return true;
} }
@@ -137,8 +137,8 @@ public class TestConnectivityManager extends ConnectivityManager {
private void sendDefaultNetworkCallbacks(TestNetworkAgent formerDefault, private void sendDefaultNetworkCallbacks(TestNetworkAgent formerDefault,
TestNetworkAgent defaultNetwork) { TestNetworkAgent defaultNetwork) {
for (NetworkCallback cb : trackingDefault.keySet()) { for (NetworkCallback cb : mTrackingDefault.keySet()) {
final NetworkRequestInfo nri = trackingDefault.get(cb); final NetworkRequestInfo nri = mTrackingDefault.get(cb);
if (defaultNetwork != null) { if (defaultNetwork != null) {
nri.handler.post(() -> cb.onAvailable(defaultNetwork.networkId)); nri.handler.post(() -> cb.onAvailable(defaultNetwork.networkId));
nri.handler.post(() -> cb.onCapabilitiesChanged( nri.handler.post(() -> cb.onCapabilitiesChanged(
@@ -152,25 +152,25 @@ public class TestConnectivityManager extends ConnectivityManager {
} }
void makeDefaultNetwork(TestNetworkAgent agent) { void makeDefaultNetwork(TestNetworkAgent agent) {
if (Objects.equals(defaultNetwork, agent)) return; if (Objects.equals(mDefaultNetwork, agent)) return;
final TestNetworkAgent formerDefault = defaultNetwork; final TestNetworkAgent formerDefault = mDefaultNetwork;
defaultNetwork = agent; mDefaultNetwork = agent;
sendDefaultNetworkCallbacks(formerDefault, defaultNetwork); sendDefaultNetworkCallbacks(formerDefault, mDefaultNetwork);
sendDefaultNetworkBroadcasts(formerDefault, defaultNetwork); sendDefaultNetworkBroadcasts(formerDefault, mDefaultNetwork);
} }
@Override @Override
public void requestNetwork(NetworkRequest req, NetworkCallback cb, Handler h) { public void requestNetwork(NetworkRequest req, NetworkCallback cb, Handler h) {
assertFalse(allCallbacks.containsKey(cb)); assertFalse(mAllCallbacks.containsKey(cb));
allCallbacks.put(cb, new NetworkRequestInfo(req, h)); mAllCallbacks.put(cb, new NetworkRequestInfo(req, h));
if (mDefaultRequest.equals(req)) { if (mDefaultRequest.equals(req)) {
assertFalse(trackingDefault.containsKey(cb)); assertFalse(mTrackingDefault.containsKey(cb));
trackingDefault.put(cb, new NetworkRequestInfo(req, h)); mTrackingDefault.put(cb, new NetworkRequestInfo(req, h));
} else { } else {
assertFalse(requested.containsKey(cb)); assertFalse(mRequested.containsKey(cb));
requested.put(cb, new NetworkRequestInfo(req, h)); mRequested.put(cb, new NetworkRequestInfo(req, h));
} }
} }
@@ -182,22 +182,22 @@ public class TestConnectivityManager extends ConnectivityManager {
@Override @Override
public void requestNetwork(NetworkRequest req, public void requestNetwork(NetworkRequest req,
int timeoutMs, int legacyType, Handler h, NetworkCallback cb) { int timeoutMs, int legacyType, Handler h, NetworkCallback cb) {
assertFalse(allCallbacks.containsKey(cb)); assertFalse(mAllCallbacks.containsKey(cb));
allCallbacks.put(cb, new NetworkRequestInfo(req, h)); mAllCallbacks.put(cb, new NetworkRequestInfo(req, h));
assertFalse(requested.containsKey(cb)); assertFalse(mRequested.containsKey(cb));
requested.put(cb, new NetworkRequestInfo(req, h)); mRequested.put(cb, new NetworkRequestInfo(req, h));
assertFalse(legacyTypeMap.containsKey(cb)); assertFalse(mLegacyTypeMap.containsKey(cb));
if (legacyType != ConnectivityManager.TYPE_NONE) { if (legacyType != ConnectivityManager.TYPE_NONE) {
legacyTypeMap.put(cb, legacyType); mLegacyTypeMap.put(cb, legacyType);
} }
} }
@Override @Override
public void registerNetworkCallback(NetworkRequest req, NetworkCallback cb, Handler h) { public void registerNetworkCallback(NetworkRequest req, NetworkCallback cb, Handler h) {
assertFalse(allCallbacks.containsKey(cb)); assertFalse(mAllCallbacks.containsKey(cb));
allCallbacks.put(cb, new NetworkRequestInfo(req, h)); mAllCallbacks.put(cb, new NetworkRequestInfo(req, h));
assertFalse(listening.containsKey(cb)); assertFalse(mListening.containsKey(cb));
listening.put(cb, new NetworkRequestInfo(req, h)); mListening.put(cb, new NetworkRequestInfo(req, h));
} }
@Override @Override
@@ -217,22 +217,22 @@ public class TestConnectivityManager extends ConnectivityManager {
@Override @Override
public void unregisterNetworkCallback(NetworkCallback cb) { public void unregisterNetworkCallback(NetworkCallback cb) {
if (trackingDefault.containsKey(cb)) { if (mTrackingDefault.containsKey(cb)) {
trackingDefault.remove(cb); mTrackingDefault.remove(cb);
} else if (listening.containsKey(cb)) { } else if (mListening.containsKey(cb)) {
listening.remove(cb); mListening.remove(cb);
} else if (requested.containsKey(cb)) { } else if (mRequested.containsKey(cb)) {
requested.remove(cb); mRequested.remove(cb);
legacyTypeMap.remove(cb); mLegacyTypeMap.remove(cb);
} else { } else {
fail("Unexpected callback removed"); fail("Unexpected callback removed");
} }
allCallbacks.remove(cb); mAllCallbacks.remove(cb);
assertFalse(allCallbacks.containsKey(cb)); assertFalse(mAllCallbacks.containsKey(cb));
assertFalse(trackingDefault.containsKey(cb)); assertFalse(mTrackingDefault.containsKey(cb));
assertFalse(listening.containsKey(cb)); assertFalse(mListening.containsKey(cb));
assertFalse(requested.containsKey(cb)); assertFalse(mRequested.containsKey(cb));
} }
private void sendConnectivityAction(int type, boolean connected) { private void sendConnectivityAction(int type, boolean connected) {
@@ -294,15 +294,15 @@ public class TestConnectivityManager extends ConnectivityManager {
} }
public void fakeConnect() { public void fakeConnect() {
for (NetworkRequestInfo nri : cm.requested.values()) { for (NetworkRequestInfo nri : cm.mRequested.values()) {
if (matchesLegacyType(nri.request.legacyType)) { if (matchesLegacyType(nri.request.legacyType)) {
cm.sendConnectivityAction(legacyType, true /* connected */); cm.sendConnectivityAction(legacyType, true /* connected */);
// In practice, a given network can match only one legacy type. // In practice, a given network can match only one legacy type.
break; break;
} }
} }
for (NetworkCallback cb : cm.listening.keySet()) { for (NetworkCallback cb : cm.mListening.keySet()) {
final NetworkRequestInfo nri = cm.listening.get(cb); final NetworkRequestInfo nri = cm.mListening.get(cb);
nri.handler.post(() -> cb.onAvailable(networkId)); nri.handler.post(() -> cb.onAvailable(networkId));
nri.handler.post(() -> cb.onCapabilitiesChanged( nri.handler.post(() -> cb.onCapabilitiesChanged(
networkId, copy(networkCapabilities))); networkId, copy(networkCapabilities)));
@@ -311,19 +311,19 @@ public class TestConnectivityManager extends ConnectivityManager {
} }
public void fakeDisconnect() { public void fakeDisconnect() {
for (NetworkRequestInfo nri : cm.requested.values()) { for (NetworkRequestInfo nri : cm.mRequested.values()) {
if (matchesLegacyType(nri.request.legacyType)) { if (matchesLegacyType(nri.request.legacyType)) {
cm.sendConnectivityAction(legacyType, false /* connected */); cm.sendConnectivityAction(legacyType, false /* connected */);
break; break;
} }
} }
for (NetworkCallback cb : cm.listening.keySet()) { for (NetworkCallback cb : cm.mListening.keySet()) {
cb.onLost(networkId); cb.onLost(networkId);
} }
} }
public void sendLinkProperties() { public void sendLinkProperties() {
for (NetworkCallback cb : cm.listening.keySet()) { for (NetworkCallback cb : cm.mListening.keySet()) {
cb.onLinkPropertiesChanged(networkId, copy(linkProperties)); cb.onLinkPropertiesChanged(networkId, copy(linkProperties));
} }
} }

View File

@@ -149,7 +149,7 @@ public class UpstreamNetworkMonitorTest {
mUNM.startTrackDefaultNetwork(sDefaultRequest, mEntitleMgr); mUNM.startTrackDefaultNetwork(sDefaultRequest, mEntitleMgr);
mUNM.startObserveAllNetworks(); mUNM.startObserveAllNetworks();
assertEquals(1, mCM.trackingDefault.size()); assertEquals(1, mCM.mTrackingDefault.size());
mUNM.stop(); mUNM.stop();
assertTrue(mCM.onlyHasDefaultCallbacks()); assertTrue(mCM.onlyHasDefaultCallbacks());
@@ -157,11 +157,11 @@ public class UpstreamNetworkMonitorTest {
@Test @Test
public void testListensForAllNetworks() throws Exception { public void testListensForAllNetworks() throws Exception {
assertTrue(mCM.listening.isEmpty()); assertTrue(mCM.mListening.isEmpty());
mUNM.startTrackDefaultNetwork(sDefaultRequest, mEntitleMgr); mUNM.startTrackDefaultNetwork(sDefaultRequest, mEntitleMgr);
mUNM.startObserveAllNetworks(); mUNM.startObserveAllNetworks();
assertFalse(mCM.listening.isEmpty()); assertFalse(mCM.mListening.isEmpty());
assertTrue(mCM.isListeningForAll()); assertTrue(mCM.isListeningForAll());
mUNM.stop(); mUNM.stop();
@@ -184,15 +184,15 @@ public class UpstreamNetworkMonitorTest {
@Test @Test
public void testRequestsMobileNetwork() throws Exception { public void testRequestsMobileNetwork() throws Exception {
assertFalse(mUNM.mobileNetworkRequested()); assertFalse(mUNM.mobileNetworkRequested());
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
mUNM.startObserveAllNetworks(); mUNM.startObserveAllNetworks();
assertFalse(mUNM.mobileNetworkRequested()); assertFalse(mUNM.mobileNetworkRequested());
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
mUNM.setUpstreamConfig(false /* autoUpstream */, false /* dunRequired */); mUNM.setUpstreamConfig(false /* autoUpstream */, false /* dunRequired */);
assertFalse(mUNM.mobileNetworkRequested()); assertFalse(mUNM.mobileNetworkRequested());
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
mUNM.setTryCell(true); mUNM.setTryCell(true);
assertTrue(mUNM.mobileNetworkRequested()); assertTrue(mUNM.mobileNetworkRequested());
@@ -207,13 +207,13 @@ public class UpstreamNetworkMonitorTest {
@Test @Test
public void testDuplicateMobileRequestsIgnored() throws Exception { public void testDuplicateMobileRequestsIgnored() throws Exception {
assertFalse(mUNM.mobileNetworkRequested()); assertFalse(mUNM.mobileNetworkRequested());
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
mUNM.startObserveAllNetworks(); mUNM.startObserveAllNetworks();
verify(mCM, times(1)).registerNetworkCallback( verify(mCM, times(1)).registerNetworkCallback(
any(NetworkRequest.class), any(NetworkCallback.class), any(Handler.class)); any(NetworkRequest.class), any(NetworkCallback.class), any(Handler.class));
assertFalse(mUNM.mobileNetworkRequested()); assertFalse(mUNM.mobileNetworkRequested());
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */); mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */);
mUNM.setTryCell(true); mUNM.setTryCell(true);
@@ -243,15 +243,15 @@ public class UpstreamNetworkMonitorTest {
@Test @Test
public void testRequestsDunNetwork() throws Exception { public void testRequestsDunNetwork() throws Exception {
assertFalse(mUNM.mobileNetworkRequested()); assertFalse(mUNM.mobileNetworkRequested());
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
mUNM.startObserveAllNetworks(); mUNM.startObserveAllNetworks();
assertFalse(mUNM.mobileNetworkRequested()); assertFalse(mUNM.mobileNetworkRequested());
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */); mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */);
assertFalse(mUNM.mobileNetworkRequested()); assertFalse(mUNM.mobileNetworkRequested());
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
mUNM.setTryCell(true); mUNM.setTryCell(true);
assertTrue(mUNM.mobileNetworkRequested()); assertTrue(mUNM.mobileNetworkRequested());
@@ -326,14 +326,14 @@ public class UpstreamNetworkMonitorTest {
assertSatisfiesLegacyType(TYPE_MOBILE_HIPRI, assertSatisfiesLegacyType(TYPE_MOBILE_HIPRI,
mUNM.selectPreferredUpstreamType(preferredTypes)); mUNM.selectPreferredUpstreamType(preferredTypes));
// Check to see we filed an explicit request. // Check to see we filed an explicit request.
assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.mRequested.size());
NetworkRequest netReq = ((NetworkRequestInfo) mCM.requested.values().toArray()[0]).request; NetworkRequest netReq = ((NetworkRequestInfo) mCM.mRequested.values().toArray()[0]).request;
assertTrue(netReq.networkCapabilities.hasTransport(TRANSPORT_CELLULAR)); assertTrue(netReq.networkCapabilities.hasTransport(TRANSPORT_CELLULAR));
assertFalse(netReq.networkCapabilities.hasCapability(NET_CAPABILITY_DUN)); assertFalse(netReq.networkCapabilities.hasCapability(NET_CAPABILITY_DUN));
// mobile is not permitted, we should not use HIPRI. // mobile is not permitted, we should not use HIPRI.
when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false);
assertSatisfiesLegacyType(TYPE_NONE, mUNM.selectPreferredUpstreamType(preferredTypes)); assertSatisfiesLegacyType(TYPE_NONE, mUNM.selectPreferredUpstreamType(preferredTypes));
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
// mobile change back to permitted, HIRPI should come back // mobile change back to permitted, HIRPI should come back
when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true);
assertSatisfiesLegacyType(TYPE_MOBILE_HIPRI, assertSatisfiesLegacyType(TYPE_MOBILE_HIPRI,
@@ -343,7 +343,7 @@ public class UpstreamNetworkMonitorTest {
mLooper.dispatchAll(); mLooper.dispatchAll();
// WiFi is up, and we should prefer it over cell. // WiFi is up, and we should prefer it over cell.
assertSatisfiesLegacyType(TYPE_WIFI, mUNM.selectPreferredUpstreamType(preferredTypes)); assertSatisfiesLegacyType(TYPE_WIFI, mUNM.selectPreferredUpstreamType(preferredTypes));
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
preferredTypes.remove(TYPE_MOBILE_HIPRI); preferredTypes.remove(TYPE_MOBILE_HIPRI);
preferredTypes.add(TYPE_MOBILE_DUN); preferredTypes.add(TYPE_MOBILE_DUN);
@@ -364,14 +364,14 @@ public class UpstreamNetworkMonitorTest {
assertSatisfiesLegacyType(TYPE_MOBILE_DUN, assertSatisfiesLegacyType(TYPE_MOBILE_DUN,
mUNM.selectPreferredUpstreamType(preferredTypes)); mUNM.selectPreferredUpstreamType(preferredTypes));
// Check to see we filed an explicit request. // Check to see we filed an explicit request.
assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.mRequested.size());
netReq = ((NetworkRequestInfo) mCM.requested.values().toArray()[0]).request; netReq = ((NetworkRequestInfo) mCM.mRequested.values().toArray()[0]).request;
assertTrue(netReq.networkCapabilities.hasTransport(TRANSPORT_CELLULAR)); assertTrue(netReq.networkCapabilities.hasTransport(TRANSPORT_CELLULAR));
assertTrue(netReq.networkCapabilities.hasCapability(NET_CAPABILITY_DUN)); assertTrue(netReq.networkCapabilities.hasCapability(NET_CAPABILITY_DUN));
// mobile is not permitted, we should not use DUN. // mobile is not permitted, we should not use DUN.
when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false);
assertSatisfiesLegacyType(TYPE_NONE, mUNM.selectPreferredUpstreamType(preferredTypes)); assertSatisfiesLegacyType(TYPE_NONE, mUNM.selectPreferredUpstreamType(preferredTypes));
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
// mobile change back to permitted, DUN should come back // mobile change back to permitted, DUN should come back
when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true);
assertSatisfiesLegacyType(TYPE_MOBILE_DUN, assertSatisfiesLegacyType(TYPE_MOBILE_DUN,
@@ -391,38 +391,38 @@ public class UpstreamNetworkMonitorTest {
mCM.makeDefaultNetwork(cellAgent); mCM.makeDefaultNetwork(cellAgent);
mLooper.dispatchAll(); mLooper.dispatchAll();
assertEquals(cellAgent.networkId, mUNM.getCurrentPreferredUpstream().network); assertEquals(cellAgent.networkId, mUNM.getCurrentPreferredUpstream().network);
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
// [1] Mobile connects but not permitted -> null selected // [1] Mobile connects but not permitted -> null selected
when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false);
assertEquals(null, mUNM.getCurrentPreferredUpstream()); assertEquals(null, mUNM.getCurrentPreferredUpstream());
when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true);
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
// [2] WiFi connects but not validated/promoted to default -> mobile selected. // [2] WiFi connects but not validated/promoted to default -> mobile selected.
final TestNetworkAgent wifiAgent = new TestNetworkAgent(mCM, WIFI_CAPABILITIES); final TestNetworkAgent wifiAgent = new TestNetworkAgent(mCM, WIFI_CAPABILITIES);
wifiAgent.fakeConnect(); wifiAgent.fakeConnect();
mLooper.dispatchAll(); mLooper.dispatchAll();
assertEquals(cellAgent.networkId, mUNM.getCurrentPreferredUpstream().network); assertEquals(cellAgent.networkId, mUNM.getCurrentPreferredUpstream().network);
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
// [3] WiFi validates and is promoted to the default network -> WiFi selected. // [3] WiFi validates and is promoted to the default network -> WiFi selected.
mCM.makeDefaultNetwork(wifiAgent); mCM.makeDefaultNetwork(wifiAgent);
mLooper.dispatchAll(); mLooper.dispatchAll();
assertEquals(wifiAgent.networkId, mUNM.getCurrentPreferredUpstream().network); assertEquals(wifiAgent.networkId, mUNM.getCurrentPreferredUpstream().network);
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
// [4] DUN required, no other changes -> WiFi still selected // [4] DUN required, no other changes -> WiFi still selected
mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */); mUNM.setUpstreamConfig(false /* autoUpstream */, true /* dunRequired */);
assertEquals(wifiAgent.networkId, mUNM.getCurrentPreferredUpstream().network); assertEquals(wifiAgent.networkId, mUNM.getCurrentPreferredUpstream().network);
assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.mRequested.size());
assertTrue(isDunRequested()); assertTrue(isDunRequested());
// [5] WiFi no longer validated, mobile becomes default, DUN required -> null selected. // [5] WiFi no longer validated, mobile becomes default, DUN required -> null selected.
mCM.makeDefaultNetwork(cellAgent); mCM.makeDefaultNetwork(cellAgent);
mLooper.dispatchAll(); mLooper.dispatchAll();
assertEquals(null, mUNM.getCurrentPreferredUpstream()); assertEquals(null, mUNM.getCurrentPreferredUpstream());
assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.mRequested.size());
assertTrue(isDunRequested()); assertTrue(isDunRequested());
// [6] DUN network arrives -> DUN selected // [6] DUN network arrives -> DUN selected
@@ -432,21 +432,21 @@ public class UpstreamNetworkMonitorTest {
dunAgent.fakeConnect(); dunAgent.fakeConnect();
mLooper.dispatchAll(); mLooper.dispatchAll();
assertEquals(dunAgent.networkId, mUNM.getCurrentPreferredUpstream().network); assertEquals(dunAgent.networkId, mUNM.getCurrentPreferredUpstream().network);
assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.mRequested.size());
// [7] Mobile is not permitted -> null selected // [7] Mobile is not permitted -> null selected
when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(false);
assertEquals(null, mUNM.getCurrentPreferredUpstream()); assertEquals(null, mUNM.getCurrentPreferredUpstream());
assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.mRequested.size());
// [7] Mobile is permitted again -> DUN selected // [7] Mobile is permitted again -> DUN selected
when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true); when(mEntitleMgr.isCellularUpstreamPermitted()).thenReturn(true);
assertEquals(dunAgent.networkId, mUNM.getCurrentPreferredUpstream().network); assertEquals(dunAgent.networkId, mUNM.getCurrentPreferredUpstream().network);
assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.mRequested.size());
// [8] DUN no longer required -> request is withdrawn // [8] DUN no longer required -> request is withdrawn
mUNM.setUpstreamConfig(true /* autoUpstream */, false /* dunRequired */); mUNM.setUpstreamConfig(true /* autoUpstream */, false /* dunRequired */);
assertEquals(0, mCM.requested.size()); assertEquals(0, mCM.mRequested.size());
assertFalse(isDunRequested()); assertFalse(isDunRequested());
} }
@@ -591,14 +591,14 @@ public class UpstreamNetworkMonitorTest {
} }
private void assertUpstreamTypeRequested(int upstreamType) throws Exception { private void assertUpstreamTypeRequested(int upstreamType) throws Exception {
assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.mRequested.size());
assertEquals(1, mCM.legacyTypeMap.size()); assertEquals(1, mCM.mLegacyTypeMap.size());
assertEquals(Integer.valueOf(upstreamType), assertEquals(Integer.valueOf(upstreamType),
mCM.legacyTypeMap.values().iterator().next()); mCM.mLegacyTypeMap.values().iterator().next());
} }
private boolean isDunRequested() { private boolean isDunRequested() {
for (NetworkRequestInfo nri : mCM.requested.values()) { for (NetworkRequestInfo nri : mCM.mRequested.values()) {
if (nri.request.networkCapabilities.hasCapability(NET_CAPABILITY_DUN)) { if (nri.request.networkCapabilities.hasCapability(NET_CAPABILITY_DUN)) {
return true; return true;
} }