1 /* 2 * Copyright (C) 2021 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 17 package com.android.managedprovisioning.manageduser; 18 19 import static android.app.admin.DevicePolicyManager.STATE_USER_PROFILE_FINALIZED; 20 21 import static org.mockito.Mockito.never; 22 import static org.mockito.Mockito.verify; 23 import static org.mockito.Mockito.when; 24 25 import android.app.admin.DevicePolicyManager; 26 import android.content.Context; 27 28 import com.android.managedprovisioning.finalization.UserProvisioningStateHelper; 29 30 import org.junit.Before; 31 import org.junit.Test; 32 import org.mockito.Mock; 33 import org.mockito.MockitoAnnotations; 34 35 public class ManagedUserRemovalUtilsTest { 36 37 @Mock 38 private Context mContext; 39 40 @Mock 41 private DevicePolicyManager mDevicePolicyManager; 42 43 @Mock 44 private UserProvisioningStateHelper mUserProvisioningStateHelper; 45 46 private final ManagedUserRemovalUtils mManagedUserRemovalUtils = 47 new ManagedUserRemovalUtils(); 48 49 @Before setUp()50 public void setUp() { 51 MockitoAnnotations.initMocks(this); 52 when(mContext.getSystemServiceName(DevicePolicyManager.class)) 53 .thenReturn(Context.DEVICE_POLICY_SERVICE); 54 when(mContext.getSystemService(DevicePolicyManager.class)) 55 .thenReturn(mDevicePolicyManager); 56 } 57 58 @Test resetPrimaryUserProvisioningStateIfNecessary_stateUserUnmanaged_userProvisioningStateIntact()59 public void resetPrimaryUserProvisioningStateIfNecessary_stateUserUnmanaged_userProvisioningStateIntact() { 60 mManagedUserRemovalUtils.resetPrimaryUserProvisioningStateIfNecessary( 61 mContext, mUserProvisioningStateHelper); 62 63 verify(mUserProvisioningStateHelper, never()).resetPrimaryUserProvisioningState(); 64 } 65 66 @Test resetPrimaryUserProvisioningStateIfNecessary_stateUserProfileFinalized_userProvisioningStateResets()67 public void resetPrimaryUserProvisioningStateIfNecessary_stateUserProfileFinalized_userProvisioningStateResets() { 68 setUserProvisioningStateFinalized(); 69 70 mManagedUserRemovalUtils.resetPrimaryUserProvisioningStateIfNecessary( 71 mContext, mUserProvisioningStateHelper); 72 73 verify(mUserProvisioningStateHelper).resetPrimaryUserProvisioningState(); 74 } 75 setUserProvisioningStateFinalized()76 private void setUserProvisioningStateFinalized() { 77 when(mDevicePolicyManager.getUserProvisioningState()) 78 .thenReturn(STATE_USER_PROFILE_FINALIZED); 79 } 80 } 81