summaryrefslogtreecommitdiff
path: root/android/sdl_android/src/androidTest/java/com
diff options
context:
space:
mode:
authorBilal Alsharifi <599206+bilal-alsharifi@users.noreply.github.com>2020-04-09 15:32:56 -0400
committerGitHub <noreply@github.com>2020-04-09 15:32:56 -0400
commit7bf138ffe0bf858f2de06696e04f5da7024d24d3 (patch)
tree7fdf8f71dcc047f8401c390de574887bb98cfe55 /android/sdl_android/src/androidTest/java/com
parenteba22e7520e6acacae4a2a8c7de560167f9cfd05 (diff)
parentf119e40af55c2ce1e5014f6c1d647b2fce7f68ff (diff)
downloadsdl_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.java71
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() {}
}
-
-
}