diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index b5d0cc3f1554f8eb0f5229405cb38f7864112044..6f24b1f2327c56271af9370df064ae91832a838e 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -19,6 +19,7 @@ module OneM2M_Functions { import from OneM2M_TestSystem all; import from OneM2M_Pixits all; import from OneM2M_Pics all; + import from LibCommon_Time all; group ConfigFunctions { @@ -450,6 +451,31 @@ module OneM2M_Functions { } // end f_cf04UpCse2 + /** + @desc Ports mapping and default behaviour activation for Config 5 + */ + function f_cf05Up() runs on ScefSimu system ScefSystem { + + // Variables + + //Initialization of component variables + vc_config := e_cf05; + vc_testSystemRole := e_t8; + vc_aeSimuDesc := PX_TS_AE1; + vc_scefSimuDesc := PX_T8_SCEF; + + // Map + map(self:mcnPort, system:mcnPort) param (vc_scefSimuDesc.mcnPort); + map(self:mcnPortIn, system:mcnPortIn) param (vc_scefSimuDesc.mcnPortIn); + map(self:acPort, system:acPort); + + activate(a_default()); + + vc_ae1 := AeSimu.create("AE1") alive; + vc_ae1.start(f_cf01Up()); + vc_ae1.done; + } // end f_cf05Up + /** * @desc Ports mapping and default behaviour activation for Config 06 */ @@ -738,7 +764,18 @@ module OneM2M_Functions { }// end f_cf04DownCse2 - + function f_cf05Down() runs on ScefSimu system ScefSystem { + if(vc_ae1.alive) { + vc_ae1.start(f_cf01Down()); + vc_ae1.done; + } + + deactivate; + unmap(self:mcnPort, system:mcnPort); + unmap(self:mcnPortIn, system:mcnPortIn); + unmap(self:acPort, system:acPort); + } // end f_cf05Down + /** * @desc Ports unmapping for Config 06 */ @@ -995,7 +1032,7 @@ module OneM2M_Functions { return v_resourceIndex; } - + /** * @desc Getting the address of the last resource saved in the vc_resourcesList * @param p_tester Given component @@ -1163,6 +1200,16 @@ module OneM2M_Functions { } + /** + * @desc Sending the address of the last resource saved in the vc_resourcesList + */ + function f_sendLatestResourceAddress(AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on Tester { + + infoPort.send(f_getResourceAddress(lengthof(vc_resourcesList)-1, p_addressingMethod, p_primitiveScope)); + + } + + /** * @desc Sending of the latest resource through InfoPort */ @@ -1180,15 +1227,6 @@ module OneM2M_Functions { infoPort.send(lengthof(vc_resourcesList)-1); } - - /** - * @desc Sending the address of the last resource saved in the vc_resourcesList - */ - function f_sendLatestResourceAddress(AddressingMethod p_addressingMethod := PX_ADDRESSING_METHOD, PrimitiveScope p_primitiveScope := PX_PRIMITIVE_SCOPE) runs on Tester { - - infoPort.send(f_getResourceAddress(lengthof(vc_resourcesList)-1, p_addressingMethod, p_primitiveScope)); - - } /** * @desc Sending of the latest local resource through InfoPort @@ -1268,6 +1306,7 @@ module OneM2M_Functions { f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive); vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2); + vc_componentRegistered := true; if(ispresent(v_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){ f_sendAcPrimitive("AE-ID_changed", vc_aeIndex); @@ -1277,11 +1316,9 @@ module OneM2M_Functions { [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(inconc, __SCOPE__&":INFO: Error while registering application"); - stop; } [] tc_ac.timeout { setverdict(inconc, __SCOPE__&":INFO: No answer while registering resource"); - stop; } } @@ -1326,6 +1363,7 @@ module OneM2M_Functions { if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.aE)) { vc_aeIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, int2); + vc_componentRegistered := true; if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){ f_sendAcPrimitive("AE-ID_changed", vc_aeIndex); @@ -1336,16 +1374,13 @@ module OneM2M_Functions { { tc_ac.stop; setverdict(inconc, __SCOPE__&":INFO: Error while registering application"); - stop; } [] mcaPort.receive { tc_ac.stop; setverdict(inconc, __SCOPE__&":INFO: Unexpected message received"); - stop; } [] tc_ac.timeout { setverdict(inconc, __SCOPE__&":INFO: No answer while registering resource"); - stop; } } @@ -1714,6 +1749,7 @@ module OneM2M_Functions { v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, p_parentIndex); if(p_resourceType == int2) { vc_aeIndex := v_resourceIndex; + vc_componentRegistered := true; if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aE.aE_ID)){ f_sendAcPrimitive("AE-ID_changed", vc_aeIndex); } @@ -2161,7 +2197,7 @@ module OneM2M_Functions { } - function f_cse_generateMissingDataPoint(in integer p_timeSeriesResourceIndex) runs on AeSimu{ + function f_cse_generateMissingDataPoint(in integer p_timeSeriesResourceIndex, in integer p_timeSeriesInstanceNumber := 0) runs on AeSimu{ var RequestPrimitive v_request; var integer v_resourceIndex := -1; @@ -2173,17 +2209,21 @@ module OneM2M_Functions { //Activate defaults when running on a PTC f_cse_activateDefaults_ae(); i := 0; - while (i < 3) { + while (i < 1) { v_request := valueof(m_createTimeSeriesInstanceBase); - v_request.primitiveContent.timeSeriesInstance.resourceName := "MyTimeSeriesInstance" & int2str(i); + v_request.primitiveContent.timeSeriesInstance.resourceName := "MyTimeSeriesInstance" & int2str(p_timeSeriesInstanceNumber); + v_request.primitiveContent.timeSeriesInstance.dataGenerationTime := {alt_ := fx_generateTimestamp()}; + v_request.primitiveContent.timeSeriesInstance.dataGenerationTime.alt_ := v_request.primitiveContent.timeSeriesInstance.dataGenerationTime.alt_ & ",1234"; v_resourceIndex := f_cse_createResource(int30, v_request, p_timeSeriesResourceIndex); i := i + 1; - t_noAction.start(int2float(v_periodicInterval)); + t_noAction.start(int2float(v_periodicInterval/1000+v_missingDataDetectTimer/1000)); + t_noAction.timeout; } + //f_sleep(int2float(v_periodicInterval/1000)); //After missingDataTimerDetect, a missing data point should have been detected - t_noAction.start(int2float(v_missingDataDetectTimer)); + //t_noAction.start(int2float(v_missingDataDetectTimer)); } @@ -2306,12 +2346,49 @@ module OneM2M_Functions { v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier; f_send(e_mcaPortIn, m_response(v_responsePrimitive)); } + [] mcaPortIn.receive(mw_request(mw_notifyNotification(?))) -> value vc_request { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Notification received but the content doesn't match"); + } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No notification received"); } } } //end f_cse_notifyProcedure_representationHandler + + /** + * @desc Handling message exchange for the notification procedure for timeSeries + * @param p_timeSeriesNotification Expected timeSeriesNotification in the notification + * @verdict + */ + function f_cse_notifyProcedure_timeSeriesNotificationHandler(template TimeSeriesNotification p_timeSeriesNotification) runs on AeSimu { + // Local variables + var ResponsePrimitive v_responsePrimitive; + + //Activate defaults when running on a PTC + f_cse_activateDefaults_ae(); + + tc_ac.start; + alt { + [] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotification({timeSeriesNotification := p_timeSeriesNotification})))) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Notification received"); + //Send response in any case + v_responsePrimitive := valueof(m_responseNotification(int2000, omit)); + v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier; + f_send(e_mcaPortIn, m_response(v_responsePrimitive)); + } + [] mcaPortIn.receive(mw_request(mw_notifyNotification(?))) -> value vc_request { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ":ERROR: Notification received but the content doesn't match"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No notification received"); + } + } + + } //end f_cse_notifyProcedure_timeSeriesNotificationHandler /** * @desc Handling message exchange for the notification procedure @@ -2443,14 +2520,14 @@ module OneM2M_Functions { * @desc Handling message exchange for the notification procedure (no notification expected) * @verdict */ - function f_cse_notifyProcedure_noNotificationHandler() runs on AeSimu { + function f_cse_notifyProcedure_noNotificationHandler(float p_waitingTime := 10.0) runs on AeSimu { // Local variables var ResponsePrimitive v_responsePrimitive; //Activate defaults when running on a PTC f_cse_activateDefaults_ae(); - tc_ac.start(10.0); + tc_ac.start(p_waitingTime); alt { [] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotification(?)))) -> value vc_request { tc_ac.stop; @@ -2826,6 +2903,12 @@ module OneM2M_Functions { v_localResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, p_responseStatusCode); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } + [] mccPortIn.receive(mw_request(mw_create)) -> value vc_request { + tc_ac.stop; + v_localResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + setverdict(inconc, __SCOPE__&":INFO: Wrong expected create request"); + } [] tc_ac.timeout { setverdict(inconc, __SCOPE__&":INFO: No creation for resource received"); } @@ -2914,7 +2997,7 @@ module OneM2M_Functions { } v_response.from_ := vc_cseSimuDesc.cseId; v_response.to_ := vc_request.primitive.requestPrimitive.from_; - f_send(e_mccPortIn, m_response(v_response)); + f_send(e_mccPortIn, m_response(v_response)); } [] tc_ac.timeout { @@ -2986,6 +3069,12 @@ module OneM2M_Functions { f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } + [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { + tc_ac.stop; + v_targetResourceIndex := f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + setverdict(inconc, __SCOPE__&":INFO: Wrong expected update request"); + } [] tc_ac.timeout { setverdict(inconc, __SCOPE__&":INFO: No answer while updating resource"); } @@ -3021,6 +3110,12 @@ module OneM2M_Functions { f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } + [] mccPortIn.receive(mw_request(mw_retrieve(?))) -> value vc_request { + tc_ac.stop; + v_targetResourceIndex := f_processRetrieveRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + setverdict(inconc, __SCOPE__&":INFO: Wrong expected retrieve request"); + } [] tc_ac.timeout { setverdict(inconc, __SCOPE__&":INFO: No answer while retrieving resource"); } @@ -3135,6 +3230,12 @@ module OneM2M_Functions { f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } + [] mccPortIn.receive(mw_request(mw_delete)) -> value vc_request { + tc_ac.stop; + v_targetResourceIndex := f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + setverdict(inconc, __SCOPE__&":INFO: Wrong expected delete request"); + } [] tc_ac.timeout { setverdict(inconc, __SCOPE__&":INFO: No answer while retrieving resource"); } @@ -3242,6 +3343,10 @@ module OneM2M_Functions { setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly"); f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive); vc_remoteCseIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int16, -1); + vc_componentRegistered := true; + if(ispresent(v_response.primitive.responsePrimitive.primitiveContent.remoteCSE.cSE_ID)){ + f_sendAcPrimitive("CSE-ID_changed", vc_remoteCseIndex); + } v_localRemoteCSEResource := f_generateLocalResource(valueof(m_primitiveContentRemoteCSE(m_contentLocalRemoteCSEResource(vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))].myHost))), vc_cSEBaseIndex, int16); vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex); } @@ -3288,6 +3393,7 @@ module OneM2M_Functions { tc_ac.stop; setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly"); v_localRemoteCSEResource := f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, vc_cSEBaseIndex, int16);//TODO Get index from v_request.primitive.requestPrimitive.to_ + v_localRemoteCSEResource.remoteCSE.cSE_ID := v_request.primitive.requestPrimitive.from_; vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex); v_response := valueof(m_responsePrimitive(int2001,v_request.primitive.requestPrimitive.requestIdentifier)); @@ -3297,6 +3403,7 @@ module OneM2M_Functions { f_send(e_mccPortIn, m_response(v_response)); vc_remoteCseIndex := f_setResource(valueof(m_primitiveContentRemoteCSE(m_contentMyRemoteCSEResource(f_getLocalPoA(vc_cseSimuDesc.mcaPortIn, "")))), int16, -1, true); + vc_componentRegistered := true; v_resourceIndex := vc_remoteCseIndex; v_remoteCSERegistered:=true; tc_ac.start(10.0); @@ -3990,6 +4097,7 @@ module OneM2M_Functions { v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, p_parentIndex); if(p_resourceType == int16) { //remoteCSE vc_remoteCseIndex := v_resourceIndex; + vc_componentRegistered := true; } } [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) { @@ -5022,7 +5130,6 @@ module OneM2M_Functions { } } - return valueof(p_request); } @@ -5180,6 +5287,21 @@ module OneM2M_Functions { if(ischosen(p_contentResource.timeSeriesInstance)) { return p_contentResource.timeSeriesInstance.resourceID; } + if(ischosen(p_contentResource.semanticDescriptor)) { + return p_contentResource.semanticDescriptor.resourceID; + } + if(ischosen(p_contentResource.ontologyRepository)) { + return p_contentResource.ontologyRepository.resourceID; + } + if(ischosen(p_contentResource.ontology)) { + return p_contentResource.ontology.resourceID; + } + if(ischosen(p_contentResource.semanticMashupInstance)) { + return p_contentResource.semanticMashupInstance.resourceID; + } + if(ischosen(p_contentResource.semanticMashupJobProfile)) { + return p_contentResource.semanticMashupJobProfile.resourceID; + } //Announced resources if(ischosen(p_contentResource.accessControlPolicyAnnc)) { return f_resourceIdCleaner(p_contentResource.accessControlPolicyAnnc.resourceID); @@ -5280,6 +5402,21 @@ module OneM2M_Functions { if(ischosen(p_contentResource.timeSeriesInstance)) { return p_contentResource.timeSeriesInstance.resourceName; } + if(ischosen(p_contentResource.semanticDescriptor)) { + return p_contentResource.semanticDescriptor.resourceName; + } + if(ischosen(p_contentResource.ontologyRepository)) { + return p_contentResource.ontologyRepository.resourceName; + } + if(ischosen(p_contentResource.ontology)) { + return p_contentResource.ontology.resourceName; + } + if(ischosen(p_contentResource.semanticMashupInstance)) { + return p_contentResource.semanticMashupInstance.resourceName; + } + if(ischosen(p_contentResource.semanticMashupJobProfile)) { + return p_contentResource.semanticMashupJobProfile.resourceName; + } //Announced resources if(ischosen(p_contentResource.accessControlPolicyAnnc)) { return p_contentResource.accessControlPolicyAnnc.resourceName; @@ -6678,7 +6815,7 @@ module OneM2M_Functions { * @param data Corresponding information for the correct execution of the given action * @verdict */ - function f_sendAcPrimitive(in charstring p_event, in integer p_aeIndex) runs on Tester { + function f_sendAcPrimitive(in charstring p_event, in integer p_resourceIndex, template (omit) XSD.ID p_originator := omit) runs on Tester { var XSD.ID v_aeResourceAddress; var charstring v_spRelativeAeIdForMqtt; @@ -6686,8 +6823,8 @@ module OneM2M_Functions { case ("AE-ID_changed") { //Calculate the SP-Relative-AE-ID following format defined in TS-0010 MQTT - v_aeResourceAddress := f_getResourceAddress(p_aeIndex, e_nonHierarchical, e_spRelative); - if(vc_resourcesList[p_aeIndex].resource.aE.aE_ID[0] == "S") { + v_aeResourceAddress := f_getResourceAddress(p_resourceIndex, e_nonHierarchical, e_spRelative); + if(vc_resourcesList[p_resourceIndex].resource.aE.aE_ID[0] == "S") { v_spRelativeAeIdForMqtt := oct2char(unichar2oct(f_resourceIdCleaner(v_aeResourceAddress))); } else { v_spRelativeAeIdForMqtt := f_getSpRelativeAeIdForMqtt(v_aeResourceAddress); @@ -6710,6 +6847,25 @@ module OneM2M_Functions { } } } + case ("CSE-ID_changed") { + //TODO Check for other resource address formats + v_spRelativeAeIdForMqtt := oct2char(unichar2oct(f_resourceIdCleaner(vc_resourcesList[p_resourceIndex].resource.remoteCSE.cSE_ID))); + + if((((vc_config == e_cf02) or (vc_config == e_cf02CseSimuMaster)) and (vc_testSystemRole == e_cse)) or (vc_config == e_cf04)) { + if(vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))].myProtocolBinding == "MQTT") { + acPort.send(AcRequestPrimitive:{p_event & "_mccPort", {charstring := v_spRelativeAeIdForMqtt}}); + } + if(vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPortIn))].myProtocolBinding == "MQTT") { + acPort.send(AcRequestPrimitive:{p_event & "_mccPortIn", {charstring := v_spRelativeAeIdForMqtt}}); + } + } + } + case ("MqttSetDefaultTopicToNotRegistration") { + acPort.send(AcRequestPrimitive:{p_event, {charstring := oct2str(unichar2oct(p_originator))}}); + } + case ("MqttSetDefaultTopicToRegistration") { + acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_resourceIndex)}}); + } } } }//end of group AcFunctions @@ -6774,6 +6930,9 @@ module OneM2M_Functions { if(p_responseStatusCode == int2001) { setverdict(pass, __SCOPE__&":INFO: Resource created successfuly"); v_localResource := f_generateLocalResource(p_request.primitiveContent, v_parentIndex, p_request.resourceType); + if(p_request.resourceType == int16){ + v_localResource.remoteCSE.cSE_ID := p_request.from_; + } v_localResourceIndex := f_setLocalResource(v_localResource, p_request.resourceType, v_parentIndex); vc_response.primitive.responsePrimitive.primitiveContent := vc_localResourcesList[v_localResourceIndex].resource; } else { @@ -7062,9 +7221,47 @@ module OneM2M_Functions { p_msgOut.protocolBinding := vc_myInterfaces[enum2int(p_interfaceIds)].myProtocolBinding; p_msgOut.serialization := vc_myInterfaces[enum2int(p_interfaceIds)].mySerialization; log("f_send: protocolBinding=", p_msgOut.protocolBinding); + if(ischosen(p_msgOut.primitive.requestPrimitive)){ + p_msgOut.primitive.requestPrimitive.requestIdentifier := p_msgOut.primitive.requestPrimitive.requestIdentifier & f_rnd(1, 1000000); + vc_request.primitive.requestPrimitive := valueof(p_msgOut.primitive.requestPrimitive); + } + if(not(vc_componentRegistered)) { + if(valueof(p_msgOut.protocolBinding) == "MQTT") { + if(ischosen(p_msgOut.primitive.requestPrimitive)) { + if(ispresent(p_msgOut.primitive.requestPrimitive.resourceType)) { + if((valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int2) and (valueof(p_msgOut.primitive.requestPrimitive.resourceType) != int16)){ + //Modify default topic to publish a non-registration message + f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_)); + vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut); + f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1); + return; + } + } else {//RETRIEVE - UPDATE - DELETE - NOTIFY + //Modify default topic to publish a non-registration message + f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1, valueof(p_msgOut.primitive.requestPrimitive.from_)); + vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut); + f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1); + return; + } + } + } + } + //TODO: Handle response to normal messages before CSE registration occurs vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut); } + /** + * @desc Get a converted to string random number + * @param p_lower Lower limit + * @param p_upper Upper limit + * @return Random number converted to string + * @verdict + */ + function f_rnd(in integer p_lower, in integer p_upper) return charstring { + + return int2str(float2int(rnd() * int2float(p_upper - p_lower + 1)) + p_lower); + } + }//end of commonFunctions group externalFunctions { diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn index b8d678351797d9840e533a2f7e8bcfd79358999f..951705a53cba5509ca67a6d25d3046d3b594bd4d 100644 --- a/LibOneM2M/OneM2M_Pixits.ttcn +++ b/LibOneM2M/OneM2M_Pixits.ttcn @@ -393,12 +393,50 @@ module OneM2M_Pixits { serialization := "xml" } }; - + + modulepar ScefSimuComponentDesc PX_T8_SCEF := { + scefId := "scs_as_id_01", + mcnPort := { + t8PortDesc := { + binding := { + httpBindingDesc := { + bindingProtocol := e_http, + bindingDesc := { + tsAddress := "127.0.0.1", + remotePort := 30180, + localPort := omit, + sutAddress := "127.0.0.1", + useTls := false + } + } + }, + serialization := "json" + } + }, + mcnPortIn := { + t8PortDesc := { + binding := { + httpBindingDesc := { + bindingProtocol := e_http, + bindingDesc := { + tsAddress := "127.0.0.1", + remotePort := 30180, // SUT HTTP port + localPort := 30181, + sutAddress := "127.0.0.1", + useTls := false + } + } + }, + serialization := "json" + } + } + }; + /** * @desc Simulated Ontology Server IP address and listening port */ modulepar UrlDesc PX_TS_ONTOLOGY_SERVER := { url := "http://127.0.0.1:80/" }; - + } group ExecutionParameters { @@ -435,6 +473,5 @@ module OneM2M_Pixits { modulepar Labels PX_LABELS := {"VALUE_1"}; modulepar boolean PX_IS_LOC_CONTAINER := false;//default //set it to true when the container is created to store location information - } // end of module diff --git a/LibOneM2M/OneM2M_Ports.ttcn b/LibOneM2M/OneM2M_Ports.ttcn index dad32616c3f7422906e0d8a999f5f30843e1268a..61fe7b76cc9adc5de39769bb0797f042b4418207 100644 --- a/LibOneM2M/OneM2M_Ports.ttcn +++ b/LibOneM2M/OneM2M_Ports.ttcn @@ -14,6 +14,7 @@ module OneM2M_Ports { import from OneM2M_Types all; import from OneM2M_TypesAndValues all; + import from OneM2M_Types_3GPP_T8 all; import from XSD all; /* *************************************** @@ -35,6 +36,17 @@ module OneM2M_Ports { map param (in PortDesc p_portDesc); }; + /** + * @desc Port to transport different underlying 3GPP T8 network primitives + * @desc Output MsgOut + * @desc Input MsgIn + * @desc this port is allowed to extend for futher usage + */ + type port OneM2M_McnPort message { + inout T8Primitive; + map param (in McnPortDesc p_mcnPortDesc); + }; + /** * @desc Port to transport Adaptor Control primitives */ diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 01de67d7f01bcbf24be6ee128dc81bd188a0bcb7..c8f81f25f57de13f5136613557f3e0d6eff02775 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -18,19 +18,8 @@ module OneM2M_Templates { import from OneM2M_TypesAndValues all; import from OneM2M_Pixits all; import from OneM2M_Functions all; - - /** - * @desc Get a converted to string random number - * @param p_lower Lower limit - * @param p_upper Upper limit - * @return Random number converted to string - * @verdict - */ - function f_rnd(in integer p_lower, in integer p_upper) return charstring { - - return int2str(float2int(rnd() * int2float(p_upper - p_lower + 1)) + p_lower); - } - + + import from OneM2M_Types_3GPP_T8 all; /* Templates */ @@ -103,7 +92,7 @@ module OneM2M_Templates { operation := int2, to_ := p_targetResourceAddress, from_ := p_originator, - requestIdentifier := "m_retrieve" & f_rnd(1, 1000000), + requestIdentifier := "m_retrieve", resourceType := omit, primitiveContent := omit, roleIDs := omit, @@ -176,10 +165,10 @@ module OneM2M_Templates { * @desc Base Receive RETRIEVE request primitive * @param p_targetResourceAddress Target resource address */ - template RequestPrimitive mw_retrieve(template XSD.ID p_targetResourceAddress) := { + template RequestPrimitive mw_retrieve(template XSD.ID p_targetResourceAddress, template XSD.ID p_from := ?) := { operation := int2, to_ := p_targetResourceAddress, - from_ := ?, + from_ := p_from, requestIdentifier := ?, resourceType := omit, primitiveContent := *, @@ -209,8 +198,8 @@ module OneM2M_Templates { vendorInformation := * }; - template RequestPrimitive mw_retrieveFormalOntology(template XSD.ID p_targetResourceAddress := ?, template XSD.ID p_originator := ?, template XSD.AnyURI p_ontologyServerUri := ?) modifies mw_retrieve := { - from_ := p_originator, + template RequestPrimitive mw_retrieveFormalOntology(template XSD.ID p_targetResourceAddress := ?, template XSD.ID p_from := ?, template XSD.AnyURI p_ontologyServerUri := ?) modifies mw_retrieve := { + from_ := p_from, requestIdentifier := ?, primitiveContent := { flexContainer := mw_contentFlexContainer(p_ontologyServerUri) }, releaseVersionIndicator := "3" @@ -225,7 +214,7 @@ module OneM2M_Templates { operation := int2, to_ := p_targetResourceAddress, from_ := p_originator, - requestIdentifier := "m_retrieveResourceAttributeOptionTo" & f_rnd(1, 1000000), + requestIdentifier := "m_retrieveResourceAttributeOptionTo", resourceType := omit, primitiveContent := omit, roleIDs := omit, @@ -264,7 +253,7 @@ module OneM2M_Templates { operation := int2, to_ := p_targetResourceAddress, from_ := p_originator, - requestIdentifier := "m_retrieveResourceAttributeContentOption" & f_rnd(1, 1000000), + requestIdentifier := "m_retrieveResourceAttributeContentOption", resourceType := omit, primitiveContent := {attributeList := p_attributeList}, roleIDs := omit, @@ -300,7 +289,7 @@ module OneM2M_Templates { * @param p_originator Originator (from) */ template (value) RequestPrimitive m_retrieveFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage) modifies m_retrieve := { - requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), + requestIdentifier := "m_retrieveResourceFilterUsageOption", filterCriteria := { createdBefore := omit, createdAfter := omit, @@ -342,7 +331,7 @@ module OneM2M_Templates { * @param p_originator Originator (from) */ template (value) RequestPrimitive m_retrieveFilterCriteria(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterCriteria p_filterCriteria) modifies m_retrieve := { - requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), + requestIdentifier := "m_retrieveResourceFilterUsageOption", filterCriteria := p_filterCriteria }; @@ -354,7 +343,7 @@ module OneM2M_Templates { * @param p_labels Labels */ template (value) RequestPrimitive m_retrieveFilterUsageOptionLabel(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage, in Labels p_labels) modifies m_retrieve := { - requestIdentifier := "m_retrieveResourceFilterUsageOptionLabel" & f_rnd(1, 1000000), + requestIdentifier := "m_retrieveResourceFilterUsageOptionLabel", filterCriteria := { createdBefore := omit, createdAfter := omit, @@ -395,7 +384,7 @@ module OneM2M_Templates { * @param p_originator Originator (from) */ template (value) RequestPrimitive m_retrieveDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DesIdResType p_desIdResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieve := { - requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), + requestIdentifier := "m_retrieveResourceFilterUsageOption", filterCriteria := { createdBefore := omit, createdAfter := omit, @@ -438,7 +427,7 @@ module OneM2M_Templates { * @param p_originator Originator (from) */ template (value) RequestPrimitive m_retrieveInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieve := { - requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000), + requestIdentifier := "m_retrieveResourceFilterUsageOption", filterCriteria := { createdBefore := omit, createdAfter := omit, @@ -561,7 +550,7 @@ module OneM2M_Templates { }; - template RequestPrimitive mw_update(template XSD.ID p_from := *, template XSD.ID p_to := ?) := { + template RequestPrimitive mw_update(template XSD.ID p_from := ?, template XSD.ID p_to := ?) := { operation := int3, to_ := p_to, from_ := p_from, @@ -1045,18 +1034,18 @@ module OneM2M_Templates { /** * @desc Base CREATE request primitive for remoteCSE resource */ - template (value) RequestPrimitive m_createRemoteCSEBase(template (value) XSD.ID p_from := PX_TS_CSE1.cseId, template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName := c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId, in template (omit) XSD.ID p_cSE_ID := PX_TS_CSE1.cseId) modifies m_create := { + template (value) RequestPrimitive m_createRemoteCSEBase(template (value) XSD.ID p_from := PX_TS_CSE1.cseId, template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName := c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId) modifies m_create := { from_ := p_from,//Originator CSE-ID requestIdentifier := testcasename() & "-m_createRemoteCSE", resourceType := int16, - primitiveContent := {remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)} + primitiveContent := {remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase)} }; /** * @desc CREATE request primitive for remoteCSE resource with poa */ template (value) RequestPrimitive m_createRemoteCSE_poa(template (value) XSD.ID p_from := PX_TS_CSE1.cseId, template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName := c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId & "/" & PX_TS_CSE1.cseName, in template (omit) XSD.ID p_cSE_ID := PX_TS_CSE1.cseId, in PoaList p_poaList) modifies m_createRemoteCSEBase := { - primitiveContent := {remoteCSE := m_contentCreateRemoteCSE_poa(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID, p_poaList)} + primitiveContent := {remoteCSE := m_contentCreateRemoteCSE_poa(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_poaList)} }; /** @@ -1386,8 +1375,8 @@ module OneM2M_Templates { primitiveContent := {subscription := m_contentCreateSubscription ({"NotInitialized"})} }; - template (value) RequestPrimitive m_createSubscription(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_name, in template (value) ListOfURIs p_notificationURI := {"NotInitialized"}) modifies m_create := { - to_ := p_parentResourceAddress, + template (value) RequestPrimitive m_createSubscription(template (omit) XSD.ID p_to := omit, in template (omit) XSD.String p_name, in template (value) ListOfURIs p_notificationURI := {"NotInitialized"}) modifies m_create := { + to_ := p_to, requestIdentifier := testcasename() & "-m_createSubscription", resourceType := int23, primitiveContent := {subscription := m_contentCreateSubscription (p_notificationURI, p_name)} @@ -1462,9 +1451,9 @@ module OneM2M_Templates { primitiveContent := {semanticMashupResult := m_contentCreateSemanticMashupResult} }; - template (value) RequestPrimitive m_createSubscriptionAdvanced( XSD.ID p_parentResourceAddress, + template (value) RequestPrimitive m_createSubscriptionAdvanced( template (omit) XSD.ID p_to := "NotInitialized", in template (omit) XSD.String p_name := omit, - in template (value) ListOfURIs p_notificationURI, + in template (value) ListOfURIs p_notificationURI := {"NotInitialized"}, in template (omit) EventNotificationCriteria p_eventNotificationCriteria := omit, in template (omit) XSD.PositiveInteger p_expirationCounter := omit, in template (omit) BatchNotify p_batchNotify := omit, @@ -1562,7 +1551,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createTimeSeries(in template (omit) XSD.String p_name := c_defaultTimeSeriesResourceName, in XSD.Boolean p_missingDataDetect := true, - in XSD.NonNegativeInteger p_periodicInterval := 5, + in XSD.NonNegativeInteger p_periodicInterval := 5000, in XSD.NonNegativeInteger p_missingDataMaxNr := 5, in XSD.NonNegativeInteger p_missingDataDetectTimer := 2000) modifies m_createTimeSeriesBase := { primitiveContent := {timeSeries := m_contentCreateTimeSeriesAttributes (p_name, p_missingDataDetect, p_periodicInterval, p_missingDataMaxNr, p_missingDataDetectTimer)} @@ -2060,7 +2049,7 @@ module OneM2M_Templates { operation := int4, to_ := p_resourceAddress, from_ := p_originator, - requestIdentifier := testcasename() & "-m_delete" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_delete", resourceType := omit, primitiveContent := omit, roleIDs := omit, @@ -2089,10 +2078,10 @@ module OneM2M_Templates { vendorInformation := omit }; - template RequestPrimitive mw_delete(template XSD.ID p_resourceAddress := ?, template XSD.ID p_from := *) := { + template RequestPrimitive mw_delete(template XSD.ID p_resourceAddress := ?, template XSD.ID p_from := ?) := { operation := int4, to_ := p_resourceAddress, - from_ := ?, + from_ := p_from, requestIdentifier := ?, resourceType := omit, primitiveContent := omit, @@ -2141,7 +2130,7 @@ module OneM2M_Templates { operation := int5, to_ := p_resourceAddress, from_ := "NotInitialized", - requestIdentifier := testcasename() & "-m_notify" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_notify", resourceType := omit, primitiveContent := {notification := m_contentNotification_allOmit}, roleIDs := omit, @@ -2193,7 +2182,7 @@ module OneM2M_Templates { operation := int5, to_ := "NotInitialized", from_ := omit, - requestIdentifier := testcasename() & "-m_notifyAggregatedNotification" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_notifyAggregatedNotification", resourceType := omit, primitiveContent := {aggregatedNotification := {notification_list := {m_contentNotification_allOmit,m_contentNotification_allOmit}}}, roleIDs := omit, @@ -2638,9 +2627,9 @@ module OneM2M_Templates { template (value) AccessControlRule m_createAcr (in template (value) ListOfURIs p_acor, in template (value) AccessControlOperations p_allowedOperations) := { accessControlOriginators := p_acor,//{"*"},//{PX_AE_ID_STEM}, //{"admin:admin"}, accessControlOperations := p_allowedOperations, - accessControlContexts_list := {}, + accessControlContexts_list := omit, accessControlAuthenticationFlag := omit, - accessControlObjectDetails_list := {} + accessControlObjectDetails_list := omit } /*template (value) CSEBase_optional m_contentCreateCSEBase (in template (value) ServiceSubscribedAppRule p_serviceSubscribedAppRule) := { @@ -3303,8 +3292,9 @@ module OneM2M_Templates { /** * @desc Base primitiveContent for CREATE operation for SemanticDescriptor resource */ - template (value) SemanticDescriptor_optional m_contentCreateSemanticDescriptor := { - resourceName := omit, //O + template (value) SemanticDescriptor_optional m_contentCreateSemanticDescriptor(in SemanticFormat p_descriptorRepresentation := int4, + in XSD.Base64Binary p_descriptor := c_validDescriptor) := { + resourceName := omit, //O resourceType := omit, //NP resourceID := omit, //NP parentID := omit, //NP @@ -3317,9 +3307,9 @@ module OneM2M_Templates { announcedAttribute := omit, //O dynamicAuthorizationConsultationIDs := omit, //O creator := omit, //O - descriptorRepresentation := omit, //M + descriptorRepresentation := p_descriptorRepresentation, //M semanticOpExec := omit, //NP - descriptor := omit, //M + descriptor := p_descriptor, //M ontologyRef := omit, //O relatedSemantics := omit, //O semanticValidated := omit, //NP @@ -3576,7 +3566,7 @@ module OneM2M_Templates { expireAfter := omit, sizeAbove := omit, sizeBelow := omit, - operationMonitor_list := {}, + operationMonitor_list := omit, attribute := p_attribute_list, notificationEventType_list := p_notificationEventType_list,// TODO this list should be able to be omited see 9.6.8 (TS0001) childResourceType := omit, @@ -3610,7 +3600,7 @@ module OneM2M_Templates { announcedAttribute := omit,//O stateTag := omit,//NP creator := omit,//O - contentInfo := "a",//O + contentInfo := "text/strings:0",//O contentSize := omit,//NP contentRef := omit, //O ontologyRef := omit,//O @@ -3831,7 +3821,7 @@ module OneM2M_Templates { * @desc Base primitiveContent for CREATE operation for RemoteCSE resource * @param p_name Resource name */ - template (value) RemoteCSE_optional m_contentCreateRemoteCSE (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId, in template (omit) XSD.ID p_cSE_ID := PX_TS_CSE1.cseId):= { + template (value) RemoteCSE_optional m_contentCreateRemoteCSE (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId):= { resourceName := p_name,//O resourceType := omit,//NP resourceID := omit,//NP @@ -3847,7 +3837,7 @@ module OneM2M_Templates { cseType := omit,//O pointOfAccess := omit,//O cSEBase := valueof(p_cSEBase),//M - cSE_ID := valueof(p_cSE_ID),//M + cSE_ID := omit,//M m2M_Ext_ID := omit,//O trigger_Recipient_ID := omit,//O requestReachability := false,//M @@ -3868,7 +3858,7 @@ module OneM2M_Templates { * @desc PrimitiveContent for CREATE operation for RemoteCSE resource with poa * @param p_name Resource name */ - template (value) RemoteCSE_optional m_contentCreateRemoteCSE_poa (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId & "/" & PX_TS_CSE1.cseName, in template (omit) XSD.ID p_cSE_ID := PX_TS_CSE1.cseId, in PoaList p_poaList):= { + template (value) RemoteCSE_optional m_contentCreateRemoteCSE_poa (in template (omit) XSD.String p_name := c_defaultRemoteCSEResourceName, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.AnyURI p_cSEBase := PX_TS_CSE1.cseId & "/" & PX_TS_CSE1.cseName, in PoaList p_poaList):= { resourceName := p_name,//O resourceType := omit,//NP resourceID := omit,//NP @@ -3884,7 +3874,7 @@ module OneM2M_Templates { cseType := omit,//O pointOfAccess := p_poaList,//O cSEBase := valueof(p_cSEBase),//M - cSE_ID := valueof(p_cSE_ID),//M + cSE_ID := omit,//M m2M_Ext_ID := omit,//O trigger_Recipient_ID := omit,//O requestReachability := true,//M @@ -3920,7 +3910,7 @@ module OneM2M_Templates { cseType := *,//O pointOfAccess := *,//O cSEBase := ?,//M - cSE_ID := ?,//M + cSE_ID := *,//M m2M_Ext_ID := *,//O trigger_Recipient_ID := *,//O requestReachability := ?,//M @@ -6519,7 +6509,7 @@ module OneM2M_Templates { metaInformation := ?,//M primitiveContent := *,//O requestStatus := ?,//M - operationResult := ?,//M + operationResult := *,//M choice := *//O }; @@ -7049,6 +7039,10 @@ module OneM2M_Templates { } }; + template Representation mw_timeSeriesNotification (TimeSeriesNotification p_timeSeriesNotification) := { + timeSeriesNotification := p_timeSeriesNotification + } + template (value) Node_optional m_contentNode_allOmit := { resourceName := omit, @@ -7163,6 +7157,11 @@ module OneM2M_Templates { missingDataList := p_missingDataList, missingDataCurrentNr := p_missingDataCurrentNr } + + template TimeSeriesNotification mw_contentTimeSeriesNotification(in template MissingDataList p_missingDataList := *, in template XSD.NonNegativeInteger p_missingDataCurrentNr := *) := { + missingDataList := p_missingDataList, + missingDataCurrentNr := p_missingDataCurrentNr + } template TimeSeries_optional mw_contentTimeSeries_rc1 modifies mw_contentTimeSeriesBase := { choice := omit //O @@ -7961,7 +7960,7 @@ module OneM2M_Templates { template (value) ResponsePrimitive m_responseNotification(ResponseStatusCode p_statusCode, in template(omit) PrimitiveContent p_notification := omit) := { responseStatusCode := p_statusCode, - requestIdentifier := testcasename() & "-m_responseNotification" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_responseNotification", primitiveContent := p_notification, to_ := omit, from_ := omit, @@ -8103,7 +8102,7 @@ module OneM2M_Templates { operation := int1, to_ := "NotInitialized", from_ := "UNINITIALIZED", - requestIdentifier := testcasename() & "-m_utCreate" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreate", resourceType := omit, primitiveContent := omit, roleIDs := omit, @@ -8136,7 +8135,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateAe modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateAe" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateAe", resourceType := int2, primitiveContent := {aE := m_contentAe_allOmit} } @@ -8144,7 +8143,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateContainer modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateContainer" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateContainer", resourceType := int3, primitiveContent := {container := valueof(mw_contentContainer_allOmit)} } @@ -8152,7 +8151,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateContentInstance modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateContentInstance" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateContentInstance", resourceType := int4, primitiveContent := {contentInstance := m_contentContentInstance_allOmit} } @@ -8160,7 +8159,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateSubscription modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateSubscription" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateSubscription", resourceType := int23, primitiveContent := {subscription := m_contentSubscription} } @@ -8168,7 +8167,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateRemoteCSE modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateRemoteCSE" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateRemoteCSE", resourceType := int16, primitiveContent := {remoteCSE := m_contentRemoteCSE_allOmit} } @@ -8176,7 +8175,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreatePollingChannel modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreatePollingChannel" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreatePollingChannel", resourceType := int15, primitiveContent := {pollingChannel := mw_contentPollingChannel_allOmit} } @@ -8187,7 +8186,7 @@ module OneM2M_Templates { operation := int2, to_ := p_targetResourceAddress, from_ := "UNINITIALIZED", - requestIdentifier := "m_utRetrieveResource" & f_rnd(1, 1000000), + requestIdentifier := "m_utRetrieveResource", resourceType := omit, primitiveContent := omit, roleIDs := omit, @@ -8220,7 +8219,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utRetrievePollingChannelUri(XSD.ID p_targetResourceAddress) modifies m_utRetrieve := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utRetrievePollingChannelUri" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utRetrievePollingChannelUri", resourceType := int15, primitiveContent := {pollingChannel := m_contentRetrievePollingChannel} } @@ -8228,7 +8227,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utRetrieveRemoteCSE(XSD.ID p_targetResourceAddress) modifies m_utRetrieve := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utRetrieveRemoteCSE" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utRetrieveRemoteCSE", resourceType := int16, primitiveContent := {remoteCSE := m_contentRemoteCSE_allOmit} } @@ -8239,7 +8238,7 @@ module OneM2M_Templates { operation := int3, to_ := "NotInitialized", from_ := "UNINITIALIZED", - requestIdentifier := testcasename() & "-m_utUpdate" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utUpdate", resourceType := omit, primitiveContent := omit, roleIDs := omit, @@ -8272,7 +8271,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utUpdateAe modifies m_utUpdate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utUpdateContainer" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utUpdateContainer", resourceType := int2, primitiveContent := {aE := m_contentUpdateAe} } @@ -8280,7 +8279,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utUpdateContainer modifies m_utUpdate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utUpdateContainer" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utUpdateContainer", resourceType := int3, primitiveContent := {container := m_contentUpdateContainer} } @@ -8291,7 +8290,7 @@ module OneM2M_Templates { operation := int4, to_ := "NotInitialized", from_ := "UNINITIALIZED", - requestIdentifier := testcasename() & "-m_utDeleteRequest" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utDeleteRequest", resourceType := omit, primitiveContent := omit, roleIDs := omit, @@ -8389,7 +8388,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateRole modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateRole" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateRole", resourceType := int31, primitiveContent := {role := valueof(mw_contentRole_allOmit)} } @@ -8397,7 +8396,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateToken modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateToken" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateToken", resourceType := int32, primitiveContent := {token := valueof(mw_contentToken_allOmit)} } @@ -8405,7 +8404,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateFlexContainer modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateFlexContainer" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateFlexContainer", resourceType := int28, primitiveContent := {flexContainer := m_contentFlexContainer_allOmit} } @@ -8413,7 +8412,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceAirConditioner modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceAirConditioner" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceAirConditioner", resourceType := int28, primitiveContent := {deviceAirConditioner := m_contentDeviceAirConditioner_allOmit} } @@ -8421,7 +8420,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceClothesWasherDryer modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceClothesWasherDryer" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceClothesWasherDryer", resourceType := int28, primitiveContent := {deviceClothesWasherDryer := m_contentDeviceClothesWasherDryer_allOmit} } @@ -8429,7 +8428,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceElectricVehicleCharger modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceElectricVehicleCharger" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceElectricVehicleCharger", resourceType := int28, primitiveContent := {deviceElectricVehicleCharger := m_contentDeviceElectricVehicleCharger_allOmit} } @@ -8437,7 +8436,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceLight modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceLightr" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceLightr", resourceType := int28, primitiveContent := {deviceLight := m_contentDeviceLight_allOmit} } @@ -8445,7 +8444,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceMicrogeneration modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceMicrogeneration" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceMicrogeneration", resourceType := int28, primitiveContent := {deviceMicrogeneration := m_contentDeviceMicrogeneration_allOmit} } @@ -8453,7 +8452,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceOven modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceOven" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceOven", resourceType := int28, primitiveContent := {deviceOven := m_contentDeviceOven_allOmit} } @@ -8461,7 +8460,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceRefrigerator modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceRefrigerator" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceRefrigerator", resourceType := int28, primitiveContent := {deviceRefrigerator := m_contentDeviceRefrigerator_allOmit} } @@ -8469,7 +8468,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceRobotCleaner modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceRobotCleaner" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceRobotCleaner", resourceType := int28, primitiveContent := {deviceRobotCleaner := m_contentDeviceRobotCleaner_allOmit} } @@ -8477,7 +8476,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceSmartElectricMeter modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceSmartElectricMeter" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceSmartElectricMeter", resourceType := int28, primitiveContent := {deviceSmartElectricMeter := m_contentDeviceSmartElectricMeter_allOmit} } @@ -8485,7 +8484,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceStorageBattery modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceStorageBattery" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceStorageBattery", resourceType := int28, primitiveContent := {deviceStorageBattery := m_contentDeviceStorageBattery_allOmit} } @@ -8493,7 +8492,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceTelevision modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceTelevision" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceTelevision", resourceType := int28, primitiveContent := {deviceTelevision := m_contentDeviceTelevision_allOmit} } @@ -8501,7 +8500,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceThermostat modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceThermostat" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceThermostat", resourceType := int28, primitiveContent := {deviceThermostat := m_contentDeviceThermostat_allOmit} } @@ -8509,7 +8508,7 @@ module OneM2M_Templates { template (value) UtTriggerPrimitive m_utCreateDeviceWaterHeater modifies m_utCreate := { requestPrimitive := { - requestIdentifier := testcasename() & "-m_utCreateDeviceWaterHeater" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utCreateDeviceWaterHeater", resourceType := int28, primitiveContent := {deviceWaterHeater := m_contentDeviceWaterHeater_allOmit} } @@ -8520,7 +8519,7 @@ module OneM2M_Templates { operation := int5, to_ := "NotInitialized", from_ := "UNINITIALIZED", - requestIdentifier := testcasename() & "-m_utNotify" & f_rnd(1, 1000000), + requestIdentifier := testcasename() & "-m_utNotify", resourceType := omit, primitiveContent := omit, roleIDs := omit, @@ -8550,6 +8549,348 @@ module OneM2M_Templates { }, forcedFields := omit }; - } - + } + + group t8_primitives { + + template (value) T8Primitive m_t8Request( + in template (value) T8Request p_t8Request + ) := { + t8Request := p_t8Request + } // End of template m_t8Request + + template (present) T8Primitive mw_t8Request( + in template (present) T8Request p_t8Request := ? + ) := { + t8Request := p_t8Request + } // End of template mw_t8Request + + template (value) T8Primitive m_t8Response( + in template (value) T8Response p_t8Response + ) := { + t8Response := p_t8Response + } // End of template m_t8Response + + template (present) T8Primitive mw_t8Response( + in template (present) T8Response p_t8Response := ? + ) := { + t8Response := p_t8Response + } // End of template mw_t8Response + + template (omit) OneM2M_Types_3GPP_T8.URI m_uri_3gpp_nidd( + in charstring p_apiRoot := "/", + in template (omit) charstring p_apiSpecificSuffixes := omit, + in template (omit) OneM2M_Types_3GPP_T8.URI.queryParameters p_queryParameters := omit + ) := { + apiRoot := p_apiRoot, + apiName := "3gpp-nidd", + apiVersion := "v1", + apiSpecificSuffixes := p_apiSpecificSuffixes, + queryParameters := p_queryParameters + } // End of template m_uri_3gpp_nidd + + template (present) OneM2M_Types_3GPP_T8.URI mw_uri_3gpp_nidd( + template (present) charstring p_apiRoot := ?, + template charstring p_apiSpecificSuffixes := *, + template OneM2M_Types_3GPP_T8.URI.queryParameters p_queryParameters := * + ) := { + apiRoot := p_apiRoot, + apiName := "3gpp-nidd", + apiVersion := "v1", + apiSpecificSuffixes := p_apiSpecificSuffixes, + queryParameters := p_queryParameters + } // End of template mw_uri_3gpp_nidd + + template (omit) 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 + ) modifies m_uri_3gpp_nidd := { + apiName := "3gpp-device-triggering" + } // End of template m_uri_3gpp_device_triggering + + template (present) OneM2M_Types_3GPP_T8.URI mw_uri_3gpp_device_triggering( + template (present) charstring p_apiRoot := ?, + template charstring p_apiSpecificSuffixes := *, + template OneM2M_Types_3GPP_T8.URI.queryParameters p_queryParameters := * + ) modifies mw_uri_3gpp_nidd := { + apiName := "3gpp-device-triggering" + } // End of template mw_uri_3gpp_device_triggering + + } // End of group t8_primitives + + group t8_request { + + template (omit) T8Request m_t8_request_get( + in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri, + in template (value) RequestHeaders p_requestHeaders, + in template (omit) RequestBody p_requestBody := omit + ) := { + resourceMethod := GET, + resourceUri := p_resourceUri, + requestHeaders := p_requestHeaders, + requestBody := p_requestBody + } // End of template m_t8_request_get + + template (omit) T8Request m_t8_request_post( + in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri, + in template (value) RequestHeaders p_requestHeaders, + in template (omit) RequestBody p_requestBody := omit + ) modifies m_t8_request_get := { + resourceMethod := POST + } // End of template m_t8_request_post + + template (present) T8Request mw_t8_request_post( + template (present) OneM2M_Types_3GPP_T8.URI p_resourceUri := ?, + template (present) RequestHeaders p_requestHeaders := ?, + template (present) RequestBody p_requestBody := ? + ) := { + resourceMethod := POST, + resourceUri := p_resourceUri, + requestHeaders := p_requestHeaders, + requestBody := p_requestBody + } // End of template mw_t8_request_post + + template (omit) T8Request m_t8_request_delete( + in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri, + in template (value) RequestHeaders p_requestHeaders, + in template (omit) RequestBody p_requestBody := omit + ) modifies m_t8_request_get := { + resourceMethod := DELETE + } // End of template m_t8_request_delete + + template (omit) T8Request m_t8_request_patch( + in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri, + in template (value) RequestHeaders p_requestHeaders, + in template (omit) RequestBody p_requestBody := omit + ) modifies m_t8_request_get := { + resourceMethod := PATCH + } // End of template m_t8_request_patch + + template (omit) T8Request m_t8_request_put( + in template (value) OneM2M_Types_3GPP_T8.URI p_resourceUri, + in template (value) RequestHeaders p_requestHeaders, + in template (omit) RequestBody p_requestBody := omit + ) modifies m_t8_request_get := { + resourceMethod := PUT + } // End of template m_t8_request_put + + } // End of group t8_request + + group t8_response { + + template (omit) T8Response m_t8_response_200_ok( + in template (present) ResponseHeaders p_responseHeaders + ) := { + responseCode := 200, + responseHeaders := p_responseHeaders, + responseBody := omit + } // End of template m_t8_response_200_ok + + template T8Response mw_t8_response_200_ok( + template (present) ResponseHeaders p_responseHeaders := ?, + template ResponseBody p_responseBody := * + ) := { + responseCode := 200, + responseHeaders := p_responseHeaders, + responseBody := p_responseBody + } // End of template mw_t8_response_200_ok + + template T8Response mw_t8_response_201_created( + template (present) ResponseHeaders p_responseHeaders := ?, + template ResponseBody p_responseBody := * + ) modifies mw_t8_response_200_ok := { + responseCode := 201 + } // End of template mw_t8_response_201_ok + + template T8Response mw_t8_response_204_no_content( + template (present) ResponseHeaders p_responseHeaders := ?, + template ResponseBody p_responseBody := * + ) modifies mw_t8_response_200_ok := { + responseCode := 204, + responseBody := omit + } // End of template mw_t8_response_204_no_content + + template T8Response mw_t8_response_ko( + template (present) ResponseHeaders p_responseHeaders := ?, + template ProblemDetails p_problemDetails := ? + ) := { + responseCode := ?, + responseHeaders := p_responseHeaders, + responseBody := { problemDetails := p_problemDetails } + } // End of template mw_t8_response_ko + + template T8Response mw_t8_response_404_not_found( + template (present) ResponseHeaders p_responseHeaders := ?, + template ProblemDetails p_problemDetails := ? + ) modifies mw_t8_response_ko := { + responseCode := 404 + } // End of template mw_t8_response_404_not_found + + } // End of group t8_response + + group nidd { + + template (value) RequestBody m_request_body_niddConfiguration( + in template (value) NiddConfiguration p_niddConfiguration + ) := { + individualNiddConfiguration := p_niddConfiguration + } // End of template m_request_body_niddConfiguration + + template (present) RequestBody mw_request_body_deviceTriggeringDeliveryReportNotification( + template (present) DeviceTriggeringDeliveryReportNotification p_deviceTriggeringDeliveryReportNotification := ? + ) := { + deviceTriggeringDeliveryReportNotification := p_deviceTriggeringDeliveryReportNotification + } // End of template mw_request_body_deviceTriggeringDeliveryReportNotification + + template (value) NiddConfiguration m_niddConfiguration := { + self_ := "self_value", + supportedFeatures := Notification_test_event, + mtcProviderId := "mtcProviderId_value", + externalId := "externalId_value", + msisdn := "msisdn_value", + externalGroupId := "externalGroupId_value", + duration_ := omit, + reliableDataService := omit, + rdsPorts := omit, + pdnEstablishmentOptions := omit, + notificationDestination := "/", + requestTestNotification := omit, + websockNotifConfig := omit, + maximumPacketSize := omit, + niddDownlinkDataTransfers := omit, + status := ACTIVE + } // End of template m_niddConfiguration + + template (present) NiddConfiguration mw_niddConfiguration( + template (present) Link p_notificationDestination := ? + ) := { + self_ := *, + supportedFeatures := *, + mtcProviderId := *, + externalId := *, + msisdn := *, + externalGroupId := *, + duration_ := *, + reliableDataService := *, + rdsPorts := *, + pdnEstablishmentOptions := *, + notificationDestination := p_notificationDestination, + requestTestNotification := *, + websockNotifConfig := *, + maximumPacketSize := *, + niddDownlinkDataTransfers := *, + status := * + } // End of template mw_niddConfiguration + + template (value) DeviceTriggeringDeliveryReportNotification m_deviceTriggeringDeliveryReportNotification( + in template (value) Link p_transaction, + in template (value) DeliveryResult p_result + ) := { + transaction := p_transaction, + result := p_result + } // End of template m_deviceTriggeringDeliveryReportNotification + + template (present) DeviceTriggeringDeliveryReportNotification mw_deviceTriggeringDeliveryReportNotification( + template (present) Link p_transaction := ?, + template (present) DeliveryResult p_result := ? + ) := { + transaction := p_transaction, + result := p_result + } // End of template mw_deviceTriggeringDeliveryReportNotification + + template (present) ResponseBody mw_response_body_niddConfigurations( + template (present) NiddConfigurations p_niddConfigurations := ? + ) := { + niddConfigurations := p_niddConfigurations + } // End of template mw_response_body_niddConfigurations + + template (present) ResponseBody mw_response_body_individualNiddConfiguration( + template (present) NiddConfiguration p_individualNiddConfiguration := ? + ) := { + individualNiddConfiguration := p_individualNiddConfiguration + } // End of template mw_response_body_individualNiddConfiguration + + } // End of group nidd + + group deviceTriggering { + + template (value) RequestBody m_request_body_deviceTriggering( + in template (value) DeviceTriggering p_deviceTriggeringTransaction + ) := { + individualDeviceTriggeringTransaction := p_deviceTriggeringTransaction + } // End of template m_request_body_deviceTriggering + + template (value) ResponseBody m_response_body_deviceTriggerings( + in template (value) DeviceTriggerings p_deviceTriggeringTransactions + ) := { + deviceTriggeringTransactions := p_deviceTriggeringTransactions + } // End of template m_response_body_deviceTriggerings + + template (present) ResponseBody mw_response_body_deviceTriggerings( + template (present) DeviceTriggerings p_deviceTriggeringTransactions := ? + ) := { + deviceTriggeringTransactions := p_deviceTriggeringTransactions + } // End of template mw_response_body_deviceTriggerings + + template (present) ResponseBody mw_response_body_individualDeviceTriggering( + template (present) DeviceTriggering p_deviceTriggeringTransaction := ? + ) := { + individualDeviceTriggeringTransaction := p_deviceTriggeringTransaction + } // End of template mw_response_body_individualDeviceTriggering + + template (value) DeviceTriggering m_deviceTriggering_externalId( + 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 + ) := { + self_ := omit, + externalId := p_externalId, + msisdn := omit, + supportedFeatures := omit, + validityPeriod := p_validityPeriod, + priority := p_priority, + applicationPortId := p_applicationPortId, + appSrcPortId := omit, + triggerPayload := p_triggerPayload, + notificationDestination := p_notificationDestination, + requestTestNotification := omit, + websockNotifConfig := omit, + deliveryResult := omit + } // End of template m_deviceTriggering_externalId + + template (present) DeviceTriggering mw_deviceTriggering_externalId( + template (present) ExternalId p_externalId := ?, + template (present) DurationSec p_validityPeriod := ?, + template (present) Priority p_priority := ?, + template (present) Port p_applicationPortId := ?, + template (present) Bytes p_triggerPayload := ?, + template (present) Link p_notificationDestination := ? + ) := { + self_ := *, + externalId := p_externalId, + msisdn := omit, + supportedFeatures := *, + validityPeriod := p_validityPeriod, + priority := p_priority, + applicationPortId := p_applicationPortId, + appSrcPortId := *, + triggerPayload := p_triggerPayload, + notificationDestination := p_notificationDestination, + requestTestNotification := *, + websockNotifConfig := *, + deliveryResult := * + } // End of template mw_deviceTriggeringTransaction + + } // End of group deviceTriggering + + template (present) ResponseBody mw_response_body_problem_details( + template (present) ProblemDetails p_problemDetails := ? + ) := { + problemDetails := p_problemDetails + } // End of template mw_response_body_problem_details + } // end of module diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index be995d3c68e4903521b0a4c42627b8a42b4ef06b..5496914b07aee39781d052df5b525087a699bb9d 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -11,6 +11,7 @@ */ module OneM2M_TestSystem { + import from OneM2M_Types_3GPP_T8 all; import from OneM2M_Types all; import from OneM2M_TypesAndValues all; import from LibCommon_Time all; @@ -50,6 +51,7 @@ module OneM2M_TestSystem { //About configuration of the component var Configurations vc_config; var TestSystemRole vc_testSystemRole; + var boolean vc_componentRegistered := false; //Default behaviour var default vc_aeSimu := null; var default vc_cseSimu := null; @@ -110,6 +112,27 @@ module OneM2M_TestSystem { var boolean vc_auxiliaryCse2Up := false; }; + type component ScefSimu extends Tester { + //Attached components depending on config + var AeSimu vc_ae1; + var CseSimu vc_cse1; + //Attached components depending on config + //Ports + port OneM2M_McnPort mcnPort; + port OneM2M_McnPort mcnPortIn; + //global variables + var AeSimuComponentDesc vc_aeSimuDesc; + var CseSimuComponentDesc vc_cseSimuDesc; + var CseTypeID vc_cseType; //cseType of the simulated CSE. IN =1, MN = 2 + //About configuration of the component + var ScefSimuComponentDesc vc_scefSimuDesc; + //Resources list + //NIDD API + var NiddConfigurations vc_configurations := {}; + //Resource index + //Status of attached component + }; + type component InCseSimu extends CseSimu { } @@ -131,6 +154,11 @@ module OneM2M_TestSystem { port AdapterControlPort acPort; port UpperTesterPort utPort; } + + type component ScefSystem extends CseSystem { + port OneM2M_McnPort mcnPort; + port OneM2M_McnPort mcnPortIn; + } }// end of module with { diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn index 3aa24eaebf17ea847c1e83e8d67c41cb80746714..e38c7f43c0130183f3ada473ed43476e2acb7919 100644 --- a/LibOneM2M/OneM2M_TypesAndValues.ttcn +++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn @@ -14,6 +14,7 @@ module OneM2M_TypesAndValues { import from XSD all; import from OneM2M_Types all; import from OneM2M_Types_homeDevice all; + import from LibCommon_TextStrings all; group ResourceNames { /* Constants */ @@ -49,9 +50,9 @@ module OneM2M_TypesAndValues { const XSD.String c_defaultRoleResourceName := "MyRoleResource"; const XSD.String c_defaultTokenResourceName := "MyTokenResource"; const XSD.String c_defaultGenericInterworkingServiceResourceName := "MyGenericInterworkingServiceResource"; //<genericInterworkingService> - const XSD.String c_defaultAe1ResourceName := "MyAe1"; - const XSD.String c_defaultAe2ResourceName := "MyAe2"; - const XSD.String c_defaultAcpResourceName := "MyAcp"; + const XSD.String c_defaultAe1ResourceName := "MyAe1"; + const XSD.String c_defaultAe2ResourceName := "MyAe2"; + const XSD.String c_defaultAcpResourceName := "MyAcp"; const charstring c_invalid_location_update_period := "-PT30M10S" ;//duration set to invalid value (minus value) const XSD.ID c_resourceShortNameLatest := "la"; //<latest> const XSD.ID c_resourceShortNameOldest := "ol"; //<oldest> @@ -4099,6 +4100,7 @@ group OtherTypes { e_cf02CseSimuMaster, e_cf03, e_cf04, + e_cf05, e_cf06, e_cf06DasSimuMaster, e_cf07, @@ -4110,7 +4112,8 @@ group OtherTypes { e_ae, e_ae_ipe, e_das, - e_os + e_os, + e_t8 }; type NhURI ParentID; @@ -4383,7 +4386,11 @@ group OtherTypes { MqttBindingDesc mqttBindingDesc, WSBindingDesc wsBindingDesc } - + + template BindingProtocolsSelect m_httpBindingDesc := { + httpBindingDesc := ? + } + /** * @desc * @member binding @@ -4392,6 +4399,31 @@ group OtherTypes { type record PortDesc { BindingProtocolsSelect binding, SerializationRepresentations serialization + } + + /** + * @desc + * @member binding + * @member serialization + */ + type record T8PortDesc { + BindingProtocolsSelect binding ({httpBindingDesc := ?}), + SerializationRepresentations serialization ("json") + } + + type BindingProtocolsSelect MyInterface ({httpBindingDesc:=?}, {coapBindingDesc := ?}); + + /** + * @desc + * @member binding + * @member serialization + */ + type union McnPortDesc { + T8PortDesc t8PortDesc + } + + template McnPortDesc m_t8PortDesc := { + t8PortDesc := ? } /** @@ -4455,11 +4487,60 @@ group OtherTypes { PortDesc mccPortIn } + /** + * @desc ScefSimu component settings + * @member mcnPort TTCN-3 'mcn' protocol for sending to the SUT + * @member mcnPortIn TTCN-3 'mcn' protocol for receiving from the SUT + */ + type record ScefSimuComponentDesc { + /** + * @desc Test System SCEF ID + */ + XSD.ID scefId, + McnPortDesc mcnPort ({t8PortDesc := ?}), + McnPortDesc mcnPortIn ({t8PortDesc := ?}) + } + } with { encode "adapter"; } // End of group tsSettings +group Values { + const XSD.Base64Binary c_validDescriptor := char2oct("<?xml version=""1.0""?>"&c_CRLF& + "<rdf:RDF xmlns=""http://www.onem2m.org/ontology/houses_temperature_example#"""&c_CRLF& + c_TAB&c_TAB&"xml:base=""http://www.onem2m.org/ontology/houses_temperature_example"""&c_CRLF&c_CRLF& + c_TAB&c_TAB&"xmlns:temperature_example=""http://www.onem2m.org/ontology/temperature_example#"""&c_CRLF& + c_TAB&c_TAB&"xmlns:rdf=""http://www.w3.org/1999/02/22-rdf-syntax-ns#"""&c_CRLF& + c_TAB&c_TAB&"xmlns:owl=""http://www.w3.org/2002/07/owl#"""&c_CRLF& + c_TAB&c_TAB&"xmlns:xml=""http://www.w3.org/XML/1998/namespace"""&c_CRLF& + c_TAB&c_TAB&"xmlns:xsd=""http://www.w3.org/2001/XMLSchema#"""&c_CRLF& + c_TAB&c_TAB&"xmlns:rdfs=""http://www.w3.org/2000/01/rdf-schema#"">"&c_CRLF& + "<owl:NamedIndividual rdf:about=""http://www.onem2m.org/ontology/houses_temperature_example#Fridge1"">"&c_CRLF& + "<rdf:type rdf:resource=""http://www.onem2m.org/ontology/temperature_example#Fridge""/>"&c_CRLF& + "<temperature_example:hasFridgeTemperature rdf:resource=""http://www.onem2m.org/ontology/houses_temperature_example#FridgeTempProperty""/>"&c_CRLF& + "</owl:NamedIndividual>"&c_CRLF& + "<owl:NamedIndividual rdf:about=""http://www.onem2m.org/ontology/houses_temperature_example#FridgeTempProperty"">"&c_CRLF& + "<rdf:type rdf:resource=""http://www.onem2m.org/ontology/temperature_example#TemperatureProperty""/>"&c_CRLF& + "<temperature_example:hasDatatype>xsd:double</temperature_example:hasDatatype>"&c_CRLF& + "<temperature_example:hasUnit rdf:datatype=""http://www.w3.org/2001/XMLSchema#string"">Celsius</temperature_example:hasUnit>"&c_CRLF& + "<temperature_example:valueIsStoredIn>http://in.provider.com:7579/server/tempsensorae4/temperature/latest</temperature_example:valueIsStoredIn>"&c_CRLF& + "</owl:NamedIndividual>"&c_CRLF& + "<owl:NamedIndividual rdf:about=""http://www.onem2m.org/ontology/houses_temperature_example#FridgeTempSensor"">"&c_CRLF& + "<rdf:type rdf:resource=""http://www.onem2m.org/ontology/temperature_example#TemperatureSensor""/>"&c_CRLF& + "<temperature_example:hasTemperatureMeasuringFunction rdf:resource=""http://www.onem2m.org/ontology/houses_temperature_example#TempFunction4""/>"&c_CRLF& + "</owl:NamedIndividual>"&c_CRLF& + "<owl:NamedIndividual rdf:about=""http://www.onem2m.org/ontology/houses_temperature_example#TempFunction4"">"&c_CRLF& + "<rdf:type rdf:resource=""http://www.onem2m.org/ontology/temperature_example#TemperatureMeasuringFunction""/>"&c_CRLF& + "<temperature_example:measuresTemperature rdf:resource=""http://www.onem2m.org/ontology/houses_temperature_example#FridgeTempProperty""/>"&c_CRLF& + "</owl:NamedIndividual>"&c_CRLF& + "</rdf:RDF>"); + + const charstring c_encodedValidDescriptor := "PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxyZGY6UkRGIHhtbG5zPSJodHRwOi8vd3d3Lm9uZW0ybS5vcmcvb250b2xvZ3kvaG91c2VzX3RlbXBlcmF0dXJlX2V4YW1wbGUjIgogICAgIHhtbDpiYXNlPSJodHRwOi8vd3d3Lm9uZW0ybS5vcmcvb250b2xvZ3kvaG91c2VzX3RlbXBlcmF0dXJlX2V4YW1wbGUiCiAgICAgeG1sbnM6dGVtcGVyYXR1cmVfZXhhbXBsZT0iaHR0cDovL3d3dy5vbmVtMm0ub3JnL29udG9sb2d5L3RlbXBlcmF0dXJlX2V4YW1wbGUjIgogICAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgICB4bWxuczpvd2w9Imh0dHA6Ly93d3cudzMub3JnLzIwMDIvMDcvb3dsIyIKICAgICB4bWxuczp4bWw9Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIKICAgICB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIyIKICAgICB4bWxuczpyZGZzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzAxL3JkZi1zY2hlbWEjIj4KCiAgICA8b3dsOk5hbWVkSW5kaXZpZHVhbCByZGY6YWJvdXQ9Imh0dHA6Ly93d3cub25lbTJtLm9yZy9vbnRvbG9neS9ob3VzZXNfdGVtcGVyYXR1cmVfZXhhbXBsZSNIb3VzZTEiPgogICAgICAgIDxyZGY6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly93d3cub25lbTJtLm9yZy9vbnRvbG9neS90ZW1wZXJhdHVyZV9leGFtcGxlI0hvdXNlIi8+CiAgICAgICAgPHRlbXBlcmF0dXJlX2V4YW1wbGU6aGFzSW5kb29yVGVtcGVyYXR1cmUgcmRmOnJlc291cmNlPSJodHRwOi8vd3d3Lm9uZW0ybS5vcmcvb250b2xvZ3kvaG91c2VzX3RlbXBlcmF0dXJlX2V4YW1wbGUjSW5kb29yVGVtcFByb3BlcnR5MSIvPgogICAgPC9vd2w6TmFtZWRJbmRpdmlkdWFsPgoKICAgIDxvd2w6TmFtZWRJbmRpdmlkdWFsIHJkZjphYm91dD0iaHR0cDovL3d3dy5vbmVtMm0ub3JnL29udG9sb2d5L2hvdXNlc190ZW1wZXJhdHVyZV9leGFtcGxlI0luZG9vclRlbXBQcm9wZXJ0eTEiPgogICAgICAgIDxyZGY6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly93d3cub25lbTJtLm9yZy9vbnRvbG9neS90ZW1wZXJhdHVyZV9leGFtcGxlI1RlbXBlcmF0dXJlUHJvcGVydHkiLz4KICAgICAgICA8dGVtcGVyYXR1cmVfZXhhbXBsZTpoYXNEYXRhdHlwZT54c2Q6aW50PC90ZW1wZXJhdHVyZV9leGFtcGxlOmhhc0RhdGF0eXBlPgogICAgICAgIDx0ZW1wZXJhdHVyZV9leGFtcGxlOmhhc1VuaXQ+RmFocmVuaGVpdDwvdGVtcGVyYXR1cmVfZXhhbXBsZTpoYXNVbml0PgogICAgICAgIDx0ZW1wZXJhdHVyZV9leGFtcGxlOnZhbHVlSXNTdG9yZWRJbj5odHRwOi8vaW4ucHJvdmlkZXIuY29tOjc1Nzkvc2VydmVyL3RlbXBzZW5zb3JhZTEvdGVtcGVyYXR1cmUvbGF0ZXN0PC90ZW1wZXJhdHVyZV9leGFtcGxlOnZhbHVlSXNTdG9yZWRJbj4KICAgIDwvb3dsOk5hbWVkSW5kaXZpZHVhbD4KCiAgICA8b3dsOk5hbWVkSW5kaXZpZHVhbCByZGY6YWJvdXQ9Imh0dHA6Ly93d3cub25lbTJtLm9yZy9vbnRvbG9neS9ob3VzZXNfdGVtcGVyYXR1cmVfZXhhbXBsZSNJbmRvb3JUZW1wU2Vuc29yMSI+CiAgICAgICAgPHJkZjp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5vbmVtMm0ub3JnL29udG9sb2d5L3RlbXBlcmF0dXJlX2V4YW1wbGUjVGVtcGVyYXR1cmVTZW5zb3IiLz4KICAgICAgICA8dGVtcGVyYXR1cmVfZXhhbXBsZTpoYXNUZW1wZXJhdHVyZU1lYXN1cmluZ0Z1bmN0aW9uIHJkZjpyZXNvdXJjZT0iaHR0cDovL3d3dy5vbmVtMm0ub3JnL29udG9sb2d5L2hvdXNlc190ZW1wZXJhdHVyZV9leGFtcGxlI1RlbXBGdW5jdGlvbjEiLz4KICAgIDwvb3dsOk5hbWVkSW5kaXZpZHVhbD4KCjwvcmRmOlJERj4="; + + +}//end of Values group + } // end of module diff --git a/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn b/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..a84dfcf7854561e7c9d856a666a0b04813f8e3e7 --- /dev/null +++ b/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn @@ -0,0 +1,345 @@ +/** + * Copyright Notification + * No part of this document may be reproduced, in an electronic retrieval system or otherwise, except as authorized by written permission. + * The copyright and the foregoing restriction extend to reproduction in all media. + * © 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC). + * All rights reserved. + * + * @author oneM2M + * @version $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $ + * $Id: OneM2M_Types.ttcn 356 2017-08-21 12:25:14Z reinaortega $ + * @desc OneM2M data types module + * + */ +module OneM2M_Types_3GPP_T8 { + + +import from XSD all; +import from OneM2M_Types all; +import from OneM2M_TypesAndValues {type Resource_2; type ResourceTypeList_1; type PrimitiveContent}; + +/* ************************************************** + * ************************************************** + * 3GPP T8 Types + * ************************************************** + * ************************************************** +*/ + + group t8_http_restfull_api { + + /** + * @desc Type for the oneM2M primitives exchange + * @member primitive oneM2M primitive + */ + type union T8Primitive { + T8Request t8Request, + T8Response t8Response + } + + /** + * @desc Type for the oneM2M primitives exchange + * @member primitive oneM2M primitive + */ + type record T8Request { + ResourceMethod resourceMethod, + URI resourceUri, + RequestHeaders requestHeaders optional, + RequestBody requestBody optional + } + + /** + * @desc Type for the oneM2M primitives exchange + * @member primitive oneM2M primitive + */ + type record T8Response { + ResponseCode responseCode, + ResponseHeaders responseHeaders optional, + ResponseBody responseBody optional + } + + type enumerated ResourceMethod { + GET (0), + PUT (1), + POST (2), + DELETE (3), + PATCH (4) + } + + type record of Header RequestHeaders; + + type record of Header ResponseHeaders; + + type record Header { + charstring header_name, + charstring header_value optional + } + + type Body RequestBody ( {individualNiddConfiguration:=?}, + {individualNiddDownlinkDataDelivery:=?}, + {individualDeviceTriggeringTransaction:=?}, + {deviceTriggeringDeliveryReportNotification:=?}); + + type Body ResponseBody; + + type union Body { + Acknowledgement acknowledgement, + //NIDD group + //NiddConfiguration + //NiddDownlinkDataTransfer + //NiddUplinkDataNotification + NiddConfigurations niddConfigurations, + NiddConfiguration individualNiddConfiguration, + NiddDownlinkDataTransfers niddDownlinkDataDeliveries, + NiddDownlinkDataTransfer individualNiddDownlinkDataDelivery, + NiddDownlinkDataDeliveryFailure niddDownlinkDataDeliveryFailure, + //DeviceTrigger + DeviceTriggerings deviceTriggeringTransactions, + DeviceTriggering individualDeviceTriggeringTransaction, + DeviceTriggeringDeliveryReportNotification deviceTriggeringDeliveryReportNotification, + ProblemDetails problemDetails + } + + type record URI { // FIXME Not really need and not defined in YAML files. To be removed + charstring apiRoot, + charstring apiName ("3gpp-nidd", "3gpp-device-triggering"), + charstring apiVersion ("v1"), + charstring apiSpecificSuffixes optional, + record of charstring queryParameters optional + } + + type integer ResponseCode (200,201,204,400,401,403,404,406,411,413,415,429,500,503); + } with { + encode "T8_HTTP" + } // End of group t8_http_restfull_api + + group NIDD_API { + + type record of NiddConfiguration NiddConfigurations; + + type record NiddConfiguration { + charstring self_ optional, + SupportedFeaturesNiddApi supportedFeatures optional, + charstring mtcProviderId optional, + ExternalId externalId optional, + Msisdn msisdn optional, + ExternalGroupId externalGroupId optional, + DateTime duration_ optional, + boolean reliableDataService optional, + RdsPorts rdsPorts optional, + PdnEstablishmentOptions pdnEstablishmentOptions optional, + Link notificationDestination, + boolean requestTestNotification optional, + WebsockNotifConfig websockNotifConfig optional, + integer maximumPacketSize optional, + NiddDownlinkDataTransfers niddDownlinkDataTransfers optional, + NiddStatus status optional + } + with { + variant "name as uncapitalized"; + variant (self_) "name as 'self'"; + variant (duration_) "name as 'duration'"; + }; + + type record of NiddDownlinkDataTransfer NiddDownlinkDataTransfers; + + type record NiddDownlinkDataTransfer { + ExternalId externalId optional, + ExternalGroupId externalGroupId optional, + Msisdn msisdn optional, + Link self_ optional, + Bytes data, + boolean reliableDataService optional, + RdsPorts rdsPorts optional, + DurationSec maximumLatency optional, + integer priority, + PdnEstablishmentOptions pdnEstablishmentOptions optional, + DeliveryStatus deliveryStatus optional, + DateTime requestedRetransmissionTime optional + } + with { + variant "name as uncapitalized"; + variant (self_) "name as 'self'"; + }; + + type record NiddDownlinkDataDeliveryFailure { + ProblemDetails problemDetail, + DateTime requestedRetransmissionTime optional + } + }//end group NIDD_API + + group DeviceTriggering_API { + + type record of DeviceTriggering DeviceTriggerings; + + type record DeviceTriggering { + charstring self_ optional, + ExternalId externalId optional, + Msisdn msisdn optional, + SupportedFeaturesNiddApi supportedFeatures optional, + DurationSec validityPeriod, + Priority priority, + Port applicationPortId, + Port appSrcPortId optional, + Bytes triggerPayload, + Link notificationDestination, + boolean requestTestNotification optional, + WebsockNotifConfig websockNotifConfig optional, + DeliveryResult deliveryResult optional + } + with { + variant "name as uncapitalized"; + variant (self_) "name as 'self'"; + }; + + type record DeviceTriggeringDeliveryReportNotification { + Link transaction, + DeliveryResult result + } + + }//end group of DeviceTriggering_API + + group Structured_data_types { + + //T8 API + type record Acknowledgement { + charstring details + } + + type record ProblemDetails { + charstring type_ optional, + charstring title optional, + integer status optional, + charstring detail optional, + charstring instance optional, + charstring cause optional, + InvalidParams invalidParams optional + } + with { + variant (type_) "name as 'type'" + } + + type record of InvalidParam InvalidParams; + + type record InvalidParam { + charstring param_, + charstring reason optional + } + with { + variant (param_) "name as 'param'" + } + + //NIDD API + type record WebsockNotifConfig { + Link websocketUri optional, + boolean requestWebsocketUri optional + } + + type record RdsPort { + Port portUE, + Port portSCEF + } + + type record of RdsPort RdsPorts; + }//end of Structured_data_types + + group Simple_data_types { + + type integer Bandwidth; + type charstring BdtReferenceId; + type charstring BdtReferenceIdRm; + type bitstring Binary; + type charstring Bytes; + type integer DayOfWeek (1..7); + type charstring DateTime; + type charstring DateTimeRm; + type charstring DateTimeRo; + type integer DurationSec; + type integer DurationSecRm; + type integer DurationSecRo; + type integer DurationMin; + type charstring ExternalId; + type charstring ExternalGroupId; + type charstring Link; + type charstring Mcc; + type charstring Mnc; + type charstring Msisdn; + type integer Port; + type integer PortRo; + type charstring ResourceId; + type charstring ScsAsId; + type charstring TimeOfDay; + type charstring Uri; + type integer Volume; + type integer VolumeRm; + + }//end of Simple_data_types + + group Enumerated_data_types { + + //NIDD API + type enumerated PdnEstablishmentOptions { + WAIT_FOR_UE (0), + INDICATE_ERROR (1), + SEND_TRIGGER (2) + } + + type enumerated DeliveryStatus { + SUCCESS, + SUCCESS_NEXT_HOP_ACKNOWLEDGED, + SUCCESS_NEXT_HOP_UNACKNOWLEDGED, + SUCCESS_ACKNOWLEDGED, + SUCCESS_UNACKNOWLEDGED, + TRIGGERED, + BUFFERING, + BUFFERING_TEMPORARILY_NOT_REACHABLE, + SENDING, + FAILURE, + FAILURE_RDS_DISABLE, + FAILURE_NEXT_HOP, + FAILURE_TIMEOUT, + FAILURE_TEMPORARILY_NOT_REACHABLE + } + + type enumerated NiddStatus { + ACTIVE, + TERMINATED_UE_NOT_AUTHORIZED, + TERMINATED, + RDS_PORT_UNKNOWN + } + type enumerated SupportedFeaturesNiddApi { + GroupMessageDelivery (1), + Notification_websocket (2), + Notification_test_event (3), + MT_NIDD_modification_cancellation (4), + Rds_port_verfication (5), + Rds_dynamic_port (6) + } + + type enumerated SupportedFeaturesDeviceTriggeringApi { + Notification_websocket (1), + Notification_test_event (2) + } + + //DeviceTriggering + type enumerated DeliveryResult { + SUCCESS, + UNKNOWN, + FAILURE, + TRIGGERED, + EXPIRED, + UNCONFIRMED, + REPLACED, + TERMINATE + } + + type enumerated Priority { + NO_PRIORITY, + PRIORITY + } + }//end of Enumerated_data_types + +} +with { + encode "JSON"; +} + diff --git a/LibOneM2M/oneM2M_Types b/LibOneM2M/oneM2M_Types index 5aefeaaf923fac72b7661bf58dae798d55d23bb3..c22841b77a079b26ea4a70d45ee73bedbd1e0f94 160000 --- a/LibOneM2M/oneM2M_Types +++ b/LibOneM2M/oneM2M_Types @@ -1 +1 @@ -Subproject commit 5aefeaaf923fac72b7661bf58dae798d55d23bb3 +Subproject commit c22841b77a079b26ea4a70d45ee73bedbd1e0f94 diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 55f249009b4c694dd3f3475de86dda84f55e3b09..062b638e4759d1dba5f906fe2a67454a36932f82 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -2933,6 +2933,7 @@ module OneM2M_PermutationFunctions { var integer v_aeIndex, v_remoteCseIndex, v_targetResourceIndex := -1; var ResponseStatusCode v_responseStatusCode := int2000; var XSD.ID v_targetResourceAddress; + var XSD.ID v_originatorResourceAddress; // Test control @@ -2953,7 +2954,8 @@ module OneM2M_PermutationFunctions { // Test Body v_aeIndex := f_getLatestResource(vc_ae1); - + v_originatorResourceAddress := f_getLatestResourceAddress(vc_ae1, e_nonHierarchical, e_spRelative); + v_targetResourceAddress := f_getLocalResourceAddress(v_targetResourceIndex, PX_ADDRESSING_METHOD, e_spRelative); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.to_ := v_targetResourceAddress; @@ -2971,25 +2973,25 @@ module OneM2M_PermutationFunctions { tc_ac.start; alt { - [v_responseStatusCode == int2001] mccPortIn.receive(mw_request(mw_create(-, v_targetResourceAddress))) -> value vc_request { + [v_responseStatusCode == int2001] mccPortIn.receive(mw_request(mw_create(v_originatorResourceAddress, v_targetResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully"); f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } - [v_responseStatusCode == int2000] mccPortIn.receive(mw_request(mw_retrieve(v_targetResourceAddress))) -> value vc_request { + [v_responseStatusCode == int2000] mccPortIn.receive(mw_request(mw_retrieve(v_targetResourceAddress, v_originatorResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully"); f_processRetrieveRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } - [v_responseStatusCode == int2004] mccPortIn.receive(mw_request(mw_update(-, v_targetResourceAddress))) -> value vc_request { + [v_responseStatusCode == int2004] mccPortIn.receive(mw_request(mw_update(v_originatorResourceAddress, v_targetResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } - [v_responseStatusCode == int2002] mccPortIn.receive(mw_request(mw_delete(v_targetResourceAddress))) -> value vc_request { + [v_responseStatusCode == int2002] mccPortIn.receive(mw_request(mw_delete(v_targetResourceAddress, v_originatorResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully"); f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive); @@ -3052,16 +3054,16 @@ module OneM2M_PermutationFunctions { if(valueof(p_requestPrimitive.operation) == int1) { v_responseStatusCode := int2001; - vc_cse1.start(f_cse_createResourceHandler(mw_create(-, v_targetResourceAddress ))); + vc_cse1.start(f_cse_createResourceHandler(mw_create(f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative), v_targetResourceAddress ))); } else if(valueof(p_requestPrimitive.operation) == int2) { v_responseStatusCode := int2000; - vc_cse1.start(f_cse_retrieveResourceHandler(v_targetResourceIndex)); + vc_cse1.start(f_cse_retrieveResourceHandler(v_targetResourceIndex, mw_retrieve(v_targetResourceAddress, f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative)))); } else if(valueof(p_requestPrimitive.operation) == int3) { v_responseStatusCode := int2004; - vc_cse1.start(f_cse_updateResourceHandler(v_targetResourceIndex)); + vc_cse1.start(f_cse_updateResourceHandler(v_targetResourceIndex, mw_update(f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative),v_targetResourceAddress))); } else if(valueof(p_requestPrimitive.operation) == int4) { v_responseStatusCode := int2002; - vc_cse1.start(f_cse_deleteResourceHandler(v_targetResourceIndex)); + vc_cse1.start(f_cse_deleteResourceHandler(v_targetResourceIndex, mw_delete(v_targetResourceAddress,f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative)))); } f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); @@ -8204,7 +8206,6 @@ module OneM2M_PermutationFunctions { p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); // Test Body @@ -8280,8 +8281,7 @@ module OneM2M_PermutationFunctions { p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); @@ -8346,8 +8346,7 @@ module OneM2M_PermutationFunctions { p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); @@ -8422,8 +8421,7 @@ module OneM2M_PermutationFunctions { p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); @@ -8497,8 +8495,7 @@ module OneM2M_PermutationFunctions { p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); @@ -8600,8 +8597,7 @@ module OneM2M_PermutationFunctions { p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/" & c_resourceShortNameFanOutPoint & "/" & c_defaultContainerResourceName; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); //TODO see if it is correct or if we have to use PX_SUPER_ADMIN - p_requestPrimitive.requestIdentifier := p_requestPrimitive.requestIdentifier & f_rnd(1, 1000000); - + // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); @@ -9198,8 +9194,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_aeIndex2].resource); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9268,8 +9263,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9324,7 +9318,6 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := "testDomain"; - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; @@ -9404,8 +9397,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_aeIndex2].resource); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9462,8 +9454,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9532,8 +9523,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9595,8 +9585,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9653,8 +9642,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9709,8 +9697,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9770,8 +9757,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9826,8 +9812,7 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_containerIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { @@ -9889,7 +9874,6 @@ module OneM2M_PermutationFunctions { // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_containerIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.requestIdentifier := valueof(p_requestPrimitive.requestIdentifier) & f_rnd(1, 1000000); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; @@ -9958,8 +9942,7 @@ module OneM2M_PermutationFunctions { // Test Body p_request.to_ := v_ae2ResourceAddress; p_request.from_ := f_getOriginator(v_aeIndex); - p_request.requestIdentifier := valueof(p_request.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_request))); tc_ac.start; alt { @@ -10026,8 +10009,7 @@ module OneM2M_PermutationFunctions { // Test Body p_request.to_ := v_ae2ResourceAddress; p_request.from_ := f_getOriginator(v_aeIndex); - p_request.requestIdentifier := valueof(p_request.requestIdentifier) & f_rnd(1, 1000000); - + f_send(e_mcaPort, m_request(valueof(p_request))); tc_ac.start; alt { @@ -12045,6 +12027,7 @@ module OneM2M_PermutationFunctions { var RequestStatus v_requestStatus; var URI v_requestResourceURI; var ResponseStatusCode v_statusCode; + var RequestID v_requestIdentifier; var template PrimitiveContent v_primitiveContent; // Test control @@ -12074,8 +12057,9 @@ module OneM2M_PermutationFunctions { p_requestPrimitive.responseType := {int1, omit}; //nonBlockingRequestSynch // Test Body - - f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); + v_requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier; + tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int1001, v_contentResponseUri))) -> value v_response { @@ -12127,7 +12111,7 @@ module OneM2M_PermutationFunctions { v_requestStatus := v_response.primitive.responsePrimitive.primitiveContent.request.requestStatus; if (v_requestStatus==int1){ //COMPLETED tc_ac.stop; - if (valueof(p_requestPrimitive.requestIdentifier) == valueof(v_response.primitive.responsePrimitive.primitiveContent.request.operationResult.requestIdentifier) ){ + if (valueof(v_requestIdentifier) == valueof(v_response.primitive.responsePrimitive.primitiveContent.request.operationResult.requestIdentifier) ){ setverdict(pass, testcasename() & ": RequestStatus: COMPLETED and requestIdentifier attribute correctly received"); }else{ setverdict(fail, testcasename() & ": RequestStatus: COMPLETED and requestIdentifier attribute not correctly received"); @@ -12464,90 +12448,88 @@ module OneM2M_PermutationFunctions { function f_CSE_RT_NBA_005(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ - // Local variables - var MsgIn v_response; - var RequestPrimitive v_request; - var integer v_aeIndex, v_ae2Index := -1; - var integer v_resourceIndex := -1; - var template PrimitiveContent v_contentResponse; - - // Test control - if(not PICS_NON_BLOCKING_REQUEST_SYNCH){ - setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case"); - stop; - } - - // Test component configuration - f_cf01Up(true); - - // Test adapter configuration - - // Preamble - - v_contentResponse.uRI := ?; - - v_aeIndex := f_cse_preamble_registerAe(-, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn, "")});//c_CRUDNDi); - - f_checkAeSimuStatus(); - - vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}))); // AE2 is registred - - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); - - v_ae2Index := f_getResourceFromAeSimu(vc_ae2); - - if(ispresent(p_parentRequestPrimitive)) { - v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); - p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); - }else{ - p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); - } - p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); - p_requestPrimitive.responseType.responseTypeValue := int2; //nonBlockingRequestAsynch - p_requestPrimitive.responseType.notificationURI := {f_getResourceAddress(v_aeIndex), f_getResourceAddress(v_ae2Index)}; //"...an empty notification target list is provided" - - // Test Body - - f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); - tc_ac.start; - alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, v_contentResponse))) -> value v_response { - tc_ac.stop; - setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address"); - } - [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002))) -> value v_response { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address"); - } - [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Wrong response status code"); - } - [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Wrong response status code"); + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex, v_ae2Index := -1; + var integer v_resourceIndex := -1; + var template PrimitiveContent v_contentResponse; + + // Test control + if(not PICS_NON_BLOCKING_REQUEST_SYNCH){ + setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case"); + stop; } - [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + + v_contentResponse.uRI := ?; + + v_aeIndex := f_cse_preamble_registerAe(-, {f_getLocalPoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi); + + f_checkAeSimuStatus(); + + vc_ae2.start(f_cse_createAccessControlPolicyAux("PermissionForNotificationAcp",{"all"}, int63)); // Permissions for NOTIFY + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}))); // AE2 is registred + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + v_ae2Index := f_getResourceFromAeSimu(vc_ae2); + + if(ispresent(p_parentRequestPrimitive)) { + v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); + p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); + }else{ + p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } - } - - f_checkAeSimuStatus(); + // Test Body - //Check if Notification is sent or not - - - vc_ae2.start(f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode))); - - f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode)); - - f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, v_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); + } + } - // Postamble - f_cse_postamble_deleteResources(); + f_checkAeSimuStatus(); - // Tear down - f_cf01Down(); + //Check if Notification is sent or not + + + vc_ae2.start(f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode))); + + f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode)); + + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); }//end f_CSE_RT_NBA_005 diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn index 2abce727e704c9dc2a694650426b2cb618e292ab..dc638d7782ce919c87ec0bf7f237962a71097ffe 100644 --- a/OneM2M_Testcases_CSE_Release_1.ttcn +++ b/OneM2M_Testcases_CSE_Release_1.ttcn @@ -4604,7 +4604,7 @@ module OneM2M_Testcases_CSE_Release_1 { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContentInstanceBase; const AttributeList c_optionalAttribute := {"contentInfo"}; - v_createRequest.primitiveContent.contentInstance.contentInfo := "MyContentInfo"; + v_createRequest.primitiveContent.contentInstance.contentInfo := "text/strings:0"; v_ae1.start(f_CSE_DMR_CRE_012(int4, v_createRequest, c_optionalAttribute)); v_ae1.done; diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index e079999f8ad9684ae1ddda25170379b790f50623..e5af8e553d436edc95d475bb419fa94aa843ae6a 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -1487,35 +1487,6 @@ module OneM2M_Testcases_CSE_Release_2 { } } - testcase TC_CSE_DMR_UPD_014_SUB_ACPI() runs on Tester system CseSystem { - // Local variables - var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var AcpType v_accessControlPolicyIDs_1 := {"NotInitialized_1"}; - var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"}; - var template RequestPrimitive v_createRequest := m_createSubscriptionBase; - var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; - var ResponsePrimitive v_responsePrimitive; - v_createRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_1; - v_updateRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_2; - - v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription - v_ae1.done; - - - - if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); - //Check attribute 1 - if(ispresent(v_responsePrimitive.primitiveContent)) { - if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { - if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_accessControlPolicyIDs_2){ - setverdict(fail, __SCOPE__ & ": Error: AccessControlPolicyIDs attribute not updated correctly") - } - } - } - } - - } - testcase TC_CSE_DMR_UPD_014_SUB_BN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; @@ -3364,7 +3335,8 @@ module OneM2M_Testcases_CSE_Release_2 { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var RequestPrimitive v_req1, v_req2, v_req3; + var RequestPrimitive v_req1, v_req3; + var template RequestPrimitive v_req2; var MsgIn v_resp1, v_resp3; var ResponsePrimitive v_resp2; @@ -3388,11 +3360,12 @@ module OneM2M_Testcases_CSE_Release_2 { v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); f_send(e_mcaPort, m_request(v_req1)); - v_req2 := valueof(m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId))); + v_req2 := m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId)); - vc_cse1.start(f_cse_notifyProcedure_notify(v_req2)); + vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2))); v_req2.from_ := PX_TS_CSE1.cseId; + v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*"; tc_ac.start; alt { @@ -3473,7 +3446,8 @@ module OneM2M_Testcases_CSE_Release_2 { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var RequestPrimitive v_req1, v_req2, v_req3; + var RequestPrimitive v_req1, v_req3; + var template RequestPrimitive v_req2; var MsgIn v_resp1, v_resp3; var ResponsePrimitive v_resp2; @@ -3494,10 +3468,11 @@ module OneM2M_Testcases_CSE_Release_2 { v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex); - v_req2 := valueof(m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId))); + v_req2 := m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId)); - vc_cse1.start(f_cse_notifyProcedure_notify(v_req2)); + vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2))); v_req2.from_ := PX_TS_CSE1.cseId; + v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*"; v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); f_send(e_mcaPort, m_request(v_req1)); @@ -3579,7 +3554,7 @@ module OneM2M_Testcases_CSE_Release_2 { var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_req1; - var RequestPrimitive v_req2; + var template RequestPrimitive v_req2; var RequestPrimitive v_req3; var MsgIn v_resp1, v_resp3; var ResponsePrimitive v_resp2;//Response to a Notify Request @@ -3605,10 +3580,11 @@ module OneM2M_Testcases_CSE_Release_2 { v_req1 := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); f_send(e_mcaPort, m_request(v_req1)); - v_req2 := valueof(m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId))); + v_req2 := m_notifyNotification(f_getResourceAddress(v_aeIndex), m_contentNotification_subscriptionVerification(PX_TS_CSE1.cseId)); - vc_cse1.start(f_cse_notifyProcedure_notify(v_req2)); + vc_cse1.start(f_cse_notifyProcedure_notify(valueof(v_req2))); v_req2.from_ := PX_TS_CSE1.cseId; + v_req2.requestIdentifier := pattern "{v_req2.requestIdentifier}*"; tc_ac.start; alt { diff --git a/OneM2M_Testcases_CSE_Release_3.ttcn b/OneM2M_Testcases_CSE_Release_3.ttcn index 12a7e215a580fc068068f0e58e7da242c346fa08..4a0f52f3b4b8627b1833a7fd661050d2681e5486 100644 --- a/OneM2M_Testcases_CSE_Release_3.ttcn +++ b/OneM2M_Testcases_CSE_Release_3.ttcn @@ -21,8 +21,11 @@ module OneM2M_Testcases_CSE_Release_3 { import from OneM2M_Pics all; import from OneM2M_Functions all; import from OneM2M_PermutationFunctions all; + import from LibCommon_Time all; import from XSD all; + import from OneM2M_Types_3GPP_T8 all; + //Demos used for validation purposes group oneM2M_demos { @@ -12302,10 +12305,13 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe(); - v_resourceIndex := f_cse_createResource(int29, m_createTimeSeries(-, -, 5, -, 2000), v_aeIndex); + v_resourceIndex := f_cse_createResource(int29, m_createTimeSeries(-, -, 5000, -, 1000), v_aeIndex); //Create data points and force a missingDataPoint f_cse_generateMissingDataPoint(v_resourceIndex); + + f_sleep(3.0); + // Test Body f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; @@ -12371,6 +12377,7 @@ module OneM2M_Testcases_CSE_Release_3 { var integer v_resourceIndex := -1; var Timestamp v_missingDataPointTimestamp; var XSD.Long v_missingDataPointRel; + var integer v_timeSeriesInstanceNumber := 0; // Test control @@ -12383,10 +12390,12 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe(); - v_resourceIndex := f_cse_createResource(int29, m_createTimeSeries(-, -, 5, 1, 2000), v_aeIndex); + v_resourceIndex := f_cse_createResource(int29, m_createTimeSeries(-, -, 5000, 1, 1000), v_aeIndex); //Create data points and force a missingDataPoint - f_cse_generateMissingDataPoint(v_resourceIndex); + f_cse_generateMissingDataPoint(v_resourceIndex, v_timeSeriesInstanceNumber); + + f_sleep(3.0); //Retrieve first missing data point f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); @@ -12430,7 +12439,8 @@ module OneM2M_Testcases_CSE_Release_3 { //Test body //Create data points and force a second missingDataPoint - f_cse_generateMissingDataPoint(v_resourceIndex); + //f_cse_generateMissingDataPoint(v_resourceIndex, v_timeSeriesInstanceNumber + 1); + f_sleep(int2float(5000/1000)); //Retrieve second missing data point f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); @@ -12507,14 +12517,15 @@ module OneM2M_Testcases_CSE_Release_3 { var integer v_aeIndex := -1; var integer v_timeSeriesIndex := -1; var integer v_subscriptionIndex := -1; - var EventNotificationCriteria v_eventNotificationCriteria := valueof(m_eventNotificationCriteria({int1}, -)); + var EventNotificationCriteria v_eventNotificationCriteria := valueof(m_eventNotificationCriteria({int8}, -)); var template RequestPrimitive v_createRequest := omit; var RequestPrimitive v_request; var integer v_ae2Index := -1; var XSD.NonNegativeInteger v_missingDataPointNumber := 1; - var template PrimitiveContent v_contentNotification := {timeSeries := mw_contentTimeSeries(?,v_missingDataPointNumber)}; + var template TimeSeriesNotification v_contentNotification := mw_contentTimeSeriesNotification(?,v_missingDataPointNumber); - v_eventNotificationCriteria.missingData := valueof(m_missingData(v_missingDataPointNumber, "PT0H")); + v_eventNotificationCriteria.missingData := valueof(m_missingData(v_missingDataPointNumber, "PT1H")); + v_createRequest := m_createSubscriptionAdvanced(-, -, -, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit); // Test control @@ -12526,12 +12537,12 @@ module OneM2M_Testcases_CSE_Release_3 { // Preamble v_aeIndex := f_cse_preamble_registerAe(); - v_timeSeriesIndex := f_cse_createResource(int29, m_createTimeSeries(-, true, 5, -, 2000), v_aeIndex); + v_timeSeriesIndex := f_cse_createResource(int29, m_createTimeSeries(-, true, 5000, -, 1000), v_aeIndex); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); - v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_timeSeriesIndex), -, {f_getResourceAddress(v_aeIndex)}, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit); - + //v_createRequest.primitiveContent.subscription.notificationURI := {"http://127.0.0.1:61617/"}; + v_subscriptionIndex := f_cse_createResource(int23, v_createRequest, v_timeSeriesIndex); if(vc_ae2.running) { @@ -12539,12 +12550,12 @@ module OneM2M_Testcases_CSE_Release_3 { }; // Test Body + vc_ae2.start(f_cse_notifyProcedure_timeSeriesNotificationHandler(v_contentNotification)); //Create data points and force a missingDataPoint - vc_ae2.start(f_cse_generateMissingDataPoint(v_timeSeriesIndex)); - vc_ae2.done; - - f_cse_notifyProcedure_representationHandler(v_contentNotification); + f_cse_generateMissingDataPoint(v_timeSeriesIndex); + + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); @@ -12574,14 +12585,16 @@ module OneM2M_Testcases_CSE_Release_3 { var integer v_aeIndex := -1; var integer v_timeSeriesIndex := -1; var integer v_subscriptionIndex := -1; - var EventNotificationCriteria v_eventNotificationCriteria := valueof(m_eventNotificationCriteria({int1}, -)); + var EventNotificationCriteria v_eventNotificationCriteria := valueof(m_eventNotificationCriteria({int8}, -)); var template RequestPrimitive v_createRequest := omit; var ResponsePrimitive v_responsePrimitive; var integer v_ae2Index := -1; - var XSD.NonNegativeInteger v_missingDataPointNumber := 100; + var XSD.NonNegativeInteger v_missingDataPointNumber := 1; + var template TimeSeriesNotification v_contentNotification := mw_contentTimeSeriesNotification(?,v_missingDataPointNumber); var template PrimitiveContent v_contentResponse; - v_eventNotificationCriteria.missingData := valueof(m_missingData(v_missingDataPointNumber, "PT0H")); + v_eventNotificationCriteria.missingData := valueof(m_missingData(v_missingDataPointNumber, "PT4S")); + v_createRequest := m_createSubscriptionAdvanced(-, -, -, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit); // Test control @@ -12593,68 +12606,32 @@ module OneM2M_Testcases_CSE_Release_3 { // Preamble v_aeIndex := f_cse_preamble_registerAe(); - v_timeSeriesIndex := f_cse_createResource(int29, m_createTimeSeries(-, true, 5, -, 2000), v_aeIndex);//TimeSeries + v_timeSeriesIndex := f_cse_createResource(int29, m_createTimeSeries(-, true, 5000, -, 1000), v_aeIndex);//TimeSeries f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23);//AE2 registered - v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_timeSeriesIndex), -, {f_getResourceAddress(v_aeIndex)}, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit); + //v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_timeSeriesIndex), -, {f_getResourceAddress(v_aeIndex)}, v_eventNotificationCriteria, omit, omit, omit, omit, omit, omit); v_subscriptionIndex := f_cse_createResource(int23, v_createRequest, v_timeSeriesIndex);//Subscription under TimeSeries + // Test Body + if(vc_ae2.running) { vc_ae2.stop; }; // Test Body - + vc_ae2.start(f_cse_notifyProcedure_timeSeriesNotificationHandler(v_contentNotification)); + //Create data points and force a missingDataPoint - vc_ae2.start(f_cse_generateMissingDataPoint(v_timeSeriesIndex)); - vc_ae2.done; - - tc_ac.start; - alt { - [] mcaPortIn.receive(mw_request(mw_notifyNotification(?))){ - tc_ac.stop; - setverdict(fail, __SCOPE__ & ":ERROR: Notification received"); - //Send response in any case - v_responsePrimitive := valueof(m_responseNotification(int2000, omit)); - v_responsePrimitive.requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier; - f_send(e_mcaPortIn, m_response(v_responsePrimitive)); - } - [] tc_ac.timeout { - setverdict(pass, __SCOPE__ & ": Notification not received"); - } - } + f_cse_generateMissingDataPoint(v_timeSeriesIndex); - //Check if the IUT restarts missing data point counter and timer - f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_timeSeriesIndex), f_getOriginator(v_timeSeriesIndex)))); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + vc_ae2.start(f_cse_notifyProcedure_timeSeriesNotificationHandler(v_contentNotification)); + + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); - v_contentResponse.timeSeries := mw_contentTimeSeries_rc1; - v_contentResponse.timeSeries.missingDataCurrentNr := 0; - - tc_ac.start; - alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))){ - tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Response OK for retrieving. MissingDataCurrentNr has been restarted"); - } - [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))){ - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Wrong response status code"); - } - [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)){ - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); - } - [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)){ - tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); - } - [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); - } - } - //Postamble f_cse_postamble_deleteResources(); @@ -13612,9 +13589,9 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive v_request; var integer v_aeIndex := -1; var ResourceType v_resourceType := int24; //Semantic Descriptor - var template (omit) XSD.Base64Binary invalidDescriptor := '1234'O; + var template (omit) XSD.Base64Binary v_invalidDescriptor := char2oct("WrongDescriptor"); - // Test control + // Test control // Test component configuration f_cf01Up(); @@ -13626,12 +13603,12 @@ module OneM2M_Testcases_CSE_Release_3 { // Test Body v_request := f_getCreateRequestPrimitive(v_resourceType, m_createSemanticDescriptorBase, v_aeIndex); v_request.from_ := f_getOriginator(v_aeIndex); - v_request.primitiveContent.semanticDescriptor.descriptor := invalidDescriptor; - + v_request.primitiveContent.semanticDescriptor.descriptor := v_invalidDescriptor; + f_send(e_mcaPort, m_request(valueof(v_request))); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Semantic Descripter creation rejected with expected error code."); } @@ -13787,10 +13764,8 @@ module OneM2M_Testcases_CSE_Release_3 { var integer v_aeIndex := -1; var integer v_ontologyRepResourceIndex := -1; var integer v_remoteOntologyResourceIndex := -1; - var XSD.ID v_RemoteOntologyResourceAddress; - var template RequestPrimitive v_requestSd; - var MsgIn v_request; - var ResponsePrimitive v_response; + var XSD.ID v_remoteOntologyResourceAddress; + var template RequestPrimitive v_requestSemanticDescriptor; // Test control @@ -13802,37 +13777,40 @@ module OneM2M_Testcases_CSE_Release_3 { // Preamble // AE registration vc_ae1.start(f_cse_preamble_registerAe()); - vc_ae1.done; - v_aeIndex := f_getLatestResource(vc_ae1); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + + v_aeIndex := f_getLatestResource(vc_ae1); + // CSE registraion f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); // Create ontology resource at CSE1 v_ontologyRepResourceIndex := f_generateAndSetLocalResource(valueof(m_primitiveContentOntologyRepository(m_contentCreateOntologyRepository)), vc_cSEBaseIndex, int38); v_remoteOntologyResourceIndex := f_generateAndSetLocalResource(valueof(m_primitiveContentOntology(m_contentCreateOntology)), v_ontologyRepResourceIndex, int39); - v_RemoteOntologyResourceAddress := f_getResourceAddress(v_remoteOntologyResourceIndex); + v_remoteOntologyResourceAddress := f_getResourceAddress(v_remoteOntologyResourceIndex); - v_requestSd := m_createSemanticDescriptorBase; + v_requestSemanticDescriptor := m_createSemanticDescriptorBase; // ontologyRef points to ontology resource in another CSE - v_requestSd.primitiveContent.semanticDescriptor.ontologyRef := v_RemoteOntologyResourceAddress; - v_requestSd.primitiveContent.semanticDescriptor.validationEnable := true; - vc_ae1.start(f_cse_createResource(int24, v_requestSd, v_aeIndex)); + v_requestSemanticDescriptor.primitiveContent.semanticDescriptor.ontologyRef := v_remoteOntologyResourceAddress; + v_requestSemanticDescriptor.primitiveContent.semanticDescriptor.validationEnable := true; + vc_ae1.start(f_cse_createResource(int24, v_requestSemanticDescriptor, v_aeIndex)); tc_ac.start; alt { - [] mccPortIn.receive(mw_request(mw_retrieve(v_RemoteOntologyResourceAddress))) -> value v_request { + [] mccPortIn.receive(mw_request(mw_retrieve(v_remoteOntologyResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Retrieve request for Reference Ontology received."); - v_response := valueof(m_responsePrimitive(int2000,v_request.primitive.requestPrimitive.requestIdentifier)); - v_response.primitiveContent := vc_localResourcesList[v_remoteOntologyResourceIndex].resource; - v_response.from_ := vc_cseSimuDesc.cseId; - v_response.to_ := v_request.primitive.requestPrimitive.from_; - f_send(e_mccPortIn, m_response(v_response)); + + f_processRetrieveRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_remoteOntologyResourceIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(mw_retrieve(?))) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong Retrieve request received"); + + f_processRetrieveRequestPrimitive(vc_request.primitive.requestPrimitive, int4004, v_remoteOntologyResourceIndex); + f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); + } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retargeting request"); @@ -13841,13 +13819,12 @@ module OneM2M_Testcases_CSE_Release_3 { f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - vc_ae1.done; - // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); + }//end function f_CSE_SEM_CRE_004 /** @@ -13858,8 +13835,7 @@ module OneM2M_Testcases_CSE_Release_3 { var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_SEM_CRE_005()); - - v_ae1.done; + v_ae1.done; } function f_CSE_SEM_CRE_005() runs on AeSimu system CseSystem { @@ -13869,7 +13845,7 @@ module OneM2M_Testcases_CSE_Release_3 { var integer v_remoteOntologyIndex := -1; var XSD.ID v_remoteOntologyRepoAddress; var XSD.ID v_remoteOntologyAddress; - var RequestPrimitive v_requestSd; + var RequestPrimitive v_requestSemanticDescriptor; // Test control // Test component configuration @@ -13898,16 +13874,16 @@ module OneM2M_Testcases_CSE_Release_3 { vc_cse1.start(f_cse_retrieveResourceHandler(v_remoteOntologyIndex)); //Create Semeantic Descriptor - v_requestSd := f_getCreateRequestPrimitive(int24, m_createSemanticDescriptorBase, v_aeIndex); - v_requestSd.primitiveContent.semanticDescriptor.ontologyRef := v_remoteOntologyAddress; - v_requestSd.primitiveContent.semanticDescriptor.validationEnable := true; - f_send(e_mcaPort, m_request(v_requestSd)); + v_requestSemanticDescriptor := f_getCreateRequestPrimitive(int24, m_createSemanticDescriptorBase, v_aeIndex); + v_requestSemanticDescriptor.primitiveContent.semanticDescriptor.ontologyRef := v_remoteOntologyAddress; + v_requestSemanticDescriptor.primitiveContent.semanticDescriptor.validationEnable := true; + f_send(e_mcaPort, m_request(v_requestSemanticDescriptor)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) { tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Rejected the creation request of Semantic Mashup Instance resource with expected status code BAD_REQUEST"); + setverdict(pass, __SCOPE__ & ": Resource type 24 created successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; @@ -13946,9 +13922,9 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_CRE_006() runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var XSD.AnyURI v_invalidSmjpID := "Invlid_AnyURI"; + var XSD.AnyURI v_invalidSmjpID := "Invalid_AnyURI"; var RequestPrimitive v_request; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceSemanticMashupJobProfileIndex := -1; // Test control @@ -13962,11 +13938,10 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // semanticMashupJobProfile - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); - - v_request := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); - v_request.primitiveContent.semanticMashupInstance.smjpID := v_invalidSmjpID; + v_resourceSemanticMashupJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_request := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase(v_invalidSmjpID,-, -, - ), v_aeIndex); + f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { @@ -14009,7 +13984,7 @@ module OneM2M_Testcases_CSE_Release_3 { var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceSemanticMashupJobProfileIndex := -1; const octetstring v_invalidSmjpInputParameter := int2oct(0,65537); var RequestPrimitive v_request; @@ -14025,15 +14000,11 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // semanticMashupJobProfile - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_resourceSemanticMashupJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); // semanticMashupInstance - v_request := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); - v_request.to_ := f_getResourceAddress(v_resourceIndexJobProfile); - v_request.from_ := f_getOriginator(v_aeIndex); - v_request.primitiveContent.semanticMashupInstance.smjpID := f_getResourceAddress(v_resourceIndexJobProfile); - v_request.primitiveContent.semanticMashupInstance.smjpInputParameter := v_invalidSmjpInputParameter; - + v_request := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase(f_getResourceAddress(v_resourceSemanticMashupJobProfileIndex), v_invalidSmjpInputParameter, -, -), v_aeIndex); + f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { @@ -14073,12 +14044,10 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_CRE_008() runs on AeSimu system CseSystem { // Local variables - var MsgIn v_response; var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceSemanticMashupJobProfileIndex := -1; const octetstring v_invalidSmjpInputParameter := int2oct(0,76584); - var XSD.Base64Binary v_validInputDescriptor:= int2oct(0,65000); //TO DO - var RequestPrimitive v_MashupInstancerequest; + var RequestPrimitive v_requestMashupInstance; // Test control @@ -14092,17 +14061,13 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); //Create JobProfile resource - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_resourceSemanticMashupJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); //Create Mashup Instance - v_MashupInstancerequest := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); //smjpID set to reference to <semanticMashupJobProfile> resource - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.smjpID := f_getOriginator(v_resourceIndexJobProfile); - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.smjpInputParameter := v_invalidSmjpInputParameter; - v_MashupInstancerequest.to_ := f_getResourceAddress(v_resourceIndexJobProfile); - v_MashupInstancerequest.from_ := f_getOriginator(v_aeIndex); + v_requestMashupInstance := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase(f_getResourceAddress(v_resourceSemanticMashupJobProfileIndex), v_invalidSmjpInputParameter, -, -), v_aeIndex); - f_send(e_mcaPort, m_request(v_MashupInstancerequest)); + f_send(e_mcaPort, m_request(v_requestMashupInstance)); tc_ac.start; alt { @@ -14142,10 +14107,9 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_CRE_009() runs on AeSimu system CseSystem { // Local variables // Local variables - var MsgIn v_response; var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; - var RequestPrimitive v_MashupInstancerequest; + var integer v_resourceSemanticMashupJobProfileIndex := -1; + var RequestPrimitive v_requestMashupInstance; //member filter query to identify a non existing member var XSD.String v_memberFilter := "SELECT \?name WHERE { \?x foaf:name \?name FILTER regex(\?name, \^mem\, \i\ }"; var template RequestPrimitive v_createRequestJobProfile := m_createSemanticMashupJobProfileBase; @@ -14164,17 +14128,13 @@ module OneM2M_Testcases_CSE_Release_3 { // Create JobProfile resource // member filter query to identify a non existing member v_createRequestJobProfile.primitiveContent.semanticMashupJobProfile.memberFilter := v_memberFilter; - v_resourceIndexJobProfile := f_cse_createResource(int40, v_createRequestJobProfile, v_aeIndex); + v_resourceSemanticMashupJobProfileIndex := f_cse_createResource(int40, v_createRequestJobProfile, v_aeIndex); //Create Mashup Instance - v_MashupInstancerequest := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); //smjpID set to reference to <semanticMashupJobProfile> resource - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.smjpID := f_getOriginator(v_resourceIndexJobProfile); - //v_MashupInstancerequest.primitiveContent.semanticMashupInstance.smjpInputParameter := v_smjpInputParameter; - v_MashupInstancerequest.to_ := f_getResourceAddress(v_resourceIndexJobProfile); - v_MashupInstancerequest.from_ := f_getOriginator(v_aeIndex); + v_requestMashupInstance := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase(f_getResourceAddress(v_resourceSemanticMashupJobProfileIndex), -, -, -), v_resourceSemanticMashupJobProfileIndex); - f_send(e_mcaPort, m_request(v_MashupInstancerequest)); + f_send(e_mcaPort, m_request(v_requestMashupInstance)); tc_ac.start; alt { @@ -14213,10 +14173,9 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_CRE_010() runs on AeSimu system CseSystem { // Local variables - var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceSemanticMashupJobProfileIndex := -1; const octetstring v_invalidInputDescriptor := int2oct(0,65537); var RequestPrimitive v_request; @@ -14274,10 +14233,8 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_CRE_011() runs on AeSimu system CseSystem { // Local variables - var MsgIn v_response; var integer v_aeIndex := -1; - var integer v_resourceIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceSemanticMashupJobProfileIndex := -1; const octetstring v_invalidOutputDescriptor := int2oct(0,65537); var RequestPrimitive v_request; @@ -14293,8 +14250,7 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // semanticMashupJobProfile - v_request := f_getCreateRequestPrimitive(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); - v_request.primitiveContent.semanticMashupJobProfile.outputDescriptor := v_invalidOutputDescriptor; + v_request := f_getCreateRequestPrimitive(int40, m_createSemanticMashupJobProfileBase(-, v_invalidOutputDescriptor, -), v_aeIndex); f_send(e_mcaPort, m_request(v_request)); @@ -14335,10 +14291,8 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_CRE_012() runs on AeSimu system CseSystem { // Local variables - var MsgIn v_response; var integer v_aeIndex := -1; - var integer v_resourceIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceSemanticMashupJobProfileIndex := -1; var ResourceType v_resourceTypeJobProfile := int40; const octetstring v_invalidFunctionDescriptor := int2oct(0,65537); var RequestPrimitive v_request; @@ -14355,8 +14309,7 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // semanticMashupJobProfile - v_request := f_getCreateRequestPrimitive(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); - v_request.primitiveContent.semanticMashupJobProfile.functionDescriptor := v_invalidFunctionDescriptor; + v_request := f_getCreateRequestPrimitive(int40, m_createSemanticMashupJobProfileBase(-, -, v_invalidFunctionDescriptor), v_aeIndex); f_send(e_mcaPort, m_request(v_request)); @@ -14397,10 +14350,8 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_CRE_013() runs on AeSimu system CseSystem { // Local variables - var MsgIn v_response; var integer v_aeIndex := -1; - var integer v_resourceIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceSemanticMashupJobProfileIndex := -1; var ResourceType v_resourceTypeJobProfile := int40; var RequestPrimitive v_request; var Sparql v_invalidMemberFilter := "PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECTECTION ?name WHERE { ?person foaf:name ?name . }"; @@ -14417,7 +14368,7 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // semanticMashupJobProfile - v_request := f_getCreateRequestPrimitive(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_request := f_getCreateRequestPrimitive(int40, m_createSemanticMashupJobProfileBase(v_invalidMemberFilter, -, -), v_aeIndex); v_request.primitiveContent.semanticMashupJobProfile.memberFilter := v_invalidMemberFilter; f_send(e_mcaPort, m_request(v_request)); @@ -14462,8 +14413,8 @@ module OneM2M_Testcases_CSE_Release_3 { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; - var RequestPrimitive v_MashupInstancerequest; + var integer v_resourceSemanticMashupJobProfileIndex := -1; + var RequestPrimitive v_requestMashupInstance; var template RequestPrimitive v_createRequestJobProfile := m_createSemanticMashupJobProfileBase; // Test control @@ -14478,16 +14429,13 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Create JobProfile resource - v_resourceIndexJobProfile := f_cse_createResource(int40, v_createRequestJobProfile, v_aeIndex); + v_resourceSemanticMashupJobProfileIndex := f_cse_createResource(int40, v_createRequestJobProfile, v_aeIndex); //Create Mashup Instance - v_MashupInstancerequest := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); //smjpID set to reference to <semanticMashupJobProfile> resource - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.smjpID := f_getOriginator(v_resourceIndexJobProfile); - v_MashupInstancerequest.to_ := f_getResourceAddress(v_resourceIndexJobProfile); - v_MashupInstancerequest.from_ := f_getOriginator(v_aeIndex); + v_requestMashupInstance := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase(f_getResourceAddress(v_resourceSemanticMashupJobProfileIndex), -, -, -), v_aeIndex); - f_send(e_mcaPort, m_request(v_MashupInstancerequest)); + f_send(e_mcaPort, m_request(v_requestMashupInstance)); tc_ac.start; alt { @@ -14531,10 +14479,9 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_CRE_015() runs on AeSimu system CseSystem { // Local variables // Local variables - var MsgIn v_response; var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; - var RequestPrimitive v_MashupInstancerequest; + var integer v_resourceSemanticMashupJobProfileIndex := -1; + var RequestPrimitive v_requestMashupInstance; var template RequestPrimitive v_createRequestJobProfile := m_createSemanticMashupJobProfileBase; // Test control @@ -14549,18 +14496,15 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Create JobProfile resource - v_resourceIndexJobProfile := f_cse_createResource(int40, v_createRequestJobProfile, v_aeIndex); + v_resourceSemanticMashupJobProfileIndex := f_cse_createResource(int40, v_createRequestJobProfile, v_aeIndex); //Create Mashup Instance - v_MashupInstancerequest := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); //smjpID set to reference to <semanticMashupJobProfile> resource - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.smjpID := f_getOriginator(v_resourceIndexJobProfile); + v_requestMashupInstance := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase(f_getResourceAddress(v_resourceSemanticMashupJobProfileIndex), -, -, -), v_aeIndex); // resultGenType is set to WHEN_SMI_IS_CREATED - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.resultGenType := int1; - v_MashupInstancerequest.to_ := f_getResourceAddress(v_resourceIndexJobProfile); - v_MashupInstancerequest.from_ := f_getOriginator(v_aeIndex); - - f_send(e_mcaPort, m_request(v_MashupInstancerequest)); + v_requestMashupInstance.primitiveContent.semanticMashupInstance.resultGenType := int1; + + f_send(e_mcaPort, m_request(v_requestMashupInstance)); tc_ac.start; alt { @@ -14606,11 +14550,11 @@ module OneM2M_Testcases_CSE_Release_3 { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; - var RequestPrimitive v_MashupInstancerequest; + var integer v_resourceSemanticMashupJobProfileIndex := -1; + var RequestPrimitive v_requestMashupInstance; var template RequestPrimitive v_createRequestJobProfile := m_createSemanticMashupJobProfileBase; // 5sec nw delay assumed. - timer t_resultPerdiod := 15.0; + timer t_resultPeriod := 15.0; var integer v_reponseCount := 0; // Test control @@ -14625,22 +14569,19 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Create JobProfile resource - v_resourceIndexJobProfile := f_cse_createResource(int40, v_createRequestJobProfile, v_aeIndex); + v_resourceSemanticMashupJobProfileIndex := f_cse_createResource(int40, v_createRequestJobProfile, v_aeIndex); //Create Mashup Instance - v_MashupInstancerequest := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); //smjpID set to reference to <semanticMashupJobProfile> resource - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.smjpID := f_getOriginator(v_resourceIndexJobProfile); + v_requestMashupInstance := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase(f_getResourceAddress(v_resourceSemanticMashupJobProfileIndex), -, -, -), v_aeIndex); // resultGenType is set to PERIODICALLY - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.resultGenType := int3; + v_requestMashupInstance.primitiveContent.semanticMashupInstance.resultGenType := int3; // timer set to 5sec - v_MashupInstancerequest.primitiveContent.semanticMashupInstance.periodForResultGen := "PT10S"; - v_MashupInstancerequest.to_ := f_getResourceAddress(v_resourceIndexJobProfile); - v_MashupInstancerequest.from_ := f_getOriginator(v_aeIndex); - - f_send(e_mcaPort, m_request(v_MashupInstancerequest)); + v_requestMashupInstance.primitiveContent.semanticMashupInstance.periodForResultGen := "PT10S"; + + f_send(e_mcaPort, m_request(v_requestMashupInstance)); - // t_resultPerdiod.start; + t_resultPeriod.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) { @@ -14658,14 +14599,14 @@ module OneM2M_Testcases_CSE_Release_3 { // } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { - t_resultPerdiod.stop; + t_resultPeriod.stop; setverdict(fail, __SCOPE__ & ": Wrong return code received."); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { - t_resultPerdiod.stop; + t_resultPeriod.stop; setverdict(fail, __SCOPE__ & ": Unexpected message received."); } - [] t_resultPerdiod.timeout { + [] t_resultPeriod.timeout { setverdict(fail, __SCOPE__ & ": No response even after time out period of 15sec"); } } @@ -14702,11 +14643,10 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive p_createRequestPrimitive := m_createSemanticDescriptorBase; var template RequestPrimitive p_updateRequestPrimitive := m_updateSemanticDescriptorBase; var ResourceType p_resourceType := int24; //Semantic Descriptor - const octetstring v_descriptor := int2oct(0,65000); - var XSD.String v_semanticOpExec := "SELECT \?name WHERE { \?x foaf:name \?name FILTER regex(\?name, \^semD\, \i\ }"; + var XSD.String v_semanticOpExec := "DELETE { ?person <http://bigco.example/HR/Person/fname> 'Miguel' }"; // Test control - + // Test component configuration f_cf01Up(); @@ -14717,11 +14657,12 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); //Create Semantic Descritor + p_createRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := c_validDescriptor; v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body p_updateRequestPrimitive.primitiveContent.semanticDescriptor.semanticOpExec := v_semanticOpExec; - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := v_descriptor; + p_updateRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := c_validDescriptor; v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); @@ -14747,6 +14688,7 @@ module OneM2M_Testcases_CSE_Release_3 { // Tear down f_cf01Down(); + }//end function f_CSE_SEM_UPD_001 @@ -14770,8 +14712,8 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive p_createRequestPrimitive := m_createSemanticDescriptorBase; var template RequestPrimitive p_updateRequestPrimitive := m_updateSemanticDescriptorBase; var ResourceType p_resourceType := int24; //Semantic Descriptor - var XSD.String v_semanticOpExec := "SELECT WHERE FILTER name"; - + var XSD.String v_semanticOpExec := "SELECT WHERE FILTER name";//Invalid SPARQL query + // Test control // Test component configuration @@ -14784,12 +14726,11 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Test Body + p_createRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := c_validDescriptor; v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); p_updateRequestPrimitive.primitiveContent.semanticDescriptor.semanticOpExec := v_semanticOpExec; - p_updateRequestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); - p_updateRequestPrimitive.from_ := f_getOriginator(v_aeIndex); v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); @@ -14814,6 +14755,7 @@ module OneM2M_Testcases_CSE_Release_3 { // Tear down f_cf01Down(); + }//end function f_CSE_SEM_UPD_002 /** @@ -14836,9 +14778,8 @@ module OneM2M_Testcases_CSE_Release_3 { var template RequestPrimitive p_createRequestPrimitive := m_createSemanticDescriptorBase; var template RequestPrimitive p_updateRequestPrimitive := m_updateSemanticDescriptorBase; var ResourceType p_resourceType := int24; //Semantic Descriptor - const octetstring v_descriptor := int2oct(0,870009); //Base64Binary - - + var template (omit) XSD.Base64Binary v_invalidDescriptor := char2oct("WrongDescriptor"); + // Test control // Test component configuration @@ -14851,12 +14792,11 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Test Body + p_createRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := c_validDescriptor; v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := v_descriptor; + p_updateRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := v_invalidDescriptor; - p_updateRequestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); - p_updateRequestPrimitive.from_ := f_getOriginator(v_aeIndex); v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); @@ -14881,6 +14821,7 @@ module OneM2M_Testcases_CSE_Release_3 { // Tear down f_cf01Down(); + }//end function f_CSE_SEM_UPD_003 /** @@ -14900,13 +14841,9 @@ module OneM2M_Testcases_CSE_Release_3 { // Local variables var integer v_aeIndex, v_remoteCseIndex, v_targetResourceIndex := -1; var integer v_resourceIndex := -1; - var template RequestPrimitive p_updateRequestPrimitive := m_updateSemanticDescriptorBase; - var RequestPrimitive v_request; - var ResourceType p_resourceType := int24; //Semantic Descriptor + var template RequestPrimitive v_updateRequestPrimitive := m_updateSemanticDescriptorBase; var boolean v_validationEnable := true; - const octetstring v_descriptor := int2oct(0,65000); //Base64Binary var XSD.AnyURI v_ontologyRef := "NotInitialized"; - var XSD.ID v_targetResourceAddress := "NotInitialized"; // Test control @@ -14917,29 +14854,31 @@ module OneM2M_Testcases_CSE_Release_3 { // Preamble vc_ae1.start(f_cse_preamble_registerAe()); - vc_ae1.done; f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); + v_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); // Test Body v_aeIndex := f_getLatestResource(vc_ae1); - v_targetResourceIndex := f_generateAndSetLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), v_aeIndex, int24); - - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.validationEnable := v_validationEnable; - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := v_descriptor; - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.ontologyRef := v_ontologyRef; + v_targetResourceIndex := f_generateAndSetLocalResource(valueof(m_primitiveContentOntologyRepository(m_contentCreateOntologyRepository)), vc_cSEBaseIndex, int38); + v_targetResourceIndex := f_generateAndSetLocalResource(valueof(m_primitiveContentOntology(m_contentCreateOntology)), v_targetResourceIndex, int39); - - p_updateRequestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); - p_updateRequestPrimitive.from_ := f_getOriginator(v_aeIndex); + vc_ae1.start(f_cse_createResource(int24, m_createSemanticDescriptorBase, v_aeIndex)); + f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + v_resourceIndex := f_getLatestResource(vc_ae1); + + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.validationEnable := v_validationEnable; + v_ontologyRef := f_getResourceAddress(v_targetResourceIndex); + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.ontologyRef := v_ontologyRef; - vc_ae1.start(f_cse_operationResource(v_request)); + v_updateRequestPrimitive := f_getUpdateRequestPrimitive(int24, v_resourceIndex, v_updateRequestPrimitive); + + vc_ae1.start(f_cse_operationResource(v_updateRequestPrimitive)); tc_ac.start; alt { - [] mccPortIn.receive(mw_request(mw_retrieve(v_targetResourceAddress))) -> value vc_request { + [] mccPortIn.receive(mw_request(mw_retrieve(v_ontologyRef))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Retrieved the referenced ontology successfully."); f_processRetrieveRequestPrimitive(vc_request.primitive.requestPrimitive); @@ -14979,14 +14918,11 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_UPD_005() runs on AeSimu system CseSystem { var integer v_aeIndex := -1; - var integer v_cseBaseIndex := -1; var integer v_resourceIndexSd := -1; - var XSD.ID v_remoteOntologyRepoAddress; var XSD.ID v_remoteOntologyAddress; var integer v_remoteOntologyRepoIndex := -1; var integer v_remoteOntologyIndex := -1; - var RequestPrimitive v_updateRequest; - var template RequestPrimitive p_updateSdRequestPrimitive := m_updateSemanticDescriptorBase; + var RequestPrimitive v_updateSdRequestPrimitive := m_updateSemanticDescriptorBase; // Test control @@ -14997,14 +14933,12 @@ module OneM2M_Testcases_CSE_Release_3 { // Preamble v_aeIndex := f_cse_preamble_registerAe(); - v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1); - + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - vc_cse1.start(f_generateAndSetLocalResource(valueof(m_primitiveContentOntologyRepository(m_contentCreateOntologyRepository)), v_cseBaseIndex, int38)); + vc_cse1.start(f_generateAndSetLocalResource(valueof(m_primitiveContentOntologyRepository(m_contentCreateOntologyRepository)), -, int38)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - v_remoteOntologyRepoAddress := f_getLatestLocalResourceAddress(vc_cse1, e_nonHierarchical, e_cseRelative); v_remoteOntologyRepoIndex := f_getLatestLocalResourceIndex(vc_cse1); // Ontology resource in remote CSE @@ -15021,10 +14955,10 @@ module OneM2M_Testcases_CSE_Release_3 { vc_cse1.start(f_cse_retrieveResourceHandler(v_remoteOntologyIndex)); // Update the Semantic Descriptor including ontologyRef - p_updateSdRequestPrimitive.primitiveContent.semanticDescriptor.ontologyRef := v_remoteOntologyAddress; - p_updateSdRequestPrimitive.primitiveContent.semanticDescriptor.validationEnable := true; - v_updateRequest := f_getUpdateRequestPrimitive(int24, v_resourceIndexSd, p_updateSdRequestPrimitive); - f_send(e_mcaPort, m_request(v_updateRequest)); + v_updateSdRequestPrimitive.primitiveContent.semanticDescriptor.ontologyRef := v_remoteOntologyAddress; + v_updateSdRequestPrimitive.primitiveContent.semanticDescriptor.validationEnable := true; + v_updateSdRequestPrimitive := f_getUpdateRequestPrimitive(int24, v_resourceIndexSd, v_updateSdRequestPrimitive); + f_send(e_mcaPort, m_request(v_updateSdRequestPrimitive)); tc_ac.start; alt { @@ -15045,8 +14979,6 @@ module OneM2M_Testcases_CSE_Release_3 { } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - vc_cse1.done; - // Postamble f_cse_postamble_deleteResources(); @@ -15073,9 +15005,8 @@ module OneM2M_Testcases_CSE_Release_3 { // Local variables var integer v_aeIndex, v_remoteCseIndex, v_targetResourceIndex := -1; var integer v_resourceIndex := -1; - var template RequestPrimitive p_updateRequestPrimitive := m_updateSemanticDescriptorBase; + var template RequestPrimitive v_updateRequestPrimitive := m_updateSemanticDescriptorBase; var RequestPrimitive v_request; - var ResourceType p_resourceType := int24; //Semantic Descriptor var boolean v_validationEnable := true; const octetstring v_descriptor := int2oct(0,65000); //Base64Binary var XSD.AnyURI v_ontologyRef := "NotInitialized"; @@ -15097,20 +15028,20 @@ module OneM2M_Testcases_CSE_Release_3 { // Test Body v_aeIndex := f_getLatestResource(vc_ae1); - v_targetResourceIndex := f_generateAndSetLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), v_aeIndex, int24); + v_targetResourceIndex := f_generateAndSetLocalResource(valueof(m_primitiveContentSemanticDescriptor(m_contentCreateSemanticDescriptor)), -, int24); - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.validationEnable := v_validationEnable; - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := v_descriptor; - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.ontologyRef := v_ontologyRef; - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.relatedSemantics := v_relatedSemantics; //linked semantic descriptor + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.validationEnable := v_validationEnable; + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.descriptor := v_descriptor; + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.ontologyRef := v_ontologyRef; + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.relatedSemantics := v_relatedSemantics; //linked semantic descriptor - p_updateRequestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); - p_updateRequestPrimitive.from_ := f_getOriginator(v_aeIndex); + v_updateRequestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); + v_updateRequestPrimitive.from_ := f_getOriginator(v_aeIndex); v_targetResourceAddress := f_getResourceAddress(v_resourceIndex) & "/" & c_resourceShortNameSemanticValidation; - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceIndex, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(int24, v_targetResourceIndex, v_updateRequestPrimitive); vc_ae1.start(f_cse_operationResource(v_request)); @@ -15162,7 +15093,7 @@ module OneM2M_Testcases_CSE_Release_3 { var XSD.AnyURI v_ontologyRef; var XSD.AnyURI v_uriSemanticDescriptorCse1; var XSD.AnyURI v_semanticValidationAddress; - var template RequestPrimitive p_updateRequestPrimitive := m_updateSemanticDescriptorBase; + var template RequestPrimitive v_updateRequestPrimitive := m_updateSemanticDescriptorBase; var RequestPrimitive v_updateRequest; // Test control @@ -15191,17 +15122,17 @@ module OneM2M_Testcases_CSE_Release_3 { v_semanticDescriptorCse1Index := f_getLatestLocalResourceIndex(vc_cse1); //Compose Semantic Descriptor resource with link to Semantic Descriptor in remoteCSE - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.validationEnable := true; - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.ontologyRef := v_ontologyRef; - p_updateRequestPrimitive.primitiveContent.semanticDescriptor.relatedSemantics := {v_uriSemanticDescriptorCse1}; + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.validationEnable := true; + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.ontologyRef := v_ontologyRef; + v_updateRequestPrimitive.primitiveContent.semanticDescriptor.relatedSemantics := {v_uriSemanticDescriptorCse1}; // Handle IUT retrive request of linked semantics from remoteCSE vc_cse1.start(f_cse_retrieveResourceHandler(v_semanticDescriptorCse1Index)); // Send UPDATE request to virtual resource <semanticValidation> v_semanticValidationAddress := f_getResourceAddress(v_ontologyRepoIndex) & "/" & c_resourceShortNameSemanticValidation; - p_updateRequestPrimitive.to_ := v_semanticValidationAddress; - v_updateRequest := f_getUpdateRequestPrimitive(int24, v_ontologyRepoIndex, p_updateRequestPrimitive); + v_updateRequestPrimitive.to_ := v_semanticValidationAddress; + v_updateRequest := f_getUpdateRequestPrimitive(int24, v_ontologyRepoIndex, v_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; @@ -15224,8 +15155,7 @@ module OneM2M_Testcases_CSE_Release_3 { } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); - vc_cse1.done; - + // Postamble f_cse_postamble_deleteResources(); @@ -15247,7 +15177,7 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_UPD_008() runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceIndexJobProfileIndex := -1; var RequestPrimitive v_updateRequest; var XSD.Base64Binary v_invalidInputDescriptor := int2oct(0,65537); @@ -15263,10 +15193,10 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Create JobProfile resource - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_resourceIndexJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); // Update semanticMashupJobProfile - v_updateRequest := f_getCreateRequestPrimitive(int40, m_updateSemanticMashupJobProfileBase, v_resourceIndexJobProfile); + v_updateRequest := f_getCreateRequestPrimitive(int40, m_updateSemanticMashupJobProfileBase, v_resourceIndexJobProfileIndex); v_updateRequest.primitiveContent.semanticMashupJobProfile.inputDescriptor := v_invalidInputDescriptor; f_send(e_mcaPort, m_request(v_updateRequest)); @@ -15307,7 +15237,7 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_UPD_009() runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceIndexJobProfileIndex := -1; var RequestPrimitive v_updateRequest; var XSD.Base64Binary v_invalidOutputDescriptor := int2oct(0,65537); @@ -15323,10 +15253,10 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Create JobProfile resource - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_resourceIndexJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); // Update semanticMashupJobProfile - v_updateRequest := f_getCreateRequestPrimitive(int40, m_updateSemanticMashupJobProfileBase, v_resourceIndexJobProfile); + v_updateRequest := f_getCreateRequestPrimitive(int40, m_updateSemanticMashupJobProfileBase, v_resourceIndexJobProfileIndex); v_updateRequest.primitiveContent.semanticMashupJobProfile.outputDescriptor := v_invalidOutputDescriptor; f_send(e_mcaPort, m_request(v_updateRequest)); @@ -15367,7 +15297,7 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_UPD_010() runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceIndexJobProfileIndex := -1; var RequestPrimitive v_updateRequest; var XSD.Base64Binary v_invalidFunctionDescriptor := int2oct(0,65537); @@ -15383,10 +15313,10 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Create JobProfile resource - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_resourceIndexJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); // Update semanticMashupJobProfile - v_updateRequest := f_getCreateRequestPrimitive(int40, m_updateSemanticMashupJobProfileBase, v_resourceIndexJobProfile); + v_updateRequest := f_getCreateRequestPrimitive(int40, m_updateSemanticMashupJobProfileBase, v_resourceIndexJobProfileIndex); v_updateRequest.primitiveContent.semanticMashupJobProfile.functionDescriptor := v_invalidFunctionDescriptor; f_send(e_mcaPort, m_request(v_updateRequest)); @@ -15427,7 +15357,7 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_UPD_011() runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceIndexJobProfileIndex := -1; var RequestPrimitive v_updateRequest; var Sparql v_invalidMemberFilter := "{SELECT \?name WHERE { \?x foaf:name \?name FILTER regex(\?name, \^mem\, \i\ }"; @@ -15443,10 +15373,10 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // Create JobProfile resource - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_resourceIndexJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); // Update semanticMashupJobProfile - v_updateRequest := f_getCreateRequestPrimitive(int40, m_updateSemanticMashupJobProfileBase, v_resourceIndexJobProfile); + v_updateRequest := f_getCreateRequestPrimitive(int40, m_updateSemanticMashupJobProfileBase, v_resourceIndexJobProfileIndex); v_updateRequest.primitiveContent.semanticMashupJobProfile.memberFilter := v_invalidMemberFilter; f_send(e_mcaPort, m_request(v_updateRequest)); @@ -15487,7 +15417,7 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_UPD_012() runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceIndexJobProfileIndex := -1; var RequestPrimitive v_createReqSmi; var RequestPrimitive v_updateReqSmi; @@ -15503,12 +15433,12 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // semanticMashupJobProfile - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_resourceIndexJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); // create semanticMashupInstance template with default mandatory values. v_createReqSmi := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); // link semanticMashupInstance with semanticMashupJobProfile - v_createReqSmi.primitiveContent.semanticMashupInstance.smjpID := f_getResourceAddress(v_resourceIndexJobProfile); + v_createReqSmi.primitiveContent.semanticMashupInstance.smjpID := f_getResourceAddress(v_resourceIndexJobProfileIndex); // create semanticMashupInstance resource f_cse_createResource(int41, v_createReqSmi, v_aeIndex); @@ -15559,7 +15489,7 @@ module OneM2M_Testcases_CSE_Release_3 { function f_CSE_SEM_UPD_013() runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; - var integer v_resourceIndexJobProfile := -1; + var integer v_resourceIndexJobProfileIndex := -1; var RequestPrimitive v_createReqSmi; var RequestPrimitive v_updateReqSmi; @@ -15576,12 +15506,12 @@ module OneM2M_Testcases_CSE_Release_3 { v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, -); // semanticMashupJobProfile - v_resourceIndexJobProfile := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); + v_resourceIndexJobProfileIndex := f_cse_createResource(int40, m_createSemanticMashupJobProfileBase, v_aeIndex); // create semanticMashupInstance template with default mandatory values. v_createReqSmi := f_getCreateRequestPrimitive(int41, m_createSemanticMashupInstanceBase, v_aeIndex); // link semanticMashupInstance with semanticMashupJobProfile - v_createReqSmi.primitiveContent.semanticMashupInstance.smjpID := f_getResourceAddress(v_resourceIndexJobProfile); + v_createReqSmi.primitiveContent.semanticMashupInstance.smjpID := f_getResourceAddress(v_resourceIndexJobProfileIndex); // create semanticMashupInstance resource f_cse_createResource(int41, v_createReqSmi, v_aeIndex); @@ -16823,6 +16753,628 @@ module OneM2M_Testcases_CSE_Release_3 { } // end of group Delete }// end group Semantic + + group Interworking_3GPP { + + group nidd { + + // GET all confgurations from an SCEF + testcase TC_CSE_3GPP_SCEF_T8_001() runs on ScefSimu system ScefSystem { + f_cf05Up(); + + mcnPort.send( + m_t8Request( + m_t8_request_get( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations"), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_200_ok(-, mw_response_body_niddConfigurations(?/*{m_niddConfiguration}*/)))) { + tc_ac.stop; + setverdict(pass); + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + // GET a specifc confguration from an SCEF + testcase TC_CSE_3GPP_SCEF_T8_002() runs on ScefSimu system ScefSystem { + f_cf05Up(); + + mcnPort.send( + m_t8Request( + m_t8_request_get( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations/cf_001"), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_200_ok(-, mw_response_body_individualNiddConfiguration))) { + tc_ac.stop; + setverdict(pass); + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + // POST create a new Nidd confguration for an SCEF + testcase TC_CSE_3GPP_SCEF_T8_003() runs on ScefSimu system ScefSystem { + var T8Primitive v_response; + + f_cf05Up(); + + mcnPort.send( + m_t8Request( + m_t8_request_post( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations"), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + }, + m_request_body_niddConfiguration(m_niddConfiguration) + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualNiddConfiguration))) -> value v_response { + var charstring v_location; + + tc_ac.stop; + // Check presence of Location HTTP header + for (var integer i := 0; i < lengthof(v_response.t8Response.responseHeaders); i := i + 1) { + if (v_response.t8Response.responseHeaders[i].header_name == "Location") { + v_location := v_response.t8Response.responseHeaders[i].header_value; + break; + } + } // End of 'for' statement + if (isbound(v_location)) { + f_delete_nidd_configuration(v_location); + setverdict(pass); + } else { + setverdict(fail); + } + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + // DELETE delete a new Nidd confguration for an SCEF + testcase TC_CSE_3GPP_SCEF_T8_004() runs on ScefSimu system ScefSystem { + var charstring v_location; + + f_cf05Up(); + + // Preamble + f_create_nidd_configuration(v_location); + + // Test Body + mcnPort.send( + m_t8Request( + m_t8_request_delete( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & v_location), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_204_no_content)) { + tc_ac.stop; + setverdict(pass); + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + // DELETE delete a non existing Nidd confguration for an SCEF + testcase TC_CSE_3GPP_SCEF_T8_005() runs on ScefSimu system ScefSystem { + var charstring v_location := "unknown"; + + f_cf05Up(); + + // Preamble + + // Test Body + mcnPort.send( + m_t8Request( + m_t8_request_delete( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & v_location), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_404_not_found)) { + tc_ac.stop; + setverdict(pass); + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + // PATCH update an existing Nidd conf_create_nidd_configuration(v_location);fguration for an SCEF + testcase TC_CSE_3GPP_SCEF_T8_006() runs on ScefSimu system ScefSystem { + var charstring v_location; + var NiddConfiguration v_niddConfiguration; + var T8Primitive v_response; + + f_cf05Up(); + + // Preambule + f_create_nidd_configuration(v_location); + f_get_nidd_configuration(v_location, v_niddConfiguration); + + // TestBody + v_niddConfiguration.notificationDestination := v_niddConfiguration.notificationDestination & "_patched"; + mcnPort.send( + m_t8Request( + m_t8_request_patch( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & v_location), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + }, + m_request_body_niddConfiguration(v_niddConfiguration) + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_200_ok(-, mw_response_body_individualNiddConfiguration(v_niddConfiguration)))) -> value v_response { + + tc_ac.stop; + setverdict(pass); + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_delete_nidd_configuration(v_location); + + f_cf05Down(); + } + + group nidd_functions { + + function f_create_nidd_configuration(out charstring p_location) runs on ScefSimu system ScefSystem { + var T8Primitive v_response; + + mcnPort.send( + m_t8Request( + m_t8_request_post( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations"), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + }, + m_request_body_niddConfiguration(m_niddConfiguration) + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualNiddConfiguration))) -> value v_response { + + tc_ac.stop; + // Check presence of Location HTTP header + for (var integer i := 0; i < lengthof(v_response.t8Response.responseHeaders); i := i + 1) { + if (v_response.t8Response.responseHeaders[i].header_name == "Location") { + p_location := v_response.t8Response.responseHeaders[i].header_value; + break; + } + } // End of 'for' statement + if (not(isbound(p_location))) { + setverdict(fail); + } + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + } // End of function f_create_nidd_configuration + + function f_delete_nidd_configuration(in charstring p_location) runs on ScefSimu system ScefSystem { + mcnPort.send( + m_t8Request( + m_t8_request_delete( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & p_location), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_204_no_content)) { + tc_ac.stop; + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + } // End of function f_delete_nidd_configuration + + function f_get_nidd_configuration(in charstring p_location, out NiddConfiguration p_niddConfiguration) runs on ScefSimu system ScefSystem { + var T8Primitive v_response; + + mcnPort.send( + m_t8Request( + m_t8_request_get( + m_uri_3gpp_nidd(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/configurations" & "/" & p_location), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_200_ok(-, mw_response_body_individualNiddConfiguration))) -> value v_response { + tc_ac.stop; + p_niddConfiguration := v_response.t8Response.responseBody.individualNiddConfiguration; + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + } // End of function f_get_nidd_configuration + + } // End of group nidd_functions + + } // End of group nidd + + group device_trigerring { + + // GET all transactons from an SCEF + testcase TC_CSE_3GPP_SCEF_T8_007() runs on ScefSimu system ScefSystem { + f_cf05Up(); + + mcnPort.send( + m_t8Request( + m_t8_request_get( + m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions"), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_200_ok(-, mw_response_body_deviceTriggerings(?)))) { + tc_ac.stop; + setverdict(pass); + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + // GET all transactons from an SCEF + testcase TC_CSE_3GPP_SCEF_T8_008() runs on ScefSimu system ScefSystem { + f_cf05Up(); + + mcnPort.send( + m_t8Request( + m_t8_request_get( + m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions/cf_001"), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_200_ok(-, mw_response_body_individualDeviceTriggering(mw_deviceTriggering_externalId)))) { + tc_ac.stop; + setverdict(pass); + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + // POST create a new device transaction for an SCEF + testcase TC_CSE_3GPP_SCEF_T8_009() runs on ScefSimu system ScefSystem { + var T8Primitive v_response; + + f_cf05Up(); + + mcnPort.send( + m_t8Request( + m_t8_request_post( + m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions"), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + }, + m_request_body_deviceTriggering(m_deviceTriggering_externalId("externl_id", -, -, 30123, "CAFEDECA", "link")) + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering))) -> value v_response { + var charstring v_location; + + tc_ac.stop; + // Check presence of Location HTTP header + for (var integer i := 0; i < lengthof(v_response.t8Response.responseHeaders); i := i + 1) { + if (v_response.t8Response.responseHeaders[i].header_name == "Location") { + v_location := v_response.t8Response.responseHeaders[i].header_value; + break; + } + } // End of 'for' statement + if (isbound(v_location)) { + f_delete_device_triggering(v_location); + setverdict(pass); + } else { + setverdict(fail); + } + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + // POST notification from an SCEF + testcase TC_CSE_3GPP_SCEF_T8_010() runs on ScefSimu system ScefSystem { + + f_cf05Up(); + + tc_ac.start; + alt { + [] mcnPortIn.receive(mw_t8Request(mw_t8_request_post(-, -, mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification)))) { + tc_ac.stop; + // Send the response 200 OK + mcnPortIn.send(m_t8Response(m_t8_response_200_ok({ + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + }))); + setverdict(pass); + } + [] mcnPortIn.receive(mw_t8Request) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + f_cf05Down(); + } + + group device_triggering_functions { + + function f_create_device_triggering(out charstring p_location) runs on ScefSimu system ScefSystem { + var T8Primitive v_response; + + mcnPort.send( + m_t8Request( + m_t8_request_post( + m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions"), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + }, + m_request_body_deviceTriggering(m_deviceTriggering_externalId("externl_id", -, -, 30123, "CAFEDECA", "link")) + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_201_created(-, mw_response_body_individualDeviceTriggering))) -> value v_response { + + tc_ac.stop; + // Check presence of Location HTTP header + for (var integer i := 0; i < lengthof(v_response.t8Response.responseHeaders); i := i + 1) { + if (v_response.t8Response.responseHeaders[i].header_name == "Location") { + p_location := v_response.t8Response.responseHeaders[i].header_value; + break; + } + } // End of 'for' statement + if (not(isbound(p_location))) { + setverdict(fail); + } + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + } // End of function f_create_device_triggering + + function f_delete_device_triggering(in charstring p_location) runs on ScefSimu system ScefSystem { + mcnPort.send( + m_t8Request( + m_t8_request_delete( + m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions" & "/" & p_location), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_204_no_content)) { + tc_ac.stop; + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + } // End of function f_delete_device_triggering + + function f_get_device_triggering(in charstring p_location, out DeviceTriggering p_deviceTriggering) runs on ScefSimu system ScefSystem { + var T8Primitive v_response; + + mcnPort.send( + m_t8Request( + m_t8_request_get( + m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), vc_scefSimuDesc.scefId & "/transactions" & "/" & p_location), + { + { "Host", vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.sutAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort) }, + { "User-Agent", "oneM2M Test Adapter - TTF001" }, + { "Accept", "*/*" }, + { "Content-Type", "application/json" }, + { "Connection", "keep-alive" } + } + ))); + tc_ac.start; + alt { + [] mcnPort.receive(mw_t8Response(mw_t8_response_200_ok(-, mw_response_body_individualDeviceTriggering))) -> value v_response { + tc_ac.stop; + p_deviceTriggering := v_response.t8Response.responseBody.individualDeviceTriggeringTransaction; + } + [] mcnPort.receive(mw_t8Response) { + tc_ac.stop; + setverdict(fail); + } + [] tc_ac.timeout { + setverdict(inconc); + } + } // End of 'alt' statement + + } // End of function f_get_device_triggering + + } // End of group device_triggering_functions + + } // End of group device_triggering + + } // End of group Interworking_3GPP }//end group CSE