1 /* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package android.car.admin; 17 18 import static android.car.test.util.UserTestingHelper.UserInfoBuilder; 19 20 import static com.google.common.truth.Truth.assertThat; 21 22 import android.car.user.UserCreationResult; 23 import android.content.pm.UserInfo; 24 import android.os.UserHandle; 25 26 import org.junit.Test; 27 28 public final class CreateUserResultTest { 29 30 @Test testNullConstructor()31 public void testNullConstructor() { 32 CreateUserResult result = new CreateUserResult(null); 33 assertThat(result.isSuccess()).isFalse(); 34 assertThat(result.getStatus()).isEqualTo(RemoveUserResult.STATUS_FAILURE_GENERIC); 35 assertThat(result.getUserHandle()).isNull(); 36 } 37 38 @Test testSuccess()39 public void testSuccess() { 40 UserInfo user = new UserInfoBuilder(100).build(); 41 42 CreateUserResult result = new CreateUserResult( 43 new UserCreationResult(UserCreationResult.STATUS_SUCCESSFUL, user.getUserHandle())); 44 45 assertThat(result.isSuccess()).isTrue(); 46 assertThat(result.getStatus()).isEqualTo(RemoveUserResult.STATUS_SUCCESS); 47 assertThat(result.getUserHandle().getIdentifier()).isEqualTo(100); 48 } 49 50 @Test testFailure_nullUserInfo()51 public void testFailure_nullUserInfo() { 52 CreateUserResult result = new CreateUserResult( 53 new UserCreationResult(UserCreationResult.STATUS_SUCCESSFUL)); 54 55 assertThat(result.isSuccess()).isFalse(); 56 assertThat(result.getStatus()).isEqualTo(RemoveUserResult.STATUS_FAILURE_GENERIC); 57 assertThat(result.getUserHandle()).isNull(); 58 } 59 60 @Test testFailure_nullUserHandle()61 public void testFailure_nullUserHandle() { 62 @SuppressWarnings("deprecation") 63 UserInfo user = new UserInfo() { 64 @Override 65 public UserHandle getUserHandle() { 66 return null; 67 } 68 }; 69 CreateUserResult result = new CreateUserResult( 70 new UserCreationResult(UserCreationResult.STATUS_SUCCESSFUL, user.getUserHandle())); 71 72 assertThat(result.isSuccess()).isFalse(); 73 assertThat(result.getStatus()).isEqualTo(RemoveUserResult.STATUS_FAILURE_GENERIC); 74 assertThat(result.getUserHandle()).isNull(); 75 } 76 77 @Test testFailure()78 public void testFailure() { 79 failureTest(UserCreationResult.STATUS_SUCCESSFUL, CreateUserResult.STATUS_FAILURE_GENERIC); 80 failureTest(UserCreationResult.STATUS_ANDROID_FAILURE, 81 CreateUserResult.STATUS_FAILURE_GENERIC); 82 failureTest(UserCreationResult.STATUS_HAL_INTERNAL_FAILURE, 83 CreateUserResult.STATUS_FAILURE_GENERIC); 84 failureTest(UserCreationResult.STATUS_INVALID_REQUEST, 85 CreateUserResult.STATUS_FAILURE_INVALID_ARGUMENTS); 86 } 87 failureTest(int userCreationStatus, int removeUserStatus)88 private void failureTest(int userCreationStatus, int removeUserStatus) { 89 CreateUserResult result = new CreateUserResult(new UserCreationResult(userCreationStatus)); 90 assertThat(result.isSuccess()).isFalse(); 91 assertThat(result.getStatus()).isEqualTo(removeUserStatus); 92 assertThat(result.getUserHandle()).isNull(); 93 } 94 } 95