Code cleanup on EthernetNetworkFactoryTest

Code cleanup on EthernetNetworkFactoryTest.

Bug: 210485380
Test: atest EthernetServiceTests:
com.android.server.ethernet.EthernetNetworkFactoryTest

Change-Id: I38c568d0760e4273f1ca8540bac268f07876b67f
diff --git a/tests/ethernet/java/com/android/server/ethernet/EthernetNetworkFactoryTest.java b/tests/ethernet/java/com/android/server/ethernet/EthernetNetworkFactoryTest.java
index 4abdf03..08a70a6 100644
--- a/tests/ethernet/java/com/android/server/ethernet/EthernetNetworkFactoryTest.java
+++ b/tests/ethernet/java/com/android/server/ethernet/EthernetNetworkFactoryTest.java
@@ -64,11 +64,11 @@
 @RunWith(AndroidJUnit4.class)
 @SmallTest
 public class EthernetNetworkFactoryTest {
-    private TestLooper mLooper = new TestLooper();
+    private static final String TEST_IFACE = "test123";
+    private final TestLooper mLooper = new TestLooper();
     private Handler mHandler;
     private EthernetNetworkFactory mNetFactory = null;
     private IpClientCallbacks mIpClientCallbacks;
-    private int mNetworkRequestCount = 0;
     @Mock private Context mContext;
     @Mock private Resources mResources;
     @Mock private EthernetNetworkFactory.Dependencies mDeps;
@@ -79,10 +79,7 @@
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-
         mHandler = new Handler(mLooper.getLooper());
-        mNetworkRequestCount = 0;
-
         mNetFactory = new EthernetNetworkFactory(mHandler, mContext, createDefaultFilterCaps(),
                 mDeps);
 
@@ -129,10 +126,24 @@
         }).when(mIpClient).shutdown();
     }
 
+    private void triggerOnProvisioningSuccess() {
+        mIpClientCallbacks.onProvisioningSuccess(new LinkProperties());
+        mLooper.dispatchAll();
+    }
+
+    private void triggerOnProvisioningFailure() {
+        mIpClientCallbacks.onProvisioningFailure(new LinkProperties());
+        mLooper.dispatchAll();
+    }
+
+    private void triggerOnReachabilityLost() {
+        mIpClientCallbacks.onReachabilityLost("ReachabilityLost");
+        mLooper.dispatchAll();
+    }
+
     private void setupContext() {
         when(mContext.getResources()).thenReturn(mResources);
-        when(mResources.getString(R.string.config_ethernet_tcp_buffers)).thenReturn(
-                "524288,1048576,3145728,524288,1048576,2097152");
+        when(mResources.getString(R.string.config_ethernet_tcp_buffers)).thenReturn("");
     }
 
     @After
@@ -184,8 +195,7 @@
         mNetFactory.addInterface(iface, iface, createInterfaceCapsBuilder(transportType).build(),
                 createDefaultIpConfig());
         assertTrue(mNetFactory.updateInterfaceLinkState(iface, true));
-        verify(mDeps).makeIpClient(any(Context.class), anyString(), any());
-        verify(mIpClient).startProvisioning(any());
+        verifyStart();
         clearInvocations(mDeps);
         clearInvocations(mIpClient);
     }
@@ -197,18 +207,23 @@
                 ConnectivityManager.TYPE_ETHERNET);
     }
 
+    private void createVerifyAndRemoveProvisionedInterface(final int transportType,
+            final int expectedLegacyType) throws Exception {
+        createAndVerifyProvisionedInterface(TEST_IFACE, transportType,
+                expectedLegacyType);
+        mNetFactory.removeInterface(TEST_IFACE);
+    }
+
     private void createAndVerifyProvisionedInterface(
             @NonNull final String iface, final int transportType, final int expectedLegacyType)
             throws Exception {
         createInterfaceUndergoingProvisioning(iface, transportType);
-        mIpClientCallbacks.onProvisioningSuccess(new LinkProperties());
-        mLooper.dispatchAll();
+        triggerOnProvisioningSuccess();
         // provisioning succeeded, verify that the network agent is created, registered, marked
         // as connected and legacy type are correctly set.
         verify(mDeps).makeEthernetNetworkAgent(any(), any(), any(), any(),
                 argThat(x -> x.getLegacyType() == expectedLegacyType), any(), any());
-        verify(mNetworkAgent).register();
-        verify(mNetworkAgent).markConnected();
+        verifyNetworkAgentRegistersAndConnects();
         clearInvocations(mDeps);
         clearInvocations(mNetworkAgent);
     }
@@ -228,8 +243,7 @@
         verify(mNetworkAgent, never()).register();
 
         mNetFactory.releaseNetworkFor(createDefaultRequest());
-        verify(mIpClient).shutdown();
-        verify(mNetworkAgent).unregister();
+        verifyStop();
 
         clearInvocations(mIpClient);
         clearInvocations(mNetworkAgent);
@@ -237,7 +251,7 @@
 
     @Test
     public void testAcceptRequest() throws Exception {
-        createInterfaceUndergoingProvisioning("eth0");
+        createInterfaceUndergoingProvisioning(TEST_IFACE);
         assertTrue(mNetFactory.acceptRequest(createDefaultRequest()));
 
         NetworkRequest wifiRequest = createDefaultRequestBuilder()
@@ -248,27 +262,23 @@
 
     @Test
     public void testUpdateInterfaceLinkStateForActiveProvisioningInterface() throws Exception {
-        String iface = "eth0";
-        createInterfaceUndergoingProvisioning(iface);
+        createInterfaceUndergoingProvisioning(TEST_IFACE);
         // verify that the IpClient gets shut down when interface state changes to down.
-        assertTrue(mNetFactory.updateInterfaceLinkState(iface, false));
+        assertTrue(mNetFactory.updateInterfaceLinkState(TEST_IFACE, false));
         verify(mIpClient).shutdown();
     }
 
     @Test
     public void testUpdateInterfaceLinkStateForProvisionedInterface() throws Exception {
-        String iface = "eth0";
-        createAndVerifyProvisionedInterface(iface);
-        assertTrue(mNetFactory.updateInterfaceLinkState(iface, false));
-        verify(mIpClient).shutdown();
-        verify(mNetworkAgent).unregister();
+        createAndVerifyProvisionedInterface(TEST_IFACE);
+        assertTrue(mNetFactory.updateInterfaceLinkState(TEST_IFACE, false));
+        verifyStop();
     }
 
     @Test
     public void testUpdateInterfaceLinkStateForUnprovisionedInterface() throws Exception {
-        String iface = "eth0";
-        createUnprovisionedInterface(iface);
-        assertTrue(mNetFactory.updateInterfaceLinkState(iface, false));
+        createUnprovisionedInterface(TEST_IFACE);
+        assertTrue(mNetFactory.updateInterfaceLinkState(TEST_IFACE, false));
         // There should not be an active IPClient or NetworkAgent.
         verify(mDeps, never()).makeIpClient(any(), any(), any());
         verify(mDeps, never())
@@ -284,75 +294,64 @@
 
     @Test
     public void testNeedNetworkForOnProvisionedInterface() throws Exception {
-        createAndVerifyProvisionedInterface("eth0");
+        createAndVerifyProvisionedInterface(TEST_IFACE);
         mNetFactory.needNetworkFor(createDefaultRequest());
         verify(mIpClient, never()).startProvisioning(any());
     }
 
     @Test
     public void testNeedNetworkForOnUnprovisionedInterface() throws Exception {
-        createUnprovisionedInterface("eth0");
+        createUnprovisionedInterface(TEST_IFACE);
         mNetFactory.needNetworkFor(createDefaultRequest());
         verify(mIpClient).startProvisioning(any());
 
-        mIpClientCallbacks.onProvisioningSuccess(new LinkProperties());
-        mLooper.dispatchAll();
-        verify(mNetworkAgent).register();
-        verify(mNetworkAgent).markConnected();
+        triggerOnProvisioningSuccess();
+        verifyNetworkAgentRegistersAndConnects();
     }
 
     @Test
     public void testNeedNetworkForOnInterfaceUndergoingProvisioning() throws Exception {
-        createInterfaceUndergoingProvisioning("eth0");
+        createInterfaceUndergoingProvisioning(TEST_IFACE);
         mNetFactory.needNetworkFor(createDefaultRequest());
         verify(mIpClient, never()).startProvisioning(any());
 
-        mIpClientCallbacks.onProvisioningSuccess(new LinkProperties());
-        mLooper.dispatchAll();
-        verify(mNetworkAgent).register();
-        verify(mNetworkAgent).markConnected();
+        triggerOnProvisioningSuccess();
+        verifyNetworkAgentRegistersAndConnects();
     }
 
     @Test
     public void testProvisioningLoss() throws Exception {
-        String iface = "eth0";
-        when(mDeps.getNetworkInterfaceByName(iface)).thenReturn(mInterfaceParams);
-        createAndVerifyProvisionedInterface(iface);
+        when(mDeps.getNetworkInterfaceByName(TEST_IFACE)).thenReturn(mInterfaceParams);
+        createAndVerifyProvisionedInterface(TEST_IFACE);
 
-        mIpClientCallbacks.onProvisioningFailure(new LinkProperties());
-        mLooper.dispatchAll();
-        verify(mIpClient).shutdown();
-        verify(mNetworkAgent).unregister();
+        triggerOnProvisioningFailure();
+        verifyStop();
         // provisioning loss should trigger a retry, since the interface is still there
         verify(mIpClient).startProvisioning(any());
     }
 
     @Test
     public void testProvisioningLossForDisappearedInterface() throws Exception {
-        String iface = "eth0";
         // mocked method returns null by default, but just to be explicit in the test:
-        when(mDeps.getNetworkInterfaceByName(eq(iface))).thenReturn(null);
+        when(mDeps.getNetworkInterfaceByName(eq(TEST_IFACE))).thenReturn(null);
 
-        createAndVerifyProvisionedInterface(iface);
-        mIpClientCallbacks.onProvisioningFailure(new LinkProperties());
-        mLooper.dispatchAll();
-        verify(mIpClient).shutdown();
-        verify(mNetworkAgent).unregister();
+        createAndVerifyProvisionedInterface(TEST_IFACE);
+        triggerOnProvisioningFailure();
+        verifyStop();
         // the interface disappeared and getNetworkInterfaceByName returns null, we should not retry
         verify(mIpClient, never()).startProvisioning(any());
     }
 
     @Test
     public void testIpClientIsNotStartedWhenLinkIsDown() throws Exception {
-        String iface = "eth0";
-        createUnprovisionedInterface(iface);
-        mNetFactory.updateInterfaceLinkState(iface, false);
+        createUnprovisionedInterface(TEST_IFACE);
+        mNetFactory.updateInterfaceLinkState(TEST_IFACE, false);
 
         mNetFactory.needNetworkFor(createDefaultRequest());
 
         NetworkRequest specificNetRequest = new NetworkRequest.Builder()
                 .addTransportType(NetworkCapabilities.TRANSPORT_ETHERNET)
-                .setNetworkSpecifier(new EthernetNetworkSpecifier(iface))
+                .setNetworkSpecifier(new EthernetNetworkSpecifier(TEST_IFACE))
                 .build();
         mNetFactory.needNetworkFor(specificNetRequest);
 
@@ -363,7 +362,7 @@
 
     @Test
     public void testLinkPropertiesChanged() throws Exception {
-        createAndVerifyProvisionedInterface("eth0");
+        createAndVerifyProvisionedInterface(TEST_IFACE);
 
         LinkProperties lp = new LinkProperties();
         mIpClientCallbacks.onLinkPropertiesChange(lp);
@@ -373,30 +372,26 @@
 
     @Test
     public void testNetworkUnwanted() throws Exception {
-        createAndVerifyProvisionedInterface("eth0");
+        createAndVerifyProvisionedInterface(TEST_IFACE);
 
         mNetworkAgent.getCallbacks().onNetworkUnwanted();
         mLooper.dispatchAll();
-        verify(mIpClient).shutdown();
-        verify(mNetworkAgent).unregister();
+        verifyStop();
     }
 
     @Test
     public void testNetworkUnwantedWithStaleNetworkAgent() throws Exception {
-        String iface = "eth0";
         // ensures provisioning is restarted after provisioning loss
-        when(mDeps.getNetworkInterfaceByName(iface)).thenReturn(mInterfaceParams);
-        createAndVerifyProvisionedInterface(iface);
+        when(mDeps.getNetworkInterfaceByName(TEST_IFACE)).thenReturn(mInterfaceParams);
+        createAndVerifyProvisionedInterface(TEST_IFACE);
 
         EthernetNetworkAgent.Callbacks oldCbs = mNetworkAgent.getCallbacks();
         // replace network agent in EthernetNetworkFactory
         // Loss of provisioning will restart the ip client and network agent.
-        mIpClientCallbacks.onProvisioningFailure(new LinkProperties());
-        mLooper.dispatchAll();
+        triggerOnProvisioningFailure();
         verify(mDeps).makeIpClient(any(), any(), any());
 
-        mIpClientCallbacks.onProvisioningSuccess(new LinkProperties());
-        mLooper.dispatchAll();
+        triggerOnProvisioningSuccess();
         verify(mDeps).makeEthernetNetworkAgent(any(), any(), any(), any(), any(), any(), any());
 
         // verify that unwanted is ignored
@@ -409,45 +404,47 @@
 
     @Test
     public void testTransportOverrideIsCorrectlySet() throws Exception {
-        final String iface = "eth0";
         // createProvisionedInterface() has verifications in place for transport override
         // functionality which for EthernetNetworkFactory is network score and legacy type mappings.
-        createAndVerifyProvisionedInterface(iface, NetworkCapabilities.TRANSPORT_ETHERNET,
+        createVerifyAndRemoveProvisionedInterface(NetworkCapabilities.TRANSPORT_ETHERNET,
                 ConnectivityManager.TYPE_ETHERNET);
-        mNetFactory.removeInterface(iface);
-        createAndVerifyProvisionedInterface(iface, NetworkCapabilities.TRANSPORT_BLUETOOTH,
+        createVerifyAndRemoveProvisionedInterface(NetworkCapabilities.TRANSPORT_BLUETOOTH,
                 ConnectivityManager.TYPE_BLUETOOTH);
-        mNetFactory.removeInterface(iface);
-        createAndVerifyProvisionedInterface(iface, NetworkCapabilities.TRANSPORT_WIFI,
+        createVerifyAndRemoveProvisionedInterface(NetworkCapabilities.TRANSPORT_WIFI,
                 ConnectivityManager.TYPE_WIFI);
-        mNetFactory.removeInterface(iface);
-        createAndVerifyProvisionedInterface(iface, NetworkCapabilities.TRANSPORT_CELLULAR,
+        createVerifyAndRemoveProvisionedInterface(NetworkCapabilities.TRANSPORT_CELLULAR,
                 ConnectivityManager.TYPE_MOBILE);
-        mNetFactory.removeInterface(iface);
-        createAndVerifyProvisionedInterface(iface, NetworkCapabilities.TRANSPORT_LOWPAN,
+        createVerifyAndRemoveProvisionedInterface(NetworkCapabilities.TRANSPORT_LOWPAN,
                 ConnectivityManager.TYPE_NONE);
-        mNetFactory.removeInterface(iface);
-        createAndVerifyProvisionedInterface(iface, NetworkCapabilities.TRANSPORT_WIFI_AWARE,
+        createVerifyAndRemoveProvisionedInterface(NetworkCapabilities.TRANSPORT_WIFI_AWARE,
                 ConnectivityManager.TYPE_NONE);
-        mNetFactory.removeInterface(iface);
-        createAndVerifyProvisionedInterface(iface, NetworkCapabilities.TRANSPORT_TEST,
+        createVerifyAndRemoveProvisionedInterface(NetworkCapabilities.TRANSPORT_TEST,
                 ConnectivityManager.TYPE_NONE);
-        mNetFactory.removeInterface(iface);
     }
 
     @Test
     public void testReachabilityLoss() throws Exception {
-        String iface = "eth0";
-        createAndVerifyProvisionedInterface(iface);
+        createAndVerifyProvisionedInterface(TEST_IFACE);
 
-        mIpClientCallbacks.onReachabilityLost("ReachabilityLost");
-        mLooper.dispatchAll();
+        triggerOnReachabilityLost();
 
         // Reachability loss should trigger a stop and start, since the interface is still there
-        verify(mIpClient).shutdown();
-        verify(mNetworkAgent).unregister();
+        verifyStop();
+        verifyStart();
+    }
 
+    private void verifyStart() throws Exception {
         verify(mDeps).makeIpClient(any(Context.class), anyString(), any());
         verify(mIpClient).startProvisioning(any());
     }
+
+    private void verifyStop() throws Exception {
+        verify(mIpClient).shutdown();
+        verify(mNetworkAgent).unregister();
+    }
+
+    private void verifyNetworkAgentRegistersAndConnects() {
+        verify(mNetworkAgent).register();
+        verify(mNetworkAgent).markConnected();
+    }
 }