• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.server.location;
2 
3 import static com.google.common.truth.Truth.assertThat;
4 
5 import static org.mockito.ArgumentMatchers.anyBoolean;
6 import static org.mockito.Mockito.times;
7 import static org.mockito.Mockito.verify;
8 import static org.mockito.Mockito.when;
9 
10 import android.os.Handler;
11 import android.os.Looper;
12 import android.platform.test.annotations.Presubmit;
13 
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.junit.runner.RunWith;
17 import org.mockito.Mock;
18 import org.mockito.MockitoAnnotations;
19 import org.robolectric.RobolectricTestRunner;
20 import org.robolectric.RuntimeEnvironment;
21 
22 /**
23  * Unit tests for {@link GnssMeasurementsProvider}.
24  */
25 @RunWith(RobolectricTestRunner.class)
26 @Presubmit
27 public class GnssMeasurementsProviderTest {
28     @Mock
29     private GnssMeasurementsProvider.GnssMeasurementProviderNative mMockNative;
30     private GnssMeasurementsProvider mTestProvider;
31 
32     @Before
setUp()33     public void setUp() {
34         MockitoAnnotations.initMocks(this);
35         when(mMockNative.startMeasurementCollection(anyBoolean())).thenReturn(true);
36         when(mMockNative.stopMeasurementCollection()).thenReturn(true);
37 
38         mTestProvider = new GnssMeasurementsProvider(RuntimeEnvironment.application,
39                 new Handler(Looper.myLooper()), mMockNative) {
40             @Override
41             public boolean isGpsEnabled() {
42                 return true;
43             }
44         };
45     }
46 
47     @Test
register_nativeStarted()48     public void register_nativeStarted() {
49         mTestProvider.registerWithService();
50         verify(mMockNative).startMeasurementCollection(anyBoolean());
51     }
52 
53     @Test
unregister_nativeStopped()54     public void unregister_nativeStopped() {
55         mTestProvider.registerWithService();
56         mTestProvider.unregisterFromService();
57         verify(mMockNative).stopMeasurementCollection();
58     }
59 
60     @Test
isSupported_nativeIsSupported()61     public void isSupported_nativeIsSupported() {
62         when(mMockNative.isMeasurementSupported()).thenReturn(true);
63         assertThat(mTestProvider.isAvailableInPlatform()).isTrue();
64 
65         when(mMockNative.isMeasurementSupported()).thenReturn(false);
66         assertThat(mTestProvider.isAvailableInPlatform()).isFalse();
67     }
68 
69     @Test
register_resume_started()70     public void register_resume_started() {
71         mTestProvider.registerWithService();
72         mTestProvider.resumeIfStarted();
73         verify(mMockNative, times(2)).startMeasurementCollection(anyBoolean());
74     }
75 
76     @Test
unregister_resume_notStarted()77     public void unregister_resume_notStarted() {
78         mTestProvider.registerWithService();
79         mTestProvider.unregisterFromService();
80         mTestProvider.resumeIfStarted();
81         verify(mMockNative, times(1)).startMeasurementCollection(anyBoolean());
82     }
83 }
84