diff --git a/OneM2M_Functions.ttcn b/OneM2M_Functions.ttcn index 34b4f7e1f6ec346ef0c6bb0b98995d70e0653440..b41225fb2f774fa880701cfbc9f49f42fc16b05e 100644 --- a/OneM2M_Functions.ttcn +++ b/OneM2M_Functions.ttcn @@ -25,7 +25,7 @@ module OneM2M_Functions { group configFunctions { /** - @desc + @desc Ports mapping and default behaviour activation for Config 1 */ function f_cf01Up() runs on M2M { @@ -46,6 +46,12 @@ module OneM2M_Functions { group preambleFunctions { + /** + * @desc Creation of auxiliar resources ACP and AE for correct execution of the test case + * @param p_allowedOperations Allowed operations for the auxiliar AE resource + * @return Internal AE resource index + * @verdict + */ function f_preamble_registerAe(in template (value) AccessControlOperations p_allowedOperations := int63) runs on M2M return integer{//c_CRUDNDi var RequestPrimitive v_request; @@ -55,11 +61,12 @@ module OneM2M_Functions { if(PX_ACP_SUPPORT){ v_acpAuxIndex := f_createAccessControlPolicyAux(p_allowedOperations := p_allowedOperations); + vc_acpAuxIndex := v_acpAuxIndex; } if(v_acpAuxIndex != -1) { vc_resourcesIndexToBeDeleted := {v_acpAuxIndex}; - v_request := valueof(m_createAeAux({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)})); + v_request := valueof(m_createAeAux(p_accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)})); //TODO Test, to be removed v_request.to_ := f_addPrefix(f_getResourceAddress()); @@ -111,6 +118,10 @@ module OneM2M_Functions { group postambleFunctions { + /** + * @desc Deletion of all resources created during the test case execution. IUT gets clean and ready for next execution + * @verdict + */ function f_postamble_deleteResources() runs on M2M { var integer i; var XSD.ID v_resourceAddress; @@ -154,6 +165,10 @@ module OneM2M_Functions { f_postamble_default(); } + /** + * @desc Ports unmapping + * @verdict + */ function f_postamble_default() runs on M2M { unmap(self:mcaPort, system:mcaPort); @@ -185,7 +200,15 @@ module OneM2M_Functions { group getSetFunctions { - 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 { + /** + * @desc Creation of a CREATE request primitive from a template request primitive + * @param p_resourceType Type of resource to be created + * @param p_request Template request primitive + * @param p_parentIndex Internal resource index which indicates the parent of the resource to be created + * @return Created CREATE request primitive + * @verdict + */ + function f_getCreateRequestPrimitive(in ResourceType p_resourceType, template RequestPrimitive p_request, integer p_parentIndex) runs on M2M return RequestPrimitive { p_request.from_ := f_getOriginator(p_parentIndex); @@ -221,6 +244,14 @@ module OneM2M_Functions { return valueof(p_request); } + /** + * @desc Creation of an UPDATE request primitive from a template request primitive + * @param p_resourceType Type of resource to be created + * @param p_resourceIndex Internal resource index which indicates the resource to be updated + * @param p_request Template request primitive + * @return Created UPDATE request primitive + * @verdict + */ function f_getUpdateRequestPrimitive(in ResourceType p_resourceType, integer p_resourceIndex, template RequestPrimitive p_request) runs on M2M return RequestPrimitive { p_request.from_ := f_getOriginator(p_resourceIndex); @@ -255,6 +286,12 @@ module OneM2M_Functions { return valueof(p_request); } + /** + * @desc Extraction from a primitiveContent field the resourceID attribute + * @param p_contentResource primitiveContent field + * @return resourceID attribute + * @verdict + */ function f_getResourceId(PrimitiveContent p_contentResource) return XSD.ID { if(ischosen(p_contentResource.any_1[0].AccessControlPolicy_optional)) { @@ -282,6 +319,12 @@ module OneM2M_Functions { } + /** + * @desc Extraction from a primitiveContent field the resourceName attribute + * @param p_contentResource primitiveContent field + * @return resourceName attribute + * @verdict + */ function f_getResourceName(PrimitiveContent p_contentResource) return XSD.ID { if(ischosen(p_contentResource.any_1[0].AccessControlPolicy_optional)) { @@ -310,6 +353,12 @@ module OneM2M_Functions { } + /** + * @desc Resolution of the originator field (from) for a given resource + * @param p_targetResourceIndex Internal resource index of the given resource + * @return Originator for a given resource + * @verdict + */ function f_getOriginator(integer p_targetResourceIndex := -1) runs on M2M return XSD.AnyURI { if(p_targetResourceIndex == -1) { @@ -327,6 +376,13 @@ module OneM2M_Functions { } } + /** + * @desc Return of a index of a specific attribute from an attributeList by attributeName + * @param p_attributeList Target attributeList + * @param p_attributeName attributeName to be searched + * @return Index of the attribute in the attributeList + * @verdict + */ function f_getAttribute(in AttributeList p_attributeList, in XSD.NCName p_attributeName) return integer { var integer i; var Attribute v_attribute := {-, -}; @@ -341,6 +397,12 @@ module OneM2M_Functions { } + /** + * @desc Resolution of the resource address field (to) for a given resource depending on addressing and hierarchical format + * @param p_targetResourceIndex Internal resource index of the given resource + * @return Resource address for the given resource + * @verdict + */ function f_getResourceAddress(integer p_targetResourceIndex := -1) runs on M2M return XSD.ID { var XSD.ID v_resourceAddress; @@ -396,6 +458,13 @@ module OneM2M_Functions { } } + /** + * @desc Saving of a resource and its parent index in the internal resource list + * @param p_resource Resource to be saved + * @param p_parentIndex Parent index of resource to be saved + * @return Internal resource index of the saved resource + * @verdict + */ function f_setResource(PrimitiveContent p_resource, integer p_parentIndex := -1) runs on M2M return integer { if(isbound(vc_resourcesList)) { @@ -411,6 +480,14 @@ module OneM2M_Functions { group helpingFunctions { + /** + * @desc Creation of a resource + * @param p_resourceType Resource type of the resource to be created + * @param p_requestPrimitive Template request primitive + * @param p_parentIndex Internal resource index which indicates the parent of the resource to be created + * @return Internal resource index of the created resource + * @verdict + */ function f_createResource(in ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, integer p_parentIndex := -1) runs on M2M return integer { var M2MResponsePrimitive v_response; @@ -418,7 +495,7 @@ module OneM2M_Functions { var XSD.ID v_resourceId; var integer v_resourceIndex := -1; - v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, p_parentIndex); + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, p_parentIndex); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -445,7 +522,14 @@ module OneM2M_Functions { } - function f_createAccessControlPolicyAux(in template (value) XSD.String p_acpName := "MyAcp", in template (value) AccessControlOperations p_allowedOperations := int63) runs on M2M return integer{ + /** + * @desc Creation of the auxiliar ACP resource + * @param p_acpName ACP name + * @param p_allowedOperations Allowed operations + * @return Internal resource index of the created auxiliar ACP resource + * @verdict + */ + function f_createAccessControlPolicyAux(in template (value) XSD.String p_acpName := c_acpAuxName, in template (value) AccessControlOperations p_allowedOperations := int63) runs on M2M return integer{ var RequestPrimitive v_request; var M2MResponsePrimitive v_response; var integer v_acpAuxIndex := -1; @@ -481,7 +565,13 @@ module OneM2M_Functions { } - function f_createContainerResourceAux (XSD.ID p_parentResourceAddress, integer p_parentIndex := -1) runs on M2M return integer { + /** + * @desc Creation of the auxiliar Container resource + * @param p_parentIndex Internal resource index which indicates the parent of the Container resource to be created + * @return Internal resource index of the created Container resource + * @verdict + */ + function f_createContainerResourceAux (integer p_parentIndex := -1) runs on M2M return integer { var M2MResponsePrimitive v_response; var RequestPrimitive v_request; @@ -500,12 +590,17 @@ module OneM2M_Functions { } - function f_updateAcpAuxResource (XSD.ID p_acpAddress, in template (value) AccessControlOperations p_allowedOperations) runs on M2M { + /** + * @desc Update of the auxiliar ACP resource + * @param p_allowedOperations New allowed operations + * @verdict + */ + function f_updateAcpAuxResource (in template (value) AccessControlOperations p_allowedOperations) runs on M2M { var RequestPrimitive v_request; v_request := valueof(m_updateAcpBase); - v_request.to_ := f_addPrefix(p_acpAddress); + v_request.to_ := f_addPrefix(f_getResourceAddress(vc_acpAuxIndex)); v_request.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list := { { accessControlOriginators := PX_ACOR, //{"admin:admin"} @@ -519,18 +614,24 @@ module OneM2M_Functions { alt { [] mcaPort.receive(mw_responseOK) { tc_ac.stop; - setverdict(pass, "f_updateAcpAuxResource: " & p_acpAddress & " resource updated successfuly"); + setverdict(pass, "f_updateAcpAuxResource: " & v_request.to_ & " resource updated successfuly"); } [] mcaPort.receive(mw_responseKO) { tc_ac.stop; - setverdict(fail, "f_updateAcpAuxResource: Error while updating " & p_acpAddress & " resource"); + setverdict(fail, "f_updateAcpAuxResource: Error while updating " & v_request.to_ & " resource"); } [] tc_ac.timeout { - setverdict(inconc, "f_updateAcpAuxResource: No answer while updating " & p_acpAddress & " resource" ); + setverdict(inconc, "f_updateAcpAuxResource: No answer while updating " & v_request.to_ & " resource" ); } } } + /** + * @desc Sending of an Adapter Control primitive + * @param event Action to be performed by TA + * @param data Corresponding information for the correct execution of the given action + * @verdict + */ function f_sendAcPrimitive(in charstring event, in charstring data) runs on M2M { var charstring v_data := "" & data; // clear encoding rules (ttwb issue ?) diff --git a/OneM2M_Templates.ttcn b/OneM2M_Templates.ttcn index 824f586e50b55abd571e8e32f98396a841319172..4769e3dbc4162423a25ffde49dd14943d56eeebb 100644 --- a/OneM2M_Templates.ttcn +++ b/OneM2M_Templates.ttcn @@ -22,6 +22,13 @@ module OneM2M_Templates { 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); @@ -30,7 +37,7 @@ module OneM2M_Templates { /* Templates */ /** - * @desc + * @desc Base template for request sending operations * @param p_requestPrimitive */ template (value) M2MRequestPrimitive m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeList_1 p_nullFields := omit ) := { @@ -71,11 +78,16 @@ module OneM2M_Templates { filterCriteria := omit, discoveryResultType := omit }; - - template (value) RequestPrimitive m_retrieveResource(XSD.ID p_targetResourceAddress) := { + + /** + * @desc Base RETRIEVE request primitive + * @param p_targetResourceAddress Target resource address + * @param p_originator Originator (from) + */ + template (value) RequestPrimitive m_retrieveResource(XSD.ID p_targetResourceAddress, in XSD.ID p_originator := PX_AE_ID_STEM) := { operation := int2, to_ := f_addPrefix(p_targetResourceAddress), - from_ := PX_AE_ID_STEM, + from_ := p_originator, requestIdentifier := "m_retrieveResource" & f_rnd(1, 1000000), resourceType := omit, primitiveContent := omit, @@ -94,10 +106,15 @@ module OneM2M_Templates { discoveryResultType := omit }; - template (value) RequestPrimitive m_retrieveResourceAttributeToOption(XSD.ID p_targetResourceAddress) := { + /** + * @desc RETRIEVE request primitive for a single attribute in To field ("targetResourceAddress#AttributeName") + * @param p_targetResourceAddress Target resource address (including "#AttributeName") + * @param p_originator Originator (from) + */ + template (value) RequestPrimitive m_retrieveResourceAttributeToOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator := PX_AE_ID_STEM) := { operation := int2, to_ := f_addPrefix(p_targetResourceAddress), - from_ := PX_AE_ID_STEM, + from_ := p_originator, requestIdentifier := "m_retrieveResourceAttributeOptionTo" & f_rnd(1, 1000000), resourceType := omit, primitiveContent := omit, @@ -116,10 +133,16 @@ module OneM2M_Templates { discoveryResultType := omit }; - template (value) RequestPrimitive m_retrieveResourceAttributeContentOption(XSD.ID p_targetResourceAddress, in template (value) AttributeList_1 p_attributeList) := { + /** + * @desc RETRIEVE request primtive containing the target attributes in the primitiveContent field + * @param p_targetResourceAddress Target resource address + * @param p_attributeList Target attribute list + * @param p_originator Originator (from) + */ + template (value) RequestPrimitive m_retrieveResourceAttributeContentOption(XSD.ID p_targetResourceAddress, in template (value) AttributeList_1 p_attributeList, in XSD.ID p_originator := PX_AE_ID_STEM ) := { operation := int2, to_ := f_addPrefix(p_targetResourceAddress), - from_ := PX_AE_ID_STEM, + from_ := p_originator, requestIdentifier := "m_retrieveResourceAttributeContentOption" & f_rnd(1, 1000000), resourceType := omit, primitiveContent := { @@ -142,30 +165,10 @@ module OneM2M_Templates { }//end group Retrieve group Update { - template (value) RequestPrimitive m_updateContentInstance(XSD.ID p_targetResourceAddress, XSD.String p_primitiveContent) := { - operation := int3, - to_ := p_targetResourceAddress, - from_ := "admin:admin", - requestIdentifier := "m_updateContentInstance" & f_rnd(1, 1000000), - resourceType := omit, - primitiveContent := { - any_1 := {{ContentInstance_optional := m_contentUpdateContentInstance(p_primitiveContent)}} - }, - role := omit, - originatingTimestamp := omit, - requestExpirationTimestamp := omit, - resultExpirationTimestamp := omit, - operationExecutionTime := omit, - responseType := omit, - resultPersistence := omit, - resultContent := omit, - eventCategory := omit, - deliveryAggregation := omit, - groupRequestIdentifier := omit, - filterCriteria := omit, - discoveryResultType := omit - }; + /** + * @desc Base UPDATE request primitive for Container resource + */ template (value) RequestPrimitive m_updateContainerBase := { operation := int3, to_ := "NotInitialized", @@ -189,32 +192,10 @@ module OneM2M_Templates { filterCriteria := omit, discoveryResultType := omit }; - - template (value) RequestPrimitive m_updateContainer(XSD.ID p_targetResourceAddress, in template (omit) XSD.String p_resourceName) := { - operation := int3, - to_ := f_addPrefix(p_targetResourceAddress), - from_ := PX_AE_ID_STEM, - requestIdentifier := "m_updateContainer" & f_rnd(1, 1000000), - resourceType := omit, - primitiveContent:= { - any_1 := {{Container_optional := m_contentUpdateContainer}} - }, - role := omit, - originatingTimestamp := omit, - requestExpirationTimestamp := omit, - resultExpirationTimestamp := omit, - operationExecutionTime := omit, - responseType := omit, - resultPersistence := omit, - resultContent := omit, - eventCategory := omit, - deliveryAggregation := omit, - groupRequestIdentifier := omit, - filterCriteria := omit, - discoveryResultType := omit - - }; + /** + * @desc Base UPDATE request primitive for AccessControlPolicy resource + */ template (value) RequestPrimitive m_updateAcpBase := { operation := int3, to_ := "NotInitialized", @@ -240,6 +221,9 @@ module OneM2M_Templates { }; + /** + * @desc Base UPDATE request primitive for Group resource + */ template (value) RequestPrimitive m_updateGroupBase := { operation := int3, to_ := "NotInitialized", @@ -265,6 +249,9 @@ module OneM2M_Templates { }; + /** + * @desc Base UPDATE request primitive for Schedule resource + */ template (value) RequestPrimitive m_updateScheduleBase := { operation := int3, to_ := "NotInitialized", @@ -290,6 +277,9 @@ module OneM2M_Templates { }; + /** + * @desc Base UPDATE request primitive for PollingChannel resource + */ template (value) RequestPrimitive m_updatePollingChannelBase := { operation := int3, to_ := "NotInitialized", @@ -315,6 +305,9 @@ module OneM2M_Templates { }; + /** + * @desc Base UPDATE request primitive for Subscription resource + */ template (value) RequestPrimitive m_updateSubscriptionBase := { operation := int3, to_ := "NotInitialized", @@ -342,37 +335,10 @@ module OneM2M_Templates { }//end group Update group Create { - - /*template (value) requestPrimitive m_createContainer_noName(XSD.ID p_resourceId) := { - operation := int1, - to_ := p_resourceId, - from_ := "admin:admin", - requestIdentifier := "m_createContainer", - resourceType := int3, - name := omit, - primitiveContent := { - { - m_contentContainer - } - }, - discoveryResultType := omit - };*/ - - /*template (value) requestPrimitive m_createResource_noName(XSD.ID p_resourceId, ResourceType p_resourceType, template (value) primitiveContent p_primitiveContent) := { - operation := int1, - to_ := p_resourceId, - from_ := PX_AE_ID_STEM, - requestIdentifier := "m_createResource", - resourceType := p_resourceType, - name := omit, - primitiveContent := { - { - p_primitiveContent - } - }, - discoveryResultType := omit - };*/ + /** + * @desc Base CREATE request primitive for AE resource (AUX) + */ template (value) RequestPrimitive m_createAeAux(template (omit) AcpType p_accessControlPolicyIDs := omit ) := { operation := int1, to_ := "Not Initialized", @@ -380,7 +346,7 @@ module OneM2M_Templates { requestIdentifier := "m_createAe" & f_rnd(1, 1000000), resourceType := int2, primitiveContent := { - any_1 := {{AE_optional := m_contentCreateAe(c_aeAuxName, p_accessControlPolicyIDs)}} + any_1 := {{AE_optional := m_contentCreateAe(p_accessControlPolicyIDs, c_aeAuxName)}} }, role := omit, originatingTimestamp := omit, @@ -398,10 +364,13 @@ module OneM2M_Templates { }; + /** + * @desc Base CREATE request primitive for AccessControlPolicy resource + */ template (value) RequestPrimitive m_createAcpBase := { operation := int1, to_ := "NotInitialized", - from_ := PX_AE_ID_STEM, + from_ := "NotInitialized", requestIdentifier := "m_createAcp" & f_rnd(1, 1000000), resourceType := int1, primitiveContent := { @@ -448,11 +417,15 @@ module OneM2M_Templates { }; + + /** + * @desc Base CREATE request primitive for AccessControlPolicy resource (AUX) + */ 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_ := "Not Initialized", from_ := PX_AE_ID_STEM, - requestIdentifier := "m_createAcp" & f_rnd(1, 1000000), + requestIdentifier := "m_createAcpAux" & f_rnd(1, 1000000), resourceType := int1, primitiveContent := { any_1 := {{AccessControlPolicy_optional := m_contentCreateAcp (p_acpName, p_acor, p_allowedOperations)}} @@ -473,10 +446,14 @@ module OneM2M_Templates { }; + + /** + * @desc Base CREATE request primitive for Container resource + */ template (value) RequestPrimitive m_createContainerBase := { operation := int1, to_ := "NotInitialized", - from_ := PX_AE_ID_STEM, + from_ := "NotInitialized", requestIdentifier := "m_createContainer" & f_rnd(1, 1000000), resourceType := int3, primitiveContent := { @@ -549,10 +526,14 @@ module OneM2M_Templates { }; + + /** + * @desc Base CREATE request primitive for Group resource + */ template (value) RequestPrimitive m_createGroupBase := { operation := int1, to_ := "NotInitialized", - from_ := PX_AE_ID_STEM, + from_ := "NotInitialized", requestIdentifier := "m_createGroup" & f_rnd(1, 1000000), resourceType := int9, primitiveContent := { @@ -599,10 +580,14 @@ module OneM2M_Templates { }; + + /** + * @desc Base CREATE request primitive for PollingChannel resource + */ template (value) RequestPrimitive m_createPollingChannelBase := { operation := int1, to_ := "NotInitialized", - from_ := PX_AE_ID_STEM, + from_ := "NotInitialized", requestIdentifier := "m_createPollingChannel" & f_rnd(1, 1000000), resourceType := int15, primitiveContent := { @@ -649,12 +634,13 @@ module OneM2M_Templates { }; - - + /** + * @desc Base CREATE request primitive for Schedule resource + */ template (value) RequestPrimitive m_createScheduleBase := { operation := int1, to_ := "NotInitialized", - from_ := PX_AE_ID_STEM, + from_ := "NotInitialized", requestIdentifier := "m_createSchedule" & f_rnd(1, 1000000), resourceType := int18, primitiveContent := { @@ -701,10 +687,14 @@ module OneM2M_Templates { }; + + /** + * @desc Base CREATE request primitive for Subscription resource + */ template (value) RequestPrimitive m_createSubscriptionBase := { operation := int1, to_ := "NotInitialized", - from_ := PX_AE_ID_STEM, + from_ := "NotInitialized", requestIdentifier := "m_createSubscription" & f_rnd(1, 1000000), resourceType := int23, primitiveContent := { @@ -805,7 +795,12 @@ module OneM2M_Templates { group ContentCreate { - template (value) AE_optional m_contentCreateAe (in template (omit) XSD.String p_name, in template (omit) AcpType p_accessControlPolicyIDs) := { + /** + * @desc Base primitiveContent for CREATE operation for AE resource + * @param p_name Resource name + * @param p_accessControlPolicyIDs ACP IDs for the AE + */ + template (value) AE_optional m_contentCreateAe (in template (omit) AcpType p_accessControlPolicyIDs, in template (omit) XSD.String p_name := c_defaultResourceName) := { resourceName := p_name,//O resourceType := omit,//NP resourceID := omit,//NP @@ -820,7 +815,7 @@ module OneM2M_Templates { appName := omit,//O app_ID := PX_APP_ID,//M aE_ID := omit,//NP - pointOfAccess := {"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA + pointOfAccess := omit, //O {"http://127.0.0.1:1400/monitor"},//{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA ontologyRef := omit,//O nodeLink := omit,//NP requestReachability := true,//M @@ -828,6 +823,12 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for CREATE operation for AccessControlPolicy resource + * @param p_name Resource name + * @param p_acor Allowed originators + * @param p_allowedOperations Allowed operations + */ template (value) AccessControlPolicy_optional m_contentCreateAcp (in template (omit) XSD.String p_name := c_defaultResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) := { resourceName := p_name,//O resourceType := omit,//NP @@ -860,10 +861,18 @@ module OneM2M_Templates { choice := omit //NP }; + /** + * @desc Base primitiveContent for CREATE operation for Group resource + * @param p_maxNrOfMembers Max number of members + * @param p_memberIds Member IDs + * @param p_accessControlPolicyIDs ACP IDs for the Group + * @param p_name Resource name + */ template (value) Group_optional m_contentCreateGroup ( in template (value) XSD.NonNegativeInteger p_maxNrOfMembers, - in template (value) ListOfURIs p_memberIds, - in template (omit) AcpType p_accessControlPolicyIDs) := { - resourceName := c_defaultResourceName,//O + in template (value) ListOfURIs p_memberIds, + in template (omit) AcpType p_accessControlPolicyIDs, + in template (omit) XSD.String p_name := c_defaultResourceName) := { + resourceName := p_name,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP @@ -887,8 +896,14 @@ module OneM2M_Templates { choice := omit//NP }; - template (value) PollingChannel_optional m_contentCreatePollingChannel ( in template (omit) AcpType p_accessControlPolicyIDs) := { - resourceName := c_defaultResourceName,//O + /** + * @desc Base primitiveContent for CREATE operation for PollingChannel resource + * @param p_accessControlPolicyIDs ACP IDs for the PollingChannel + * @param p_name Resource name + */ + template (value) PollingChannel_optional m_contentCreatePollingChannel (in template (omit) AcpType p_accessControlPolicyIDs, + in template (omit) XSD.String p_name := c_defaultResourceName) := { + resourceName := p_name,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP @@ -900,8 +915,14 @@ module OneM2M_Templates { pollingChannelURI := omit//NP }; - template (value) Schedule_optional m_contentCreateSchedule (in template (value) ScheduleEntries p_scheduleElement) := { - resourceName := c_defaultResourceName,//O + /** + * @desc Base primitiveContent for CREATE operation for Schedule resource + * @param p_scheduleElement Schedule + * @param p_name Resource name + */ + template (value) Schedule_optional m_contentCreateSchedule (in template (value) ScheduleEntries p_scheduleElement, + in template (omit) XSD.String p_name := c_defaultResourceName) := { + resourceName := p_name,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP @@ -915,7 +936,13 @@ module OneM2M_Templates { choice := omit//NP }; - template (value) Subscription_optional m_contentCreateSubscription (in template (value) ListOfURIs p_notificationURI) := { + /** + * @desc Base primitiveContent for CREATE operation for Subscription resource + * @param p_notificationURI Notification URI + * @param p_name Resource name + */ + template (value) Subscription_optional m_contentCreateSubscription (in template (value) ListOfURIs p_notificationURI, + in template (omit) XSD.String p_name := c_defaultResourceName) := { resourceName := c_defaultResourceName,//O resourceType := omit,//NP resourceID := omit,//NP @@ -943,6 +970,10 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for CREATE operation for ContentInstance resource + * @param p_primitiveContent Content for the ContentInstance + */ template (value) ContentInstance_optional m_contentCreateContentInstance(XSD.String p_primitiveContent) := { resourceName := c_defaultResourceName,//O resourceType := omit,//NP @@ -966,8 +997,12 @@ module OneM2M_Templates { }//M }; - template (value) Container_optional m_contentCreateContainer := { - resourceName := c_defaultResourceName,//O + /** + * @desc Base primitiveContent for CREATE operation for Container resource + * @param p_name Resource name + */ + template (value) Container_optional m_contentCreateContainer (in template (omit) XSD.String p_name := c_defaultResourceName):= { + resourceName := p_name,//O resourceType := omit,//NP resourceID := omit,//NP parentID := omit,//NP @@ -996,6 +1031,9 @@ module OneM2M_Templates { group ContentUpdate { + /** + * @desc Base primitiveContent for UPDATE operation for AE resource + */ template (value) AE_optional m_contentUpdateAe := { resourceName := omit,//NP resourceType := omit,//NP @@ -1019,6 +1057,9 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for UPDATE operation for AccessControlPolicy resource + */ template (value) AccessControlPolicy_optional m_contentUpdateAcp := { resourceName := omit,//NP resourceType := omit,//NP @@ -1035,6 +1076,9 @@ module OneM2M_Templates { choice := omit //NP }; + /** + * @desc Base primitiveContent for UPDATE operation for Group resource + */ template (value) Group_optional m_contentUpdateGroup := { resourceName := omit,//NP resourceType := omit,//NP @@ -1061,6 +1105,9 @@ module OneM2M_Templates { }; + /** + * @desc Base primitiveContent for UPDATE operation for PollingChannel resource + */ template (value) PollingChannel_optional m_contentUpdatePollingChannel := { resourceName := omit,//NP resourceType := omit,//NP @@ -1074,6 +1121,9 @@ module OneM2M_Templates { pollingChannelURI := omit//NP }; + /** + * @desc Base primitiveContent for UPDATE operation for Schedule resource + */ template (value) Schedule_optional m_contentUpdateSchedule := { resourceName := omit,//NP resourceType := omit,//NP @@ -1089,6 +1139,9 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for UPDATE operation for Subscription resource + */ template (value) Subscription_optional m_contentUpdateSubscription := { resourceName := omit,//NP resourceType := omit,//NP @@ -1117,6 +1170,9 @@ module OneM2M_Templates { choice := omit//NP }; + /** + * @desc Base primitiveContent for UPDATE operation for AE resource + */ template (value) ContentInstance_optional m_contentUpdateContentInstance(XSD.String p_primitiveContent) := { resourceName := omit,//NP resourceType := omit,//NP @@ -1140,6 +1196,9 @@ module OneM2M_Templates { }//O }; + /** + * @desc Base primitiveContent for UPDATE operation for Container resource + */ template (value) Container_optional m_contentUpdateContainer := { resourceName := omit,//NP resourceType := omit,//NP @@ -1830,6 +1889,12 @@ module OneM2M_Templates { }; }//end group ResponsePrimitives + /** + * @desc Get the prefix depending on the addressing format and binding (Temporal funciton as this should be done by TA) + * @param v_address Actual address + * @return Address with prefix + * @verdict + */ function f_addPrefix(XSD.ID v_address) return XSD.ID { //TODO Test, to be removed if(PX_ADDRESSING_FORMAT == e_cseRelative) { diff --git a/OneM2M_TestSystem.ttcn b/OneM2M_TestSystem.ttcn index e480aa53978b20cc1a52ee48156ffa9a06bc4f17..908c25536fbbc56479718cfc1e3dcd9c634e6235 100644 --- a/OneM2M_TestSystem.ttcn +++ b/OneM2M_TestSystem.ttcn @@ -19,6 +19,9 @@ module OneM2M_TestSystem { import from XSD all; /* Ports */ + /** + * @desc Port to transport oneM2M primitives + */ type port OneM2MPort message { in M2MRequestPrimitive, M2MResponsePrimitive; @@ -26,6 +29,9 @@ module OneM2M_TestSystem { M2MRequestPrimitive, M2MResponsePrimitive; } + /** + * @desc Port to transport Adaptor Control primitives + */ type port AdapterControlPort message { in AcResponsePrimitive; @@ -44,6 +50,7 @@ module OneM2M_TestSystem { //global variables var AE_optional vc_aeAux;//TODO To be removed var AccessControlPolicy_optional vc_acpAux; + var integer vc_acpAuxIndex := -1; var MyResourcesList vc_resourcesList; var IntegerList vc_resourcesIndexToBeDeleted; } @@ -55,6 +62,15 @@ module OneM2M_TestSystem { } /* Primitives */ + /** + * @desc Type for the oneM2M primitives exchange + * @member requestPrimitive_ oneM2M primitive + * @member host IP Address of the destination + * @member xmlNamespace XML Namespace to be used + * @member protocolBinding Protocol binding to be used + * @member serialization Serialization to be used + * @member nullFields Fields that are to be included in the oneM2M primitive but empty, i.e. <labels></labels> + */ type record M2MRequestPrimitive { RequestPrimitive requestPrimitive_, charstring host, diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index ce37639594c18b40de11fbc8b6bafa8d0a7d5089..f0f805451475402846d5babf48bb0dd33b6b7aee 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -960,7 +960,7 @@ module OneM2M_Testcases { // Test Body - v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, v_aeIndex); + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -1110,7 +1110,7 @@ module OneM2M_Testcases { v_aeIndex := f_preamble_registerAe();//c_CRUDNDi); // Test Body - v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, v_aeIndex); + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; @@ -1197,7 +1197,7 @@ module OneM2M_Testcases { v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); - v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, v_aeIndex); + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body v_request.requestIdentifier := "Existing resource"; @@ -1293,7 +1293,7 @@ module OneM2M_Testcases { if(p_resourceType == int15) { v_request := valueof(m_createPollingChannel(f_getResourceAddress(v_aeIndex), PX_AE_ID_STEM, omit)); } else { - v_request := f_getCreateRequestPrimitive(p_resourceType, omit, p_requestPrimitive, v_aeIndex); + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); } mcaPort.send(m_request(v_request)); @@ -1569,7 +1569,7 @@ module OneM2M_Testcases { v_resourceIndex := f_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); - f_updateAcpAuxResource(f_getResourceAddress(0), int61); //c_CUDNDi + f_updateAcpAuxResource(int61); //c_CUDNDi // Test Body mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex)))); @@ -2543,8 +2543,10 @@ module OneM2M_Testcases { //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container_optional)) { - if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.labels)){ // FIXME: CHECK: labels set to empty - setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") + if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.labels)){ + if(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.labels != {""}) { + setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly"); + } } } }