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.systemui.telephony;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 
21 import android.telephony.TelephonyCallback.ActiveDataSubscriptionIdListener;
22 import android.telephony.TelephonyCallback.CallStateListener;
23 import android.telephony.TelephonyCallback.ServiceStateListener;
24 
25 import androidx.test.filters.SmallTest;
26 import androidx.test.runner.AndroidJUnit4;
27 
28 import com.android.systemui.SysuiTestCase;
29 
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32 
33 @SmallTest
34 @RunWith(AndroidJUnit4.class)
35 public class TelephonyCallbackTest extends SysuiTestCase {
36 
37     private TelephonyCallback mTelephonyCallback = new TelephonyCallback();
38 
39     @Test
testAddListener_ActiveDataSubscriptionIdListener()40     public void testAddListener_ActiveDataSubscriptionIdListener() {
41         assertThat(mTelephonyCallback.hasAnyListeners()).isFalse();
42         mTelephonyCallback.addActiveDataSubscriptionIdListener(subId -> {});
43         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
44         mTelephonyCallback.addActiveDataSubscriptionIdListener(subId -> {});
45         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
46     }
47 
48     @Test
testAddListener_CallStateListener()49     public void testAddListener_CallStateListener() {
50         assertThat(mTelephonyCallback.hasAnyListeners()).isFalse();
51         mTelephonyCallback.addCallStateListener(state -> {});
52         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
53         mTelephonyCallback.addCallStateListener(state -> {});
54         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
55     }
56 
57     @Test
testAddListener_ServiceStateListener()58     public void testAddListener_ServiceStateListener() {
59         assertThat(mTelephonyCallback.hasAnyListeners()).isFalse();
60         mTelephonyCallback.addServiceStateListener(serviceState -> {});
61         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
62         mTelephonyCallback.addServiceStateListener(serviceState -> {});
63         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
64     }
65 
66     @Test
testRemoveListener_ActiveDataSubscriptionIdListener()67     public void testRemoveListener_ActiveDataSubscriptionIdListener() {
68         ActiveDataSubscriptionIdListener listener = subId -> {};
69         mTelephonyCallback.addActiveDataSubscriptionIdListener(listener);
70         mTelephonyCallback.addActiveDataSubscriptionIdListener(listener);
71         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
72         mTelephonyCallback.removeActiveDataSubscriptionIdListener(listener);
73         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
74         mTelephonyCallback.removeActiveDataSubscriptionIdListener(listener);
75         assertThat(mTelephonyCallback.hasAnyListeners()).isFalse();
76     }
77 
78     @Test
testRemoveListener_CallStateListener()79     public void testRemoveListener_CallStateListener() {
80         CallStateListener listener = state -> {};
81         mTelephonyCallback.addCallStateListener(listener);
82         mTelephonyCallback.addCallStateListener(listener);
83         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
84         mTelephonyCallback.removeCallStateListener(listener);
85         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
86         mTelephonyCallback.removeCallStateListener(listener);
87         assertThat(mTelephonyCallback.hasAnyListeners()).isFalse();
88     }
89 
90     @Test
testRemoveListener_ServiceStateListener()91     public void testRemoveListener_ServiceStateListener() {
92         ServiceStateListener listener = serviceState -> {};
93         mTelephonyCallback.addServiceStateListener(listener);
94         mTelephonyCallback.addServiceStateListener(listener);
95         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
96         mTelephonyCallback.removeServiceStateListener(listener);
97         assertThat(mTelephonyCallback.hasAnyListeners()).isTrue();
98         mTelephonyCallback.removeServiceStateListener(listener);
99         assertThat(mTelephonyCallback.hasAnyListeners()).isFalse();
100     }
101 }
102