diff options
Diffstat (limited to 'test/com/google/android/iwlan/IwlanDataServiceTest.java')
-rw-r--r-- | test/com/google/android/iwlan/IwlanDataServiceTest.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/com/google/android/iwlan/IwlanDataServiceTest.java b/test/com/google/android/iwlan/IwlanDataServiceTest.java index 2f8f2c3..b7cda5b 100644 --- a/test/com/google/android/iwlan/IwlanDataServiceTest.java +++ b/test/com/google/android/iwlan/IwlanDataServiceTest.java @@ -1780,4 +1780,38 @@ public class IwlanDataServiceTest { method.setAccessible(true); return method.invoke(target, args); } + + @Test + public void testNetworkChangeDuringTunnelBringUp_closeTunnel() { + DataProfile dp = buildImsDataProfile(); + Network newNetwork1 = createMockNetwork(mLinkProperties); + onSystemDefaultNetworkConnected( + newNetwork1, mLinkProperties, TRANSPORT_WIFI, DEFAULT_SUB_INDEX); + + mSpyIwlanDataServiceProvider.setupDataCall( + AccessNetworkType.IWLAN, /* AccessNetworkType */ + dp, /* dataProfile */ + false, /* isRoaming */ + true, /* allowRoaming */ + DataService.REQUEST_REASON_NORMAL, /* DataService.REQUEST_REASON_NORMAL */ + null, /* LinkProperties */ + 1, /* pduSessionId */ + null, /* sliceInfo */ + null, /* trafficDescriptor */ + true, /* matchAllRuleAllowed */ + mMockDataServiceCallback); + mTestLooper.dispatchAll(); + + /* Check bringUpTunnel() is called. */ + verify(mMockEpdgTunnelManager, times(1)) + .bringUpTunnel( + any(TunnelSetupRequest.class), + any(IwlanTunnelCallback.class), + any(IwlanTunnelMetricsImpl.class)); + + Network newNetwork2 = createMockNetwork(mLinkProperties); + onSystemDefaultNetworkConnected( + newNetwork2, mLinkProperties, TRANSPORT_WIFI, DEFAULT_SUB_INDEX); + verify(mMockEpdgTunnelManager, times(1)).closeTunnel(any(), anyBoolean(), any(), any()); + } } |