summaryrefslogtreecommitdiff
path: root/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java
diff options
context:
space:
mode:
authorPatrick Rohr <prohr@google.com>2022-06-01 21:06:42 -0700
committerLorenzo Colitti <lorenzo@google.com>2022-06-03 21:32:31 +0900
commit1f8bd41e872827ec43e5b643d75bf399dc93d2a1 (patch)
tree11162ed15a0501d3a01acd1f547498d63b2a9748 /tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java
parent227dfb5ad05712cb51926d6e58247f958510a795 (diff)
ethernet: broadcast state change for server interfaces
Also update the test to ensure mFactory.hasInterface is mocked to match mFactory.getInterfaceState: previously it would be called by the factory in the mocked getInterfaceState, but the new code calls it directly. Bug: 171872016 Test: atest EthernetManagerTest Change-Id: I9ac959f181c88a7992991923b98a836f2833fa88 (cherry picked from commit f33f276b291d8b24b680a02f64404fd1c94186ad) Merged-In: I9ac959f181c88a7992991923b98a836f2833fa88
Diffstat (limited to 'tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java')
-rw-r--r--tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java b/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java
index 115f0e145b..e90d55dcf4 100644
--- a/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java
+++ b/tests/unit/java/com/android/server/ethernet/EthernetTrackerTest.java
@@ -28,6 +28,7 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
@@ -68,6 +69,7 @@ import org.mockito.MockitoAnnotations;
import java.net.InetAddress;
import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
@SmallTest
@RunWith(AndroidJUnit4.class)
@@ -445,7 +447,20 @@ public class EthernetTrackerTest {
when(mNetd.interfaceGetList()).thenReturn(new String[] {testIface});
when(mNetd.interfaceGetCfg(eq(testIface))).thenReturn(ifaceParcel);
doReturn(new String[] {testIface}).when(mFactory).getAvailableInterfaces(anyBoolean());
- doReturn(EthernetManager.STATE_LINK_UP).when(mFactory).getInterfaceState(eq(testIface));
+
+ final AtomicBoolean ifaceUp = new AtomicBoolean(true);
+ doAnswer(inv -> ifaceUp.get()).when(mFactory).hasInterface(testIface);
+ doAnswer(inv ->
+ ifaceUp.get() ? EthernetManager.STATE_LINK_UP : EthernetManager.STATE_ABSENT)
+ .when(mFactory).getInterfaceState(testIface);
+ doAnswer(inv -> {
+ ifaceUp.set(true);
+ return null;
+ }).when(mFactory).addInterface(eq(testIface), eq(testHwAddr), any(), any());
+ doAnswer(inv -> {
+ ifaceUp.set(false);
+ return null;
+ }).when(mFactory).removeInterface(testIface);
final EthernetStateListener listener = spy(new EthernetStateListener());
tracker.addListener(listener, true /* canUseRestrictedNetworks */);
@@ -456,7 +471,6 @@ public class EthernetTrackerTest {
verify(listener).onEthernetStateChanged(eq(EthernetManager.ETHERNET_STATE_ENABLED));
reset(listener);
- doReturn(EthernetManager.STATE_ABSENT).when(mFactory).getInterfaceState(eq(testIface));
tracker.setEthernetEnabled(false);
waitForIdle();
verify(mFactory).removeInterface(eq(testIface));
@@ -465,7 +479,6 @@ public class EthernetTrackerTest {
anyInt(), any());
reset(listener);
- doReturn(EthernetManager.STATE_LINK_UP).when(mFactory).getInterfaceState(eq(testIface));
tracker.setEthernetEnabled(true);
waitForIdle();
verify(mFactory).addInterface(eq(testIface), eq(testHwAddr), any(), any());