diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 09f8a22a21dc9b7c80923532af316712dd95194e..d681b2140a4cec18ea422f59b4464dd668d0b3e3 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -2071,7 +2071,9 @@ module OneM2M_Functions { f_checkAeSimuStatus(); - return v_retrievedResponse.primitive.responsePrimitive.primitiveContent; + vc_primitiveContentRetrievedResource := v_retrievedResponse.primitive.responsePrimitive.primitiveContent; + + return vc_primitiveContentRetrievedResource; }// end f_cse_retrieveResource @@ -6839,6 +6841,34 @@ module OneM2M_Functions { //f_checkCseSimuStatus(); } + + /** + * @desc Sending of an Adapter Control primitive + * @param event Action to be performed by TA + * @param data Corresponding information for the correct execution of the given action + * @verdict + */ + function f_scefSimu_checkComponentDoneAndGetVerdict(Tester p_component) runs on ScefSimu { + + var verdicttype v_verdict := none; + + tc_done.start; + alt { + [] p_component.done -> value v_verdict { + tc_done.stop; + } + [] tc_done.timeout { + setverdict(inconc, __SCOPE__ & "INFO: Component did not finish"); + } + } + + if(v_verdict == pass) { // Component was successfully completed and got stopped state + setverdict(pass); + } else { + setverdict(inconc); // Component was not completed successfully + } + + } }//end of group ComponentStatus diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 00de2b54823fe97c91ce6154c829c720b6f5dac3..2d73735fb8256ae64de34f3bfe4f8a99f161f5e5 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -4316,8 +4316,8 @@ module OneM2M_Templates { triggerInfoAddress := omit, //O, triggerInfoOperation := omit, //O, targetedResourceType := omit, //O, - triggerReference := omit //O, - + triggerReference := omit, //O, + choice := omit //NP }; @@ -8911,7 +8911,7 @@ module OneM2M_Templates { queryParameters := p_queryParameters } // End of template mw_uri_3gpp_nidd - template (omit) OneM2M_Types_3GPP_T8.URI m_uri_3gpp_device_triggering( + template (value) OneM2M_Types_3GPP_T8.URI m_uri_3gpp_device_triggering( in charstring p_apiRoot := "/", in template (omit) charstring p_apiSpecificSuffixes := omit, in template (omit) OneM2M_Types_3GPP_T8.URI.queryParameters p_queryParameters := omit @@ -8931,9 +8931,9 @@ module OneM2M_Templates { group t8_request { - template (omit) T8Request m_t8_request_get( + template (value) T8Request m_t8_request_get( in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri, - in template (value) RequestHeaders p_requestHeaders, + in template (omit) RequestHeaders p_requestHeaders := omit, in template (omit) RequestBodyT8 p_requestBody := omit ) := { resourceMethod := GET, @@ -8942,9 +8942,9 @@ module OneM2M_Templates { requestBody := p_requestBody } // End of template m_t8_request_get - template (omit) T8Request m_t8_request_post( + template (value) T8Request m_t8_request_post( in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri, - in template (value) RequestHeaders p_requestHeaders, + in template (omit) RequestHeaders p_requestHeaders := omit, in template (omit) RequestBodyT8 p_requestBody := omit ) modifies m_t8_request_get := { resourceMethod := POST @@ -9021,8 +9021,8 @@ module OneM2M_Templates { group t8_response { - template (omit) T8Response m_t8_response_200_ok( - in template (value) ResponseHeaders p_responseHeaders, + template (value) T8Response m_t8_response_200_ok( + in template (omit) ResponseHeaders p_responseHeaders := omit, in template (omit) ResponseBody p_responseBody := omit ) := { responseCode := 200, @@ -9039,8 +9039,8 @@ module OneM2M_Templates { responseBody := p_responseBody } // End of template mw_t8_response_200_ok - template (omit) T8Response m_t8_response_201_created( - in template (value) ResponseHeaders p_responseHeaders, + template (value) T8Response m_t8_response_201_created( + in template (omit) ResponseHeaders p_responseHeaders:= omit, in template (omit) ResponseBody p_responseBody := omit ) modifies m_t8_response_200_ok := { responseCode := 201 @@ -9207,13 +9207,13 @@ module OneM2M_Templates { } // End of template mw_response_body_individualDeviceTriggering template (value) DeviceTriggering m_deviceTriggering_response_delieveryResult( in template (value) DeliveryResult p_deliveryResult, - in template (value) charstring p_self_ - in template (value) ExternalId p_externalId, + in template (value) charstring p_self_, in template (value) DurationSec p_validityPeriod := 0, in template (value) Priority p_priority := NO_PRIORITY, - in template (value) Port p_applicationPortId, - in template (value) Bytes p_triggerPayload, - in template (value) Link p_notificationDestination + in template (omit) ExternalId p_externalId := omit, + in template (value) Port p_applicationPortId := 8181, + in template (value) Bytes p_triggerPayload := "NotInitialized", + in template (value) Link p_notificationDestination := "NotInitialized" ) := { self_ := p_self_, externalId := p_externalId, @@ -9234,9 +9234,9 @@ module OneM2M_Templates { in template (value) ExternalId p_externalId, in template (value) DurationSec p_validityPeriod := 0, in template (value) Priority p_priority := NO_PRIORITY, - in template (value) Port p_applicationPortId, - in template (value) Bytes p_triggerPayload, - in template (value) Link p_notificationDestination + in template (value) Port p_applicationPortId := 8181, + in template (value) Bytes p_triggerPayload := "NotInitialized", + in template (value) Link p_notificationDestination := "NotInitialized" ) := { self_ := omit, externalId := p_externalId, diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index a951cbdfb56808ebdbbd98881e3b328993160d0a..31ffc06b2852c09c91af1688356a29ad72c0de78 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -11,6 +11,7 @@ */ module OneM2M_PermutationFunctions { + import from OneM2M_Types_3GPP_T8 all; import from OneM2M_TestSystem all; import from OneM2M_Templates all; import from OneM2M_Types all;//{type XSD.ID}; @@ -12224,7 +12225,7 @@ module OneM2M_PermutationFunctions { var template PrimitiveContent v_contentResponseUri; var template PrimitiveContent v_contentResponseRequestResource; var RequestStatus v_requestStatus; - var URI v_requestResourceURI; + var OneM2M_Types.URI v_requestResourceURI; var ResponseStatusCode v_statusCode; var RequestID v_requestIdentifier; var template PrimitiveContent v_primitiveContent; @@ -12746,14 +12747,14 @@ module OneM2M_PermutationFunctions { group device_trigerring { - function f_CSE_3GPP_TRIG_001(in TriggerPurpose p_triggerPurpose, in template (value) Bytes p_triggerPayload ) runs on ScefSimu system ScefSystem{ + function f_CSE_3GPP_TRIG_001(in TriggerPurpose p_triggerPurpose, in template (value) Bytes p_triggerPayload ) 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 OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(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; @@ -12776,7 +12777,7 @@ module OneM2M_PermutationFunctions { // Register AE1 vc_ae1.start(f_cse_preamble_registerAe()); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // TriggerRequest under AE @@ -12813,7 +12814,7 @@ module OneM2M_PermutationFunctions { 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 OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(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; @@ -12833,12 +12834,12 @@ module OneM2M_PermutationFunctions { // Register AE1 vc_ae1.start(f_cse_preamble_registerAe()); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + f_scefSimu_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); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); //IUT sent a 3GPP Device Trigger Request @@ -12848,11 +12849,14 @@ module OneM2M_PermutationFunctions { // Test Body // SCEF sends Device Triggering response - mcnPort.send(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering(v_deviceTriggeringResponse)))); + mcnPort.send(m_t8Response(m_t8_response_201_created(-, m_response_body_individualDeviceTriggering(valueof(v_deviceTriggeringResponse))))); // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to p_triggerStatus - v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); - + vc_ae1.start(f_cse_retrieveResource(v_triggerRequestIndex)); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_contentTriggerRequest := f_getPrimitiveContentRetrievedResource(vc_ae1); + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), p_triggerStatus))) { setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set correctly"); } else { @@ -12874,7 +12878,7 @@ module OneM2M_PermutationFunctions { 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 OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(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; @@ -12894,12 +12898,12 @@ module OneM2M_PermutationFunctions { // Register AE1 vc_ae1.start(f_cse_preamble_registerAe()); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + f_scefSimu_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); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); //IUT sent a 3GPP Device Trigger Request @@ -12909,8 +12913,8 @@ module OneM2M_PermutationFunctions { // 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 + mcnPort.send(m_t8Request(m_t8_request_post(m_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, + mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI.apiRoot & v_requestResourceURI.apiName & v_requestResourceURI.apiVersion & v_requestResourceURI.apiSpecificSuffixes & "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction tc_ac.start; alt{ @@ -12928,8 +12932,11 @@ module OneM2M_PermutationFunctions { } // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to p_triggerStatus - v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); - + vc_ae1.start(f_cse_retrieveResource(v_triggerRequestIndex)); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_contentTriggerRequest := f_getPrimitiveContentRetrievedResource(vc_ae1); + if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), p_triggerStatus))) { setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set correctly"); } else { diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index c923c87cbf98acccc5a6d2225c2c233b0ee6a0dc..f5e225941c5832ee1272cd947a67306a89b50a32 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -18726,7 +18726,7 @@ module OneM2M_Testcases_CSE_Release_3 { 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 OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(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; @@ -18748,7 +18748,8 @@ module OneM2M_Testcases_CSE_Release_3 { // Register AE1 vc_ae1.start(f_cse_preamble_registerAe()); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Container under AE @@ -18758,10 +18759,12 @@ module OneM2M_Testcases_CSE_Release_3 { // 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)); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(int3, v_containerIndex, v_updateContainer)); - + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); tc_ac.start; alt{ @@ -18807,7 +18810,7 @@ module OneM2M_Testcases_CSE_Release_3 { 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 OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(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; @@ -18825,12 +18828,14 @@ module OneM2M_Testcases_CSE_Release_3 { // Register AE1 vc_ae1.start(f_cse_preamble_registerAe()); - f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + f_scefSimu_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); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); //IUT sent a 3GPP Device Trigger Request @@ -18856,8 +18861,11 @@ module OneM2M_Testcases_CSE_Release_3 { f_sleep(3.0); // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to ERROR_NSE_NOT_FOUND - v_contentTriggerRequest := f_cse_retrieveResource(v_triggerRequestIndex); - + vc_ae1.start(f_cse_retrieveResource(v_triggerRequestIndex)); + f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_contentTriggerRequest := f_getPrimitiveContentRetrievedResource(vc_ae1); + 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 { @@ -19143,8 +19151,6 @@ module OneM2M_Testcases_CSE_Release_3 { var ScefSimu v_scef := ScefSimu.create("SCEF") alive; - var ScefSimu v_scef := ScefSimu.create("SCEF") alive; - var template (value) DeliveryResult v_deliveryResult := UNCONFIRMED; var TriggerStatus v_triggerStatus := int4;