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 com.android.car.user;
17 
18 import static com.google.common.truth.Truth.assertThat;
19 
20 import android.car.user.CarUserManager.UserLifecycleEvent;
21 import android.os.UserHandle;
22 
23 import org.junit.Test;
24 
25 public final class UserLifecycleEventTest {
26 
27     private static final int EVENT_TYPE = 42;
28     private static final int FROM_USER_ID = 10;
29     private static final int TO_USER_ID = 20;
30 
31     @Test
testFullConstructor()32     public void testFullConstructor() {
33         UserLifecycleEvent event = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
34 
35         assertThat(event.getEventType()).isEqualTo(EVENT_TYPE);
36         assertThat(event.getUserId()).isEqualTo(TO_USER_ID);
37         assertThat(event.getUserHandle().getIdentifier()).isEqualTo(TO_USER_ID);
38         assertThat(event.getPreviousUserId()).isEqualTo(FROM_USER_ID);
39         assertThat(event.getPreviousUserHandle().getIdentifier()).isEqualTo(FROM_USER_ID);
40     }
41 
42     @Test
testAlternativeConstructor()43     public void testAlternativeConstructor() {
44         UserLifecycleEvent event = new UserLifecycleEvent(EVENT_TYPE, TO_USER_ID);
45 
46         assertThat(event.getEventType()).isEqualTo(EVENT_TYPE);
47         assertThat(event.getUserId()).isEqualTo(TO_USER_ID);
48         assertThat(event.getUserHandle().getIdentifier()).isEqualTo(TO_USER_ID);
49         assertThat(event.getPreviousUserId()).isEqualTo(UserHandle.USER_NULL);
50         assertThat(event.getPreviousUserHandle()).isNull();
51     }
52 
53     @Test
testEquals_true()54     public void testEquals_true() {
55         UserLifecycleEvent event1 = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
56         UserLifecycleEvent event2 = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
57 
58         assertThat(event1.equals(event2)).isTrue();
59     }
60 
61     @Test
testEquals_differentEventType_false()62     public void testEquals_differentEventType_false() {
63         UserLifecycleEvent event1 = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
64         UserLifecycleEvent event2 = new UserLifecycleEvent(EVENT_TYPE + 1,
65                 FROM_USER_ID, TO_USER_ID);
66 
67         assertThat(event1.equals(event2)).isFalse();
68     }
69 
70     @Test
testEquals_differentFromUserId_false()71     public void testEquals_differentFromUserId_false() {
72         UserLifecycleEvent event1 = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
73         UserLifecycleEvent event2 = new UserLifecycleEvent(EVENT_TYPE,
74                 FROM_USER_ID + 1, TO_USER_ID);
75 
76         assertThat(event1.equals(event2)).isFalse();
77     }
78 
79     @Test
testEquals_differentToUserId_false()80     public void testEquals_differentToUserId_false() {
81         UserLifecycleEvent event1 = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
82         UserLifecycleEvent event2 = new UserLifecycleEvent(EVENT_TYPE,
83                 FROM_USER_ID, TO_USER_ID + 1);
84 
85         assertThat(event1.equals(event2)).isFalse();
86     }
87 
88     @Test
testEquals_null_false()89     public void testEquals_null_false() {
90         UserLifecycleEvent event1 = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
91 
92         assertThat(event1.equals(null)).isFalse();
93     }
94 
95     @Test
testHashCode()96     public void testHashCode() {
97         UserLifecycleEvent event1 = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
98         UserLifecycleEvent event2 = new UserLifecycleEvent(EVENT_TYPE, FROM_USER_ID, TO_USER_ID);
99 
100         assertThat(event1.hashCode()).isEqualTo(event2.hashCode());
101     }
102 }
103