diff options
author | Bilal Alsharifi <599206+bilal-alsharifi@users.noreply.github.com> | 2020-04-09 15:32:56 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-09 15:32:56 -0400 |
commit | 7bf138ffe0bf858f2de06696e04f5da7024d24d3 (patch) | |
tree | 7fdf8f71dcc047f8401c390de574887bb98cfe55 /android/sdl_android/src/androidTest/java/com | |
parent | eba22e7520e6acacae4a2a8c7de560167f9cfd05 (diff) | |
parent | f119e40af55c2ce1e5014f6c1d647b2fce7f68ff (diff) | |
download | sdl_android-7bf138ffe0bf858f2de06696e04f5da7024d24d3.tar.gz |
Merge pull request #1321 from smartdevicelink/feature/scm_align_part3
Align SystemCapabilityManager with iOS (part3)
Diffstat (limited to 'android/sdl_android/src/androidTest/java/com')
-rw-r--r-- | android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java | 71 |
1 files changed, 62 insertions, 9 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java index 489964d7e..87bed3d1b 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/proxy/SystemCapabilityManagerTests.java @@ -22,6 +22,7 @@ import com.smartdevicelink.proxy.rpc.DisplayCapability; import com.smartdevicelink.proxy.rpc.GetSystemCapability; import com.smartdevicelink.proxy.rpc.GetSystemCapabilityResponse; import com.smartdevicelink.proxy.rpc.HMICapabilities; +import com.smartdevicelink.proxy.rpc.OnHMIStatus; import com.smartdevicelink.proxy.rpc.OnSystemCapabilityUpdated; import com.smartdevicelink.proxy.rpc.PhoneCapability; import com.smartdevicelink.proxy.rpc.PresetBankCapabilities; @@ -34,7 +35,9 @@ import com.smartdevicelink.proxy.rpc.VideoStreamingCapability; import com.smartdevicelink.proxy.rpc.WindowCapability; import com.smartdevicelink.proxy.rpc.WindowTypeCapabilities; import com.smartdevicelink.proxy.rpc.enums.AppServiceType; +import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState; import com.smartdevicelink.proxy.rpc.enums.DisplayType; +import com.smartdevicelink.proxy.rpc.enums.HMILevel; import com.smartdevicelink.proxy.rpc.enums.HmiZoneCapabilities; import com.smartdevicelink.proxy.rpc.enums.ImageType; import com.smartdevicelink.proxy.rpc.enums.MediaClockFormat; @@ -44,6 +47,7 @@ import com.smartdevicelink.proxy.rpc.enums.Result; import com.smartdevicelink.proxy.rpc.enums.ServiceUpdateReason; import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities; import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType; +import com.smartdevicelink.proxy.rpc.enums.SystemContext; import com.smartdevicelink.proxy.rpc.enums.WindowType; import com.smartdevicelink.proxy.rpc.listeners.OnMultipleRequestListener; import com.smartdevicelink.proxy.rpc.listeners.OnRPCListener; @@ -67,6 +71,7 @@ import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; @@ -216,6 +221,11 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { request.getOnRPCResponseListener().onResponse(CorrelationIdGenerator.generateId(), response); } } + + @Override + public void addOnRPCListener(FunctionID messageId, OnRPCListener listener) { + listener.onReceived(new OnHMIStatus(HMILevel.HMI_FULL, AudioStreamingState.NOT_AUDIBLE, SystemContext.SYSCTXT_MAIN)); + } }); systemCapabilityManager.getCapability(SystemCapabilityType.VIDEO_STREAMING, new OnSystemCapabilityListener() { @@ -234,6 +244,21 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { }); } + private Answer<Void> createOnHMIStatusAnswer(final HMILevel hmiLevel){ + Answer<Void> onHMIStatusAnswer = new Answer<Void>() { + @Override + public Void answer(InvocationOnMock invocation) { + Object[] args = invocation.getArguments(); + OnRPCListener onHMIStatusListener = (OnRPCListener) args[1]; + OnHMIStatus onHMIStatusFakeNotification = new OnHMIStatus(); + onHMIStatusFakeNotification.setHmiLevel(hmiLevel); + onHMIStatusListener.onReceived(onHMIStatusFakeNotification); + return null; + } + }; + return onHMIStatusAnswer; + } + private Answer<Void> createOnSendGetSystemCapabilityAnswer (final boolean success, final Boolean subscribe) { Answer<Void> onSendGetSystemCapabilityAnswer = new Answer<Void>() { @Override @@ -266,6 +291,7 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { // Test case 1 (capability not cached, listener not null, forceUpdate false) internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); scm = new SystemCapabilityManager(internalInterface); onSystemCapabilityListener = mock(OnSystemCapabilityListener.class); doAnswer(createOnSendGetSystemCapabilityAnswer(true, null)).when(internalInterface).sendRPC(any(GetSystemCapability.class)); @@ -278,6 +304,7 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { // Test case 2 (capability cached, listener not null, forceUpdate true) internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); scm = new SystemCapabilityManager(internalInterface); onSystemCapabilityListener = mock(OnSystemCapabilityListener.class); doAnswer(createOnSendGetSystemCapabilityAnswer(true, null)).when(internalInterface).sendRPC(any(GetSystemCapability.class)); @@ -290,6 +317,7 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { // Test case 3 (capability cached, listener null, forceUpdate true) internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); scm = new SystemCapabilityManager(internalInterface); onSystemCapabilityListener = null; doAnswer(createOnSendGetSystemCapabilityAnswer(true, null)).when(internalInterface).sendRPC(any(GetSystemCapability.class)); @@ -301,6 +329,7 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { // Test case 4 (capability cached, listener null, forceUpdate false) internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); scm = new SystemCapabilityManager(internalInterface); onSystemCapabilityListener = null; doAnswer(createOnSendGetSystemCapabilityAnswer(true, null)).when(internalInterface).sendRPC(any(GetSystemCapability.class)); @@ -310,10 +339,25 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { verify(internalInterface, times(0)).sendRPC(any(GetSystemCapability.class)); } + public void testGetCapabilityHmiNone() { + ISdl internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_NONE)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); + SystemCapabilityManager scm = new SystemCapabilityManager(internalInterface); + OnSystemCapabilityListener onSystemCapabilityListener = mock(OnSystemCapabilityListener.class); + doAnswer(createOnSendGetSystemCapabilityAnswer(true, null)).when(internalInterface).sendRPC(any(GetSystemCapability.class)); + scm.setCapability(SystemCapabilityType.VIDEO_STREAMING, null); + VideoStreamingCapability retrievedCapability = (VideoStreamingCapability) scm.getCapability(SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener, false); + assertNull(retrievedCapability); + verify(internalInterface, times(0)).sendRPC(any(GetSystemCapability.class)); + verify(onSystemCapabilityListener, times(0)).onCapabilityRetrieved(any(Object.class)); + verify(onSystemCapabilityListener, times(1)).onError(any(String.class)); + } + public void testAddOnSystemCapabilityListenerWithSubscriptionsSupportedAndCapabilityCached() { SdlMsgVersion sdlMsgVersion = new SdlMsgVersion(6, 0); // This version supports capability subscriptions sdlMsgVersion.setPatchVersion(0); ISdl internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); when(internalInterface.getSdlMsgVersion()).thenReturn(sdlMsgVersion); SystemCapabilityManager scm = new SystemCapabilityManager(internalInterface); scm.setCapability(SystemCapabilityType.VIDEO_STREAMING, videoStreamingCapability); @@ -359,6 +403,7 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { SdlMsgVersion sdlMsgVersion = new SdlMsgVersion(6, 0); // This version supports capability subscriptions sdlMsgVersion.setPatchVersion(0); ISdl internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); when(internalInterface.getSdlMsgVersion()).thenReturn(sdlMsgVersion); SystemCapabilityManager scm = new SystemCapabilityManager(internalInterface); scm.setCapability(SystemCapabilityType.VIDEO_STREAMING, null); @@ -404,6 +449,7 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { SdlMsgVersion sdlMsgVersion = new SdlMsgVersion(5, 0); // This version doesn't support capability subscriptions sdlMsgVersion.setPatchVersion(0); ISdl internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); when(internalInterface.getSdlMsgVersion()).thenReturn(sdlMsgVersion); SystemCapabilityManager scm = new SystemCapabilityManager(internalInterface); scm.setCapability(SystemCapabilityType.VIDEO_STREAMING, videoStreamingCapability); @@ -449,6 +495,7 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { SdlMsgVersion sdlMsgVersion = new SdlMsgVersion(5, 0); // This version doesn't support capability subscriptions sdlMsgVersion.setPatchVersion(0); ISdl internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); when(internalInterface.getSdlMsgVersion()).thenReturn(sdlMsgVersion); SystemCapabilityManager scm = new SystemCapabilityManager(internalInterface); scm.setCapability(SystemCapabilityType.VIDEO_STREAMING, null); @@ -494,6 +541,7 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { SdlMsgVersion sdlMsgVersion = new SdlMsgVersion(5, 0); // This version doesn't support capability subscriptions sdlMsgVersion.setPatchVersion(0); ISdl internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); when(internalInterface.getSdlMsgVersion()).thenReturn(sdlMsgVersion); SystemCapabilityManager scm = new SystemCapabilityManager(internalInterface); scm.setCapability(SystemCapabilityType.VIDEO_STREAMING, videoStreamingCapability); @@ -586,8 +634,8 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { // Test case 1 (capability cached, listener not null, forceUpdate true) - // Force updating DISPLAYS capability should call onError() internalInterface = mock(ISdl.class); + doAnswer(createOnHMIStatusAnswer(HMILevel.HMI_FULL)).when(internalInterface).addOnRPCListener(eq(FunctionID.ON_HMI_STATUS), any(OnRPCListener.class)); scm = new SystemCapabilityManager(internalInterface); onSystemCapabilityListener = mock(OnSystemCapabilityListener.class); doAnswer(createOnSendGetSystemCapabilityAnswer(true, null)).when(internalInterface).sendRPC(any(GetSystemCapability.class)); @@ -595,8 +643,8 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { retrievedCapability = (DisplayCapabilities) scm.getCapability(SystemCapabilityType.DISPLAYS, onSystemCapabilityListener, true); assertNotNull(retrievedCapability); verify(internalInterface, times(0)).sendRPC(any(GetSystemCapability.class)); - verify(onSystemCapabilityListener, times(0)).onCapabilityRetrieved(any(Object.class)); - verify(onSystemCapabilityListener, times(1)).onError(any(String.class)); + verify(onSystemCapabilityListener, times(1)).onCapabilityRetrieved(any(Object.class)); + verify(onSystemCapabilityListener, times(0)).onError(any(String.class)); // Test case 2 (Add listener) @@ -683,7 +731,6 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { } public void testOnSystemCapabilityUpdated(){ - InternalSDLInterface iSDL = new InternalSDLInterface(); String baseName = "NavTest", baseID = "37F98053AE"; AppServiceCapability capability1 = AppServiceFactory.createAppServiceCapability(AppServiceType.NAVIGATION, baseName, null, true, null); @@ -948,13 +995,21 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { public Object getCapability(SystemCapabilityType systemCapabilityType){return null;} @Override - public void getCapability(SystemCapabilityType systemCapabilityType, OnSystemCapabilityListener scListener) { } + public void getCapability(SystemCapabilityType systemCapabilityType, OnSystemCapabilityListener scListener) { + } @Override - public RegisterAppInterfaceResponse getRegisterAppInterfaceResponse(){return null;} + public RegisterAppInterfaceResponse getRegisterAppInterfaceResponse() { + return null; + } + + @Override + public Object getCapability(SystemCapabilityType systemCapabilityType, OnSystemCapabilityListener scListener, boolean forceUpdate) { + return null; + } @Override - public SdlMsgVersion getSdlMsgVersion(){ + public SdlMsgVersion getSdlMsgVersion() { return null; } @@ -1001,6 +1056,4 @@ public class SystemCapabilityManagerTests extends AndroidTestCase2 { @Override public void startRPCEncryption() {} } - - } |