aboutsummaryrefslogtreecommitdiff
path: root/tests/carservice_unit_test/src/com/android/car
diff options
context:
space:
mode:
authorYu Shan <shanyu@google.com>2021-12-02 18:07:44 -0800
committerYu Shan <shanyu@google.com>2022-01-25 11:19:27 -0800
commit8801d129b6300828e83a60789be1f6fec7097340 (patch)
tree395432b9708e5e65760477ba31224931bb43522d /tests/carservice_unit_test/src/com/android/car
parent0ce959fb408b4d3eb081632e4e894f5392d67634 (diff)
downloadCar-8801d129b6300828e83a60789be1f6fec7097340.tar.gz
Migrate UserHal and CarShellCommand to AIDL type.
Migrate UserHal to new AIDL types. CarShellCommand is using UserHal so migrate it as well. No logic change in this CL. Test: atest CarServiceUnitTest:com.android.car.user atest CarServiceTest Bug: 205774940 Change-Id: I17bd554046df006c128ea855b17c27f1cad3dad2
Diffstat (limited to 'tests/carservice_unit_test/src/com/android/car')
-rw-r--r--tests/carservice_unit_test/src/com/android/car/hal/ClusterHalServiceTest.java40
-rw-r--r--tests/carservice_unit_test/src/com/android/car/hal/TimeHalServiceTest.java1
-rw-r--r--tests/carservice_unit_test/src/com/android/car/hal/UserHalHelperTest.java999
-rw-r--r--tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java669
-rw-r--r--tests/carservice_unit_test/src/com/android/car/hal/VehicleHalTestingHelper.java88
-rw-r--r--tests/carservice_unit_test/src/com/android/car/user/BaseCarUserServiceTestCase.java79
-rw-r--r--tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java22
-rw-r--r--tests/carservice_unit_test/src/com/android/car/user/ExperimentalCarUserServiceTest.java4
8 files changed, 1078 insertions, 824 deletions
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/ClusterHalServiceTest.java b/tests/carservice_unit_test/src/com/android/car/hal/ClusterHalServiceTest.java
index 3b4e5e35e0..be5495925d 100644
--- a/tests/carservice_unit_test/src/com/android/car/hal/ClusterHalServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/hal/ClusterHalServiceTest.java
@@ -21,9 +21,9 @@ import static android.car.VehiclePropertyIds.CLUSTER_NAVIGATION_STATE;
import static android.car.VehiclePropertyIds.CLUSTER_REPORT_STATE;
import static android.car.VehiclePropertyIds.CLUSTER_REQUEST_DISPLAY;
import static android.car.VehiclePropertyIds.CLUSTER_SWITCH_UI;
-import static android.car.test.util.VehicleHalTestingHelper.newSubscribableConfig;
import static com.android.car.hal.ClusterHalService.DONT_CARE;
+import static com.android.car.hal.VehicleHalTestingHelper.newSubscribableConfig;
import static com.google.common.truth.Truth.assertThat;
@@ -101,20 +101,16 @@ public class ClusterHalServiceTest {
return intValues;
}
- private static HalPropConfig newSubscribablePropConfig(int prop) {
- return new AidlHalPropConfig(newSubscribableConfig(prop));
- }
-
@Before
public void setUp() {
when(mVehicleHal.getHalPropValueBuilder()).thenReturn(PROP_VALUE_BUILDER);
mClusterHalService = new ClusterHalService(mVehicleHal);
mClusterHalService.takeProperties(Arrays.asList(
- newSubscribablePropConfig(CLUSTER_SWITCH_UI),
- newSubscribablePropConfig(CLUSTER_DISPLAY_STATE),
- newSubscribablePropConfig(CLUSTER_REPORT_STATE),
- newSubscribablePropConfig(CLUSTER_REQUEST_DISPLAY),
- newSubscribablePropConfig(CLUSTER_NAVIGATION_STATE)));
+ newSubscribableConfig(CLUSTER_SWITCH_UI),
+ newSubscribableConfig(CLUSTER_DISPLAY_STATE),
+ newSubscribableConfig(CLUSTER_REPORT_STATE),
+ newSubscribableConfig(CLUSTER_REQUEST_DISPLAY),
+ newSubscribableConfig(CLUSTER_NAVIGATION_STATE)));
mClusterHalService.init();
mClusterHalService.setCallback(mHalEventListener);
@@ -143,9 +139,9 @@ public class ClusterHalServiceTest {
@Test
public void testTakeProperties_doNotTakePartialProperties() {
mClusterHalService.takeProperties(Arrays.asList(
- newSubscribablePropConfig(CLUSTER_SWITCH_UI),
- newSubscribablePropConfig(CLUSTER_DISPLAY_STATE),
- newSubscribablePropConfig(CLUSTER_REPORT_STATE)));
+ newSubscribableConfig(CLUSTER_SWITCH_UI),
+ newSubscribableConfig(CLUSTER_DISPLAY_STATE),
+ newSubscribableConfig(CLUSTER_REPORT_STATE)));
assertThat(mClusterHalService.isCoreSupported()).isFalse();
assertThat(mClusterHalService.isNavigationStateSupported()).isFalse();
}
@@ -153,10 +149,10 @@ public class ClusterHalServiceTest {
@Test
public void testTakeProperties_coreProperties() {
mClusterHalService.takeProperties(Arrays.asList(
- newSubscribablePropConfig(CLUSTER_SWITCH_UI),
- newSubscribablePropConfig(CLUSTER_DISPLAY_STATE),
- newSubscribablePropConfig(CLUSTER_REPORT_STATE),
- newSubscribablePropConfig(CLUSTER_REQUEST_DISPLAY)));
+ newSubscribableConfig(CLUSTER_SWITCH_UI),
+ newSubscribableConfig(CLUSTER_DISPLAY_STATE),
+ newSubscribableConfig(CLUSTER_REPORT_STATE),
+ newSubscribableConfig(CLUSTER_REQUEST_DISPLAY)));
assertThat(mClusterHalService.isCoreSupported()).isTrue();
assertThat(mClusterHalService.isNavigationStateSupported()).isFalse();
}
@@ -164,11 +160,11 @@ public class ClusterHalServiceTest {
@Test
public void testTakeProperties_fullProperties() {
mClusterHalService.takeProperties(Arrays.asList(
- newSubscribablePropConfig(CLUSTER_SWITCH_UI),
- newSubscribablePropConfig(CLUSTER_DISPLAY_STATE),
- newSubscribablePropConfig(CLUSTER_REPORT_STATE),
- newSubscribablePropConfig(CLUSTER_REQUEST_DISPLAY),
- newSubscribablePropConfig(CLUSTER_NAVIGATION_STATE)));
+ newSubscribableConfig(CLUSTER_SWITCH_UI),
+ newSubscribableConfig(CLUSTER_DISPLAY_STATE),
+ newSubscribableConfig(CLUSTER_REPORT_STATE),
+ newSubscribableConfig(CLUSTER_REQUEST_DISPLAY),
+ newSubscribableConfig(CLUSTER_NAVIGATION_STATE)));
assertThat(mClusterHalService.isCoreSupported()).isTrue();
assertThat(mClusterHalService.isNavigationStateSupported()).isTrue();
}
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/TimeHalServiceTest.java b/tests/carservice_unit_test/src/com/android/car/hal/TimeHalServiceTest.java
index f9f56e9f63..940070ea9e 100644
--- a/tests/carservice_unit_test/src/com/android/car/hal/TimeHalServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/hal/TimeHalServiceTest.java
@@ -30,7 +30,6 @@ import static org.mockito.Mockito.when;
import android.app.time.ExternalTimeSuggestion;
import android.app.time.TimeManager;
import android.car.test.util.FakeContext;
-import android.car.test.util.VehicleHalTestingHelper;
import android.content.Intent;
import android.content.res.Resources;
import android.hardware.automotive.vehicle.V2_0.VehicleArea;
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/UserHalHelperTest.java b/tests/carservice_unit_test/src/com/android/car/hal/UserHalHelperTest.java
index 952fa75b5a..8c9c34c43e 100644
--- a/tests/carservice_unit_test/src/com/android/car/hal/UserHalHelperTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/hal/UserHalHelperTest.java
@@ -18,20 +18,21 @@ package com.android.car.hal;
import static android.car.test.mocks.AndroidMockitoHelper.mockAmGetCurrentUser;
import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUserHandles;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.ASSOCIATE_CURRENT_USER;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.DISASSOCIATE_ALL_USERS;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.DISASSOCIATE_CURRENT_USER;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_1;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_2;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_3;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_4;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.KEY_FOB;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.ASSOCIATED_ANOTHER_USER;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.ASSOCIATED_CURRENT_USER;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.NOT_ASSOCIATED_ANY_USER;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.UNKNOWN;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationSetValue.ASSOCIATE_CURRENT_USER;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationSetValue.DISASSOCIATE_ALL_USERS;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationSetValue.DISASSOCIATE_CURRENT_USER;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationType.CUSTOM_1;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationType.CUSTOM_2;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationType.CUSTOM_3;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationType.CUSTOM_4;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationType.KEY_FOB;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationValue.ASSOCIATED_ANOTHER_USER;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationValue.ASSOCIATED_CURRENT_USER;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationValue.NOT_ASSOCIATED_ANY_USER;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationValue.UNKNOWN;
import static com.android.car.hal.UserHalHelper.CREATE_USER_PROPERTY;
+import static com.android.car.hal.UserHalHelper.INITIAL_USER_INFO_PROPERTY;
import static com.android.car.hal.UserHalHelper.REMOVE_USER_PROPERTY;
import static com.android.car.hal.UserHalHelper.SWITCH_USER_PROPERTY;
import static com.android.car.hal.UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
@@ -51,46 +52,57 @@ import android.annotation.NonNull;
import android.app.ActivityManager;
import android.car.builtin.os.UserManagerHelper;
import android.car.test.mocks.AbstractExtendedMockitoTestCase;
-import android.hardware.automotive.vehicle.V2_0.CreateUserRequest;
-import android.hardware.automotive.vehicle.V2_0.InitialUserInfoRequestType;
-import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponse;
-import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponseAction;
-import android.hardware.automotive.vehicle.V2_0.RemoveUserRequest;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserMessageType;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserRequest;
-import android.hardware.automotive.vehicle.V2_0.UserFlags;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociation;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetAssociation;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
-import android.hardware.automotive.vehicle.V2_0.UsersInfo;
-import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
-import android.os.SystemClock;
+import android.hardware.automotive.vehicle.CreateUserRequest;
+import android.hardware.automotive.vehicle.InitialUserInfoRequestType;
+import android.hardware.automotive.vehicle.InitialUserInfoResponse;
+import android.hardware.automotive.vehicle.InitialUserInfoResponseAction;
+import android.hardware.automotive.vehicle.RemoveUserRequest;
+import android.hardware.automotive.vehicle.SwitchUserMessageType;
+import android.hardware.automotive.vehicle.SwitchUserRequest;
+import android.hardware.automotive.vehicle.UserIdentificationAssociation;
+import android.hardware.automotive.vehicle.UserIdentificationAssociationType;
+import android.hardware.automotive.vehicle.UserIdentificationAssociationValue;
+import android.hardware.automotive.vehicle.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.UserIdentificationSetAssociation;
+import android.hardware.automotive.vehicle.UserIdentificationSetRequest;
+import android.hardware.automotive.vehicle.UserInfo;
+import android.hardware.automotive.vehicle.UsersInfo;
import android.os.UserHandle;
import android.os.UserManager;
+import com.android.car.internal.util.DebugUtils;
import com.android.car.user.UserHandleHelper;
-import com.google.common.collect.Range;
-
import org.junit.Test;
import org.mockito.Mock;
+import java.util.ArrayList;
+import java.util.List;
+
public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
public UserHalHelperTest() {
super(UserHalHelper.TAG);
}
+ private HalPropValueBuilder mPropValueBuilder = new HalPropValueBuilder(/*isAidl=*/true);
+
@Mock
private UserManager mUm;
@Mock
private UserHandleHelper mUserHandleHelper;
+ private static List<Integer> getInt32Values(HalPropValue propValue) {
+ int size = propValue.getInt32ValuesSize();
+ ArrayList<Integer> intValues = new ArrayList<>(size);
+ for (int i = 0; i < size; i++) {
+ intValues.add(propValue.getInt32Value(i));
+ }
+ return intValues;
+ }
+
@Override
protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
session.spyStatic(ActivityManager.class);
@@ -132,19 +144,19 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testConvertFlags() {
UserHandle user = expectSystemUserExists(mUserHandleHelper, UserHandle.USER_SYSTEM);
- assertConvertFlags(UserFlags.SYSTEM, user);
+ assertConvertFlags(UserInfo.USER_FLAG_SYSTEM, user);
user = expectRegularUserExists(mUserHandleHelper, 101);
- assertConvertFlags(UserFlags.NONE, user);
+ assertConvertFlags(0, user);
user = expectAdminUserExists(mUserHandleHelper, 102);
- assertConvertFlags(UserFlags.ADMIN, user);
+ assertConvertFlags(UserInfo.USER_FLAG_ADMIN, user);
user = expectEphemeralUserExists(mUserHandleHelper, 103);
- assertConvertFlags(UserFlags.EPHEMERAL, user);
+ assertConvertFlags(UserInfo.USER_FLAG_EPHEMERAL, user);
user = expectGuestUserExists(mUserHandleHelper, 104, /* isEphemeral= */ true);
- assertConvertFlags(UserFlags.GUEST | UserFlags.EPHEMERAL, user);
+ assertConvertFlags(UserInfo.USER_FLAG_GUEST | UserInfo.USER_FLAG_EPHEMERAL, user);
}
@Test
@@ -161,76 +173,77 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetFlags_ok() {
UserHandle user = expectSystemUserExists(mUserHandleHelper, UserHandle.USER_SYSTEM);
- assertGetFlags(UserFlags.SYSTEM, user);
+ assertGetFlags(UserInfo.USER_FLAG_SYSTEM, user);
user = expectRegularUserExists(mUserHandleHelper, 101);
- assertGetFlags(UserFlags.NONE, user);
+ assertGetFlags(0, user);
user = expectAdminUserExists(mUserHandleHelper, 102);
- assertGetFlags(UserFlags.ADMIN, user);
+ assertGetFlags(UserInfo.USER_FLAG_ADMIN, user);
user = expectEphemeralUserExists(mUserHandleHelper, 103);
- assertGetFlags(UserFlags.EPHEMERAL, user);
+ assertGetFlags(UserInfo.USER_FLAG_EPHEMERAL, user);
user = expectGuestUserExists(mUserHandleHelper, 104, /* isEphemeral= */ true);
- assertGetFlags(UserFlags.GUEST | UserFlags.EPHEMERAL, user);
+ assertGetFlags(UserInfo.USER_FLAG_GUEST | UserInfo.USER_FLAG_EPHEMERAL, user);
}
@Test
public void testIsSystem() {
- assertThat(UserHalHelper.isSystem(UserFlags.SYSTEM)).isTrue();
- assertThat(UserHalHelper.isSystem(UserFlags.SYSTEM | 666)).isTrue();
- assertThat(UserHalHelper.isSystem(UserFlags.GUEST)).isFalse();
+ assertThat(UserHalHelper.isSystem(UserInfo.USER_FLAG_SYSTEM)).isTrue();
+ assertThat(UserHalHelper.isSystem(UserInfo.USER_FLAG_SYSTEM | 666)).isTrue();
+ assertThat(UserHalHelper.isSystem(UserInfo.USER_FLAG_GUEST)).isFalse();
}
@Test
public void testIsGuest() {
- assertThat(UserHalHelper.isGuest(UserFlags.GUEST)).isTrue();
- assertThat(UserHalHelper.isGuest(UserFlags.GUEST | 666)).isTrue();
- assertThat(UserHalHelper.isGuest(UserFlags.SYSTEM)).isFalse();
+ assertThat(UserHalHelper.isGuest(UserInfo.USER_FLAG_GUEST)).isTrue();
+ assertThat(UserHalHelper.isGuest(UserInfo.USER_FLAG_GUEST | 666)).isTrue();
+ assertThat(UserHalHelper.isGuest(UserInfo.USER_FLAG_SYSTEM)).isFalse();
}
@Test
public void testIsEphemeral() {
- assertThat(UserHalHelper.isEphemeral(UserFlags.EPHEMERAL)).isTrue();
- assertThat(UserHalHelper.isEphemeral(UserFlags.EPHEMERAL | 666)).isTrue();
- assertThat(UserHalHelper.isEphemeral(UserFlags.GUEST)).isFalse();
+ assertThat(UserHalHelper.isEphemeral(UserInfo.USER_FLAG_EPHEMERAL)).isTrue();
+ assertThat(UserHalHelper.isEphemeral(UserInfo.USER_FLAG_EPHEMERAL | 666)).isTrue();
+ assertThat(UserHalHelper.isEphemeral(UserInfo.USER_FLAG_GUEST)).isFalse();
}
@Test
public void testIsAdmin() {
- assertThat(UserHalHelper.isAdmin(UserFlags.ADMIN)).isTrue();
- assertThat(UserHalHelper.isAdmin(UserFlags.ADMIN | 666)).isTrue();
- assertThat(UserHalHelper.isAdmin(UserFlags.GUEST)).isFalse();
+ assertThat(UserHalHelper.isAdmin(UserInfo.USER_FLAG_ADMIN)).isTrue();
+ assertThat(UserHalHelper.isAdmin(UserInfo.USER_FLAG_ADMIN | 666)).isTrue();
+ assertThat(UserHalHelper.isAdmin(UserInfo.USER_FLAG_GUEST)).isFalse();
}
@Test
public void testIsDisabled() {
- assertThat(UserHalHelper.isDisabled(UserFlags.DISABLED)).isTrue();
- assertThat(UserHalHelper.isDisabled(UserFlags.DISABLED | 666)).isTrue();
- assertThat(UserHalHelper.isDisabled(UserFlags.GUEST)).isFalse();
+ assertThat(UserHalHelper.isDisabled(UserInfo.USER_FLAG_DISABLED)).isTrue();
+ assertThat(UserHalHelper.isDisabled(UserInfo.USER_FLAG_DISABLED | 666)).isTrue();
+ assertThat(UserHalHelper.isDisabled(UserInfo.USER_FLAG_GUEST)).isFalse();
}
@Test
public void testIsProfile() {
- assertThat(UserHalHelper.isProfile(UserFlags.PROFILE)).isTrue();
- assertThat(UserHalHelper.isProfile(UserFlags.PROFILE | 666)).isTrue();
- assertThat(UserHalHelper.isProfile(UserFlags.GUEST)).isFalse();
+ assertThat(UserHalHelper.isProfile(UserInfo.USER_FLAG_PROFILE)).isTrue();
+ assertThat(UserHalHelper.isProfile(UserInfo.USER_FLAG_PROFILE | 666)).isTrue();
+ assertThat(UserHalHelper.isProfile(UserInfo.USER_FLAG_GUEST)).isFalse();
}
@Test
public void testToUserInfoFlags() {
- assertThat(UserHalHelper.toUserInfoFlags(UserFlags.NONE)).isEqualTo(0);
- assertThat(UserHalHelper.toUserInfoFlags(UserFlags.EPHEMERAL))
+ assertThat(UserHalHelper.toUserInfoFlags(0)).isEqualTo(0);
+ assertThat(UserHalHelper.toUserInfoFlags(UserInfo.USER_FLAG_EPHEMERAL))
.isEqualTo(UserManagerHelper.FLAG_EPHEMERAL);
- assertThat(UserHalHelper.toUserInfoFlags(UserFlags.ADMIN))
+ assertThat(UserHalHelper.toUserInfoFlags(UserInfo.USER_FLAG_ADMIN))
.isEqualTo(UserManagerHelper.FLAG_ADMIN);
- assertThat(UserHalHelper.toUserInfoFlags(UserFlags.EPHEMERAL | UserFlags.ADMIN))
+ assertThat(UserHalHelper.toUserInfoFlags(
+ UserInfo.USER_FLAG_EPHEMERAL | UserInfo.USER_FLAG_ADMIN))
.isEqualTo(UserManagerHelper.FLAG_EPHEMERAL | UserManagerHelper.FLAG_ADMIN);
// test flags that should be ignored
- assertThat(UserHalHelper.toUserInfoFlags(UserFlags.SYSTEM)).isEqualTo(0);
- assertThat(UserHalHelper.toUserInfoFlags(UserFlags.GUEST)).isEqualTo(0);
+ assertThat(UserHalHelper.toUserInfoFlags(UserInfo.USER_FLAG_SYSTEM)).isEqualTo(0);
+ assertThat(UserHalHelper.toUserInfoFlags(UserInfo.USER_FLAG_GUEST)).isEqualTo(0);
assertThat(UserHalHelper.toUserInfoFlags(1024)).isEqualTo(0);
}
@@ -254,119 +267,66 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
}
@Test
- public void testCreatePropRequest_withType() {
- int prop = 1;
- int requestId = 2;
- int requestType = 3;
- long before = SystemClock.elapsedRealtime();
- VehiclePropValue propRequest = UserHalHelper.createPropRequest(prop, requestId,
- requestType);
- long after = SystemClock.elapsedRealtime();
-
- assertThat(propRequest.value.int32Values)
- .containsExactly(requestId, requestType)
- .inOrder();
- assertThat(propRequest.prop).isEqualTo(prop);
- assertThat(propRequest.timestamp).isIn(Range.closed(before, after));
- }
-
- @Test
- public void testCreatePropRequest() {
- int prop = 1;
- int requestId = 2;
- long before = SystemClock.elapsedRealtime();
- VehiclePropValue propRequest = UserHalHelper.createPropRequest(prop, requestId);
- long after = SystemClock.elapsedRealtime();
-
- assertThat(propRequest.value.int32Values)
- .containsExactly(requestId)
- .inOrder();
- assertThat(propRequest.prop).isEqualTo(prop);
- assertThat(propRequest.timestamp).isIn(Range.closed(before, after));
- }
-
- @Test
- public void testAddUsersInfo_nullProp() {
- UsersInfo infos = new UsersInfo();
-
- assertThrows(NullPointerException.class, () -> UserHalHelper.addUsersInfo(null, infos));
- }
-
- @Test
public void testAddUsersInfo_nullCurrentUser() {
- VehiclePropValue propRequest = new VehiclePropValue();
+ ArrayList<Integer> intValues = new ArrayList<>();
- UsersInfo infos = new UsersInfo();
+ UsersInfo infos = UserHalHelper.emptyUsersInfo();
infos.currentUser = null;
assertThrows(NullPointerException.class, () ->
- UserHalHelper.addUsersInfo(propRequest, infos));
+ UserHalHelper.addUsersInfo(intValues, infos));
}
@Test
public void testAddUsersInfo_mismatchNumberUsers() {
- VehiclePropValue propRequest = new VehiclePropValue();
+ ArrayList<Integer> intValues = new ArrayList<>();
- UsersInfo infos = new UsersInfo();
+ UsersInfo infos = UserHalHelper.emptyUsersInfo();
infos.currentUser.userId = 42;
infos.currentUser.flags = 1;
infos.numberUsers = 1;
assertThat(infos.existingUsers).isEmpty();
assertThrows(IllegalArgumentException.class, () ->
- UserHalHelper.addUsersInfo(propRequest, infos));
+ UserHalHelper.addUsersInfo(intValues, infos));
}
@Test
public void testAddUsersInfo_success() {
- VehiclePropValue propRequest = new VehiclePropValue();
- propRequest.value.int32Values.add(99);
+ ArrayList<Integer> intValues = new ArrayList<>();
- UsersInfo infos = new UsersInfo();
+ UsersInfo infos = UserHalHelper.emptyUsersInfo();
infos.currentUser.userId = 42;
infos.currentUser.flags = 1;
infos.numberUsers = 1;
- android.hardware.automotive.vehicle.V2_0.UserInfo userInfo =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo userInfo = new UserInfo();
userInfo.userId = 43;
userInfo.flags = 1;
- infos.existingUsers.add(userInfo);
- UserHalHelper.addUsersInfo(propRequest, infos);
+ infos.existingUsers = new UserInfo[]{userInfo};
+ UserHalHelper.addUsersInfo(intValues, infos);
- assertThat(propRequest.value.int32Values)
- .containsExactly(99, 42, 1, 1, 43, 1)
+ assertThat(intValues)
+ .containsExactly(42, 1, 1, 43, 1)
.inOrder();
}
@Test
- public void testAddUserInfo_nullProp() {
- android.hardware.automotive.vehicle.V2_0.UserInfo userInfo =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
-
- assertThrows(NullPointerException.class, () -> UserHalHelper.addUserInfo(null, userInfo));
- }
-
- @Test
public void testAddUserInfo_nullCurrentUser() {
- VehiclePropValue prop = new VehiclePropValue();
+ ArrayList<Integer> intValues = new ArrayList<>();
- assertThrows(NullPointerException.class, () -> UserHalHelper.addUserInfo(prop, null));
+ assertThrows(NullPointerException.class, () -> UserHalHelper.addUserInfo(intValues, null));
}
@Test
public void testAddUserInfo_success() {
- VehiclePropValue propRequest = new VehiclePropValue();
- propRequest.value.int32Values.add(99);
+ ArrayList<Integer> intValues = new ArrayList<>();
- android.hardware.automotive.vehicle.V2_0.UserInfo userInfo =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo userInfo = new UserInfo();
userInfo.userId = 42;
userInfo.flags = 1;
- UserHalHelper.addUserInfo(propRequest, userInfo);
+ UserHalHelper.addUserInfo(intValues, userInfo);
- assertThat(propRequest.value.int32Values)
- .containsExactly(99, 42, 1)
- .inOrder();
+ assertThat(intValues).containsExactly(42, 1).inOrder();
}
@Test
@@ -415,64 +375,73 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
}
@Test
- public void testUserIdentificationGetRequestToVehiclePropValue_null() {
+ public void testUserIdentificationGetRequestToHalPropValue_null() {
+ assertThrows(NullPointerException.class,
+ () -> UserHalHelper.toHalPropValue(
+ mPropValueBuilder, (UserIdentificationGetRequest) null));
+ }
+
+ @Test
+ public void testUserIdentificationGetRequestToHalPropValue_nullAssociationTypes() {
+ UserIdentificationGetRequest request = UserHalHelper.emptyUserIdentificationGetRequest();
+ request.associationTypes = null;
+
assertThrows(NullPointerException.class,
- () -> UserHalHelper.toVehiclePropValue((UserIdentificationGetRequest) null));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationGetRequestToVehiclePropValue_emptyRequest() {
- UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+ public void testUserIdentificationGetRequestToHalPropValue_emptyRequest() {
+ UserIdentificationGetRequest request = UserHalHelper.emptyUserIdentificationGetRequest();
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationGetRequestToVehiclePropValue_wrongNumberOfAssociations() {
- UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+ public void testUserIdentificationGetRequestToHalPropValue_wrongNumberOfAssociations() {
+ UserIdentificationGetRequest request = UserHalHelper.emptyUserIdentificationGetRequest();
request.numberAssociationTypes = 1;
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationGetRequestToVehiclePropValue_invalidType() {
- UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+ public void testUserIdentificationGetRequestToHalPropValue_invalidType() {
+ UserIdentificationGetRequest request = UserHalHelper.emptyUserIdentificationGetRequest();
request.numberAssociationTypes = 1;
- request.associationTypes.add(CUSTOM_4 + 1);
+ request.associationTypes = new int[]{CUSTOM_4 + 1};
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationGetRequestToVehiclePropValue_missingRequestId() {
- UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+ public void testUserIdentificationGetRequestToHalPropValue_missingRequestId() {
+ UserIdentificationGetRequest request = UserHalHelper.emptyUserIdentificationGetRequest();
request.userInfo.userId = 42;
request.userInfo.flags = 108;
request.numberAssociationTypes = 1;
- request.associationTypes.add(KEY_FOB);
+ request.associationTypes = new int[]{KEY_FOB};
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationGetRequestToVehiclePropValue_ok() {
- UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+ public void testUserIdentificationGetRequestToHalPropValue_ok() {
+ UserIdentificationGetRequest request = UserHalHelper.emptyUserIdentificationGetRequest();
request.requestId = 1;
request.userInfo.userId = 42;
request.userInfo.flags = 108;
request.numberAssociationTypes = 2;
- request.associationTypes.add(KEY_FOB);
- request.associationTypes.add(CUSTOM_1);
+ request.associationTypes = new int[]{KEY_FOB, CUSTOM_1};
- VehiclePropValue propValue = UserHalHelper.toVehiclePropValue(request);
- assertWithMessage("wrong prop on %s", propValue).that(propValue.prop)
+ HalPropValue propValue = UserHalHelper.toHalPropValue(mPropValueBuilder, request);
+ assertWithMessage("wrong prop on %s", propValue).that(propValue.getPropId())
.isEqualTo(USER_IDENTIFICATION_ASSOCIATION_PROPERTY);
- assertWithMessage("wrong int32values on %s", propValue).that(propValue.value.int32Values)
+ assertWithMessage("wrong int32values on %s", propValue).that(getInt32Values(propValue))
.containsExactly(1, 42, 108, 2, KEY_FOB, CUSTOM_1).inOrder();
}
@@ -484,7 +453,7 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToUserIdentificationResponse_invalidPropType() {
- VehiclePropValue prop = new VehiclePropValue();
+ HalPropValue prop = mPropValueBuilder.build(/* propId= */ 0, /* areaId= */ 0);
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toUserIdentificationResponse(prop));
@@ -492,12 +461,10 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToUserIdentificationResponse_invalidSize() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
// need at least 4: request_id, number associations, type1, value1
- prop.value.int32Values.add(1);
- prop.value.int32Values.add(2);
- prop.value.int32Values.add(3);
+ HalPropValue prop = mPropValueBuilder.build(
+ UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY, /* areaId= */ 0,
+ new int[]{1, 2, 3});
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toUserIdentificationResponse(prop));
@@ -505,9 +472,9 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToUserIdentificationResponse_invalidRequest() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
- prop.value.int32Values.add(0);
+ HalPropValue prop = mPropValueBuilder.build(
+ UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY, /* areaId= */ 0,
+ new int[]{0});
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toUserIdentificationResponse(prop));
@@ -515,12 +482,15 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToUserIdentificationResponse_invalidType() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(1); // number of associations
- prop.value.int32Values.add(CUSTOM_4 + 1);
- prop.value.int32Values.add(ASSOCIATED_ANOTHER_USER);
+ HalPropValue prop = mPropValueBuilder.build(
+ UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY, /* areaId= */ 0,
+ new int[]{
+ // request id
+ 42,
+ // number of associations
+ 1,
+ CUSTOM_4 + 1,
+ ASSOCIATED_ANOTHER_USER});
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toUserIdentificationResponse(prop));
@@ -528,12 +498,15 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToUserIdentificationResponse_invalidValue() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(1); // number of associations
- prop.value.int32Values.add(KEY_FOB);
- prop.value.int32Values.add(0);
+ HalPropValue prop = mPropValueBuilder.build(
+ UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY, /* areaId= */ 0,
+ new int[]{
+ // request id
+ 42,
+ // number of associations
+ 1,
+ KEY_FOB,
+ 0});
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toUserIdentificationResponse(prop));
@@ -541,17 +514,21 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToUserIdentificationResponse_ok() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(3); // number of associations
- prop.value.int32Values.add(KEY_FOB);
- prop.value.int32Values.add(ASSOCIATED_ANOTHER_USER);
- prop.value.int32Values.add(CUSTOM_1);
- prop.value.int32Values.add(ASSOCIATED_CURRENT_USER);
- prop.value.int32Values.add(CUSTOM_2);
- prop.value.int32Values.add(NOT_ASSOCIATED_ANY_USER);
- prop.value.stringValue = "D'OH!";
+ HalPropValue prop = mPropValueBuilder.build(
+ UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY, /* areaId= */ 0,
+ /* timestamp= */ 0, /* status= */ 0,
+ /*int32Values=*/new int[]{
+ // request id
+ 42,
+ // number of associations
+ 3,
+ KEY_FOB,
+ ASSOCIATED_ANOTHER_USER,
+ CUSTOM_1,
+ ASSOCIATED_CURRENT_USER,
+ CUSTOM_2,
+ NOT_ASSOCIATED_ANY_USER
+ }, new float[0], new long[0], "D'OH!", new byte[0]);
UserIdentificationResponse response = UserHalHelper.toUserIdentificationResponse(prop);
@@ -574,18 +551,16 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToInitialUserInfoResponse_invalidPropType() {
- VehiclePropValue prop = new VehiclePropValue();
-
+ HalPropValue prop = mPropValueBuilder.build(/* propId= */ 0, /* areaId= */ 0);
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toInitialUserInfoResponse(prop));
}
@Test
public void testToInitialUserInfoResponse_invalidSize() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- // need at least 2: request_id, action_type
- prop.value.int32Values.add(42);
+ // need at least 2 intValues: request_id, action_type.
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ 42);
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toInitialUserInfoResponse(prop));
@@ -593,9 +568,7 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToInitialUserInfoResponse_invalidRequest() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(0);
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0, 0);
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toInitialUserInfoResponse(prop));
@@ -603,10 +576,13 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToInitialUserInfoResponse_invalidAction() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(-1); // InitialUserInfoResponseAction
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ new int[]{
+ // request id
+ 42,
+ // InitialUserInfoResponseAction
+ -1
+ });
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toInitialUserInfoResponse(prop));
@@ -614,10 +590,13 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToInitialUserInfoResponse_default_ok_noStringValue() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.DEFAULT);
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ new int[]{
+ // request id
+ 42,
+ // InitialUserInfoResponseAction
+ InitialUserInfoResponseAction.DEFAULT
+ });
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
@@ -626,17 +605,20 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.DEFAULT);
assertThat(response.userNameToCreate).isEmpty();
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.NONE);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(0);
assertThat(response.userLocales).isEmpty();
}
@Test
public void testToInitialUserInfoResponse_default_ok_stringValueWithJustSeparator() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.DEFAULT);
- prop.value.stringValue = "||";
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ /* timestamp= */ 0, /* status= */ 0,
+ new int[]{
+ // request id
+ 42,
+ // InitialUserInfoResponseAction
+ InitialUserInfoResponseAction.DEFAULT
+ }, new float[0], new long[0], "||", new byte[0]);
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
@@ -645,17 +627,20 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.DEFAULT);
assertThat(response.userNameToCreate).isEmpty();
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.NONE);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(0);
assertThat(response.userLocales).isEmpty();
}
@Test
public void testToInitialUserInfoResponse_default_ok_stringValueWithLocale() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.DEFAULT);
- prop.value.stringValue = "esperanto,klingon";
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ /* timestamp= */ 0, /* status= */ 0,
+ new int[]{
+ // request id
+ 42,
+ // InitialUserInfoResponseAction
+ InitialUserInfoResponseAction.DEFAULT
+ }, new float[0], new long[0], "esperanto,klingon", new byte[0]);
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
@@ -664,17 +649,20 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.DEFAULT);
assertThat(response.userNameToCreate).isEmpty();
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.NONE);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(0);
assertThat(response.userLocales).isEqualTo("esperanto,klingon");
}
@Test
public void testToInitialUserInfoResponse_default_ok_stringValueWithLocaleWithHalfSeparator() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.DEFAULT);
- prop.value.stringValue = "esperanto|klingon";
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ /* timestamp= */ 0, /* status= */ 0,
+ new int[]{
+ // request id
+ 42,
+ // InitialUserInfoResponseAction
+ InitialUserInfoResponseAction.DEFAULT
+ }, new float[0], new long[0], "esperanto|klingon", new byte[0]);
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
@@ -683,16 +671,18 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.DEFAULT);
assertThat(response.userNameToCreate).isEmpty();
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.NONE);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(0);
assertThat(response.userLocales).isEqualTo("esperanto|klingon");
}
@Test
public void testToInitialUserInfoResponse_switch_missingUserId() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.SWITCH);
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ new int[]{
+ // request id
+ 42,
+ InitialUserInfoResponseAction.SWITCH
+ });
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toInitialUserInfoResponse(prop));
@@ -700,12 +690,16 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToInitialUserInfoResponse_switch_ok_noLocale() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.SWITCH);
- prop.value.int32Values.add(108); // user id
- prop.value.int32Values.add(666); // flags - should be ignored
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ new int[]{
+ // request id
+ 42,
+ InitialUserInfoResponseAction.SWITCH,
+ // user id
+ 108,
+ // flags - should be ignored
+ 666
+ });
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
@@ -714,20 +708,26 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.SWITCH);
assertThat(response.userNameToCreate).isEmpty();
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(108);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.NONE);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(0);
assertThat(response.userLocales).isEmpty();
}
@Test
public void testToInitialUserInfoResponse_switch_ok_withLocale() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.SWITCH);
- prop.value.int32Values.add(108); // user id
- prop.value.int32Values.add(666); // flags - should be ignored
- // add some extra | to make sure they're ignored
- prop.value.stringValue = "esperanto,klingon|||";
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ /* timestamp= */ 0, /* status= */ 0,
+ new int[]{
+ // request id
+ 42,
+ InitialUserInfoResponseAction.SWITCH,
+ // user id
+ 108,
+ // flags - should be ignored
+ 666
+ }, new float[0], new long[0],
+ // add some extra | to make sure they're ignored
+ "esperanto,klingon|||", new byte[0]);
+
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
assertThat(response).isNotNull();
@@ -735,16 +735,18 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.SWITCH);
assertThat(response.userNameToCreate).isEmpty();
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(108);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.NONE);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(0);
assertThat(response.userLocales).isEqualTo("esperanto,klingon");
}
@Test
public void testToInitialUserInfoResponse_create_missingUserId() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.CREATE);
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ new int[]{
+ // request id
+ 42,
+ InitialUserInfoResponseAction.CREATE
+ });
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toInitialUserInfoResponse(prop));
@@ -752,11 +754,14 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToInitialUserInfoResponse_create_missingFlags() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.CREATE);
- prop.value.int32Values.add(108); // user id
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ new int[]{
+ // request id
+ 42,
+ InitialUserInfoResponseAction.CREATE,
+ // user id
+ 108
+ });
assertThrows(IllegalArgumentException.class,
() -> UserHalHelper.toInitialUserInfoResponse(prop));
@@ -764,13 +769,16 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
@Test
public void testToInitialUserInfoResponse_create_ok_noLocale() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.CREATE);
- prop.value.int32Values.add(666); // user id - not used
- prop.value.int32Values.add(UserFlags.GUEST);
- prop.value.stringValue = "||ElGuesto";
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ /* timestamp= */ 0, /* status= */ 0,
+ new int[]{
+ // request id
+ 42,
+ InitialUserInfoResponseAction.CREATE,
+ // user id - not used
+ 666,
+ UserInfo.USER_FLAG_GUEST
+ }, new float[0], new long[0], "||ElGuesto", new byte[0]);
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
@@ -779,19 +787,22 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.CREATE);
assertThat(response.userNameToCreate).isEqualTo("ElGuesto");
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.GUEST);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserInfo.USER_FLAG_GUEST);
assertThat(response.userLocales).isEmpty();
}
@Test
public void testToInitialUserInfoResponse_create_ok_withLocale() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.CREATE);
- prop.value.int32Values.add(666); // user id - not used
- prop.value.int32Values.add(UserFlags.GUEST);
- prop.value.stringValue = "esperanto,klingon||ElGuesto";
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ /* timestamp= */ 0, /* status= */ 0,
+ new int[]{
+ // request id
+ 42,
+ InitialUserInfoResponseAction.CREATE,
+ // user id - not used
+ 666,
+ UserInfo.USER_FLAG_GUEST
+ }, new float[0], new long[0], "esperanto,klingon||ElGuesto", new byte[0]);
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
@@ -800,19 +811,22 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.CREATE);
assertThat(response.userNameToCreate).isEqualTo("ElGuesto");
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.GUEST);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserInfo.USER_FLAG_GUEST);
assertThat(response.userLocales).isEqualTo("esperanto,klingon");
}
@Test
public void testToInitialUserInfoResponse_create_ok_nameAndLocaleWithHalfDelimiter() {
- VehiclePropValue prop = new VehiclePropValue();
- prop.prop = UserHalHelper.INITIAL_USER_INFO_PROPERTY;
- prop.value.int32Values.add(42); // request id
- prop.value.int32Values.add(InitialUserInfoResponseAction.CREATE);
- prop.value.int32Values.add(666); // user id - not used
- prop.value.int32Values.add(UserFlags.GUEST);
- prop.value.stringValue = "esperanto|klingon||El|Guesto";
+ HalPropValue prop = mPropValueBuilder.build(INITIAL_USER_INFO_PROPERTY, /* areaId= */ 0,
+ /* timestamp= */ 0, /* status= */ 0,
+ new int[]{
+ // request id
+ 42,
+ InitialUserInfoResponseAction.CREATE,
+ // user id - not used
+ 666,
+ UserInfo.USER_FLAG_GUEST
+ }, new float[0], new long[0], "esperanto|klingon||El|Guesto", new byte[0]);
InitialUserInfoResponse response = UserHalHelper.toInitialUserInfoResponse(prop);
@@ -821,77 +835,88 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(response.action).isEqualTo(InitialUserInfoResponseAction.CREATE);
assertThat(response.userNameToCreate).isEqualTo("El|Guesto");
assertThat(response.userToSwitchOrCreate.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserFlags.GUEST);
+ assertThat(response.userToSwitchOrCreate.flags).isEqualTo(UserInfo.USER_FLAG_GUEST);
assertThat(response.userLocales).isEqualTo("esperanto|klingon");
}
@Test
- public void testUserIdentificationSetRequestToVehiclePropValue_null() {
+ public void testUserIdentificationSetRequestToHalPropValue_null() {
+ assertThrows(NullPointerException.class,
+ () -> UserHalHelper.toHalPropValue(
+ mPropValueBuilder, (UserIdentificationSetRequest) null));
+ }
+
+ @Test
+ public void testUserIdentificationSetRequestToHalPropValue_nullAssociations() {
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
+ request.associations = null;
+
assertThrows(NullPointerException.class,
- () -> UserHalHelper.toVehiclePropValue((UserIdentificationSetRequest) null));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
+
@Test
- public void testUserIdentificationSetRequestToVehiclePropValue_emptyRequest() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ public void testUserIdentificationSetRequestToHalPropValue_emptyRequest() {
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationSetRequestToVehiclePropValue_wrongNumberOfAssociations() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ public void testUserIdentificationSetRequestToHalPropValue_wrongNumberOfAssociations() {
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
request.numberAssociations = 1;
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationSetRequestToVehiclePropValue_invalidType() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ public void testUserIdentificationSetRequestToHalPropValue_invalidType() {
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
request.numberAssociations = 1;
UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
- request.associations.add(association1);
+ request.associations = new UserIdentificationSetAssociation[]{association1};
association1.type = CUSTOM_4 + 1;
association1.value = ASSOCIATE_CURRENT_USER;
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationSetRequestToVehiclePropValue_invalidValue() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ public void testUserIdentificationSetRequestToHalPropValue_invalidValue() {
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
request.numberAssociations = 1;
UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
- request.associations.add(association1);
+ request.associations = new UserIdentificationSetAssociation[]{association1};
association1.type = KEY_FOB;
association1.value = -1;
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationSetRequestToVehiclePropValue_missingRequestId() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ public void testUserIdentificationSetRequestToHalPropValue_missingRequestId() {
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
request.userInfo.userId = 42;
request.userInfo.flags = 108;
request.numberAssociations = 1;
UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
association1.type = KEY_FOB;
association1.value = ASSOCIATE_CURRENT_USER;
- request.associations.add(association1);
+ request.associations = new UserIdentificationSetAssociation[]{association1};
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testUserIdentificationSetRequestToVehiclePropValue_ok() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ public void testUserIdentificationSetRequestToHalPropValue_ok() {
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
request.requestId = 1;
request.userInfo.userId = 42;
request.userInfo.flags = 108;
@@ -899,16 +924,16 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
association1.type = KEY_FOB;
association1.value = ASSOCIATE_CURRENT_USER;
- request.associations.add(association1);
UserIdentificationSetAssociation association2 = new UserIdentificationSetAssociation();
association2.type = CUSTOM_1;
association2.value = DISASSOCIATE_CURRENT_USER;
- request.associations.add(association2);
+ request.associations = new UserIdentificationSetAssociation[]{association1, association2};
- VehiclePropValue propValue = UserHalHelper.toVehiclePropValue(request);
- assertWithMessage("wrong prop on %s", propValue).that(propValue.prop)
+ HalPropValue propValue = UserHalHelper.toHalPropValue(mPropValueBuilder, request);
+ assertWithMessage("wrong prop on %s", propValue).that(propValue.getPropId())
.isEqualTo(USER_IDENTIFICATION_ASSOCIATION_PROPERTY);
- assertWithMessage("wrong int32values on %s", propValue).that(propValue.value.int32Values)
+
+ assertWithMessage("wrong int32values on %s", propValue).that(getInt32Values(propValue))
.containsExactly(1, 42, 108, 2,
KEY_FOB, ASSOCIATE_CURRENT_USER,
CUSTOM_1, DISASSOCIATE_CURRENT_USER)
@@ -916,259 +941,313 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
}
@Test
- public void testRemoveUserRequestToVehiclePropValue_null() {
+ public void testRemoveUserRequestToHalPropValue_null() {
assertThrows(NullPointerException.class,
- () -> UserHalHelper.toVehiclePropValue((RemoveUserRequest) null));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, (RemoveUserRequest) null));
}
@Test
- public void testRemoveUserRequestToVehiclePropValue_emptyRequest() {
- RemoveUserRequest request = new RemoveUserRequest();
+ public void testRemoveUserRequestToHalPropValue_nullRemovedUserInfo() {
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
+ request.requestId = 1;
+ request.removedUserInfo = null;
+
+ assertThrows(NullPointerException.class,
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
+ }
+
+ @Test
+ public void testRemoveUserRequestToHalPropValue_nullUsersInfo() {
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
+ request.usersInfo = null;
+
+ assertThrows(IllegalArgumentException.class,
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
+ }
+
+ @Test
+ public void testRemoveUserRequestToHalPropValue_empty() {
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testRemoveUserRequestToVehiclePropValue_missingRequestId() {
- RemoveUserRequest request = new RemoveUserRequest();
+ public void testRemoveUserRequestToHalPropValue_missingRequestId() {
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
request.removedUserInfo.userId = 11;
- request.usersInfo.existingUsers.add(request.removedUserInfo);
+ request.usersInfo.existingUsers = new UserInfo[]{request.removedUserInfo};
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testRemoveUserRequestToVehiclePropValue_ok() {
- RemoveUserRequest request = new RemoveUserRequest();
+ public void testRemoveUserRequestToHalPropValue_ok() {
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
request.requestId = 42;
- android.hardware.automotive.vehicle.V2_0.UserInfo user10 =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo user10 = new UserInfo();
user10.userId = 10;
- user10.flags = UserFlags.ADMIN;
+ user10.flags = UserInfo.USER_FLAG_ADMIN;
// existing users
request.usersInfo.numberUsers = 1;
- request.usersInfo.existingUsers.add(user10);
+ request.usersInfo.existingUsers = new UserInfo[]{user10};
// current user
request.usersInfo.currentUser = user10;
// user to remove
request.removedUserInfo = user10;
- VehiclePropValue propValue = UserHalHelper.toVehiclePropValue(request);
+ HalPropValue propValue = UserHalHelper.toHalPropValue(mPropValueBuilder, request);
- assertWithMessage("wrong prop on %s", propValue).that(propValue.prop)
+ assertWithMessage("wrong prop on %s", propValue).that(propValue.getPropId())
.isEqualTo(REMOVE_USER_PROPERTY);
- assertWithMessage("wrong int32values on %s", propValue).that(propValue.value.int32Values)
+ assertWithMessage("wrong int32values on %s", propValue).that(getInt32Values(propValue))
.containsExactly(42, // request id
- 10, UserFlags.ADMIN, // user to remove
- 10, UserFlags.ADMIN, // current user
+ 10, UserInfo.USER_FLAG_ADMIN, // user to remove
+ 10, UserInfo.USER_FLAG_ADMIN, // current user
1, // number of users
- 10, UserFlags.ADMIN // existing user 1
+ 10, UserInfo.USER_FLAG_ADMIN // existing user 1
).inOrder();
}
@Test
- public void testCreateUserRequestToVehiclePropValue_null() {
+ public void testCreateUserRequestToHalPropValue_null() {
assertThrows(NullPointerException.class,
- () -> UserHalHelper.toVehiclePropValue((CreateUserRequest) null));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, (CreateUserRequest) null));
+ }
+
+ @Test
+ public void testCreateUserRequestToHalPropValue_nullNewUserInfo() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
+ request.newUserInfo = null;
+
+ assertThrows(NullPointerException.class,
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
+ }
+
+ @Test
+ public void testCreateUserRequestToHalPropValue_nullUsersInfo() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
+ request.usersInfo = null;
+
+ assertThrows(IllegalArgumentException.class,
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testCreateUserRequestToVehiclePropValue_emptyRequest() {
- CreateUserRequest request = new CreateUserRequest();
+ public void testCreateUserRequestToHalPropValue_empty() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testCreateUserRequestToVehiclePropValue_missingRequestId() {
- CreateUserRequest request = new CreateUserRequest();
+ public void testCreateUserRequestToHalPropValue_emptyRequest() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
+
+ assertThrows(IllegalArgumentException.class,
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
+ }
+
+ @Test
+ public void testCreateUserRequestToHalPropValue_missingRequestId() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
+ request.newUserInfo = new UserInfo();
request.newUserInfo.userId = 10;
- request.usersInfo.existingUsers.add(request.newUserInfo);
+ request.usersInfo.existingUsers = new UserInfo[]{request.newUserInfo};
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testCreateUserRequestToVehiclePropValue_nullNewUserName() {
- CreateUserRequest request = new CreateUserRequest();
+ public void testCreateUserRequestToHalPropValue_nullNewUserName() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
request.requestId = 42;
request.newUserInfo.userId = 10;
- request.newUserInfo.flags = UserFlags.ADMIN;
+ request.newUserInfo.flags = UserInfo.USER_FLAG_ADMIN;
request.newUserName = null;
request.usersInfo.numberUsers = 1;
request.usersInfo.currentUser.userId = request.newUserInfo.userId;
request.usersInfo.currentUser.flags = request.newUserInfo.flags;
- request.usersInfo.existingUsers.add(request.usersInfo.currentUser);
+ request.usersInfo.existingUsers = new UserInfo[]{request.usersInfo.currentUser};
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testCreateUserRequestToVehiclePropValue_usersInfoDoesNotContainNewUser() {
- CreateUserRequest request = new CreateUserRequest();
+ public void testCreateUserRequestToHalPropValue_usersInfoDoesNotContainNewUser() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
request.requestId = 42;
request.newUserInfo.userId = 10;
- android.hardware.automotive.vehicle.V2_0.UserInfo user =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo user = new UserInfo();
user.userId = 11;
- request.usersInfo.existingUsers.add(user);
+ request.usersInfo.existingUsers = new UserInfo[]{user};
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testCreateUserRequestToVehiclePropValue_newUserFlagsMismatch() {
- CreateUserRequest request = new CreateUserRequest();
+ public void testCreateUserRequestToHalPropValue_newUserFlagsMismatch() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
request.requestId = 42;
request.newUserInfo.userId = 10;
- request.newUserInfo.flags = UserFlags.ADMIN;
- android.hardware.automotive.vehicle.V2_0.UserInfo user =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ request.newUserInfo.flags = UserInfo.USER_FLAG_ADMIN;
+ UserInfo user = new UserInfo();
user.userId = 10;
- request.newUserInfo.flags = UserFlags.SYSTEM;
- request.usersInfo.existingUsers.add(user);
+ request.newUserInfo.flags = UserInfo.USER_FLAG_SYSTEM;
+ request.usersInfo.existingUsers = new UserInfo[]{user};
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testCreateUserRequestToVehiclePropValue_ok() {
- CreateUserRequest request = new CreateUserRequest();
+ public void testCreateUserRequestToHalPropValue_ok() {
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
request.requestId = 42;
- android.hardware.automotive.vehicle.V2_0.UserInfo user10 =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo user10 = new UserInfo();
user10.userId = 10;
- user10.flags = UserFlags.ADMIN;
- android.hardware.automotive.vehicle.V2_0.UserInfo user11 =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ user10.flags = UserInfo.USER_FLAG_ADMIN;
+ UserInfo user11 = new UserInfo();
user11.userId = 11;
- user11.flags = UserFlags.SYSTEM;
- android.hardware.automotive.vehicle.V2_0.UserInfo user12 =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ user11.flags = UserInfo.USER_FLAG_SYSTEM;
+ UserInfo user12 = new UserInfo();
user12.userId = 12;
- user12.flags = UserFlags.GUEST;
+ user12.flags = UserInfo.USER_FLAG_GUEST;
// existing users
request.usersInfo.numberUsers = 3;
- request.usersInfo.existingUsers.add(user10);
- request.usersInfo.existingUsers.add(user11);
- request.usersInfo.existingUsers.add(user12);
+ request.usersInfo.existingUsers = new UserInfo[]{user10, user11, user12};
// current user
request.usersInfo.currentUser.userId = 12;
- request.usersInfo.currentUser.flags = UserFlags.GUEST;
+ request.usersInfo.currentUser.flags = UserInfo.USER_FLAG_GUEST;
// new user
request.newUserInfo.userId = 10;
- request.newUserInfo.flags = UserFlags.ADMIN;
+ request.newUserInfo.flags = UserInfo.USER_FLAG_ADMIN;
request.newUserName = "Dude";
- VehiclePropValue propValue = UserHalHelper.toVehiclePropValue(request);
+ HalPropValue propValue = UserHalHelper.toHalPropValue(mPropValueBuilder, request);
- assertWithMessage("wrong prop on %s", propValue).that(propValue.prop)
+ assertWithMessage("wrong prop on %s", propValue).that(propValue.getPropId())
.isEqualTo(CREATE_USER_PROPERTY);
- assertWithMessage("wrong int32values on %s", propValue).that(propValue.value.int32Values)
+ assertWithMessage("wrong int32values on %s", propValue).that(getInt32Values(propValue))
.containsExactly(42, // request id
- 10, UserFlags.ADMIN, // new user
- 12, UserFlags.GUEST, // current user
+ 10, UserInfo.USER_FLAG_ADMIN, // new user
+ 12, UserInfo.USER_FLAG_GUEST, // current user
3, // number of users
- 10, UserFlags.ADMIN, // existing user 1
- 11, UserFlags.SYSTEM, // existing user 2
- 12, UserFlags.GUEST // existing user 3
+ 10, UserInfo.USER_FLAG_ADMIN, // existing user 1
+ 11, UserInfo.USER_FLAG_SYSTEM, // existing user 2
+ 12, UserInfo.USER_FLAG_GUEST // existing user 3
).inOrder();
- assertWithMessage("wrong name %s", propValue).that(propValue.value.stringValue)
+ assertWithMessage("wrong name %s", propValue).that(propValue.getStringValue())
.isEqualTo("Dude");
}
@Test
- public void testSwitchUserRequestToVehiclePropValue_null() {
+ public void testSwitchUserRequestToHalPropValue_null() {
+ assertThrows(NullPointerException.class,
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, (SwitchUserRequest) null));
+ }
+
+ @Test
+ public void testSwitchUserRequestToHalPropValue_nullTargetUser() {
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
+ request.messageType = 1;
+ request.targetUser = null;
+
assertThrows(NullPointerException.class,
- () -> UserHalHelper.toVehiclePropValue((SwitchUserRequest) null));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testSwitchUserRequestToVehiclePropValue_emptyRequest() {
- SwitchUserRequest request = new SwitchUserRequest();
+ public void testSwitchUserRequestToHalPropValue_nullUsersInfo() {
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
+ request.usersInfo = null;
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testSwitchUserRequestToVehiclePropValue_missingMessageType() {
- SwitchUserRequest request = new SwitchUserRequest();
+ public void testSwitchUserRequestToHalPropValue_empty() {
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
+
+ assertThrows(IllegalArgumentException.class,
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
+ }
+
+ @Test
+ public void testSwitchUserRequestToHalPropValue_missingMessageType() {
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.requestId = 42;
- android.hardware.automotive.vehicle.V2_0.UserInfo user10 =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo user10 = new UserInfo();
user10.userId = 10;
request.usersInfo.numberUsers = 1;
- request.usersInfo.existingUsers.add(user10);
+ request.usersInfo.existingUsers = new UserInfo[]{user10};
request.usersInfo.currentUser = user10;
request.targetUser = user10;
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void testSwitchUserRequestToVehiclePropValue_incorrectMessageType() {
- SwitchUserRequest request = new SwitchUserRequest();
+ public void testSwitchUserRequestToHalPropValue_incorrectMessageType() {
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.requestId = 42;
request.messageType = -1;
- android.hardware.automotive.vehicle.V2_0.UserInfo user10 =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo user10 = new UserInfo();
user10.userId = 10;
request.usersInfo.numberUsers = 1;
- request.usersInfo.existingUsers.add(user10);
+ request.usersInfo.existingUsers = new UserInfo[]{user10};
request.usersInfo.currentUser = user10;
request.targetUser = user10;
assertThrows(IllegalArgumentException.class,
- () -> UserHalHelper.toVehiclePropValue(request));
+ () -> UserHalHelper.toHalPropValue(mPropValueBuilder, request));
}
@Test
- public void tesSwitchUserRequestToVehiclePropValue_ok() {
- SwitchUserRequest request = new SwitchUserRequest();
+ public void tesSwitchUserRequestToHalPropValue_ok() {
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.requestId = 42;
- android.hardware.automotive.vehicle.V2_0.UserInfo user10 =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo user10 = new UserInfo();
user10.userId = 10;
- user10.flags = UserFlags.ADMIN;
+ user10.flags = UserInfo.USER_FLAG_ADMIN;
// existing users
request.usersInfo.numberUsers = 1;
- request.usersInfo.existingUsers.add(user10);
+ request.usersInfo.existingUsers = new UserInfo[]{user10};
// current user
request.usersInfo.currentUser = user10;
// user to remove
request.targetUser = user10;
request.messageType = SwitchUserMessageType.ANDROID_SWITCH;
- VehiclePropValue propValue = UserHalHelper.toVehiclePropValue(request);
+ HalPropValue propValue = UserHalHelper.toHalPropValue(mPropValueBuilder, request);
- assertWithMessage("wrong prop on %s", propValue).that(propValue.prop)
+ assertWithMessage("wrong prop on %s", propValue).that(propValue.getPropId())
.isEqualTo(SWITCH_USER_PROPERTY);
- assertWithMessage("wrong int32values on %s", propValue).that(propValue.value.int32Values)
+ assertWithMessage("wrong int32values on %s", propValue).that(getInt32Values(propValue))
.containsExactly(42, // request id
SwitchUserMessageType.ANDROID_SWITCH, // message type
- 10, UserFlags.ADMIN, // target user
- 10, UserFlags.ADMIN, // current user
+ 10, UserInfo.USER_FLAG_ADMIN, // target user
+ 10, UserInfo.USER_FLAG_ADMIN, // current user
1, // number of users
- 10, UserFlags.ADMIN // existing user 1
+ 10, UserInfo.USER_FLAG_ADMIN // existing user 1
).inOrder();
}
@@ -1207,17 +1286,17 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(usersInfo).isNotNull();
assertThat(usersInfo.currentUser.userId).isEqualTo(300);
- assertThat(usersInfo.currentUser.flags).isEqualTo(UserFlags.NONE);
+ assertThat(usersInfo.currentUser.flags).isEqualTo(0);
assertThat(usersInfo.numberUsers).isEqualTo(3);
- assertThat(usersInfo.existingUsers).hasSize(3);
+ assertThat(usersInfo.existingUsers.length).isEqualTo(3);
- assertThat(usersInfo.existingUsers.get(0).userId).isEqualTo(100);
- assertThat(usersInfo.existingUsers.get(0).flags).isEqualTo(UserFlags.ADMIN);
- assertThat(usersInfo.existingUsers.get(1).userId).isEqualTo(200);
- assertThat(usersInfo.existingUsers.get(1).flags).isEqualTo(UserFlags.NONE);
- assertThat(usersInfo.existingUsers.get(2).userId).isEqualTo(300);
- assertThat(usersInfo.existingUsers.get(2).flags).isEqualTo(UserFlags.NONE);
+ assertThat(usersInfo.existingUsers[0].userId).isEqualTo(100);
+ assertThat(usersInfo.existingUsers[0].flags).isEqualTo(UserInfo.USER_FLAG_ADMIN);
+ assertThat(usersInfo.existingUsers[1].userId).isEqualTo(200);
+ assertThat(usersInfo.existingUsers[1].flags).isEqualTo(0);
+ assertThat(usersInfo.existingUsers[2].userId).isEqualTo(300);
+ assertThat(usersInfo.existingUsers[2].flags).isEqualTo(0);
}
@Test
@@ -1232,15 +1311,15 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(usersInfo).isNotNull();
assertThat(usersInfo.currentUser.userId).isEqualTo(100);
- assertThat(usersInfo.currentUser.flags).isEqualTo(UserFlags.ADMIN);
+ assertThat(usersInfo.currentUser.flags).isEqualTo(UserInfo.USER_FLAG_ADMIN);
assertThat(usersInfo.numberUsers).isEqualTo(2);
- assertThat(usersInfo.existingUsers).hasSize(2);
+ assertThat(usersInfo.existingUsers.length).isEqualTo(2);
- assertThat(usersInfo.existingUsers.get(0).userId).isEqualTo(100);
- assertThat(usersInfo.existingUsers.get(0).flags).isEqualTo(UserFlags.ADMIN);
- assertThat(usersInfo.existingUsers.get(1).userId).isEqualTo(200);
- assertThat(usersInfo.existingUsers.get(1).flags).isEqualTo(UserFlags.NONE);
+ assertThat(usersInfo.existingUsers[0].userId).isEqualTo(100);
+ assertThat(usersInfo.existingUsers[0].flags).isEqualTo(UserInfo.USER_FLAG_ADMIN);
+ assertThat(usersInfo.existingUsers[1].userId).isEqualTo(200);
+ assertThat(usersInfo.existingUsers[1].flags).isEqualTo(0);
}
@Test
@@ -1256,15 +1335,15 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
assertThat(usersInfo).isNotNull();
assertThat(usersInfo.currentUser.userId).isEqualTo(300);
- assertThat(usersInfo.currentUser.flags).isEqualTo(UserFlags.NONE);
+ assertThat(usersInfo.currentUser.flags).isEqualTo(0);
assertThat(usersInfo.numberUsers).isEqualTo(2);
- assertThat(usersInfo.existingUsers).hasSize(2);
+ assertThat(usersInfo.existingUsers.length).isEqualTo(2);
- assertThat(usersInfo.existingUsers.get(0).userId).isEqualTo(100);
- assertThat(usersInfo.existingUsers.get(0).flags).isEqualTo(UserFlags.ADMIN);
- assertThat(usersInfo.existingUsers.get(1).userId).isEqualTo(200);
- assertThat(usersInfo.existingUsers.get(1).flags).isEqualTo(UserFlags.NONE);
+ assertThat(usersInfo.existingUsers[0].userId).isEqualTo(100);
+ assertThat(usersInfo.existingUsers[0].flags).isEqualTo(UserInfo.USER_FLAG_ADMIN);
+ assertThat(usersInfo.existingUsers[1].userId).isEqualTo(200);
+ assertThat(usersInfo.existingUsers[1].flags).isEqualTo(0);
}
@Test
@@ -1273,53 +1352,61 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
}
@Test
- public void testCheckValidUsersInfo_empty() {
- UsersInfo usersInfo = new UsersInfo();
+ public void testCheckValidUsersInfo_nullCurrentUser() {
+ UsersInfo usersInfo = UserHalHelper.emptyUsersInfo();
+ usersInfo.currentUser = null;
+ usersInfo.existingUsers = new UserInfo[0];
+ assertThrows(IllegalArgumentException.class, () -> UserHalHelper.checkValid(usersInfo));
+ }
+
+ @Test
+ public void testCheckValidUsersInfo_nullExistingUsers() {
+ UsersInfo usersInfo = UserHalHelper.emptyUsersInfo();
+ usersInfo.currentUser = new UserInfo();
+ usersInfo.existingUsers = null;
assertThrows(IllegalArgumentException.class, () -> UserHalHelper.checkValid(usersInfo));
}
@Test
public void testCheckValidUsersInfo_sizeMismatch() {
- UsersInfo usersInfo = new UsersInfo();
+ UsersInfo usersInfo = UserHalHelper.emptyUsersInfo();
usersInfo.numberUsers = 1;
assertThrows(IllegalArgumentException.class, () -> UserHalHelper.checkValid(usersInfo));
}
@Test
public void testCheckValidUsersInfo_currentUserMissing() {
- UsersInfo usersInfo = new UsersInfo();
+ UsersInfo usersInfo = UserHalHelper.emptyUsersInfo();
usersInfo.numberUsers = 1;
usersInfo.currentUser.userId = 10;
- usersInfo.existingUsers.add(new android.hardware.automotive.vehicle.V2_0.UserInfo());
+ usersInfo.existingUsers = new UserInfo[]{new UserInfo()};
assertThrows(IllegalArgumentException.class, () -> UserHalHelper.checkValid(usersInfo));
}
@Test
public void testCheckValidUsersInfo_currentUserFlagsMismatch() {
- UsersInfo usersInfo = new UsersInfo();
+ UsersInfo usersInfo = UserHalHelper.emptyUsersInfo();
usersInfo.numberUsers = 1;
usersInfo.currentUser.userId = 10;
- usersInfo.currentUser.flags = UserFlags.ADMIN;
- android.hardware.automotive.vehicle.V2_0.UserInfo currentUser =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ usersInfo.currentUser.flags = UserInfo.USER_FLAG_ADMIN;
+ UserInfo currentUser = new UserInfo();
currentUser.userId = 10;
- currentUser.flags = UserFlags.SYSTEM;
- usersInfo.existingUsers.add(currentUser);
+ currentUser.flags = UserInfo.USER_FLAG_SYSTEM;
+ usersInfo.existingUsers = new UserInfo[]{currentUser};
assertThrows(IllegalArgumentException.class, () -> UserHalHelper.checkValid(usersInfo));
}
@Test
public void testCheckValidUsersInfo_ok() {
- UsersInfo usersInfo = new UsersInfo();
+ UsersInfo usersInfo = UserHalHelper.emptyUsersInfo();
usersInfo.numberUsers = 1;
usersInfo.currentUser.userId = 10;
- android.hardware.automotive.vehicle.V2_0.UserInfo currentUser =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ UserInfo currentUser = new UserInfo();
currentUser.userId = 10;
- usersInfo.existingUsers.add(currentUser);
+ usersInfo.existingUsers = new UserInfo[]{currentUser};
UserHalHelper.checkValid(usersInfo);
}
@@ -1331,23 +1418,29 @@ public final class UserHalHelperTest extends AbstractExtendedMockitoTestCase {
private static void assertEmptyUsersInfo(UsersInfo usersInfo) {
assertThat(usersInfo).isNotNull();
assertThat(usersInfo.currentUser.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(usersInfo.currentUser.flags).isEqualTo(UserFlags.NONE);
+ assertThat(usersInfo.currentUser.flags).isEqualTo(0);
assertThat(usersInfo.numberUsers).isEqualTo(0);
assertThat(usersInfo.existingUsers).isEmpty();
}
private static void assertAssociation(@NonNull UserIdentificationResponse response, int index,
int expectedType, int expectedValue) {
- UserIdentificationAssociation actualAssociation = response.associations.get(index);
+ UserIdentificationAssociation actualAssociation = response.associations[index];
if (actualAssociation.type != expectedType) {
fail("Wrong type for association at index " + index + " on " + response + "; expected "
- + UserIdentificationAssociationType.toString(expectedType) + ", got "
- + UserIdentificationAssociationType.toString(actualAssociation.type));
+ + DebugUtils.constantToString(
+ UserIdentificationAssociationType.class, expectedType)
+ + ", got "
+ + DebugUtils.constantToString(
+ UserIdentificationAssociationType.class, actualAssociation.type));
}
if (actualAssociation.type != expectedType) {
fail("Wrong value for association at index " + index + " on " + response + "; expected "
- + UserIdentificationAssociationValue.toString(expectedValue) + ", got "
- + UserIdentificationAssociationValue.toString(actualAssociation.value));
+ + DebugUtils.constantToString(
+ UserIdentificationAssociationValue.class, expectedValue)
+ + ", got "
+ + DebugUtils.constantToString(
+ UserIdentificationAssociationValue.class, actualAssociation.value));
}
}
}
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java b/tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java
index c31e8e372f..245714f11b 100644
--- a/tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java
@@ -21,16 +21,16 @@ import static android.car.VehiclePropertyIds.INITIAL_USER_INFO;
import static android.car.VehiclePropertyIds.REMOVE_USER;
import static android.car.VehiclePropertyIds.SWITCH_USER;
import static android.car.VehiclePropertyIds.USER_IDENTIFICATION_ASSOCIATION;
-import static android.car.test.mocks.CarArgumentMatchers.isProperty;
-import static android.car.test.mocks.CarArgumentMatchers.isPropertyWithValues;
-import static android.car.test.util.VehicleHalTestingHelper.newConfigDeprecated;
-import static android.car.test.util.VehicleHalTestingHelper.newSubscribableConfigDeprecated;
-import static android.hardware.automotive.vehicle.V2_0.InitialUserInfoRequestType.COLD_BOOT;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.ASSOCIATE_CURRENT_USER;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_1;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.KEY_FOB;
-import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.ASSOCIATED_CURRENT_USER;
-
+import static android.hardware.automotive.vehicle.InitialUserInfoRequestType.COLD_BOOT;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationSetValue.ASSOCIATE_CURRENT_USER;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationType.CUSTOM_1;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationType.KEY_FOB;
+import static android.hardware.automotive.vehicle.UserIdentificationAssociationValue.ASSOCIATED_CURRENT_USER;
+
+import static com.android.car.hal.HalPropValueMatcher.isProperty;
+import static com.android.car.hal.HalPropValueMatcher.isPropertyWithValues;
+import static com.android.car.hal.VehicleHalTestingHelper.newConfig;
+import static com.android.car.hal.VehicleHalTestingHelper.newSubscribableConfig;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.google.common.truth.Truth.assertThat;
@@ -51,26 +51,23 @@ import android.annotation.Nullable;
import android.car.hardware.property.VehicleHalStatusCode;
import android.car.test.mocks.AbstractExtendedMockitoTestCase;
import android.car.test.mocks.AbstractExtendedMockitoTestCase.CustomMockitoSessionBuilder;
-import android.hardware.automotive.vehicle.V2_0.CreateUserRequest;
-import android.hardware.automotive.vehicle.V2_0.CreateUserResponse;
-import android.hardware.automotive.vehicle.V2_0.CreateUserStatus;
-import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponse;
-import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponseAction;
-import android.hardware.automotive.vehicle.V2_0.RemoveUserRequest;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserMessageType;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserRequest;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserResponse;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserStatus;
-import android.hardware.automotive.vehicle.V2_0.UserFlags;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociation;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetAssociation;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
-import android.hardware.automotive.vehicle.V2_0.UserInfo;
-import android.hardware.automotive.vehicle.V2_0.UsersInfo;
-import android.hardware.automotive.vehicle.V2_0.VehiclePropConfig;
-import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
+import android.hardware.automotive.vehicle.CreateUserRequest;
+import android.hardware.automotive.vehicle.CreateUserResponse;
+import android.hardware.automotive.vehicle.CreateUserStatus;
+import android.hardware.automotive.vehicle.InitialUserInfoResponse;
+import android.hardware.automotive.vehicle.InitialUserInfoResponseAction;
+import android.hardware.automotive.vehicle.RemoveUserRequest;
+import android.hardware.automotive.vehicle.SwitchUserMessageType;
+import android.hardware.automotive.vehicle.SwitchUserRequest;
+import android.hardware.automotive.vehicle.SwitchUserResponse;
+import android.hardware.automotive.vehicle.SwitchUserStatus;
+import android.hardware.automotive.vehicle.UserIdentificationAssociation;
+import android.hardware.automotive.vehicle.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.UserIdentificationSetAssociation;
+import android.hardware.automotive.vehicle.UserIdentificationSetRequest;
+import android.hardware.automotive.vehicle.UserInfo;
+import android.hardware.automotive.vehicle.UsersInfo;
import android.os.Handler;
import android.os.Looper;
import android.os.ServiceSpecificException;
@@ -159,11 +156,13 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
private final UserInfo mUser0 = new UserInfo();
private final UserInfo mUser10 = new UserInfo();
- private final UsersInfo mUsersInfo = new UsersInfo();
+ private final UsersInfo mUsersInfo = UserHalHelper.emptyUsersInfo();
// Must be a spy so we can mock getNextRequestId()
private UserHalService mUserHalService;
+ private final HalPropValueBuilder mPropValueBuilder = new HalPropValueBuilder(/*isAidl=*/true);
+
@Override
protected void onSessionBuilder(CustomMockitoSessionBuilder builder) {
builder.spyStatic(CarSystemProperties.class);
@@ -172,16 +171,16 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Before
public void setFixtures() {
mockUserHalEnabled(true);
-
+ when(mVehicleHal.getHalPropValueBuilder()).thenReturn(mPropValueBuilder);
mUserHalService = spy(new UserHalService(mVehicleHal, mHandler));
// Needs at least one property, otherwise isSupported() and isUserAssociationSupported()
// will return false
- mUserHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER),
- newSubscribableConfigDeprecated(SWITCH_USER),
- newSubscribableConfigDeprecated(USER_IDENTIFICATION_ASSOCIATION)));
+ mUserHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER),
+ newSubscribableConfig(REMOVE_USER),
+ newSubscribableConfig(SWITCH_USER),
+ newSubscribableConfig(USER_IDENTIFICATION_ASSOCIATION)));
mUser0.userId = 0;
mUser0.flags = 100;
@@ -190,9 +189,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
mUsersInfo.currentUser = mUser0;
mUsersInfo.numberUsers = 2;
- mUsersInfo.existingUsers = new ArrayList<>(2);
- mUsersInfo.existingUsers.add(mUser0);
- mUsersInfo.existingUsers.add(mUser10);
+ mUsersInfo.existingUsers = new UserInfo[]{mUser0, mUser10};
CarLocalServices.addService(CarUserService.class, mCarUserService);
}
@@ -207,7 +204,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- myHalService.takePropertiesDeprecated(Collections.emptyList());
+ myHalService.takeProperties(Collections.emptyList());
assertThat(myHalService.isSupported()).isFalse();
assertThat(myHalService.isUserAssociationSupported()).isFalse();
}
@@ -216,10 +213,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
public void testTakeSupportedProperties_supportedFewProperties() {
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- myHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER)));
+ myHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER),
+ newSubscribableConfig(REMOVE_USER)));
assertThat(myHalService.isSupported()).isFalse();
assertThat(myHalService.isUserAssociationSupported()).isFalse();
@@ -230,11 +227,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
mockUserHalEnabled(null);
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- myHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER),
- newSubscribableConfigDeprecated(SWITCH_USER)));
+ myHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER), newSubscribableConfig(REMOVE_USER),
+ newSubscribableConfig(SWITCH_USER)));
assertThat(myHalService.isSupported()).isFalse();
assertThat(myHalService.isUserAssociationSupported()).isFalse();
@@ -245,11 +241,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
mockUserHalEnabled(false);
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- myHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER),
- newSubscribableConfigDeprecated(SWITCH_USER)));
+ myHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER), newSubscribableConfig(REMOVE_USER),
+ newSubscribableConfig(SWITCH_USER)));
assertThat(myHalService.isSupported()).isFalse();
assertThat(myHalService.isUserAssociationSupported()).isFalse();
@@ -259,11 +254,11 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
public void testTakeSupportedProperties_supportedAllCoreProperties() {
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- myHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER),
- newSubscribableConfigDeprecated(SWITCH_USER)));
+ myHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER),
+ newSubscribableConfig(REMOVE_USER),
+ newSubscribableConfig(SWITCH_USER)));
assertThat(myHalService.isSupported()).isTrue();
assertThat(myHalService.isUserAssociationSupported()).isFalse();
@@ -274,12 +269,11 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
mockUserHalEnabled(false);
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- myHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER),
- newSubscribableConfigDeprecated(SWITCH_USER),
- newSubscribableConfigDeprecated(USER_IDENTIFICATION_ASSOCIATION)));
+ myHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER), newSubscribableConfig(REMOVE_USER),
+ newSubscribableConfig(SWITCH_USER),
+ newSubscribableConfig(USER_IDENTIFICATION_ASSOCIATION)));
assertThat(myHalService.isSupported()).isFalse();
assertThat(myHalService.isUserAssociationSupported()).isTrue();
@@ -290,12 +284,11 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
mockUserHalEnabled(null);
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- myHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER),
- newSubscribableConfigDeprecated(SWITCH_USER),
- newSubscribableConfigDeprecated(USER_IDENTIFICATION_ASSOCIATION)));
+ myHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER), newSubscribableConfig(REMOVE_USER),
+ newSubscribableConfig(SWITCH_USER),
+ newSubscribableConfig(USER_IDENTIFICATION_ASSOCIATION)));
assertThat(myHalService.isSupported()).isFalse();
assertThat(myHalService.isUserAssociationSupported()).isTrue();
@@ -305,12 +298,12 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
public void testTakeSupportedProperties_supportedAllProperties() {
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- myHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER),
- newSubscribableConfigDeprecated(SWITCH_USER),
- newSubscribableConfigDeprecated(USER_IDENTIFICATION_ASSOCIATION)));
+ myHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER),
+ newSubscribableConfig(REMOVE_USER),
+ newSubscribableConfig(SWITCH_USER),
+ newSubscribableConfig(USER_IDENTIFICATION_ASSOCIATION)));
assertThat(myHalService.isSupported()).isTrue();
assertThat(myHalService.isUserAssociationSupported()).isTrue();
@@ -320,14 +313,14 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
public void testTakeSupportedPropertiesAndInit() {
// Cannot use mUserHalService because it's already set with supported properties
UserHalService myHalService = new UserHalService(mVehicleHal);
- VehiclePropConfig unsupportedConfig = newConfigDeprecated(CURRENT_GEAR);
+ HalPropConfig unsupportedConfig = newConfig(CURRENT_GEAR);
- myHalService.takePropertiesDeprecated(
- Arrays.asList(newSubscribableConfigDeprecated(INITIAL_USER_INFO),
- newSubscribableConfigDeprecated(CREATE_USER),
- newSubscribableConfigDeprecated(REMOVE_USER),
- newSubscribableConfigDeprecated(SWITCH_USER), unsupportedConfig,
- newSubscribableConfigDeprecated(USER_IDENTIFICATION_ASSOCIATION)));
+ myHalService.takeProperties(
+ Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO),
+ newSubscribableConfig(CREATE_USER),
+ newSubscribableConfig(REMOVE_USER),
+ newSubscribableConfig(SWITCH_USER), unsupportedConfig,
+ newSubscribableConfig(USER_IDENTIFICATION_ASSOCIATION)));
// Ideally there should be 2 test methods (one for takeSupportedProperties() and one for
@@ -430,7 +423,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetUserInfo_halReplyWithWrongRequestId() throws Exception {
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
+ HalPropValue propResponse = createPropRequest(INITIAL_USER_INFO,
REQUEST_ID_PLACE_HOLDER, INITIAL_USER_INFO_RESPONSE_ACTION);
replySetPropertyWithOnChangeEvent(INITIAL_USER_INFO, propResponse,
@@ -448,10 +441,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetUserInfo_halReturnedInvalidAction() throws Exception {
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
+ HalPropValue propResponse = createPropRequest(INITIAL_USER_INFO,
REQUEST_ID_PLACE_HOLDER, INITIAL_USER_INFO_RESPONSE_ACTION);
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
INITIAL_USER_INFO, propResponse, /* rightRequestId= */ true);
GenericHalCallback<InitialUserInfoResponse> callback = new GenericHalCallback<>(
@@ -471,10 +464,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetUserInfo_successDefault() throws Exception {
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
+ HalPropValue propResponse = createPropRequest(INITIAL_USER_INFO,
REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.DEFAULT);
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
INITIAL_USER_INFO, propResponse, /* rightRequestId= */ true);
GenericHalCallback<InitialUserInfoResponse> callback = new GenericHalCallback<>(
@@ -494,17 +487,17 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
assertThat(actualResponse.userNameToCreate).isEmpty();
assertThat(actualResponse.userToSwitchOrCreate).isNotNull();
assertThat(actualResponse.userToSwitchOrCreate.userId).isEqualTo(UserHandle.USER_NULL);
- assertThat(actualResponse.userToSwitchOrCreate.flags).isEqualTo(UserFlags.NONE);
+ assertThat(actualResponse.userToSwitchOrCreate.flags).isEqualTo(0);
}
@Test
public void testGetUserInfo_successSwitchUser() throws Exception {
int userIdToSwitch = 42;
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
- REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.SWITCH);
- propResponse.value.int32Values.add(userIdToSwitch);
+ HalPropValue propResponse = createPropRequest(INITIAL_USER_INFO,
+ REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.SWITCH,
+ new int[]{userIdToSwitch});
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
INITIAL_USER_INFO, propResponse, /* rightRequestId= */ true);
GenericHalCallback<InitialUserInfoResponse> callback = new GenericHalCallback<>(
@@ -524,20 +517,19 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
UserInfo userToSwitch = actualResponse.userToSwitchOrCreate;
assertThat(userToSwitch).isNotNull();
assertThat(userToSwitch.userId).isEqualTo(userIdToSwitch);
- assertThat(userToSwitch.flags).isEqualTo(UserFlags.NONE);
+ assertThat(userToSwitch.flags).isEqualTo(0);
}
@Test
public void testGetUserInfo_successCreateUser() throws Exception {
int newUserFlags = 108;
String newUserName = "Groot";
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
- REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.CREATE);
- propResponse.value.int32Values.add(666); // userId (not used)
- propResponse.value.int32Values.add(newUserFlags);
- propResponse.value.stringValue = "||" + newUserName;
+ int unusedUserId = 666;
+ HalPropValue propResponse = createPropRequest(INITIAL_USER_INFO,
+ REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.CREATE,
+ new int[]{unusedUserId, newUserFlags}, "||" + newUserName);
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
INITIAL_USER_INFO, propResponse, /* rightRequestId= */ true);
GenericHalCallback<InitialUserInfoResponse> callback = new GenericHalCallback<>(
@@ -646,7 +638,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSwitchUser_halReplyWithWrongRequestId() throws Exception {
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
+ HalPropValue propResponse = createPropRequest(SWITCH_USER,
REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.SWITCH);
replySetPropertyWithOnChangeEvent(SWITCH_USER, propResponse,
@@ -665,11 +657,11 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSwitchUser_halReturnedInvalidMessageType() throws Exception {
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
- REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.LEGACY_ANDROID_SWITCH);
- propResponse.value.int32Values.add(SwitchUserStatus.SUCCESS);
+ HalPropValue propResponse = createPropRequest(SWITCH_USER,
+ REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.LEGACY_ANDROID_SWITCH,
+ new int[]{SwitchUserStatus.SUCCESS});
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
SWITCH_USER, propResponse, /* rightRequestId= */ true);
GenericHalCallback<SwitchUserResponse> callback = new GenericHalCallback<>(
@@ -690,11 +682,11 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSwitchUser_success() throws Exception {
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
- REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE);
- propResponse.value.int32Values.add(SwitchUserStatus.SUCCESS);
+ HalPropValue propResponse = createPropRequest(SWITCH_USER,
+ REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE,
+ new int[]{SwitchUserStatus.SUCCESS});
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
SWITCH_USER, propResponse, /* rightRequestId= */ true);
GenericHalCallback<SwitchUserResponse> callback = new GenericHalCallback<>(
@@ -718,12 +710,11 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSwitchUser_failure() throws Exception {
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
- REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE);
- propResponse.value.int32Values.add(SwitchUserStatus.FAILURE);
- propResponse.value.stringValue = "D'OH!";
+ HalPropValue propResponse = createPropRequest(SWITCH_USER,
+ REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE,
+ new int[]{SwitchUserStatus.FAILURE}, "D'OH!");
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
SWITCH_USER, propResponse, /* rightRequestId= */ true);
GenericHalCallback<SwitchUserResponse> callback = new GenericHalCallback<>(
@@ -768,11 +759,11 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSwitchUser_halReturnedInvalidStatus() throws Exception {
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
- REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE);
- propResponse.value.int32Values.add(/*status =*/ 110); // an invalid status
+ HalPropValue propResponse = createPropRequest(SWITCH_USER,
+ REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE,
+ new int[]{/*status =*/ 110});
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
SWITCH_USER, propResponse, /* rightRequestId= */ true);
GenericHalCallback<SwitchUserResponse> callback = new GenericHalCallback<>(
@@ -795,12 +786,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
public void testUserSwitch_OEMRequest_success() throws Exception {
int requestId = -4;
int targetUserId = 11;
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
- requestId, SwitchUserMessageType.VEHICLE_REQUEST);
+ HalPropValue propResponse = createPropRequest(SWITCH_USER, requestId,
+ SwitchUserMessageType.VEHICLE_REQUEST, new int[]{targetUserId});
- propResponse.value.int32Values.add(targetUserId);
-
- mUserHalService.onHalEventsDeprecated(Arrays.asList(propResponse));
+ mUserHalService.onHalEvents(Arrays.asList(propResponse));
waitForHandler();
verify(mCarUserService).switchAndroidUserFromHal(requestId, targetUserId);
@@ -810,11 +799,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
public void testUserSwitch_OEMRequest_failure_positiveRequestId() throws Exception {
int requestId = 4;
int targetUserId = 11;
- VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
- requestId, SwitchUserMessageType.VEHICLE_REQUEST);
- propResponse.value.int32Values.add(targetUserId);
+ HalPropValue propResponse = createPropRequest(SWITCH_USER, requestId,
+ SwitchUserMessageType.VEHICLE_REQUEST, new int[]{targetUserId});
- mUserHalService.onHalEventsDeprecated(Arrays.asList(propResponse));
+ mUserHalService.onHalEvents(Arrays.asList(propResponse));
waitForHandler();
verify(mCarUserService, never()).switchAndroidUserFromHal(anyInt(), anyInt());
@@ -826,7 +814,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
UserHalService myHalService = new UserHalService(mVehicleHal);
assertThrows(IllegalStateException.class,
- () -> myHalService.postSwitchResponse(new SwitchUserRequest()));
+ () -> myHalService.postSwitchResponse(UserHalHelper.emptySwitchUserRequest()));
}
@Test
@@ -847,10 +835,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
SwitchUserRequest request = createUserSwitchRequest(mUser10, mUsersInfo);
request.requestId = 42;
mUserHalService.postSwitchResponse(request);
- ArgumentCaptor<VehiclePropValue> propCaptor =
- ArgumentCaptor.forClass(VehiclePropValue.class);
- verify(mVehicleHal).setDeprecated(propCaptor.capture());
- VehiclePropValue prop = propCaptor.getValue();
+ ArgumentCaptor<HalPropValue> propCaptor =
+ ArgumentCaptor.forClass(HalPropValue.class);
+ verify(mVehicleHal).set(propCaptor.capture());
+ HalPropValue prop = propCaptor.getValue();
assertHalSetSwitchUserRequest(prop, SwitchUserMessageType.ANDROID_POST_SWITCH, mUser10);
}
@@ -861,7 +849,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testLegacyUserSwitch_noMessageType() {
- SwitchUserRequest request = new SwitchUserRequest();
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
assertThrows(IllegalArgumentException.class,
() -> mUserHalService.legacyUserSwitch(request));
@@ -869,7 +857,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testLegacyUserSwitch_noTargetUserInfo() {
- SwitchUserRequest request = new SwitchUserRequest();
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.messageType = SwitchUserMessageType.ANDROID_SWITCH;
assertThrows(IllegalArgumentException.class,
@@ -882,7 +870,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
UserHalService myHalService = new UserHalService(mVehicleHal);
assertThrows(IllegalStateException.class,
- () -> myHalService.removeUser(new RemoveUserRequest()));
+ () -> myHalService.removeUser(UserHalHelper.emptyRemoveUserRequest()));
}
@Test
@@ -895,7 +883,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testRemoveUser_noRequestId() {
- RemoveUserRequest request = new RemoveUserRequest();
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
assertThrows(IllegalArgumentException.class,
() -> mUserHalService.removeUser(request));
@@ -903,7 +891,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testRemoveUser_noRemovedUserInfo() {
- RemoveUserRequest request = new RemoveUserRequest();
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
request.requestId = 1;
assertThrows(IllegalArgumentException.class,
@@ -912,7 +900,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testRemoveUser_noUsersInfo() {
- RemoveUserRequest request = new RemoveUserRequest();
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
request.requestId = 1;
request.removedUserInfo = mUser10;
@@ -922,15 +910,15 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testRemoveUser_HalCalledWithCorrectProp() {
- RemoveUserRequest request = new RemoveUserRequest();
+ RemoveUserRequest request = UserHalHelper.emptyRemoveUserRequest();
request.removedUserInfo = mUser10;
request.usersInfo = mUsersInfo;
- ArgumentCaptor<VehiclePropValue> propCaptor =
- ArgumentCaptor.forClass(VehiclePropValue.class);
+ ArgumentCaptor<HalPropValue> propCaptor =
+ ArgumentCaptor.forClass(HalPropValue.class);
mUserHalService.removeUser(request);
- verify(mVehicleHal).setDeprecated(propCaptor.capture());
+ verify(mVehicleHal).set(propCaptor.capture());
assertHalSetRemoveUserRequest(propCaptor.getValue(), mUser10);
}
@@ -940,12 +928,12 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
UserHalService myHalService = new UserHalService(mVehicleHal);
assertThrows(IllegalStateException.class,
- () -> myHalService.legacyUserSwitch(new SwitchUserRequest()));
+ () -> myHalService.legacyUserSwitch(UserHalHelper.emptySwitchUserRequest()));
}
@Test
public void testLegacyUserSwitch_noUsersInfo() {
- SwitchUserRequest request = new SwitchUserRequest();
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.messageType = SwitchUserMessageType.ANDROID_SWITCH;
request.targetUser = mUser10;
@@ -955,16 +943,16 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testLegacyUserSwitch_HalCalledWithCorrectProp() {
- SwitchUserRequest request = new SwitchUserRequest();
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.messageType = SwitchUserMessageType.LEGACY_ANDROID_SWITCH;
request.targetUser = mUser10;
request.usersInfo = mUsersInfo;
mUserHalService.legacyUserSwitch(request);
- ArgumentCaptor<VehiclePropValue> propCaptor =
- ArgumentCaptor.forClass(VehiclePropValue.class);
- verify(mVehicleHal).setDeprecated(propCaptor.capture());
- VehiclePropValue prop = propCaptor.getValue();
+ ArgumentCaptor<HalPropValue> propCaptor =
+ ArgumentCaptor.forClass(HalPropValue.class);
+ verify(mVehicleHal).set(propCaptor.capture());
+ HalPropValue prop = propCaptor.getValue();
assertHalSetSwitchUserRequest(prop, SwitchUserMessageType.LEGACY_ANDROID_SWITCH,
mUser10);
}
@@ -975,8 +963,8 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
UserHalService myHalService = new UserHalService(mVehicleHal);
assertThrows(IllegalStateException.class,
- () -> myHalService.createUser(new CreateUserRequest(), HAL_TIMEOUT_MS,
- noOpCallback()));
+ () -> myHalService.createUser(UserHalHelper.emptyCreateUserRequest(),
+ HAL_TIMEOUT_MS, noOpCallback()));
}
@Test
@@ -988,16 +976,16 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testCreateUser_invalidTimeout() {
assertThrows(IllegalArgumentException.class, () -> mUserHalService
- .createUser(new CreateUserRequest(), 0, noOpCallback()));
+ .createUser(UserHalHelper.emptyCreateUserRequest(), 0, noOpCallback()));
assertThrows(IllegalArgumentException.class, () -> mUserHalService
- .createUser(new CreateUserRequest(), -1, noOpCallback()));
+ .createUser(UserHalHelper.emptyCreateUserRequest(), -1, noOpCallback()));
}
@Test
public void testCreateUser_noCallback() {
- CreateUserRequest request = new CreateUserRequest();
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
request.newUserInfo.userId = 10;
- request.usersInfo.existingUsers.add(request.newUserInfo);
+ request.usersInfo.existingUsers = new UserInfo[]{request.newUserInfo};
assertThrows(NullPointerException.class, () -> mUserHalService
.createUser(request, HAL_TIMEOUT_MS, null));
@@ -1008,7 +996,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
*/
@NonNull
private CreateUserRequest newValidCreateUserRequest() {
- CreateUserRequest request = new CreateUserRequest();
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
request.newUserInfo = mUser10;
request.usersInfo = mUsersInfo;
return request;
@@ -1046,8 +1034,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testCreateUser_halReplyWithWrongRequestId() throws Exception {
- VehiclePropValue propResponse =
- UserHalHelper.createPropRequest(CREATE_USER, REQUEST_ID_PLACE_HOLDER);
+ HalPropValue propResponse = createPropRequest(CREATE_USER, REQUEST_ID_PLACE_HOLDER);
replySetPropertyWithOnChangeEvent(CREATE_USER, propResponse,
/* rightRequestId= */ false);
@@ -1064,14 +1051,13 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testCreateUser_success() throws Exception {
- VehiclePropValue propResponse =
- UserHalHelper.createPropRequest(CREATE_USER, REQUEST_ID_PLACE_HOLDER);
- propResponse.value.int32Values.add(CreateUserStatus.SUCCESS);
+ HalPropValue propResponse = createPropRequest(CREATE_USER, REQUEST_ID_PLACE_HOLDER,
+ new int[]{CreateUserStatus.SUCCESS});
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
CREATE_USER, propResponse, /* rightRequestId= */ true);
- CreateUserRequest request = new CreateUserRequest();
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
request.newUserInfo = mUser10;
request.usersInfo = mUsersInfo;
GenericHalCallback<CreateUserResponse> callback = new GenericHalCallback<>(
@@ -1092,15 +1078,13 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testCreateUser_failure() throws Exception {
- VehiclePropValue propResponse =
- UserHalHelper.createPropRequest(CREATE_USER, REQUEST_ID_PLACE_HOLDER);
- propResponse.value.int32Values.add(CreateUserStatus.FAILURE);
- propResponse.value.stringValue = "D'OH!";
+ HalPropValue propResponse = createPropRequest(CREATE_USER, REQUEST_ID_PLACE_HOLDER,
+ /* requestType= */ null, new int[]{CreateUserStatus.FAILURE}, "D'OH!");
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
CREATE_USER, propResponse, /* rightRequestId= */ true);
- CreateUserRequest request = new CreateUserRequest();
+ CreateUserRequest request = UserHalHelper.emptyCreateUserRequest();
request.newUserInfo = mUser10;
request.usersInfo = mUsersInfo;
GenericHalCallback<CreateUserResponse> callback = new GenericHalCallback<>(
@@ -1140,12 +1124,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testCreateUser_halReturnedInvalidStatus() throws Exception {
- VehiclePropValue propResponse =
- UserHalHelper.createPropRequest(CREATE_USER, REQUEST_ID_PLACE_HOLDER);
- propResponse.value.int32Values.add(/*status =*/ -1); // an invalid status
+ HalPropValue propResponse = createPropRequest(CREATE_USER, REQUEST_ID_PLACE_HOLDER,
+ new int[]{/*status =*/ -1});
- AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
- CREATE_USER, propResponse, /* rightRequestId= */ true);
+ replySetPropertyWithOnChangeEvent(CREATE_USER, propResponse, /* rightRequestId= */ true);
GenericHalCallback<CreateUserResponse> callback = new GenericHalCallback<>(
CALLBACK_TIMEOUT);
@@ -1176,8 +1158,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
public void testGetUserAssociation_requestWithDuplicatedTypes() {
UserIdentificationGetRequest request = new UserIdentificationGetRequest();
request.numberAssociationTypes = 2;
- request.associationTypes.add(KEY_FOB);
- request.associationTypes.add(KEY_FOB);
+ request.associationTypes = new int[]{KEY_FOB, KEY_FOB};
assertThrows(IllegalArgumentException.class,
() -> mUserHalService.getUserAssociation(request));
@@ -1185,11 +1166,15 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetUserAssociation_invalidResponse() {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
- propResponse.value.int32Values.add(1); // 1 associations
- propResponse.value.int32Values.add(KEY_FOB); // type only, it's missing value
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0,
+ new int[]{
+ DEFAULT_REQUEST_ID,
+ // 1 associations
+ 1,
+ // type only, it's missing value
+ KEY_FOB});
+
UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
propResponse);
@@ -1218,14 +1203,17 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetUserAssociation_wrongNumberOfAssociationsOnResponse() {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
- propResponse.value.int32Values.add(2); // 2 associations
- propResponse.value.int32Values.add(KEY_FOB);
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
- propResponse.value.int32Values.add(CUSTOM_1);
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0,
+ new int[]{
+ DEFAULT_REQUEST_ID,
+ // 2 associations
+ 2,
+ KEY_FOB,
+ ASSOCIATED_CURRENT_USER,
+ CUSTOM_1,
+ ASSOCIATED_CURRENT_USER
+ });
UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
propResponse);
@@ -1236,12 +1224,15 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetUserAssociation_typesOnResponseMismatchTypesOnRequest() {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
- propResponse.value.int32Values.add(1); // 1 association
- propResponse.value.int32Values.add(CUSTOM_1);
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0,
+ new int[]{
+ DEFAULT_REQUEST_ID,
+ // 1 association
+ 1,
+ CUSTOM_1,
+ ASSOCIATED_CURRENT_USER
+ });
UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
propResponse);
@@ -1252,12 +1243,15 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetUserAssociation_requestIdMismatch() {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID + 1);
- propResponse.value.int32Values.add(1); // 1 association
- propResponse.value.int32Values.add(KEY_FOB);
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0,
+ new int[]{
+ DEFAULT_REQUEST_ID + 1,
+ // 1 association
+ 1,
+ KEY_FOB,
+ ASSOCIATED_CURRENT_USER
+ });
UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
propResponse);
@@ -1268,12 +1262,15 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testGetUserAssociation_ok() {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
- propResponse.value.int32Values.add(1); // 1 association
- propResponse.value.int32Values.add(KEY_FOB);
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0,
+ new int[]{
+ DEFAULT_REQUEST_ID,
+ // 1 association
+ 1,
+ KEY_FOB,
+ ASSOCIATED_CURRENT_USER
+ });
UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
propResponse);
@@ -1281,8 +1278,8 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
assertThat(response.requestId).isEqualTo(DEFAULT_REQUEST_ID);
assertThat(response.numberAssociation).isEqualTo(1);
- assertThat(response.associations).hasSize(1);
- UserIdentificationAssociation actualAssociation = response.associations.get(0);
+ assertThat(response.associations.length).isEqualTo(1);
+ UserIdentificationAssociation actualAssociation = response.associations[0];
assertThat(actualAssociation.type).isEqualTo(KEY_FOB);
assertThat(actualAssociation.value).isEqualTo(ASSOCIATED_CURRENT_USER);
}
@@ -1294,12 +1291,12 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
assertThrows(IllegalStateException.class,
() -> myHalService.setUserAssociation(HAL_TIMEOUT_MS,
- new UserIdentificationSetRequest(), noOpCallback()));
+ UserHalHelper.emptyUserIdentificationSetRequest(), noOpCallback()));
}
@Test
public void testSetUserAssociation_invalidTimeout() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
assertThrows(IllegalArgumentException.class, () ->
mUserHalService.setUserAssociation(0, request, noOpCallback()));
assertThrows(IllegalArgumentException.class, () ->
@@ -1314,20 +1311,19 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSetUserAssociation_nullCallback() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
assertThrows(NullPointerException.class, () ->
mUserHalService.setUserAssociation(HAL_TIMEOUT_MS, request, null));
}
@Test
public void testSetUserAssociation_requestWithDuplicatedTypes() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
request.numberAssociations = 2;
UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
association1.type = KEY_FOB;
association1.value = ASSOCIATE_CURRENT_USER;
- request.associations.add(association1);
- request.associations.add(association1);
+ request.associations = new UserIdentificationSetAssociation[]{association1, association1};
assertThrows(IllegalArgumentException.class, () ->
mUserHalService.setUserAssociation(HAL_TIMEOUT_MS, request, noOpCallback()));
@@ -1386,10 +1382,10 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSetUserAssociation_responseWithWrongRequestId() throws Exception {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID + 1);
- AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0, DEFAULT_REQUEST_ID + 1);
+
+ AtomicReference<HalPropValue> propRequest = replySetPropertyWithOnChangeEvent(
USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
@@ -1407,14 +1403,11 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSetUserAssociation_notEnoughValuesOnResponse() throws Exception {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
// need at least 4: requestId, number associations, type1, value1
- propResponse.value.int32Values.add(1);
- propResponse.value.int32Values.add(2);
- propResponse.value.int32Values.add(3);
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0, new int[]{1, 2, 3});
- AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+ AtomicReference<HalPropValue> propRequest = replySetPropertyWithOnChangeEvent(
USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
@@ -1432,16 +1425,18 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSetUserAssociation_wrongNumberOfAssociationsOnResponse() throws Exception {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
- propResponse.value.int32Values.add(2); // 2 associations; request is just 1
- propResponse.value.int32Values.add(KEY_FOB);
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
- propResponse.value.int32Values.add(CUSTOM_1);
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
-
- AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0, new int[]{
+ DEFAULT_REQUEST_ID,
+ // 2 associations; request is just 1
+ 2,
+ KEY_FOB,
+ ASSOCIATED_CURRENT_USER,
+ CUSTOM_1,
+ ASSOCIATED_CURRENT_USER
+ });
+
+ AtomicReference<HalPropValue> propRequest = replySetPropertyWithOnChangeEvent(
USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
@@ -1459,14 +1454,17 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSetUserAssociation_typeMismatchOnResponse() throws Exception {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
- propResponse.value.int32Values.add(1); // 1 association
- propResponse.value.int32Values.add(CUSTOM_1); // request is KEY_FOB
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
-
- AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0, new int[]{
+ DEFAULT_REQUEST_ID,
+ // 1 association
+ 1,
+ // request is KEY_FOB
+ CUSTOM_1,
+ ASSOCIATED_CURRENT_USER
+ });
+
+ AtomicReference<HalPropValue> propRequest = replySetPropertyWithOnChangeEvent(
USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
@@ -1484,14 +1482,16 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
@Test
public void testSetUserAssociation_ok() throws Exception {
- VehiclePropValue propResponse = new VehiclePropValue();
- propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
- propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
- propResponse.value.int32Values.add(1); // 1 association
- propResponse.value.int32Values.add(KEY_FOB);
- propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
-
- AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+ HalPropValue propResponse = mPropValueBuilder.build(USER_IDENTIFICATION_ASSOCIATION,
+ /* areaId= */ 0, new int[]{
+ DEFAULT_REQUEST_ID,
+ // 1 association
+ 1,
+ KEY_FOB,
+ ASSOCIATED_CURRENT_USER
+ });
+
+ AtomicReference<HalPropValue> propRequest = replySetPropertyWithOnChangeEvent(
USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
@@ -1509,24 +1509,24 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
assertThat(actualResponse.requestId).isEqualTo(DEFAULT_REQUEST_ID);
assertThat(actualResponse.numberAssociation).isEqualTo(1);
- assertThat(actualResponse.associations).hasSize(1);
- UserIdentificationAssociation actualAssociation = actualResponse.associations.get(0);
+ assertThat(actualResponse.associations.length).isEqualTo(1);
+ UserIdentificationAssociation actualAssociation = actualResponse.associations[0];
assertThat(actualAssociation.type).isEqualTo(KEY_FOB);
assertThat(actualAssociation.value).isEqualTo(ASSOCIATED_CURRENT_USER);
}
/**
- * Asserts the given {@link UsersInfo} is properly represented in the {@link VehiclePropValue}.
+ * Asserts the given {@link UsersInfo} is properly represented in the {@link HalPropValue}.
*
* @param value property containing the info
* @param info info to be checked
* @param initialIndex first index of the info values in the property's {@code int32Values}
*/
- private void assertUsersInfo(VehiclePropValue value, UsersInfo info, int initialIndex) {
+ private void assertUsersInfo(HalPropValue value, UsersInfo info, int initialIndex) {
// TODO: consider using UserHalHelper to convert the property into a specific request,
// and compare the request's UsersInfo.
// But such method is not needed in production code yet.
- ArrayList<Integer> values = value.value.int32Values;
+ List<Integer> values = getIntValues(value);
assertWithMessage("wrong values size").that(values)
.hasSize(initialIndex + 3 + info.numberUsers * 2);
@@ -1544,7 +1544,7 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
for (int j = 0; j < info.numberUsers; j++) {
int actualUserId = values.get(i++);
int actualUserFlags = values.get(i++);
- UserInfo expectedUser = info.existingUsers.get(j);
+ UserInfo expectedUser = info.existingUsers[j];
assertWithMessage("wrong id for existing user#%s at index %s", j, i)
.that(actualUserId).isEqualTo(expectedUser.userId);
assertWithMessage("wrong flags for existing user#%s at index %s", j, i)
@@ -1562,20 +1562,33 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
*
* @return reference to the value passed to {@code set()}.
*/
- private AtomicReference<VehiclePropValue> replySetPropertyWithOnChangeEvent(int prop,
- VehiclePropValue response, boolean rightRequestId) throws Exception {
- AtomicReference<VehiclePropValue> ref = new AtomicReference<>();
+ private AtomicReference<HalPropValue> replySetPropertyWithOnChangeEvent(int prop,
+ HalPropValue response, boolean rightRequestId) throws Exception {
+ AtomicReference<HalPropValue> ref = new AtomicReference<>();
doAnswer((inv) -> {
- VehiclePropValue request = inv.getArgument(0);
+ HalPropValue request = inv.getArgument(0);
ref.set(request);
- int requestId = request.value.int32Values.get(0);
+ int requestId = request.getInt32Value(0);
int responseId = rightRequestId ? requestId : requestId + 1000;
- response.value.int32Values.set(0, responseId);
- Log.d(TAG, "replySetPropertyWithOnChangeEvent(): resp=" + response + " for req="
+
+ int[] intValues = new int[response.getInt32ValuesSize()];
+ for (int i = 0; i < response.getInt32ValuesSize(); i++) {
+ if (i == 0) {
+ intValues[i] = responseId;
+ continue;
+ }
+ intValues[i] = response.getInt32Value(i);
+ }
+ HalPropValue responseCopy = mPropValueBuilder.build(response.getPropId(),
+ response.getAreaId(), response.getTimestamp(), response.getStatus(), intValues,
+ /*floatValues=*/new float[0], /*int64Values=*/new long[0],
+ response.getStringValue(), /*byteValues=*/new byte[0]);
+
+ Log.d(TAG, "replySetPropertyWithOnChangeEvent(): resp=" + responseCopy + " for req="
+ request);
- mUserHalService.onHalEventsDeprecated(Arrays.asList(response));
+ mUserHalService.onHalEvents(Arrays.asList(responseCopy));
return null;
- }).when(mVehicleHal).setDeprecated(isProperty(prop));
+ }).when(mVehicleHal).set(isProperty(prop));
return ref;
}
@@ -1585,13 +1598,13 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
private void replySetPropertyWithTimeoutException(int prop) throws Exception {
doThrow(new ServiceSpecificException(VehicleHalStatusCode.STATUS_TRY_AGAIN,
"PropId: 0x" + Integer.toHexString(prop))).when(mVehicleHal)
- .setDeprecated(isProperty(prop));
+ .set(isProperty(prop));
}
@NonNull
private SwitchUserRequest createUserSwitchRequest(@NonNull UserInfo targetUser,
@NonNull UsersInfo usersInfo) {
- SwitchUserRequest request = new SwitchUserRequest();
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.targetUser = targetUser;
request.usersInfo = usersInfo;
return request;
@@ -1601,16 +1614,17 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
* Creates and set expectations for a valid request.
*/
private UserIdentificationGetRequest replyToValidGetUserIdentificationRequest(
- @NonNull VehiclePropValue response) {
+ @NonNull HalPropValue response) {
mockNextRequestId(DEFAULT_REQUEST_ID);
UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+ request.userInfo = new UserInfo();
request.userInfo.userId = DEFAULT_USER_ID;
request.userInfo.flags = DEFAULT_USER_FLAGS;
request.numberAssociationTypes = 1;
- request.associationTypes.add(KEY_FOB);
+ request.associationTypes = new int[]{KEY_FOB};
- when(mVehicleHal.getDeprecated(isPropertyWithValues(USER_IDENTIFICATION_ASSOCIATION,
+ when(mVehicleHal.get(isPropertyWithValues(USER_IDENTIFICATION_ASSOCIATION,
DEFAULT_REQUEST_ID, DEFAULT_USER_ID, DEFAULT_USER_FLAGS,
/* numberAssociations= */ 1, KEY_FOB)))
.thenReturn(response);
@@ -1623,12 +1637,13 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
mockNextRequestId(DEFAULT_REQUEST_ID);
UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+ request.userInfo = new UserInfo();
request.userInfo.userId = DEFAULT_USER_ID;
request.userInfo.flags = DEFAULT_USER_FLAGS;
request.numberAssociationTypes = 1;
- request.associationTypes.add(KEY_FOB);
+ request.associationTypes = new int[]{KEY_FOB};
- when(mVehicleHal.getDeprecated(isPropertyWithValues(USER_IDENTIFICATION_ASSOCIATION,
+ when(mVehicleHal.get(isPropertyWithValues(USER_IDENTIFICATION_ASSOCIATION,
DEFAULT_REQUEST_ID, DEFAULT_USER_ID, DEFAULT_USER_FLAGS,
/* numberAssociations= */ 1, KEY_FOB))).thenThrow(e);
@@ -1647,14 +1662,14 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
* Creates a valid request that can be used in test cases where its content is not asserted.
*/
private UserIdentificationSetRequest validUserIdentificationSetRequest() {
- UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+ UserIdentificationSetRequest request = UserHalHelper.emptyUserIdentificationSetRequest();
request.userInfo.userId = DEFAULT_USER_ID;
request.userInfo.flags = DEFAULT_USER_FLAGS;
request.numberAssociations = 1;
UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
association1.type = KEY_FOB;
association1.value = ASSOCIATE_CURRENT_USER;
- request.associations.add(association1);
+ request.associations = new UserIdentificationSetAssociation[]{association1};
return request;
}
@@ -1674,42 +1689,42 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
doReturn(value).when(() -> CarSystemProperties.getUserHalEnabled());
}
- private void assertInitialUserInfoSetRequest(VehiclePropValue req, int requestType) {
- assertThat(req.value.int32Values.get(1)).isEqualTo(requestType);
+ private void assertInitialUserInfoSetRequest(HalPropValue req, int requestType) {
+ assertThat(req.getInt32Value(1)).isEqualTo(requestType);
assertUsersInfo(req, mUsersInfo, 2);
}
- private void assertHalSetSwitchUserRequest(VehiclePropValue req, int messageType,
+ private void assertHalSetSwitchUserRequest(HalPropValue req, int messageType,
UserInfo targetUserInfo) {
- assertThat(req.prop).isEqualTo(SWITCH_USER);
- assertWithMessage("wrong request Id on %s", req).that(req.value.int32Values.get(0))
+ assertThat(req.getPropId()).isEqualTo(SWITCH_USER);
+ assertWithMessage("wrong request Id on %s", req).that(req.getInt32Value(0))
.isAtLeast(1);
- assertThat(req.value.int32Values.get(1)).isEqualTo(messageType);
- assertWithMessage("targetuser.id mismatch on %s", req).that(req.value.int32Values.get(2))
+ assertThat(req.getInt32Value(1)).isEqualTo(messageType);
+ assertWithMessage("targetuser.id mismatch on %s", req).that(req.getInt32Value(2))
.isEqualTo(targetUserInfo.userId);
- assertWithMessage("targetuser.flags mismatch on %s", req).that(req.value.int32Values.get(3))
+ assertWithMessage("targetuser.flags mismatch on %s", req).that(req.getInt32Value(3))
.isEqualTo(targetUserInfo.flags);
assertUsersInfo(req, mUsersInfo, 4);
}
- private void assertHalSetRemoveUserRequest(VehiclePropValue req, UserInfo userInfo) {
- assertThat(req.prop).isEqualTo(REMOVE_USER);
- assertWithMessage("wrong request Id on %s", req).that(req.value.int32Values.get(0))
+ private void assertHalSetRemoveUserRequest(HalPropValue req, UserInfo userInfo) {
+ assertThat(req.getPropId()).isEqualTo(REMOVE_USER);
+ assertWithMessage("wrong request Id on %s", req).that(req.getInt32Value(0))
.isAtLeast(1);
- assertWithMessage("user.id mismatch on %s", req).that(req.value.int32Values.get(1))
+ assertWithMessage("user.id mismatch on %s", req).that(req.getInt32Value(1))
.isEqualTo(userInfo.userId);
- assertWithMessage("user.flags mismatch on %s", req).that(req.value.int32Values.get(2))
+ assertWithMessage("user.flags mismatch on %s", req).that(req.getInt32Value(2))
.isEqualTo(userInfo.flags);
assertUsersInfo(req, mUsersInfo, 3);
}
- private void assertHalSetCreateUserRequest(VehiclePropValue prop, CreateUserRequest request) {
- assertThat(prop.prop).isEqualTo(CREATE_USER);
- assertWithMessage("wrong request Id on %s", prop).that(prop.value.int32Values.get(0))
+ private void assertHalSetCreateUserRequest(HalPropValue prop, CreateUserRequest request) {
+ assertThat(prop.getPropId()).isEqualTo(CREATE_USER);
+ assertWithMessage("wrong request Id on %s", prop).that(prop.getInt32Value(0))
.isEqualTo(request.requestId);
- assertWithMessage("newUser.userId mismatch on %s", prop).that(prop.value.int32Values.get(1))
+ assertWithMessage("newUser.userId mismatch on %s", prop).that(prop.getInt32Value(1))
.isEqualTo(request.newUserInfo.userId);
- assertWithMessage("newUser.flags mismatch on %s", prop).that(prop.value.int32Values.get(2))
+ assertWithMessage("newUser.flags mismatch on %s", prop).that(prop.getInt32Value(2))
.isEqualTo(request.newUserInfo.flags);
assertUsersInfo(prop, request.usersInfo, 3);
}
@@ -1725,30 +1740,78 @@ public final class UserHalServiceTest extends AbstractExtendedMockitoTestCase {
/**
* Verifies {@code hal.get()} was called with the values used on
- * {@link #replyToValidGetUserIdentificationRequest(VehiclePropValue)}.
+ * {@link #replyToValidGetUserIdentificationRequest(HalPropValue)}.
*/
private void verifyValidGetUserIdentificationRequestMade() {
- verify(mVehicleHal).getDeprecated(isPropertyWithValues(USER_IDENTIFICATION_ASSOCIATION,
+ verify(mVehicleHal).get(isPropertyWithValues(USER_IDENTIFICATION_ASSOCIATION,
DEFAULT_REQUEST_ID, DEFAULT_USER_ID, DEFAULT_USER_FLAGS,
/* numberAssociations= */ 1, KEY_FOB));
}
/**
* Verifies {@code hal.set()} was called with the values used on
- * {@link #replyToValidSetUserIdentificationRequest(VehiclePropValue)}.
+ * {@link #replyToValidSetUserIdentificationRequest(HalPropValue)}.
*/
- private void verifyValidSetUserIdentificationRequestMade(@NonNull VehiclePropValue request) {
- assertThat(request.prop).isEqualTo(USER_IDENTIFICATION_ASSOCIATION);
- assertThat(request.value.int32Values).containsExactly(DEFAULT_REQUEST_ID, DEFAULT_USER_ID,
+ private void verifyValidSetUserIdentificationRequestMade(@NonNull HalPropValue request) {
+ assertThat(request.getPropId()).isEqualTo(USER_IDENTIFICATION_ASSOCIATION);
+
+ assertThat(getIntValues(request)).containsExactly(DEFAULT_REQUEST_ID, DEFAULT_USER_ID,
DEFAULT_USER_FLAGS,
/* numberAssociations= */ 1, KEY_FOB, ASSOCIATE_CURRENT_USER);
}
+ private HalPropValue createPropRequest(int propId, int requestId) {
+ return createPropRequest(propId, requestId, null, new int[0], new String());
+ }
+
+ private HalPropValue createPropRequest(int propId, int requestId, int[] intValues) {
+ return createPropRequest(propId, requestId, null, intValues, new String());
+ }
+
+ private HalPropValue createPropRequest(int propId, int requestId, int requestType) {
+ return createPropRequest(propId, requestId, requestType, new int[0], new String());
+ }
+
+ private HalPropValue createPropRequest(int propId, int requestId, int requestType,
+ int[] intValues) {
+ return createPropRequest(propId, requestId, requestType, intValues, new String());
+ }
+
+ private HalPropValue createPropRequest(int propId, int requestId, Integer requestType,
+ int[] intValues, String stringValue) {
+ int intLength = intValues.length + 1;
+ if (requestType != null) {
+ intLength += 1;
+ }
+ int[] values = new int[intLength];
+ values[0] = requestId;
+ int start = 1;
+
+ if (requestType != null) {
+ values[1] = requestType;
+ start = 2;
+ }
+ for (int i = 0; i < intValues.length; i++) {
+ values[i + start] = intValues[i];
+ }
+ return mPropValueBuilder.build(propId, /* areaId= */ 0,
+ SystemClock.elapsedRealtime(), /* status= */ 0, values,
+ new float[0], new long[0], stringValue, new byte[0]);
+ }
+
private static <T> HalCallback<T> noOpCallback() {
return (i, r) -> { };
}
- private final class GenericHalCallback<R> implements HalCallback<R> {
+ private static List<Integer> getIntValues(HalPropValue value) {
+ ArrayList<Integer> values = new ArrayList<Integer>();
+ for (int i = 0; i < value.getInt32ValuesSize(); i++) {
+ values.add(value.getInt32Value(i));
+ }
+ return values;
+ }
+
+ private static final class GenericHalCallback<R> implements HalCallback<R> {
private final CountDownLatch mLatch = new CountDownLatch(1);
private final int mTimeout;
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/VehicleHalTestingHelper.java b/tests/carservice_unit_test/src/com/android/car/hal/VehicleHalTestingHelper.java
new file mode 100644
index 0000000000..b42bc9bcd9
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/hal/VehicleHalTestingHelper.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.car.hal;
+
+import android.hardware.automotive.vehicle.VehiclePropConfig;
+import android.hardware.automotive.vehicle.VehiclePropertyAccess;
+import android.hardware.automotive.vehicle.VehiclePropertyChangeMode;
+
+/**
+ * Provides utilities for Vehicle HAL related tasks.
+ */
+public final class VehicleHalTestingHelper {
+
+ /**
+ * Creates an empty config for the given property.
+ *
+ * @deprecated TODO(b/205774940): Remove once we migrate all the usages to {@code newConfig}.
+ */
+ @Deprecated
+ public static android.hardware.automotive.vehicle.V2_0.VehiclePropConfig newConfigDeprecated(
+ int prop) {
+ android.hardware.automotive.vehicle.V2_0.VehiclePropConfig config =
+ new android.hardware.automotive.vehicle.V2_0.VehiclePropConfig();
+ config.prop = prop;
+ return config;
+ }
+
+ /**
+ * Creates an empty config for the given property.
+ */
+ public static HalPropConfig newConfig(int prop) {
+ VehiclePropConfig config = new VehiclePropConfig();
+ config.prop = prop;
+ config.configString = new String();
+ config.configArray = new int[0];
+ return new AidlHalPropConfig(config);
+ }
+
+ /**
+ * Creates a config for the given property that passes the
+ * {@link com.android.car.hal.VehicleHal.VehicleHal#isPropertySubscribableDeprecated(VehiclePropConfig)}
+ * criteria.
+ *
+ * @deprecated TODO(b/205774940): Remove once we migrate all the usages to
+ * {@code newSubscribableConfig}.
+ */
+ @Deprecated
+ public static android.hardware.automotive.vehicle.V2_0.VehiclePropConfig
+ newSubscribableConfigDeprecated(int prop) {
+ android.hardware.automotive.vehicle.V2_0.VehiclePropConfig config =
+ newConfigDeprecated(prop);
+ config.access = VehiclePropertyAccess.READ_WRITE;
+ config.changeMode = VehiclePropertyChangeMode.ON_CHANGE;
+ return config;
+ }
+
+ /**
+ * Creates a config for the given property that passes the
+ * {@link com.android.car.hal.VehicleHal.VehicleHal#isPropertySubscribable(VehiclePropConfig)}
+ * criteria.
+ */
+ public static HalPropConfig newSubscribableConfig(int prop) {
+ VehiclePropConfig config = new VehiclePropConfig();
+ config.prop = prop;
+ config.configString = new String();
+ config.configArray = new int[0];
+ config.access = VehiclePropertyAccess.READ_WRITE;
+ config.changeMode = VehiclePropertyChangeMode.ON_CHANGE;
+ return new AidlHalPropConfig(config);
+ }
+
+ private VehicleHalTestingHelper() {
+ throw new UnsupportedOperationException("contains only static methods");
+ }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/user/BaseCarUserServiceTestCase.java b/tests/carservice_unit_test/src/com/android/car/user/BaseCarUserServiceTestCase.java
index b52c16c7ed..4c6ed4b677 100644
--- a/tests/carservice_unit_test/src/com/android/car/user/BaseCarUserServiceTestCase.java
+++ b/tests/carservice_unit_test/src/com/android/car/user/BaseCarUserServiceTestCase.java
@@ -69,18 +69,17 @@ import android.content.pm.UserInfo;
import android.content.pm.UserInfo.UserInfoFlag;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
-import android.hardware.automotive.vehicle.V2_0.CreateUserRequest;
-import android.hardware.automotive.vehicle.V2_0.CreateUserResponse;
-import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponse;
-import android.hardware.automotive.vehicle.V2_0.RemoveUserRequest;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserRequest;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserResponse;
-import android.hardware.automotive.vehicle.V2_0.UserFlags;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociation;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
-import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
-import android.hardware.automotive.vehicle.V2_0.UsersInfo;
+import android.hardware.automotive.vehicle.CreateUserRequest;
+import android.hardware.automotive.vehicle.CreateUserResponse;
+import android.hardware.automotive.vehicle.InitialUserInfoResponse;
+import android.hardware.automotive.vehicle.RemoveUserRequest;
+import android.hardware.automotive.vehicle.SwitchUserRequest;
+import android.hardware.automotive.vehicle.SwitchUserResponse;
+import android.hardware.automotive.vehicle.UserIdentificationAssociation;
+import android.hardware.automotive.vehicle.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.UserIdentificationSetRequest;
+import android.hardware.automotive.vehicle.UsersInfo;
import android.location.LocationManager;
import android.os.Binder;
import android.os.Handler;
@@ -265,6 +264,15 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
mAnotherRegularUserId = mAnotherRegularUser.getIdentifier();
}
+ // The responses must never contain null values.
+ @Before
+ public void fillInDefaultValues() {
+ mGetUserInfoResponse.userToSwitchOrCreate =
+ new android.hardware.automotive.vehicle.UserInfo();
+ mGetUserInfoResponse.userLocales = new String();
+ mGetUserInfoResponse.userNameToCreate = new String();
+ }
+
protected ICarUxRestrictionsChangeListener initService() {
ArgumentCaptor<ICarUxRestrictionsChangeListener> listenerCaptor =
ArgumentCaptor.forClass(ICarUxRestrictionsChangeListener.class);
@@ -648,13 +656,13 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
protected BlockingAnswer<Void> mockHalSwitchLateResponse(@UserIdInt int currentUserId,
@NonNull UserHandle androidTargetUser, @Nullable SwitchUserResponse response) {
- android.hardware.automotive.vehicle.V2_0.UserInfo halTargetUser =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ android.hardware.automotive.vehicle.UserInfo halTargetUser =
+ new android.hardware.automotive.vehicle.UserInfo();
halTargetUser.userId = androidTargetUser.getIdentifier();
halTargetUser.flags = UserHalHelper.convertFlags(mMockedUserHandleHelper,
androidTargetUser);
UsersInfo usersInfo = newUsersInfo(currentUserId);
- SwitchUserRequest request = new SwitchUserRequest();
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.targetUser = halTargetUser;
request.usersInfo = usersInfo;
@@ -673,13 +681,13 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
protected void mockHalSwitch(@UserIdInt int currentUserId,
@HalCallback.HalCallbackStatus int callbackStatus,
@Nullable SwitchUserResponse response, @NonNull UserHandle androidTargetUser) {
- android.hardware.automotive.vehicle.V2_0.UserInfo halTargetUser =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
+ android.hardware.automotive.vehicle.UserInfo halTargetUser =
+ new android.hardware.automotive.vehicle.UserInfo();
halTargetUser.userId = androidTargetUser.getIdentifier();
halTargetUser.flags = UserHalHelper.convertFlags(mMockedUserHandleHelper,
androidTargetUser);
UsersInfo usersInfo = newUsersInfo(currentUserId);
- SwitchUserRequest request = new SwitchUserRequest();
+ SwitchUserRequest request = UserHalHelper.emptySwitchUserRequest();
request.targetUser = halTargetUser;
request.usersInfo = usersInfo;
@@ -701,11 +709,12 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
UserIdentificationResponse response = new UserIdentificationResponse();
response.numberAssociation = types.length;
response.errorMessage = errorMessage;
+ response.associations = new UserIdentificationAssociation[types.length];
for (int i = 0; i < types.length; i++) {
UserIdentificationAssociation association = new UserIdentificationAssociation();
association.type = types[i];
association.value = values[i];
- response.associations.add(association);
+ response.associations[i] = association;
}
when(mUserHal.getUserAssociation(isUserIdentificationGetRequest(user, types)))
@@ -720,11 +729,12 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
UserIdentificationResponse response = new UserIdentificationResponse();
response.numberAssociation = types.length;
response.errorMessage = errorMessage;
+ response.associations = new UserIdentificationAssociation[types.length];
for (int i = 0; i < types.length; i++) {
UserIdentificationAssociation association = new UserIdentificationAssociation();
association.type = types[i];
association.value = values[i];
- response.associations.add(association);
+ response.associations[i] = association;
}
doAnswer((invocation) -> {
@@ -819,11 +829,11 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
assertSameUser(actual.currentUser, currentUser);
assertThat(actual.numberUsers).isEqualTo(mExistingUsers.size());
for (int i = 0; i < actual.numberUsers; i++) {
- assertSameUser(actual.existingUsers.get(i), mExistingUsers.get(i));
+ assertSameUser(actual.existingUsers[i], mExistingUsers.get(i));
}
}
- protected void assertSameUser(android.hardware.automotive.vehicle.V2_0.UserInfo halUser,
+ protected void assertSameUser(android.hardware.automotive.vehicle.UserInfo halUser,
UserHandle androidUser) {
assertThat(halUser.userId).isEqualTo(androidUser.getIdentifier());
@@ -854,24 +864,26 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
@NonNull
protected UsersInfo newUsersInfo(@UserIdInt int currentUserId) {
- UsersInfo infos = new UsersInfo();
+ UsersInfo infos = UserHalHelper.emptyUsersInfo();
infos.numberUsers = mExistingUsers.size();
boolean foundCurrentUser = false;
+ infos.existingUsers = new android.hardware.automotive.vehicle.UserInfo[infos.numberUsers];
+ int i = 0;
for (UserHandle handle : mExistingUsers) {
- android.hardware.automotive.vehicle.V2_0.UserInfo existingUser =
- new android.hardware.automotive.vehicle.V2_0.UserInfo();
- int flags = UserFlags.NONE;
+ android.hardware.automotive.vehicle.UserInfo existingUser =
+ new android.hardware.automotive.vehicle.UserInfo();
+ int flags = 0;
if (handle.getIdentifier() == UserHandle.USER_SYSTEM) {
- flags |= UserFlags.SYSTEM;
+ flags |= android.hardware.automotive.vehicle.UserInfo.USER_FLAG_SYSTEM;
}
if (mMockedUserHandleHelper.isAdminUser(handle)) {
- flags |= UserFlags.ADMIN;
+ flags |= android.hardware.automotive.vehicle.UserInfo.USER_FLAG_ADMIN;
}
if (mMockedUserHandleHelper.isGuestUser(handle)) {
- flags |= UserFlags.GUEST;
+ flags |= android.hardware.automotive.vehicle.UserInfo.USER_FLAG_GUEST;
}
if (mMockedUserHandleHelper.isEphemeralUser(handle)) {
- flags |= UserFlags.EPHEMERAL;
+ flags |= android.hardware.automotive.vehicle.UserInfo.USER_FLAG_EPHEMERAL;
}
existingUser.userId = handle.getIdentifier();
existingUser.flags = flags;
@@ -880,7 +892,8 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
infos.currentUser.userId = handle.getIdentifier();
infos.currentUser.flags = flags;
}
- infos.existingUsers.add(existingUser);
+ infos.existingUsers[i] = existingUser;
+ i++;
}
Preconditions.checkArgument(foundCurrentUser,
"no user with id " + currentUserId + " on " + mExistingUsers);
@@ -1042,13 +1055,13 @@ abstract class BaseCarUserServiceTestCase extends AbstractExtendedMockitoTestCas
+ mTypes.length);
return false;
}
- if (argument.associationTypes.size() != mTypes.length) {
+ if (argument.associationTypes.length != mTypes.length) {
Log.w(TAG, "wrong associationTypes size on " + argument + "; expected "
+ mTypes.length);
return false;
}
for (int i = 0; i < mTypes.length; i++) {
- if (argument.associationTypes.get(i) != mTypes[i]) {
+ if (argument.associationTypes[i] != mTypes[i]) {
Log.w(TAG, "wrong association type on index " + i + " on " + argument
+ "; expected types: " + Arrays.toString(mTypes));
return false;
diff --git a/tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java b/tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java
index ef6c3529c7..230f863781 100644
--- a/tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java
@@ -57,13 +57,12 @@ import android.car.user.UserStopResult;
import android.car.user.UserSwitchResult;
import android.car.util.concurrent.AndroidFuture;
import android.content.Context;
-import android.hardware.automotive.vehicle.V2_0.CreateUserRequest;
-import android.hardware.automotive.vehicle.V2_0.CreateUserStatus;
-import android.hardware.automotive.vehicle.V2_0.InitialUserInfoRequestType;
-import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponseAction;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserResponse;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserStatus;
-import android.hardware.automotive.vehicle.V2_0.UserFlags;
+import android.hardware.automotive.vehicle.CreateUserRequest;
+import android.hardware.automotive.vehicle.CreateUserStatus;
+import android.hardware.automotive.vehicle.InitialUserInfoRequestType;
+import android.hardware.automotive.vehicle.InitialUserInfoResponseAction;
+import android.hardware.automotive.vehicle.SwitchUserResponse;
+import android.hardware.automotive.vehicle.SwitchUserStatus;
import android.os.Binder;
import android.os.NewUserResponse;
import android.os.Process;
@@ -1390,7 +1389,8 @@ public final class CarUserServiceTest extends BaseCarUserServiceTestCase {
Log.d(TAG, "createUser() request: " + request);
assertThat(request.newUserName).isEqualTo("dude");
assertThat(request.newUserInfo.userId).isEqualTo(userId);
- assertThat(request.newUserInfo.flags).isEqualTo(UserFlags.EPHEMERAL);
+ assertThat(request.newUserInfo.flags).isEqualTo(
+ android.hardware.automotive.vehicle.UserInfo.USER_FLAG_EPHEMERAL);
assertDefaultUsersInfo(request.usersInfo, mAdminUser);
UserCreationResult result = getUserCreationResult();
@@ -1423,7 +1423,8 @@ public final class CarUserServiceTest extends BaseCarUserServiceTestCase {
Log.d(TAG, "createUser() request: " + request);
assertThat(request.newUserName).isEqualTo("guest");
assertThat(request.newUserInfo.userId).isEqualTo(userId);
- assertThat(request.newUserInfo.flags).isEqualTo(UserFlags.GUEST);
+ assertThat(request.newUserInfo.flags).isEqualTo(
+ android.hardware.automotive.vehicle.UserInfo.USER_FLAG_GUEST);
assertDefaultUsersInfo(request.usersInfo, mAdminUser);
UserCreationResult result = getUserCreationResult();
@@ -1473,7 +1474,8 @@ public final class CarUserServiceTest extends BaseCarUserServiceTestCase {
Log.d(TAG, "createUser() request: " + request);
assertThat(request.newUserName).isEmpty();
assertThat(request.newUserInfo.userId).isEqualTo(userId);
- assertThat(request.newUserInfo.flags).isEqualTo(UserFlags.EPHEMERAL);
+ assertThat(request.newUserInfo.flags).isEqualTo(
+ android.hardware.automotive.vehicle.UserInfo.USER_FLAG_EPHEMERAL);
assertDefaultUsersInfo(request.usersInfo, mAdminUser);
UserCreationResult result = getUserCreationResult();
diff --git a/tests/carservice_unit_test/src/com/android/car/user/ExperimentalCarUserServiceTest.java b/tests/carservice_unit_test/src/com/android/car/user/ExperimentalCarUserServiceTest.java
index 41b71b7b96..3d1f48ce1e 100644
--- a/tests/carservice_unit_test/src/com/android/car/user/ExperimentalCarUserServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/user/ExperimentalCarUserServiceTest.java
@@ -43,8 +43,8 @@ import android.car.builtin.os.UserManagerHelper;
import android.car.user.UserCreationResult;
import android.car.user.UserSwitchResult;
import android.car.util.concurrent.AndroidFuture;
-import android.hardware.automotive.vehicle.V2_0.CreateUserStatus;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserStatus;
+import android.hardware.automotive.vehicle.CreateUserStatus;
+import android.hardware.automotive.vehicle.SwitchUserStatus;
import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;