From c51b21e4eed2884f2c10db6cfa9baffd04903534 Mon Sep 17 00:00:00 2001 From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org> Date: Thu, 9 Jun 2016 17:15:00 +0200 Subject: [PATCH] Output from oneM2M Plugtests#2 (part 3) - Handling of generation of addresses depending on the address format + selection of originator --- OneM2M_Functions.ttcn | 309 ++++++++++++++------- OneM2M_Pixits.ttcn | 6 +- OneM2M_Templates.ttcn | 69 +++-- OneM2M_TestSystem.ttcn | 7 +- OneM2M_Testcases.ttcn | 612 ++++++++++++----------------------------- OneM2M_Types.ttcn | 19 +- 6 files changed, 460 insertions(+), 562 deletions(-) diff --git a/OneM2M_Functions.ttcn b/OneM2M_Functions.ttcn index ac9e7ac..34b4f7e 100644 --- a/OneM2M_Functions.ttcn +++ b/OneM2M_Functions.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Functions.ttcn $ - * $Id: OneM2M_Functions.ttcn 98 2016-06-02 07:34:39Z reinaortega $ + * $Id: OneM2M_Functions.ttcn 99 2016-06-09 15:04:43Z reinaortega $ * @desc Module containing functions for oneM2M * */ @@ -46,18 +46,25 @@ module OneM2M_Functions { group preambleFunctions { - function f_preamble_registerAe(in template (value) AccessControlOperations p_allowedOperations := int63) runs on M2M {//c_CRUDNDi + function f_preamble_registerAe(in template (value) AccessControlOperations p_allowedOperations := int63) runs on M2M return integer{//c_CRUDNDi var RequestPrimitive v_request; var M2MResponsePrimitive v_response; - var XSD.ID v_acpId := "0"; + var integer v_aeAuxIndex := -1; + var integer v_acpAuxIndex := -1; if(PX_ACP_SUPPORT){ - v_acpId := f_createAccessControlPolicyAux(p_allowedOperations := p_allowedOperations); + v_acpAuxIndex := f_createAccessControlPolicyAux(p_allowedOperations := p_allowedOperations); } - if(v_acpId != "0") { - mcaPort.send(m_request(m_createAeAux({v_acpId}))); + if(v_acpAuxIndex != -1) { + vc_resourcesIndexToBeDeleted := {v_acpAuxIndex}; + v_request := valueof(m_createAeAux({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)})); + + //TODO Test, to be removed + v_request.to_ := f_addPrefix(f_getResourceAddress()); + + mcaPort.send(m_request(v_request)); //mcaPort.send(m_request(m_createAeAux(p_name, {PX_URI_CSE & PX_CSE_NAME & "/" & c_acpAuxName}))); } else { mcaPort.send(m_request(m_createAeAux())); @@ -67,8 +74,12 @@ module OneM2M_Functions { [] mcaPort.receive(mw_responseOK) -> value v_response { tc_ac.stop; log("Preamble: Application registered successfuly"); - if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].AE)) { - vc_aeAux := v_response.responsePrimitive_.primitiveContent.any_1[0].AE; + if(ischosen(v_response.responsePrimitive_.primitiveContent.any_1[0].AE_optional)) { + vc_aeAux := v_response.responsePrimitive_.primitiveContent.any_1[0].AE_optional; + + v_aeAuxIndex := f_setResource(v_response.responsePrimitive_.primitiveContent); + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_aeAuxIndex}; + if(ispresent(vc_aeAux.aE_ID)){ f_sendAcPrimitive("AE-ID_changed", oct2char(unichar2oct(vc_aeAux.aE_ID))); } else { @@ -91,6 +102,8 @@ module OneM2M_Functions { stop; } } + + return v_aeAuxIndex; } @@ -99,62 +112,45 @@ module OneM2M_Functions { group postambleFunctions { function f_postamble_deleteResources() runs on M2M { - + var integer i; + var XSD.ID v_resourceAddress; var M2MResponsePrimitive v_response; var RequestPrimitive v_request; if (PX_RUN_POSTAMBLE) { - if(PX_UNSTRUCTURED) - { - v_request := valueof(m_deleteAe("/" & vc_aeAux.aE_ID)); - v_request.from_ := vc_aeAux.aE_ID; - mcaPort.send(m_request(v_request)); - } else { - mcaPort.send(m_request(m_deleteAe(PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName))); - } - tc_ac.start; - alt { - [] mcaPort.receive(mw_responseOK) { - tc_ac.stop; - log("Postamble: AE Resource deleted"); - } - [] mcaPort.receive(mw_responseKO) { - tc_ac.stop; - log("Postamble: Error while deleting resource"); + + for(i := 0; i < lengthof(vc_resourcesIndexToBeDeleted); i := i + 1) { + + v_resourceAddress := f_getResourceAddress(lengthof(vc_resourcesIndexToBeDeleted)-1 - i); + + v_request := valueof(m_deleteRequest(v_resourceAddress)); + + if(PX_FROM_IS_AE_ID){ + if(ischosen(vc_resourcesList[i].resource.any_1[0].AccessControlPolicy_optional)) { + v_request.from_ := PX_AE_ID_STEM; + } else { + v_request.from_ := vc_aeAux.aE_ID; + } } - [] tc_ac.timeout { - log("Postamble: No answer while deleting resource"); + mcaPort.send(m_request(v_request)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_responseOK) { + tc_ac.stop; + log("Postamble: AE Resource deleted"); + } + [] mcaPort.receive(mw_responseKO) { + tc_ac.stop; + log("Postamble: Error while deleting resource"); + } + [] tc_ac.timeout { + log("Postamble: No answer while deleting resource"); + } } - } - - if(PX_ACP_SUPPORT){ - - if(PX_UNSTRUCTURED) - { - v_request := valueof(m_deleteAcp("/" & vc_acpAux.resourceID)); - v_request.from_ := PX_AE_ID_STEM; - mcaPort.send(m_request(v_request)); - } else { - mcaPort.send(m_request(m_deleteAcp(PX_URI_CSE & PX_CSE_NAME & "/" & c_acpAuxName))); - } - tc_ac.start; - alt { - [] mcaPort.receive(mw_responseOK) { - tc_ac.stop; - log("Postamble: ACP Resource deleted"); - } - [] mcaPort.receive(mw_responseKO) { - tc_ac.stop; - log("Postamble: Error while deleting resource"); - } - [] tc_ac.timeout { - log("Postamble: No answer while deleting resource"); - } - } } - } - + f_postamble_default(); } @@ -189,20 +185,19 @@ module OneM2M_Functions { group getSetFunctions { - function f_getCreateRequestPrimitive(in ResourceType p_resourceType, XSD.ID p_aeResourceAddress, in template (omit) AccessControlOperations p_allowedOperations, template RequestPrimitive p_request) runs on M2M return RequestPrimitive { + function f_getCreateRequestPrimitive(in ResourceType p_resourceType, in template (omit) AccessControlOperations p_allowedOperations, template RequestPrimitive p_request, integer p_parentIndex) runs on M2M return RequestPrimitive { - p_request.to_ := p_aeResourceAddress; - //p_request.name := p_name; + p_request.from_ := f_getOriginator(p_parentIndex); + + p_request.to_ := f_addPrefix(f_getResourceAddress(p_parentIndex)); + + //p_request.name := p_name; if (p_resourceType == int1) {//AccessControlPolicy } if (p_resourceType == int9) {//group - if(PX_UNSTRUCTURED) { - p_request.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup (1, {"/" & vc_aeAux.resourceID}, omit); - } else { - p_request.primitiveContent.any_1[0].Group_optional.memberIDs := {PX_CSE_ID & "/" & PX_CSE_NAME & "/" & c_aeAuxName};//vc_aeAux.resourceID - } + p_request.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceAddress(p_parentIndex)}; } if (p_resourceType == int15) {//pollingChannel @@ -210,7 +205,9 @@ module OneM2M_Functions { } if (p_resourceType == int23) {//subscription - if(PX_FROM_IS_AE_ID) { + p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(p_parentIndex)}; + + /*if(PX_FROM_IS_AE_ID) { if(PX_UNSTRUCTURED){ p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {vc_aeAux.aE_ID}; } else { @@ -218,15 +215,18 @@ module OneM2M_Functions { } } else { p_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {"/" & PX_CSE_NAME & "/" & c_aeAuxName}; - } + }*/ } return valueof(p_request); } - function f_getUpdateRequestPrimitive(in ResourceType p_resourceType, XSD.ID p_resourceAddress, template RequestPrimitive p_request) runs on M2M return RequestPrimitive { + function f_getUpdateRequestPrimitive(in ResourceType p_resourceType, integer p_resourceIndex, template RequestPrimitive p_request) runs on M2M return RequestPrimitive { - p_request.to_ := p_resourceAddress; + p_request.from_ := f_getOriginator(p_resourceIndex); + + p_request.to_ := f_addPrefix(f_getResourceAddress(p_resourceIndex)); + //p_request.name := p_name; if (p_resourceType == int3) {//Container @@ -275,34 +275,150 @@ module OneM2M_Functions { if(ischosen(p_contentResource.any_1[0].Group_optional)) { return p_contentResource.any_1[0].Group_optional.resourceID; } + if(ischosen(p_contentResource.any_1[0].AE_optional)) { + return p_contentResource.any_1[0].AE_optional.resourceID; + } + return "1"; + + } + + function f_getResourceName(PrimitiveContent p_contentResource) return XSD.ID { + + if(ischosen(p_contentResource.any_1[0].AccessControlPolicy_optional)) { + return p_contentResource.any_1[0].AccessControlPolicy_optional.resourceName; + } + if(ischosen(p_contentResource.any_1[0].Container_optional)) { + return p_contentResource.any_1[0].Container_optional.resourceName; + } + if(ischosen(p_contentResource.any_1[0].Schedule_optional)) { + return p_contentResource.any_1[0].Schedule_optional.resourceName; + } + if(ischosen(p_contentResource.any_1[0].PollingChannel_optional)) { + return p_contentResource.any_1[0].PollingChannel_optional.resourceName; + } + if(ischosen(p_contentResource.any_1[0].Subscription_optional)) { + return p_contentResource.any_1[0].Subscription_optional.resourceName; + } + if(ischosen(p_contentResource.any_1[0].Group_optional)) { + return p_contentResource.any_1[0].Group_optional.resourceName; + } + if(ischosen(p_contentResource.any_1[0].AE_optional)) { + return p_contentResource.any_1[0].AE_optional.resourceName; + } + return "1"; } - function f_getAttribute(in MyAttributeList p_attributeList, in XSD.NCName p_attributeName) return Attribute { + function f_getOriginator(integer p_targetResourceIndex := -1) runs on M2M return XSD.AnyURI { + + if(p_targetResourceIndex == -1) { + return PX_AE_ID_STEM; + } + + if(PX_FROM_IS_AE_ID) { + if(ischosen(vc_resourcesList[p_targetResourceIndex].resource.any_1[0].AE_optional)) { + return vc_resourcesList[p_targetResourceIndex].resource.any_1[0].AE_optional.aE_ID; + } else { + return f_getOriginator(vc_resourcesList[p_targetResourceIndex].parentIndex); + } + } else { + return PX_AE_ID_STEM; + } + } + + function f_getAttribute(in AttributeList p_attributeList, in XSD.NCName p_attributeName) return integer { var integer i; var Attribute v_attribute := {-, -}; for (i:=0; i < lengthof(p_attributeList); i := i + 1){ - if(p_attributeList[i].name == p_attributeName){ + if(p_attributeList[i] == p_attributeName){ + return i; } } - return v_attribute; + return -1; } + + function f_getResourceAddress(integer p_targetResourceIndex := -1) runs on M2M return XSD.ID { + var XSD.ID v_resourceAddress; + + if(PX_ADDRESSING_FORMAT == e_cseRelative) { + + if(PX_UNSTRUCTURED) { + if(p_targetResourceIndex == -1) { + return ""; + } else { + return f_getResourceId(vc_resourcesList[p_targetResourceIndex].resource); + } + } else { + if(p_targetResourceIndex == -1) { + return PX_CSE_NAME; + } else { + v_resourceAddress := f_getResourceAddress(vc_resourcesList[p_targetResourceIndex].parentIndex) & "/" & f_getResourceName(vc_resourcesList[p_targetResourceIndex].resource); + return v_resourceAddress; + } + } + + } else if (PX_ADDRESSING_FORMAT == e_spRelative) { + if(PX_UNSTRUCTURED) { + if(p_targetResourceIndex == -1) { + return "/" & PX_CSE_ID; + } else { + v_resourceAddress := f_getResourceAddress() & "/" & f_getResourceId(vc_resourcesList[p_targetResourceIndex].resource); + return v_resourceAddress; + } + } else { + if(p_targetResourceIndex == -1) { + return "/" & PX_CSE_ID & "/" & PX_CSE_NAME; + } else { + v_resourceAddress := f_getResourceAddress(vc_resourcesList[p_targetResourceIndex].parentIndex) & "/" & f_getResourceName(vc_resourcesList[p_targetResourceIndex].resource); + return v_resourceAddress; + } + } + } else if (PX_ADDRESSING_FORMAT == e_absolute) { + if(PX_UNSTRUCTURED) { + if(p_targetResourceIndex == -1) { + return ""; + } else { + return ""; + } + } else { + if(p_targetResourceIndex == -1) { + return ""; + } else { + return ""; + } + } + } else { + return ""; + } + + } + function f_setResource(PrimitiveContent p_resource, integer p_parentIndex := -1) runs on M2M return integer { + + if(isbound(vc_resourcesList)) { + vc_resourcesList[lengthof(vc_resourcesList)] := {p_parentIndex, p_resource}; + } else { + vc_resourcesList[0] := {p_parentIndex, p_resource}; + } + return lengthof(vc_resourcesList)-1; + + } }//end group getSetFunctions group helpingFunctions { - function f_createResource(in ResourceType p_resourceType, XSD.ID p_parentResourceAddress, template RequestPrimitive p_requestPrimitive) runs on M2M return RequestPrimitive { + function f_createResource(in ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, integer p_parentIndex := -1) runs on M2M return integer { var M2MResponsePrimitive v_response; var RequestPrimitive v_request; var XSD.ID v_resourceId; + var integer v_resourceIndex := -1; - v_request := f_getCreateRequestPrimitive(p_resourceType,p_parentResourceAddress, omit, p_requestPrimitive); + v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, p_parentIndex); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -310,7 +426,7 @@ module OneM2M_Functions { [] mcaPort.receive(mw_responseOK) -> value v_response { tc_ac.stop; setverdict(pass, "f_createResource: Resource type " & int2str(enum2int(p_resourceType)) & " created successfuly"); - vc_resourceId := f_getResourceId(v_response.responsePrimitive_.primitiveContent); + v_resourceIndex := f_setResource(v_response.responsePrimitive_.primitiveContent, p_parentIndex); } [] mcaPort.receive(mw_responseKO) { tc_ac.stop; @@ -325,24 +441,27 @@ module OneM2M_Functions { } } - return v_request; + return v_resourceIndex; } - function f_createAccessControlPolicyAux(in template (value) XSD.String p_acpName := "MyAcp", in template (value) AccessControlOperations p_allowedOperations := int63) runs on M2M return XSD.ID{ - + function f_createAccessControlPolicyAux(in template (value) XSD.String p_acpName := "MyAcp", in template (value) AccessControlOperations p_allowedOperations := int63) runs on M2M return integer{ + var RequestPrimitive v_request; var M2MResponsePrimitive v_response; - var XSD.ID v_acpId; - - mcaPort.send(m_request(m_createAcpAux(p_acpName := p_acpName, p_allowedOperations := p_allowedOperations))); + var integer v_acpAuxIndex := -1; + + v_request := valueof(m_createAcpAux(p_acpName := p_acpName, p_allowedOperations := p_allowedOperations)); + + v_request.to_ := f_addPrefix(f_getResourceAddress()); + + mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_responseOK) -> value v_response { tc_ac.stop; setverdict(pass, "f_createAccessControlPolicy: Resource type " & int2str(1) & " created successfuly"); - v_acpId := f_getResourceId(v_response.responsePrimitive_.primitiveContent); - vc_acpAux := v_response.responsePrimitive_.primitiveContent.any_1[0].AccessControlPolicy_optional; - return v_acpId; + v_acpAuxIndex := f_setResource(v_response.responsePrimitive_.primitiveContent); + vc_acpAux := v_response.responsePrimitive_.primitiveContent.any_1[0].AccessControlPolicy_optional;//TODO To be removed } [] mcaPort.receive(mw_responseKO) { tc_ac.stop; @@ -357,26 +476,27 @@ module OneM2M_Functions { } } - return "0"; + return v_acpAuxIndex; } - function f_createContainerResourceAux (XSD.ID p_parentResourceAddress) runs on M2M return RequestPrimitive { + function f_createContainerResourceAux (XSD.ID p_parentResourceAddress, integer p_parentIndex := -1) runs on M2M return integer { var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.ID v_acpId; + var integer v_acpAuxIndex := -1; + var integer v_containerResourceIndex := -1; - v_acpId := f_createAccessControlPolicyAux(p_acpName := "MyAcp_2"); + v_acpAuxIndex := f_createAccessControlPolicyAux(p_acpName := "MyAcp_2"); v_request := valueof(m_createContainerBase); - v_request.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {v_acpId}; + v_request.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}; v_request.primitiveContent.any_1[0].Container_optional.resourceName := "MyContainerAux"; - f_createResource(int3, p_parentResourceAddress, v_request ); + v_containerResourceIndex := f_createResource(int3, v_request, p_parentIndex); - return v_request; + return v_containerResourceIndex; } @@ -385,11 +505,11 @@ module OneM2M_Functions { v_request := valueof(m_updateAcpBase); - v_request.to_ := p_acpAddress; + v_request.to_ := f_addPrefix(p_acpAddress); v_request.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list := { { - accessControlOriginators := {"*"}, //{"admin:admin"} - accessControlOperations := p_allowedOperations, + accessControlOriginators := PX_ACOR, //{"admin:admin"} + accessControlOperations := valueof(p_allowedOperations), accessControlContexts_list := omit } }; @@ -417,7 +537,8 @@ module OneM2M_Functions { acPort.send(AcRequestPrimitive:{event, {charstring := v_data}}); } - + + }//end group helpingFunctions diff --git a/OneM2M_Pixits.ttcn b/OneM2M_Pixits.ttcn index 71223c5..ef37fc7 100644 --- a/OneM2M_Pixits.ttcn +++ b/OneM2M_Pixits.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Pixits.ttcn $ - * $Id: OneM2M_Pixits.ttcn 97 2016-06-01 15:38:10Z reinaortega $ + * $Id: OneM2M_Pixits.ttcn 99 2016-06-09 15:04:43Z reinaortega $ * @desc Module containing Pixits for oneM2M * */ @@ -40,13 +40,15 @@ module OneM2M_Pixits { modulepar ListOfURIs PX_ACOR := {"*"}; + modulepar AddressingFormat PX_ADDRESSING_FORMAT := e_cseRelative; + modulepar charstring PX_SERIALIZATION := "JSON"; modulepar charstring PX_PROTOCOL_BINDING := "HTTP"; modulepar boolean PX_ACP_SUPPORT := true; - modulepar charstring PX_CSE_ID := "/in-cse"; + modulepar charstring PX_CSE_ID := "in-cse"; modulepar boolean PX_FROM_IS_AE_ID := false; diff --git a/OneM2M_Templates.ttcn b/OneM2M_Templates.ttcn index 0c3d4d3..824f586 100644 --- a/OneM2M_Templates.ttcn +++ b/OneM2M_Templates.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Templates.ttcn $ - * $Id: OneM2M_Templates.ttcn 97 2016-06-01 15:38:10Z reinaortega $ + * $Id: OneM2M_Templates.ttcn 99 2016-06-09 15:04:43Z reinaortega $ * @desc Module containing templates for oneM2M * */ @@ -19,6 +19,7 @@ module OneM2M_Templates { import from OneM2M_TypesAndValues all; //import from OneM2M_AdditionalTypes all; import from OneM2M_Pixits all; + import from OneM2M_Functions all; function f_rnd(in integer p_lower, in integer p_upper) return charstring { @@ -73,7 +74,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_retrieveResource(XSD.ID p_targetResourceAddress) := { operation := int2, - to_ := p_targetResourceAddress, + to_ := f_addPrefix(p_targetResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_retrieveResource" & f_rnd(1, 1000000), resourceType := omit, @@ -95,7 +96,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_retrieveResourceAttributeToOption(XSD.ID p_targetResourceAddress) := { operation := int2, - to_ := p_targetResourceAddress, + to_ := f_addPrefix(p_targetResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_retrieveResourceAttributeOptionTo" & f_rnd(1, 1000000), resourceType := omit, @@ -117,7 +118,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_retrieveResourceAttributeContentOption(XSD.ID p_targetResourceAddress, in template (value) AttributeList_1 p_attributeList) := { operation := int2, - to_ := p_targetResourceAddress, + to_ := f_addPrefix(p_targetResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_retrieveResourceAttributeContentOption" & f_rnd(1, 1000000), resourceType := omit, @@ -191,7 +192,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_updateContainer(XSD.ID p_targetResourceAddress, in template (omit) XSD.String p_resourceName) := { operation := int3, - to_ := p_targetResourceAddress, + to_ := f_addPrefix(p_targetResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_updateContainer" & f_rnd(1, 1000000), resourceType := omit, @@ -374,8 +375,8 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createAeAux(template (omit) AcpType p_accessControlPolicyIDs := omit ) := { operation := int1, - to_ := PX_URI_CSE & PX_CSE_NAME, - from_ := PX_AE_ID_STEM,//TODO We should use omit, "s", or "c" + to_ := "Not Initialized", + from_ := omit,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c" requestIdentifier := "m_createAe" & f_rnd(1, 1000000), resourceType := int2, primitiveContent := { @@ -424,7 +425,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createAcp(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_name := c_defaultResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63) := { operation := int1, - to_ := p_parentResourceAddress, + to_ := f_addPrefix(p_parentResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_createAcp" & f_rnd(1, 1000000), resourceType := int1, @@ -449,7 +450,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createAcpAux(in template (value) XSD.String p_acpName := c_acpAuxName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) := { operation := int1, - to_ := PX_URI_CSE & PX_CSE_NAME, + to_ := "Not Initialized", from_ := PX_AE_ID_STEM, requestIdentifier := "m_createAcp" & f_rnd(1, 1000000), resourceType := int1, @@ -500,7 +501,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName) := { operation := int1, - to_ := p_parentResourceAddress, + to_ := f_addPrefix(p_parentResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_createContainer" & f_rnd(1, 1000000), resourceType := int3, @@ -525,7 +526,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createContentInstance(XSD.ID p_parentResourceAddress, XSD.String p_primitiveContent) := { operation := int1, - to_ := p_parentResourceAddress, + to_ := f_addPrefix(p_parentResourceAddress), from_ := "admin:admin", requestIdentifier := "m_createContentInstance" & f_rnd(1, 1000000), resourceType := int4, @@ -575,7 +576,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createGroup(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_name, in template (omit) AcpType p_accessControlPolicyIDs, in template (value) XSD.AnyURI p_memberId ) := { operation := int1, - to_ := p_parentResourceAddress, + to_ := f_addPrefix(p_parentResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_createGroup" & f_rnd(1, 1000000), resourceType := int9, @@ -625,7 +626,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createPollingChannel(XSD.ID p_parentResourceAddress, in template (value)XSD.ID p_originatorId, in template (omit) AcpType p_accessControlPolicyIDs ) := { operation := int1, - to_ := p_parentResourceAddress, + to_ := f_addPrefix(p_parentResourceAddress), from_ := p_originatorId, requestIdentifier := "m_createPollingChannel" & f_rnd(1, 1000000), resourceType := int15, @@ -677,7 +678,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createSchedule(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_name, in template (value) ScheduleEntries p_scheduleElement ) := { operation := int1, - to_ := p_parentResourceAddress, + to_ := f_addPrefix(p_parentResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_createSchedule" & f_rnd(1, 1000000), resourceType := int18, @@ -727,7 +728,7 @@ module OneM2M_Templates { template (value) RequestPrimitive m_createSubscription(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_name, in template (value) ListOfURIs p_notificationURI ) := { operation := int1, - to_ := p_parentResourceAddress, + to_ := f_addPrefix(p_parentResourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_createSubscription" & f_rnd(1, 1000000), resourceType := int23, @@ -753,9 +754,9 @@ module OneM2M_Templates { group Delete { - template (value) RequestPrimitive m_deleteAe(XSD.ID p_aeResourceAddress) := { + template (value) RequestPrimitive m_deleteRequest(XSD.ID p_resourceAddress) := { operation := int4, - to_ := p_aeResourceAddress, + to_ := f_addPrefix(p_resourceAddress), from_ := PX_AE_ID_STEM, requestIdentifier := "m_deleteAe" & f_rnd(1, 1000000), resourceType := omit, @@ -776,13 +777,13 @@ module OneM2M_Templates { }; - template (value) RequestPrimitive m_deleteAcp(XSD.ID p_resourceId) := { - operation := int4, - to_ := p_resourceId, - from_ := PX_AE_ID_STEM, - requestIdentifier := "m_deleteAcp" & f_rnd(1, 1000000), - resourceType := omit, - primitiveContent := omit, + template (value) RequestPrimitive m_delete(XSD.ID p_resourceAddress) := { + operation := int4, + to_ := p_resourceAddress, + from_ := PX_AE_ID_STEM, + requestIdentifier := "m_deleteAe" & f_rnd(1, 1000000), + resourceType := omit, + primitiveContent := omit, role := omit, originatingTimestamp := omit, requestExpirationTimestamp := omit, @@ -797,7 +798,8 @@ module OneM2M_Templates { filterCriteria := omit, discoveryResultType := omit - }; + }; + }//end group Delete }//end group RequestPrimitives @@ -821,7 +823,7 @@ module OneM2M_Templates { pointOfAccess := {"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA ontologyRef := omit,//O nodeLink := omit,//NP - requestReachability := false,//M + requestReachability := true,//M contentSerialization := omit,//O choice := omit//NP }; @@ -1827,6 +1829,21 @@ module OneM2M_Templates { } }; }//end group ResponsePrimitives + + function f_addPrefix(XSD.ID v_address) return XSD.ID { + //TODO Test, to be removed + if(PX_ADDRESSING_FORMAT == e_cseRelative) { + v_address := "/" & v_address; + } else if (PX_ADDRESSING_FORMAT == e_spRelative) { + v_address := "/~" & v_address; + } else { + v_address := "/~" & v_address; + } + + return v_address; + + } + } // end of module diff --git a/OneM2M_TestSystem.ttcn b/OneM2M_TestSystem.ttcn index 236721b..e480aa5 100644 --- a/OneM2M_TestSystem.ttcn +++ b/OneM2M_TestSystem.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestSystem.ttcn $ - * $Id: OneM2M_TestSystem.ttcn 97 2016-06-01 15:38:10Z reinaortega $ + * $Id: OneM2M_TestSystem.ttcn 99 2016-06-09 15:04:43Z reinaortega $ * @desc Test System module for oneM2M * */ @@ -42,9 +42,10 @@ module OneM2M_TestSystem { timer tc_ac := PX_TAC; timer tc_wait; //global variables - var AE vc_aeAux; + var AE_optional vc_aeAux;//TODO To be removed var AccessControlPolicy_optional vc_acpAux; - var XSD.ID vc_resourceId := "0";//TODO Clean it, I put it here cause the function f_createResource was already returning another value + var MyResourcesList vc_resourcesList; + var IntegerList vc_resourcesIndexToBeDeleted; } type component M2MSystem { diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index e844dd3..ce37639 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ - * $Id: OneM2M_Testcases.ttcn 98 2016-06-02 07:34:39Z reinaortega $ + * $Id: OneM2M_Testcases.ttcn 99 2016-06-09 15:04:43Z reinaortega $ * @desc Module containing test cases for oneM2M * */ @@ -21,7 +21,6 @@ module OneM2M_Testcases { import from OneM2M_TypesAndValues all; import from OneM2M_Pixits all; import from OneM2M_Functions all; -// import from OneM2M_AdditionalTypes all; import from LibCommon_Time {modulepar all}; import from XSD all; @@ -35,7 +34,7 @@ module OneM2M_Testcases { timer t_ac := 5.0; map(self:mcaPort, system:mcaPort); - mcaPort.send(m_request(m_deleteAe(PX_URI_CSE & PX_CSE_NAME & "/" & PX_RESOURCE_TO_BE_DELETED))); + mcaPort.send(m_request(m_deleteRequest(PX_URI_CSE & PX_CSE_NAME & "/" & PX_RESOURCE_TO_BE_DELETED))); t_ac.start; alt { [] mcaPort.receive(mw_responseOK) { @@ -70,7 +69,7 @@ module OneM2M_Testcases { map(self:mcaPort, system:mcaPort); for (i:=0; i<lengthof(PX_RESOURCES_TO_BE_DELETED); i:= i+1) { - mcaPort.send(m_request(m_deleteAe(PX_URI_CSE & PX_CSE_NAME & "/" & PX_RESOURCES_TO_BE_DELETED[i]))); + mcaPort.send(m_request(m_delete(PX_URI_CSE & "/" & PX_CSE_NAME & "/" & PX_RESOURCES_TO_BE_DELETED[i]))); t_ac.start; alt { [] mcaPort.receive(mw_responseOK) { @@ -152,7 +151,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -162,22 +162,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); + + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - v_request := valueof(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName)); + v_request := valueof(m_retrieveResource(f_getResourceAddress(v_resourceIndex))); v_request.resultContent := int0;//Nothing mcaPort.send(m_request(v_request)); tc_ac.start; @@ -267,7 +257,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -277,22 +269,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - v_request := valueof(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName)); + v_request := valueof(m_retrieveResource(f_getResourceAddress(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; @@ -382,8 +364,10 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; - + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + // Test control // Test component configuration @@ -392,22 +376,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - v_request := valueof(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName)); + v_request := valueof(m_retrieveResource(f_getResourceAddress(v_resourceIndex))); v_request.resultContent := int2;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; @@ -497,8 +471,10 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; - + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + // Test control // Test component configuration @@ -507,22 +483,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - v_request := valueof(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName)); + v_request := valueof(m_retrieveResource(f_getResourceAddress(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; @@ -612,7 +578,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -622,22 +590,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - v_request := valueof(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName)); + v_request := valueof(m_retrieveResource(f_getResourceAddress(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; @@ -727,8 +685,10 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; - + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + // Test control // Test component configuration @@ -737,22 +697,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - v_request := valueof(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName)); + v_request := valueof(m_retrieveResource(f_getResourceAddress(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; @@ -842,7 +792,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -852,22 +804,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - v_request := valueof(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName)); + v_request := valueof(m_retrieveResource(f_getResourceAddress(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; @@ -1003,7 +945,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; // Test control @@ -1013,21 +956,11 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); // Test Body - v_request := f_getCreateRequestPrimitive(p_resourceType, v_aeResourceAddress, omit, p_requestPrimitive); + v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -1163,7 +1096,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; // Test control @@ -1173,21 +1107,10 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); // Test Body - v_request := f_getCreateRequestPrimitive(p_resourceType, v_aeResourceAddress, omit, p_requestPrimitive); + v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -1258,7 +1181,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -1268,19 +1193,11 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); - v_request := f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, v_aeIndex); // Test Body v_request.requestIdentifier := "Existing resource"; @@ -1355,8 +1272,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; - + + var integer v_aeIndex := -1; + // Test control // Test component configuration @@ -1366,26 +1284,16 @@ module OneM2M_Testcases { // Preamble if (p_resourceType != int23) { - f_preamble_registerAe(int62);//c_RUDNDi); + v_aeIndex := f_preamble_registerAe(int62);//c_RUDNDi); } else { - f_preamble_registerAe(int60);//c_UDNDi); - } - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe(int60);//c_UDNDi); + } // Test Body if(p_resourceType == int15) { - v_request := valueof(m_createPollingChannel(v_aeResourceAddress, PX_AE_ID_STEM, omit)); + v_request := valueof(m_createPollingChannel(f_getResourceAddress(v_aeIndex), PX_AE_ID_STEM, omit)); } else { - v_request := f_getCreateRequestPrimitive(p_resourceType,v_aeResourceAddress, omit, p_requestPrimitive); + v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, v_aeIndex); } mcaPort.send(m_request(v_request)); @@ -1493,8 +1401,10 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; - + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + // Test control // Test component configuration @@ -1503,26 +1413,13 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - if(PX_UNSTRUCTURED){ - mcaPort.send(m_request(m_retrieveResource("/" & vc_resourceId))); - } else { - mcaPort.send(m_request(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName))); - } + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex)))); + tc_ac.start; alt { [] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response { @@ -1558,7 +1455,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; + var XSD.ID v_resourceId := "NonExisting"; // Test control @@ -1568,19 +1467,15 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - // Test Body - if(PX_UNSTRUCTURED){ - mcaPort.send(m_request(m_retrieveResource("/" & vc_resourceId))); + if(PX_UNSTRUCTURED) { + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(-2) & "/" & v_resourceId))); } else { - mcaPort.send(m_request(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName))); + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_aeIndex) & "/" & v_resourceId))); } + tc_ac.start; alt { [] mcaPort.receive(mw_response(int4004)) -> value v_response { @@ -1653,10 +1548,16 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + var XSD.ID v_acpId; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control + if(not(PX_ACP_SUPPORT)) { + log(testcasename() & ":AccessControlPolicy support is required for executing this test case"); + stop; + } // Test component configuration f_cf01Up(); @@ -1664,31 +1565,15 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi; - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi; - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); - if(PX_UNSTRUCTURED){ - f_updateAcpAuxResource("/" & vc_acpAux.resourceID, int61); //c_CUDNDi - } else { - f_updateAcpAuxResource(PX_URI_CSE & PX_CSE_NAME & "/" & c_acpAuxName, int61); //c_CUDNDi - } + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); + + f_updateAcpAuxResource(f_getResourceAddress(0), int61); //c_CUDNDi // Test Body - if(PX_UNSTRUCTURED){ - mcaPort.send(m_request(m_retrieveResource("/" & vc_resourceId))); - } else { - mcaPort.send(m_request(m_retrieveResource(v_aeResourceAddress & "/" & c_defaultResourceName))); - } + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex)))); + tc_ac.start; alt { [] mcaPort.receive(mw_response(int4103)) -> value v_response { @@ -1783,8 +1668,10 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + var XSD.String v_attribute := "#pi";//Attribute parentId to be retrieved + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -1794,26 +1681,13 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - if(PX_UNSTRUCTURED){ - mcaPort.send(m_request(m_retrieveResourceAttributeToOption("/" & vc_resourceId & v_attribute))); - } else { - mcaPort.send(m_request(m_retrieveResourceAttributeToOption(v_aeResourceAddress & "/" & c_defaultResourceName & v_attribute))); - } + mcaPort.send(m_request(m_retrieveResourceAttributeToOption(f_getResourceAddress(v_resourceIndex) & v_attribute))); + tc_ac.start; alt { [] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response { @@ -1909,8 +1783,10 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + var XSD.String v_attribute := "#pi";//Attribute parentId to be retrieved + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -1920,26 +1796,13 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - if(PX_UNSTRUCTURED){ - mcaPort.send(m_request(m_retrieveResourceAttributeContentOption("/" & vc_resourceId, {"pi"}))); - } else { - mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(v_aeResourceAddress & "/" & c_defaultResourceName, {"pi"}))); - } + mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi"}))); + tc_ac.start; alt { [] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response { @@ -2041,7 +1904,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -2051,27 +1916,14 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - if(PX_UNSTRUCTURED){ - mcaPort.send(m_request(m_retrieveResourceAttributeContentOption("/" & vc_resourceId, {"parentID", "creationTime"}))); - } else { - mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(v_aeResourceAddress & "/" & c_defaultResourceName, + mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"parentID", "creationTime"}))); - } + tc_ac.start; alt { [] mcaPort.receive(mw_responseOK(p_contentResponse)) -> value v_response { @@ -2143,7 +1995,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -2153,27 +2007,14 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - if(PX_UNSTRUCTURED){ - mcaPort.send(m_request(m_retrieveResourceAttributeContentOption("/" & vc_resourceId, {"lbl"}))); - } else { - mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(v_aeResourceAddress & "/" & c_defaultResourceName, + mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex), {"lbl"}))); - } + tc_ac.start; alt { [] mcaPort.receive(mw_response(int4004)) -> value v_response { @@ -2244,7 +2085,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -2254,27 +2097,14 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_requestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_requestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body - if(PX_UNSTRUCTURED){ - mcaPort.send(m_request(m_retrieveResourceAttributeContentOption("/" & vc_resourceId, {"labels", "announceTo"}))); - } else { - mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(v_aeResourceAddress & "/" & c_defaultResourceName, + mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex), {"lbl", "at"}))); - } + tc_ac.start; alt { [] mcaPort.receive(mw_response(int4004)) -> value v_response { @@ -2465,8 +2295,9 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; - var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName; + + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -2476,23 +2307,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_createRequestPrimitive.from_ := vc_aeAux.aE_ID; - p_updateRequestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -2658,8 +2478,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; - var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -2669,23 +2489,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_createRequestPrimitive.from_ := vc_aeAux.aE_ID; - p_updateRequestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); + + v_resourceIndex := f_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -2887,8 +2696,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName; - var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -2898,23 +2707,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_createRequestPrimitive.from_ := vc_aeAux.aE_ID; - p_updateRequestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); + + v_resourceIndex := f_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request, p_nullFields)); tc_ac.start; @@ -3200,8 +2998,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName ; - var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -3211,23 +3009,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_createRequestPrimitive.from_ := vc_aeAux.aE_ID; - p_updateRequestPrimitive.from_ := vc_aeAux.aE_ID; - } - - f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request, p_nullFields)); tc_ac.start; @@ -3333,9 +3120,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName ; - var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName; - + var integer v_aeIndex := -1; + // Test control // Test component configuration @@ -3344,25 +3130,17 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_updateRequestPrimitive.from_ := vc_aeAux.aE_ID; - } - // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_aeIndex, p_updateRequestPrimitive); + + v_request.to_ := v_request.to_ & "/" & c_defaultResourceName; mcaPort.send(m_request(v_request)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(int4004)) -> value v_response { + [] mcaPort.receive(mw_response(int4005)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource " & c_defaultResourceName & " of type " & int2str(enum2int(p_resourceType)) & " not found"); } @@ -3456,8 +3234,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName ; - var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -3467,23 +3245,13 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe(int59);//c_CRDNDi); + v_aeIndex := f_preamble_registerAe(int59);//c_CRDNDi); - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_createRequestPrimitive.from_ := vc_aeAux.aE_ID; - p_updateRequestPrimitive.from_ := vc_aeAux.aE_ID; - } - f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -3586,8 +3354,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName ; - var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -3597,23 +3365,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_createRequestPrimitive.from_ := vc_aeAux.aE_ID; - p_updateRequestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -3727,8 +3484,8 @@ module OneM2M_Testcases { // Local variables var M2MResponsePrimitive v_response; var RequestPrimitive v_request; - var XSD.String v_aeResourceAddress := PX_URI_CSE & PX_CSE_NAME & "/" & c_aeAuxName ; - var XSD.String v_targetResourceAddress := v_aeResourceAddress & "/" & c_defaultResourceName; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; // Test control @@ -3738,23 +3495,12 @@ module OneM2M_Testcases { // Test adapter configuration // Preamble - f_preamble_registerAe();//c_CRUDNDi); - - //Unstructured - if(PX_UNSTRUCTURED) { - v_aeResourceAddress := "/" & vc_aeAux.aE_ID; - } - - // AE_ID - if(PX_FROM_IS_AE_ID == true) { - p_createRequestPrimitive.from_ := vc_aeAux.aE_ID; - p_updateRequestPrimitive.from_ := vc_aeAux.aE_ID; - } + v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); - f_createResource(p_resourceType, v_aeResourceAddress, p_createRequestPrimitive); + v_resourceIndex := f_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body - v_request := f_getUpdateRequestPrimitive(p_resourceType, v_targetResourceAddress, p_updateRequestPrimitive); + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request,p_nullFields)); tc_ac.start; diff --git a/OneM2M_Types.ttcn b/OneM2M_Types.ttcn index 86ac647..a9c6461 100644 --- a/OneM2M_Types.ttcn +++ b/OneM2M_Types.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Types.ttcn $ - * $Id: OneM2M_Types.ttcn 98 2016-06-02 07:34:39Z reinaortega $ + * $Id: OneM2M_Types.ttcn 99 2016-06-09 15:04:43Z reinaortega $ * @desc Test System module for oneM2M * */ @@ -4401,9 +4401,20 @@ group invalidTypes { type NhURI ParentID; - //FIXME Must match the type of the response content when retrieving specific attributes - type record of Attribute MyAttributeList; - + type record MyResource { + integer parentIndex, + PrimitiveContent resource + }; + + type record of MyResource MyResourcesList; + + type record of integer IntegerList; + + type enumerated AddressingFormat { + e_cseRelative, + e_spRelative, + e_absolute + } } } -- GitLab