Added mockUmGetUserHandles to AndroidMockitoHelper

The method mocks UserManager.getUserHandles

Test: atest AndroidMockitoHelperTest
Bug: 200617287
Change-Id: I1a0c63240612b6813577c7ada80e8e9ba64f323b
Merged-In: I1a0c63240612b6813577c7ada80e8e9ba64f323b
diff --git a/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java b/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java
index deb3946..29b1471 100644
--- a/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java
+++ b/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java
@@ -50,6 +50,7 @@
 import java.util.concurrent.Callable;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.stream.Collectors;
 
 /**
  * Provides common Mockito calls for core Android classes.
@@ -133,6 +134,16 @@
     }
 
     /**
+     * Mocks {@code UserManager#getUserHandles()} to return the simple users with the given ids.
+     */
+    public static void mockUmGetUserHandles(@NonNull UserManager um, boolean excludeDying,
+            @NonNull @UserIdInt int... userIds) {
+        List<UserHandle> result = UserTestingHelper.newUsers(userIds).stream().map(
+                UserInfo::getUserHandle).collect(Collectors.toList());
+        when(um.getUserHandles(excludeDying)).thenReturn(result);
+    }
+
+    /**
      * Mocks {@code UserManager#getUsers(excludePartial, excludeDying, excludeDying)} to return the
      * given users.
      */
diff --git a/tests/carservice_unit_test/src/android/car/test/mocks/AndroidMockitoHelperTest.java b/tests/carservice_unit_test/src/android/car/test/mocks/AndroidMockitoHelperTest.java
index e1099da..b495220 100644
--- a/tests/carservice_unit_test/src/android/car/test/mocks/AndroidMockitoHelperTest.java
+++ b/tests/carservice_unit_test/src/android/car/test/mocks/AndroidMockitoHelperTest.java
@@ -24,6 +24,7 @@
 import static android.car.test.mocks.AndroidMockitoHelper.mockUmCreateUser;
 import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetAliveUsers;
 import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetSystemUser;
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUserHandles;
 import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUserInfo;
 import static android.car.test.mocks.AndroidMockitoHelper.mockUmIsHeadlessSystemUserMode;
 import static android.car.test.mocks.AndroidMockitoHelper.mockUmIsUserRunning;
@@ -160,6 +161,16 @@
     }
 
     @Test
+    public void testMockUmGetUserHandles() {
+        UserHandle user1 = UserHandle.of(100);
+        UserHandle user2 = UserHandle.of(200);
+
+        mockUmGetUserHandles(mMockedUserManager, true, 100, 200);
+
+        assertThat(mMockedUserManager.getUserHandles(true)).containsExactly(user1, user2).inOrder();
+    }
+
+    @Test
     public void testMockBinderGetCallingUserHandle() {
         mockBinderGetCallingUserHandle(TEST_USER_ID);