From fc93ea4fdaa9a243249c666a7b1b088c8d285319 Mon Sep 17 00:00:00 2001 From: Siddharth Trika <strikha@cdot.in> Date: Thu, 20 Oct 2022 11:26:15 +0000 Subject: [PATCH] New Testcases added for Device Triggering OneM2M_Testcases_CSE_Release_3.ttcn --- OneM2M_Testcases_CSE_Release_3.ttcn | 1789 +++++++++++++++++++++++++++ 1 file changed, 1789 insertions(+) diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index c72ab26..156a2a6 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -18628,6 +18628,1795 @@ module OneM2M_Testcases_CSE_Release_3 { group device_trigerring { + + /* @desk Check that the IUT sends an explicit 3GPP Device Trigger Request when it receives a valid <triggerRequest> resource + * + * + */ + testcase TC_CSE_3GPP_TRIG_001_CON() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_001_CON()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_001_CON + + function f_CSE_3GPP_TRIG_001_CON() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1; + + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- triggerInfoOperation, triggerInfoAddress, targetedResourceType", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //TriggerPurpose TriggerPayload + //int1 establishConnection ---> resource address of the <remoteCSE> or <AE> + //int2 registrationRequest ---> the resource address (triggerInfoAddress) of the <MEFBase> + //int3 executeCRUD ---> the resource address (triggerInfoAddress) of the <cseBase> + //int4 enrolmentRequest ---> the type of CRUDN operation (triggerInfoOperation), the address of the resource that the operation should be performed on (triggerInfoAddress) and the resource type (targetedResourceType) + + + // Test component configuration + f_cf05Up(); + + // Test Body + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 3GPP Device Triggering received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer"); + } + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_001_CON + + /* @desk Check that the IUT sends an explicit 3GPP Device Trigger Request when it receives a valid <triggerRequest> resource + * + * + */ + testcase TC_CSE_3GPP_TRIG_001_REQ() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_001_REQ()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_001_REQ + + function f_CSE_3GPP_TRIG_001_REQ() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1; + + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- the resource address (triggerInfoAddress) of the <MEFBase>", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int2; //TriggerPurpose TriggerPayload + //int1 establishConnection ---> resource address of the <remoteCSE> or <AE> + //int2 registrationRequest ---> the resource address (triggerInfoAddress) of the <MEFBase> + //int3 executeCRUD ---> the resource address (triggerInfoAddress) of the <cseBase> + //int4 enrolmentRequest ---> the type of CRUDN operation (triggerInfoOperation), the address of the resource that the operation should be performed on (triggerInfoAddress) and the resource type (targetedResourceType) + + + // Test component configuration + f_cf05Up(); + + // Test Body + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 3GPP Device Triggering received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer"); + } + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_001_REQ + + /* @desk Check that the IUT sends an explicit 3GPP Device Trigger Request when it receives a valid <triggerRequest> resource + * + * + */ + testcase TC_CSE_3GPP_TRIG_001_EXE() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_001_EXE()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_001_EXE + + function f_CSE_3GPP_TRIG_001_EXE() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1; + + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- the resource address (triggerInfoAddress) of the <cseBase>", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int3; //TriggerPurpose TriggerPayload + //int1 establishConnection ---> resource address of the <remoteCSE> or <AE> + //int2 registrationRequest ---> the resource address (triggerInfoAddress) of the <MEFBase> + //int3 executeCRUD ---> the resource address (triggerInfoAddress) of the <cseBase> + //int4 enrolmentRequest ---> the type of CRUDN operation (triggerInfoOperation), the address of the resource that the operation should be performed on (triggerInfoAddress) and the resource type (targetedResourceType) + + + // Test component configuration + f_cf05Up(); + + // Test Body + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 3GPP Device Triggering received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer"); + } + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_001_EXE + + /* @desk Check that the IUT sends an explicit 3GPP Device Trigger Request when it receives a valid <triggerRequest> resource + * + * + */ + testcase TC_CSE_3GPP_TRIG_001_ENR() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_001_ENR()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_001_ENR + + function f_CSE_3GPP_TRIG_001_ENR() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1; + + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- the resource address (triggerInfoAddress) of the <cseBase>", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int4; //TriggerPurpose TriggerPayload + //int1 establishConnection ---> resource address of the <remoteCSE> or <AE> + //int2 registrationRequest ---> the resource address (triggerInfoAddress) of the <MEFBase> + //int3 executeCRUD ---> the resource address (triggerInfoAddress) of the <cseBase> + //int4 enrolmentRequest ---> the type of CRUDN operation (triggerInfoOperation), the address of the resource that the operation should be performed on (triggerInfoAddress) and the resource type (targetedResourceType) + + + // Test component configuration + f_cf05Up(); + + // Test Body + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 3GPP Device Triggering received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer"); + } + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_001_ENR + + + /* @desk Check that the IUT sends an implicit 3GPP Device Trigger Request + * when it receives a valid <notification> from an AE + * + */ + testcase TC_CSE_3GPP_TRIG_002() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_002()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_002 + + function f_CSE_3GPP_TRIG_002() runs on ScefSimu system ScefSystem{ + + var template RequestPrimitive v_createContainer := m_createContainerBase; + var template RequestPrimitive v_updateContainer := m_updateContainerBase; + var template RequestPrimitive v_createRequestSubscription; + + var integer v_aeIndex := -1, v_containerIndex := -1; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var Labels v_labels_1:= {"VALUE_1"}; + var Labels v_labels_2:= {"VALUE_2"}; + + // 3GPP device trigger request with TriggerPayload null + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, -, "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template NiddConfiguration v_niddConfiguration := mw_niddConfiguration(); + var template RequestBodyT8 v_niddConfig := {individualNiddConfiguration := v_niddConfiguration}; + + v_createContainer.primitiveContent.container.labels := v_labels_1; + v_updateContainer.primitiveContent.container.labels := v_labels_2; + + // Test component configuration + f_cf05Up(); + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // Container under AE + vc_ae1.start(f_cse_createResource(int3, v_createContainer, v_aeIndex)); + v_containerIndex := f_getLatestResourceIndex(vc_ae1); + + // Create Subscription + v_createRequestSubscription := m_createSubscriptionAdvanced(f_getResourceAddress(v_containerIndex), -, {f_getResourceAddress(v_aeIndex)}, m_eventNotificationCriteria({int1}), -, omit, omit, omit, -, omit); + vc_ae1.start(f_cse_createResource(int23, v_createRequestSubscription, v_containerIndex)); + + // Test Body + vc_ae1.start(f_cse_updateResource(int3, v_containerIndex, v_updateContainer)); + + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 3GPP device Triggering received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer"); + } + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_NIDD_002 + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> to ERROR_NSE_NOT_FOUND + * when the SCEF does not respond to the Device Trigger Request prior to the timeout period + * + */ + + testcase TC_CSE_3GPP_TRIG_003() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_003()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_003 + + + function f_CSE_3GPP_TRIG_003() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + // SCEF does not send a reponse to IUT + + //mcnPort.send(); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to ERROR_NSE_NOT_FOUND + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int2))) {// ERROR_NSE_NOT_FOUND + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to ERROR_NSE_NOT_FOUND"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_003 + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> + * to the proper value when the SCEF responds to the Device Trigger Request + * + */ + + testcase TC_CSE_3GPP_TRIG_004_1() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_004_1()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_004_1 + + + function f_CSE_3GPP_TRIG_004_1() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(SUCCESS, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends Device Triggering response + mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER_DELIEVERED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int4))) {// TRIGGER_DELIEVERED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER_DELIEVERED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_004_1 + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> + * to the proper value when the SCEF responds to the Device Trigger Request + * + */ + + testcase TC_CSE_3GPP_TRIG_004_2() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_004_2()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_004_2 + + + function f_CSE_3GPP_TRIG_004_2() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(UNKNOWN, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends Device Triggering response + mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-FAILED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int6))) {// TRIGGER-FAILED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-FAILED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_004_2 + + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> + * to the proper value when the SCEF responds to the Device Trigger Request + * + */ + + testcase TC_CSE_3GPP_TRIG_004_3() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_004_3()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_004_3 + + + function f_CSE_3GPP_TRIG_004_3() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(FAILURE, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends Device Triggering response + mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-FAILED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int6))) {// TRIGGER-FAILED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-FAILED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_004_3 + + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> + * to the proper value when the SCEF responds to the Device Trigger Request + * + */ + + testcase TC_CSE_3GPP_TRIG_004_4() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_004_4()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_004_4 + + + function f_CSE_3GPP_TRIG_004_4() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(TRIGGERED, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends Device Triggering response + mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-TRIGGERED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int6))) {// FixME: TRIGGER-TRIGGERED not defined in enum + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-TRIGGERED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_004_4 + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> + * to the proper value when the SCEF responds to the Device Trigger Request + * + */ + + testcase TC_CSE_3GPP_TRIG_004_5() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_004_5()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_004_5 + + + function f_CSE_3GPP_TRIG_004_5() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(EXPIRED, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends Device Triggering response + mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-EXPIRED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int5))) {// TRIGGER-EXPIRED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-EXPIRED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_004_5 + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> + * to the proper value when the SCEF responds to the Device Trigger Request + * + */ + + testcase TC_CSE_3GPP_TRIG_004_6() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_004_6()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_004_6 + + + function f_CSE_3GPP_TRIG_004_6() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(UNCONFIRMED, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends Device Triggering response + mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-UNCONFIRMED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int5))) {// Fixme: TRIGGER-UNCONFIRMED not defined in enum + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-UNCONFIRMED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_004_6 + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> + * to the proper value when the SCEF responds to the Device Trigger Request + * + */ + + testcase TC_CSE_3GPP_TRIG_004_7() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_004_7()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_004_7 + + + function f_CSE_3GPP_TRIG_004_7() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(REPLACED, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends Device Triggering response + mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-FAILED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int6))) {// TRIGGER-FAILED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-FAILED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_004_7 + + /* @desk Check that the IUT sets the triggerStatus attribute of the <triggerRequest> + * to the proper value when the SCEF responds to the Device Trigger Request + * + */ + + testcase TC_CSE_3GPP_TRIG_004_8() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_004_8()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_004_8 + + + function f_CSE_3GPP_TRIG_004_8() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(TERMINATE, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends Device Triggering response + mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-TERMINATED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int6))) {// Fixme: TRIGGER-TERMINATED not in enum + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-TERMINATED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_004_8 + + /* @desk Check that the IUT returns a HTTP response when it receives a valid + * DeviceTriggeringDeliveryReportNotification Report message + * + */ + + testcase TC_CSE_3GPP_TRIG_005_1() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_005_1()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_005_1 + + + function f_CSE_3GPP_TRIG_005_1() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(SUCCESS, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends DeviceTriggeringDeliveryReportNotification + mcnPort.send(mw_t8Request(mw_t8_request_post(mw_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI + "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 204 no content is received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No Answer"); + } + } + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER_DELIEVERED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int4))) {// TRIGGER_DELIEVERED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER_DELIEVERED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_005_1 + + + /* @desk Check that the IUT returns a HTTP response when it receives a valid + * DeviceTriggeringDeliveryReportNotification Report message + * + */ + + testcase TC_CSE_3GPP_TRIG_005_2() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_005_2()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_005_2 + + + function f_CSE_3GPP_TRIG_005_2() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(UNKNOWN, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends DeviceTriggeringDeliveryReportNotification + mcnPort.send(mw_t8Request(mw_t8_request_post(mw_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI + "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 204 no content is received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No Answer"); + } + } + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-FAILED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int6))) {// TRIGGER-FAILED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-FAILED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_005_2 + + /* @desk Check that the IUT returns a HTTP response when it receives a valid + * DeviceTriggeringDeliveryReportNotification Report message + * + */ + + testcase TC_CSE_3GPP_TRIG_005_3() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_005_3()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_005_3 + + + function f_CSE_3GPP_TRIG_005_3() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(FAILURE, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends DeviceTriggeringDeliveryReportNotification + mcnPort.send(mw_t8Request(mw_t8_request_post(mw_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI + "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 204 no content is received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No Answer"); + } + } + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER-FAILED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int6))) {// TRIGGER-FAILED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER-FAILED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_005_3 + + + /* @desk Check that the IUT returns a HTTP response when it receives a valid + * DeviceTriggeringDeliveryReportNotification Report message + * + */ + + testcase TC_CSE_3GPP_TRIG_005_4() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_005_4()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_005_4 + + + function f_CSE_3GPP_TRIG_005_4() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(TRIGGERED, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends DeviceTriggeringDeliveryReportNotification + mcnPort.send(mw_t8Request(mw_t8_request_post(mw_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI + "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 204 no content is received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No Answer"); + } + } + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER_TRIGGERED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int4))) {// Fixme: TRIGGER_TRIGGERED not in enum + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER_TRIGGERED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_005_4 + + + /* @desk Check that the IUT returns a HTTP response when it receives a valid + * DeviceTriggeringDeliveryReportNotification Report message + * + */ + + testcase TC_CSE_3GPP_TRIG_005_5() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_005_5()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_005_5 + + + function f_CSE_3GPP_TRIG_005_5() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(EXPIRED, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends DeviceTriggeringDeliveryReportNotification + mcnPort.send(mw_t8Request(mw_t8_request_post(mw_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI + "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 204 no content is received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No Answer"); + } + } + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER_EXPIRED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int5))) {// TRIGGER_EXPIRED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER_EXPIRED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_005_5 + + + /* @desk Check that the IUT returns a HTTP response when it receives a valid + * DeviceTriggeringDeliveryReportNotification Report message + * + */ + + testcase TC_CSE_3GPP_TRIG_005_6() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_005_6()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_005_6 + + + function f_CSE_3GPP_TRIG_005_6() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(UNCONFIRMED, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends DeviceTriggeringDeliveryReportNotification + mcnPort.send(mw_t8Request(mw_t8_request_post(mw_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI + "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 204 no content is received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No Answer"); + } + } + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER_UNCONFIRMED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int4))) {//Fixme: TRIGGER_UNCONFIRMED not in enum + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER_UNCONFIRMED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_005_6 + + + /* @desk Check that the IUT returns a HTTP response when it receives a valid + * DeviceTriggeringDeliveryReportNotification Report message + * + */ + + testcase TC_CSE_3GPP_TRIG_005_7() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_005_7()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_005_7 + + + function f_CSE_3GPP_TRIG_005_7() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(REPLACED, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends DeviceTriggeringDeliveryReportNotification + mcnPort.send(mw_t8Request(mw_t8_request_post(mw_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI + "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 204 no content is received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No Answer"); + } + } + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER_FAILED + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int6))) {// TRIGGER_FAILED + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER_FAILED"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_005_7 + + + /* @desk Check that the IUT returns a HTTP response when it receives a valid + * DeviceTriggeringDeliveryReportNotification Report message + * + */ + + testcase TC_CSE_3GPP_TRIG_005_8() runs on Tester system ScefSystem { + + var ScefSimu v_scef := ScefSimu.create("SCEF") alive; + + v_scef.start(f_CSE_3GPP_TRIG_005_8()); + v_scef.done; + + } // end testcase TC_CSE_3GPP_TRIG_005_8 + + + function f_CSE_3GPP_TRIG_005_8() runs on ScefSimu system ScefSystem{ + + var integer v_aeIndex := -1, v_triggerRequestIndex := -1; + var PrimitiveContent v_contentTriggerRequest; + var RequestPrimitive v_request; + + //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions + var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions"); + + var template T8Request v_requestPrimitive; + + var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); + var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; + + var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(TERMINATE, "URI to the resource created by the SCEF",-,-,-,-,-,-); + + var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; + + v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection + + // Test component configuration + f_cf05Up(); + + //Preamble + + // Register AE1 + vc_ae1.start(f_cse_preamble_registerAe()); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); + + // TriggerRequest under AE + vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); + + //IUT sent a 3GPP Device Trigger Request + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); + mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); + + // Test Body + + // SCEF sends DeviceTriggeringDeliveryReportNotification + mcnPort.send(mw_t8Request(mw_t8_request_post(mw_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI + "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction + + tc_ac.start; + alt{ + [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": 204 no content is received."); + } + [] mcnPortIn.receive(mw_t8Request(?)){ + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Other operation received"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No Answer"); + } + } + + // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to TRIGGER_TERMINATE + v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); + + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), int4))) {// Fixme: TRIGGER_TERMINATE not in enum + setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set to TRIGGER_TERMINATE"); + } else { + setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); + } + + // Postamble: NOTE This needs to be done. + //f_cse_postamble_deleteResourcesCSE(); + + //Tear Down + f_cf05Down(); + } // end of function f_CSE_3GPP_TRIG_005_8 + + + + + // GET all transactons from an SCEF testcase TC_CSE_3GPP_SCEF_T8_007() runs on ScefSimu system ScefSystem { f_cf05Up(); -- GitLab