diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubService.java b/services/core/java/com/android/server/location/contexthub/ContextHubService.java index 25fd5eaed5a44..94f12dd7ff011 100644 --- a/services/core/java/com/android/server/location/contexthub/ContextHubService.java +++ b/services/core/java/com/android/server/location/contexthub/ContextHubService.java @@ -1207,7 +1207,7 @@ public class ContextHubService extends IContextHubService.Stub { pw.println(""); pw.println("=================== NANOAPPS ===================="); // Dump nanoAppHash - mNanoAppStateManager.foreachNanoAppInstanceInfo((info) -> pw.println(info)); + mNanoAppStateManager.foreachNanoAppInstanceInfo(pw::println); pw.println(""); pw.println("=================== PRELOADED NANOAPPS ===================="); @@ -1255,16 +1255,17 @@ public class ContextHubService extends IContextHubService.Stub { proto.flush(); } - /** - * Dumps preloaded nanoapps to the console - */ + /** Dumps preloaded nanoapps to the console */ private void dumpPreloadedNanoapps(PrintWriter pw) { if (mContextHubWrapper == null) { return; } long[] preloadedNanoappIds = mContextHubWrapper.getPreloadedNanoappIds(); - for (long preloadedNanoappId: preloadedNanoappIds) { + if (preloadedNanoappIds == null) { + return; + } + for (long preloadedNanoappId : preloadedNanoappIds) { pw.print("ID: 0x"); pw.println(Long.toHexString(preloadedNanoappId)); } diff --git a/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubServiceTest.java b/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubServiceTest.java index fb1a8f87a50b9..c0a994ba340ac 100644 --- a/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/location/contexthub/ContextHubServiceTest.java @@ -40,6 +40,9 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; +import java.io.FileDescriptor; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.Arrays; import java.util.List; @@ -49,7 +52,8 @@ public class ContextHubServiceTest { private static final int CONTEXT_HUB_ID = 3; private static final String CONTEXT_HUB_STRING = "Context Hub Info Test"; - private Context mContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + private final Context mContext = + InstrumentationRegistry.getInstrumentation().getTargetContext(); @Mock private IContextHubWrapper mMockContextHubWrapper; @Mock private ContextHubInfo mMockContextHubInfo; @Rule public final MockitoRule mockito = MockitoJUnit.rule(); @@ -62,20 +66,29 @@ public class ContextHubServiceTest { when(mMockContextHubInfo.toString()).thenReturn(CONTEXT_HUB_STRING); when(mMockContextHubWrapper.getHubs()).thenReturn(hubInfo); - when(mMockContextHubWrapper.supportsLocationSettingNotifications()) - .thenReturn(true); + when(mMockContextHubWrapper.supportsLocationSettingNotifications()).thenReturn(true); when(mMockContextHubWrapper.supportsWifiSettingNotifications()).thenReturn(true); - when(mMockContextHubWrapper.supportsAirplaneModeSettingNotifications()) - .thenReturn(true); - when(mMockContextHubWrapper.supportsMicrophoneSettingNotifications()) - .thenReturn(true); + when(mMockContextHubWrapper.supportsAirplaneModeSettingNotifications()).thenReturn(true); + when(mMockContextHubWrapper.supportsMicrophoneSettingNotifications()).thenReturn(true); when(mMockContextHubWrapper.supportsBtSettingNotifications()).thenReturn(true); } -// TODO (b/254290317): These existing tests are to setup the testing infra for the ContextHub -// service and verify the constructor correctly registers a context hub. -// We need to augment these tests to cover the full behavior of the -// ContextHub service + @Test + public void testDump_emptyPreloadedNanoappList() { + when(mMockContextHubWrapper.getPreloadedNanoappIds()).thenReturn(null); + StringWriter stringWriter = new StringWriter(); + + ContextHubService service = new ContextHubService(mContext, mMockContextHubWrapper); + service.dump( + new FileDescriptor(), new PrintWriter(stringWriter), /* args= */ new String[0]); + + assertThat(stringWriter.toString()).isNotEmpty(); + } + + // TODO (b/254290317): These existing tests are to setup the testing infra for the ContextHub + // service and verify the constructor correctly registers a context hub. + // We need to augment these tests to cover the full behavior of the + // ContextHub service @Test public void testConstructorRegistersContextHub() throws RemoteException {