diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 3bb342aaf5555db36d6b2987b53892ee18a2d534..b330e1f0850e5b738720c8ddd74c1d6f1cf115f2 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -996,7 +996,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 @@ -1164,6 +1164,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 */ @@ -1181,15 +1191,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 @@ -1269,6 +1270,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); @@ -1278,11 +1280,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; } } @@ -1327,6 +1327,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); @@ -1337,16 +1338,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; } } @@ -1715,6 +1713,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); } @@ -2868,6 +2867,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"); } @@ -2956,7 +2961,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 { @@ -3028,6 +3033,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"); } @@ -3063,6 +3074,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"); } @@ -3177,6 +3194,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"); } @@ -3285,6 +3308,7 @@ module OneM2M_Functions { f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive); vc_remoteCseIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int16, -1); v_localRemoteCSEResource := f_generateLocalResource(valueof(m_primitiveContentRemoteCSE(m_contentLocalRemoteCSEResource(vc_myInterfaces[enum2int(valueof(InterfaceIds:e_mccPort))].myHost))), vc_cSEBaseIndex, int16); + vc_componentRegistered := true; vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex); } [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) { @@ -3330,6 +3354,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)); @@ -3339,6 +3364,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); @@ -4032,6 +4058,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)) { @@ -5064,7 +5091,6 @@ module OneM2M_Functions { } } - return valueof(p_request); } @@ -6782,6 +6808,12 @@ module OneM2M_Functions { } } } + case ("MqttSetDefaultTopicToNotRegistration") { + acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_aeIndex)}}); + } + case ("MqttSetDefaultTopicToRegistration") { + acPort.send(AcRequestPrimitive:{p_event, {charstring := int2str(p_aeIndex)}}); + } } } }//end of group AcFunctions @@ -6846,6 +6878,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 { @@ -7134,9 +7169,42 @@ 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); + } + 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){ + //Modify default topic to publish a non-registration message + f_sendAcPrimitive("MqttSetDefaultTopicToNotRegistration", -1); + vc_myInterfaces[enum2int(p_interfaceIds)].myPort.send(p_msgOut); + f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1); + return; + } //else { + //f_sendAcPrimitive("MqttSetDefaultTopicToRegistration", -1); + //} + } + } + } + } + //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_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 669b744655cd92c221873f54befccf8b8884e548..a6b4be4a9e4459d0b1f82ee2e2400438a7a16480 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -18,19 +18,6 @@ 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); - } - /* Templates */ @@ -103,7 +90,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 +163,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 +196,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 +212,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 +251,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 +287,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 +329,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 +341,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 +382,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 +425,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 +548,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 +1032,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)} }; /** @@ -2060,7 +2047,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 +2076,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 +2128,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 +2180,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, @@ -3832,7 +3819,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 @@ -3848,7 +3835,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 @@ -3869,7 +3856,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 @@ -3885,7 +3872,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 @@ -3921,7 +3908,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 @@ -7971,7 +7958,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, @@ -8113,7 +8100,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, @@ -8146,7 +8133,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} } @@ -8154,7 +8141,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)} } @@ -8162,7 +8149,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} } @@ -8170,7 +8157,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} } @@ -8178,7 +8165,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} } @@ -8186,7 +8173,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} } @@ -8197,7 +8184,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, @@ -8230,7 +8217,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} } @@ -8238,7 +8225,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} } @@ -8249,7 +8236,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, @@ -8282,7 +8269,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} } @@ -8290,7 +8277,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} } @@ -8301,7 +8288,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, @@ -8399,7 +8386,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)} } @@ -8407,7 +8394,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)} } @@ -8415,7 +8402,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} } @@ -8423,7 +8410,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} } @@ -8431,7 +8418,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} } @@ -8439,7 +8426,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} } @@ -8447,7 +8434,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} } @@ -8455,7 +8442,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} } @@ -8463,7 +8450,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} } @@ -8471,7 +8458,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} } @@ -8479,7 +8466,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} } @@ -8487,7 +8474,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} } @@ -8495,7 +8482,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} } @@ -8503,7 +8490,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} } @@ -8511,7 +8498,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} } @@ -8519,7 +8506,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} } @@ -8530,7 +8517,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, diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn index be995d3c68e4903521b0a4c42627b8a42b4ef06b..d424b02698fcd000e488be86965c2faa1bd6854f 100644 --- a/LibOneM2M/OneM2M_TestSystem.ttcn +++ b/LibOneM2M/OneM2M_TestSystem.ttcn @@ -50,6 +50,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; diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 55f249009b4c694dd3f3475de86dda84f55e3b09..e4e17771a59fe2f4c19cc6f5f77c0ed3ad2c97a7 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))); @@ -12464,90 +12466,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..843f64530f148dea6531d139e038fc499f7813b8 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;