Skip to content

Commit da4e775

Browse files
authored
Update SystemCapabilityManagerTests.js
1 parent f084324 commit da4e775

File tree

1 file changed

+57
-75
lines changed

1 file changed

+57
-75
lines changed

tests/managers/SystemCapabilityManagerTests.js

Lines changed: 57 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -739,7 +739,7 @@ module.exports = function (appClient) {
739739
stub.restore();
740740
});
741741

742-
it('testAddOnSystemCapabilityListenerWithSubscriptionsNotSupportedAndCapabilityNotCached', async function () {
742+
it('testAddOnSystemCapabilityListenerWithSubscriptionsNotSupportedAndCapabilityNotCached', async function () {
743743
const sdlManager = appClient._sdlManager;
744744
const lifecycleManager = sdlManager._lifecycleManager;
745745
const scm = createSampleManager(lifecycleManager);
@@ -765,31 +765,31 @@ module.exports = function (appClient) {
765765
.setPatchVersion(0);
766766
});
767767

768-
scm._setCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, null);
768+
scm._setCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, videoStreamingCapability);
769769

770770
// Add listener1
771771
const onSystemCapabilityListener1 = sinon.fake(() => {});
772-
// When the first listener is added, GetSystemCapability request should out because because capability is not cached
772+
// When the first listener is added, GetSystemCapability request should go out with subscribe=false
773773
// SCM uses sendRpcMessage and not sendRpcResolve
774774
const stub = sinon.stub(sdlManager._lifecycleManager, 'sendRpcMessage')
775775
stub.withArgs(sinon.match.instanceOf(SDL.rpc.messages.GetSystemCapability)).callsFake(createOnSendGetSystemCapabilityAnswer(true, false, scm));
776776

777777
scm.addOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener1);
778778
Validator.assertTrue(stub.calledOnce);
779-
Validator.assertTrue(onSystemCapabilityListener1.calledOnce);
779+
Validator.assertNotNull(onSystemCapabilityListener1.calledOnce);
780780
stub.restore();
781781

782782
// Add listener2
783783
const onSystemCapabilityListener2 = sinon.fake(() => {});
784784
scm.addOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener2);
785785
await sleep(200);
786-
Validator.assertTrue(onSystemCapabilityListener2.calledOnce);
786+
Validator.assertNotNull(onSystemCapabilityListener2.calledOnce);
787787

788788
// Add listener3
789789
const onSystemCapabilityListener3 = sinon.fake(() => {});
790790
scm.addOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener3);
791791
await sleep(200);
792-
Validator.assertTrue(onSystemCapabilityListener3.calledOnce);
792+
Validator.assertNotNull(onSystemCapabilityListener3.calledOnce);
793793

794794
// Remove listener1
795795
scm.removeOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener1);
@@ -809,110 +809,92 @@ module.exports = function (appClient) {
809809
stub.restore();
810810
});
811811

812-
it('testAddOnSystemCapabilityListenerThenGetCapabilityWhenSubscriptionsAreNotSupported', function (done) {
812+
it('testAddOnSystemCapabilityListenerThenGetCapabilityWhenSubscriptionsAreNotSupported', async function (){
813813
const sdlManager = appClient._sdlManager;
814814
const lifecycleManager = sdlManager._lifecycleManager;
815815
const scm = createSampleManager(lifecycleManager);
816-
816+
817817
const sdlMsgVersion = new SDL.rpc.structs.SdlMsgVersion()
818-
.setMajorVersion(5)
818+
.setMajorVersion(5) // This version doesn't support capability subscriptions
819819
.setMinorVersion(0)
820820
.setPatchVersion(0);
821821

822-
//Raed
823-
const HMIStatusAnswer = sinon.stub(lifecycleManager,'addOnRPCListener')
824-
.callsFake(createOnHMIStatusAnswer(HMILevel.HMI_FULL));
822+
const hmiStatusAnswer = sinon.stub(lifecycleManager, 'addRpcListener')
823+
.callsFake(function () {
824+
const responseSuccess = new SDL.rpc.messages.OnHMIStatus({
825+
functionName: SDL.rpc.enums.FunctionID.OnHMIStatus,
826+
})
827+
.setHmiLevel(SDL.rpc.enums.HMILevel.HMI_FULL);
828+
});
829+
825830
const versionStub = sinon.stub(lifecycleManager, 'getSdlMsgVersion')
826831
.callsFake(function () {
827832
return new SDL.rpc.structs.SdlMsgVersion()
828-
.setMajorVersion(6)
833+
.setMajorVersion(5)
829834
.setMinorVersion(0)
830835
.setPatchVersion(0);
831836
});
832837

833-
834838
scm._setCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, videoStreamingCapability);
835839

836840
// Add listener1
841+
const onSystemCapabilityListener1 = sinon.fake(() => {});
837842
// When the first listener is added, GetSystemCapability request should go out with subscribe=false
838-
let onSystemCapabilityListener1 //= mock(OnSystemCapabilityListener.class);
839-
SystemCapabilityAnswer = sinon.stub(internalInterface,'sendRPC')
840-
.callsFake(createOnSendGetSystemCapabilityAnswer(true, false, scm));
841-
scm.addOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener1);
842-
verify(internalInterface, times(0)).sendRPC(any(GetSystemCapability.class));
843-
verify(onSystemCapabilityListener1, times(1)).onCapabilityRetrieved(any(Object.class));
844-
845-
846-
// Get Capability (should notify listener1 again)
847-
scm.getCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING);
848-
verify(internalInterface, times(1)).sendRPC(any(GetSystemCapability.class));
849-
verify(onSystemCapabilityListener1, times(2)).onCapabilityRetrieved(any(Object.class));
843+
// SCM uses sendRpcMessage and not sendRpcResolve
844+
const stub = sinon.stub(sdlManager._lifecycleManager, 'sendRpcMessage')
845+
stub.withArgs(sinon.match.instanceOf(SDL.rpc.messages.GetSystemCapability)).callsFake(createOnSendGetSystemCapabilityAnswer(true, false, scm));
850846

847+
scm.addOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener1);
848+
Validator.assertTrue(stub.calledOnce);
849+
Validator.assertNotNull(onSystemCapabilityListener1.calledOnce);
850+
stub.restore();
851851

852852
// Add listener2
853-
const onSystemCapabilityListener2 = mock(OnSystemCapabilityListener.class);
853+
const onSystemCapabilityListener2 = sinon.fake(() => {});
854854
scm.addOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener2);
855-
verify(onSystemCapabilityListener2, times(1)).onCapabilityRetrieved(any(Object.class));
856-
857-
858-
// Get Capability (should notify listener1 & listener2 again)
859-
scm.getCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING);
860-
verify(internalInterface, times(2)).sendRPC(any(GetSystemCapability.class));
861-
verify(onSystemCapabilityListener1, times(3)).onCapabilityRetrieved(any(Object.class));
862-
verify(onSystemCapabilityListener2, times(2)).onCapabilityRetrieved(any(Object.class));
863-
855+
await sleep(200);
856+
Validator.assertTrue(stub.calledOnce);
857+
Validator.assertNotNull(onSystemCapabilityListener1.calledOnce);
858+
Validator.assertNotNull(onSystemCapabilityListener2.calledOnce);
864859

865860
// Add listener3
866-
const onSystemCapabilityListener3 = mock(OnSystemCapabilityListener.class);
861+
const onSystemCapabilityListener3 = sinon.fake(() => {});
867862
scm.addOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener3);
868-
verify(onSystemCapabilityListener3, times(1)).onCapabilityRetrieved(any(Object.class));
869-
870-
871-
// Get Capability (should notify listener1 & listener2 & listener3 again)
872-
scm.getCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING);
873-
verify(internalInterface, times(3)).sendRPC(any(GetSystemCapability.class));
874-
verify(onSystemCapabilityListener1, times(4)).onCapabilityRetrieved(any(Object.class));
875-
verify(onSystemCapabilityListener2, times(3)).onCapabilityRetrieved(any(Object.class));
876-
verify(onSystemCapabilityListener3, times(2)).onCapabilityRetrieved(any(Object.class));
877-
863+
await sleep(200);
864+
Validator.assertTrue(stub.calledOnce);
865+
Validator.assertNotNull(onSystemCapabilityListener1.calledOnce);
866+
Validator.assertNotNull(onSystemCapabilityListener2.calledOnce);
867+
Validator.assertNotNull(onSystemCapabilityListener3.calledOnce);
878868

879869
// Remove listener1
880870
scm.removeOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener1);
871+
await sleep(200);
872+
Validator.assertTrue(stub.calledOnce);
873+
Validator.assertNotNull(onSystemCapabilityListener1.calledOnce);
874+
Validator.assertNotNull(onSystemCapabilityListener2.calledOnce);
875+
Validator.assertNotNull(onSystemCapabilityListener3.calledOnce);
881876

882-
883-
// Get Capability (should notify listener2 & listener3 again)
884-
scm.getCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING);
885-
verify(internalInterface, times(4)).sendRPC(any(GetSystemCapability.class));
886-
verify(onSystemCapabilityListener1, times(4)).onCapabilityRetrieved(any(Object.class));
887-
verify(onSystemCapabilityListener2, times(4)).onCapabilityRetrieved(any(Object.class));
888-
verify(onSystemCapabilityListener3, times(3)).onCapabilityRetrieved(any(Object.class));
889-
890-
891-
// Remove listener2
877+
// Remove listener1
892878
scm.removeOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener2);
893-
894-
895-
// Get Capability (should notify listener3 again)
896-
scm.getCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING);
897-
verify(internalInterface, times(5)).sendRPC(any(GetSystemCapability.class));
898-
verify(onSystemCapabilityListener1, times(4)).onCapabilityRetrieved(any(Object.class));
899-
verify(onSystemCapabilityListener2, times(4)).onCapabilityRetrieved(any(Object.class));
900-
verify(onSystemCapabilityListener3, times(4)).onCapabilityRetrieved(any(Object.class));
879+
await sleep(200);
880+
Validator.assertTrue(stub.calledOnce);
881+
Validator.assertNotNull(onSystemCapabilityListener1.calledOnce);
882+
Validator.assertNotNull(onSystemCapabilityListener2.calledOnce);
883+
Validator.assertNotNull(onSystemCapabilityListener3.calledOnce);
901884

902885

903886
// Remove listener3
887+
// When the last listener is removed, GetSystemCapability request should not go out because subscription is not supported
888+
const stub2 = sinon.stub(sdlManager._lifecycleManager, 'sendRpcMessage')
889+
stub2.withArgs(sinon.match.instanceOf(SDL.rpc.messages.GetSystemCapability)).callsFake(createOnSendGetSystemCapabilityAnswer(true, false, scm));
904890
scm.removeOnSystemCapabilityListener(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING, onSystemCapabilityListener3);
905-
verify(internalInterface, times(5)).sendRPC(any(GetSystemCapability.class));
906-
891+
await sleep(200);
892+
Validator.assertTrue(stub.called);
907893

908-
// Get Capability (should not notify any listener again because they are all removed)
909-
scm.getCapability(SDL.rpc.enums.SystemCapabilityType.VIDEO_STREAMING);
910-
verify(internalInterface, times(6)).sendRPC(any(GetSystemCapability.class));
911-
verify(onSystemCapabilityListener1, times(4)).onCapabilityRetrieved(any(Object.class));
912-
verify(onSystemCapabilityListener2, times(4)).onCapabilityRetrieved(any(Object.class));
913-
verify(onSystemCapabilityListener3, times(4)).onCapabilityRetrieved(any(Object.class));
914-
done();
915-
});
894+
hmiStatusAnswer.restore();
895+
versionStub.restore();
896+
stub.restore();
897+
});
916898

917899
it('testGetAndAddListenerForDisplaysCapability', function (done) {
918900
const sdlManager = appClient._sdlManager;

0 commit comments

Comments
 (0)