diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index c147ed8a1be6cfd35f176c6bc33de26827a2eac2..37ab4373cde7206043fabe103bfa73de40ad8fc1 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $ - * $Id: OneM2M_Functions.ttcn 208 2017-01-17 09:17:22Z reinaortega $ + * $Id: OneM2M_Functions.ttcn 214 2017-01-19 10:04:34Z reinaortega $ * @desc Module containing functions for oneM2M * */ @@ -1023,28 +1023,28 @@ module OneM2M_Functions { function f_getResourceId(PrimitiveContent p_contentResource) return XSD.ID { if(ischosen(p_contentResource.any_1[0].AccessControlPolicy_optional)) { - return p_contentResource.any_1[0].AccessControlPolicy_optional.resourceID; + return f_resourceIdCleaner(p_contentResource.any_1[0].AccessControlPolicy_optional.resourceID); } if(ischosen(p_contentResource.any_1[0].Container_optional)) { - return p_contentResource.any_1[0].Container_optional.resourceID; + return f_resourceIdCleaner(p_contentResource.any_1[0].Container_optional.resourceID); } if(ischosen(p_contentResource.any_1[0].Schedule_optional)) { - return p_contentResource.any_1[0].Schedule_optional.resourceID; + return f_resourceIdCleaner(p_contentResource.any_1[0].Schedule_optional.resourceID); } if(ischosen(p_contentResource.any_1[0].PollingChannel_optional)) { - return p_contentResource.any_1[0].PollingChannel_optional.resourceID; + return f_resourceIdCleaner(p_contentResource.any_1[0].PollingChannel_optional.resourceID); } if(ischosen(p_contentResource.any_1[0].Subscription_optional)) { - return p_contentResource.any_1[0].Subscription_optional.resourceID; + return f_resourceIdCleaner(p_contentResource.any_1[0].Subscription_optional.resourceID); } if(ischosen(p_contentResource.any_1[0].Group_optional)) { - return p_contentResource.any_1[0].Group_optional.resourceID; + return f_resourceIdCleaner(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 f_resourceIdCleaner(p_contentResource.any_1[0].AE_optional.resourceID); } if(ischosen(p_contentResource.any_1[0].ServiceSubscribedAppRule_optional)) { - return p_contentResource.any_1[0].ServiceSubscribedAppRule_optional.resourceID; + return f_resourceIdCleaner(p_contentResource.any_1[0].ServiceSubscribedAppRule_optional.resourceID); } log(""&__SCOPE__&":WARNING: Primitive Content Kind not implemented"); if (PX_DISABLE_STOP_ON_ERROR) { @@ -1312,6 +1312,32 @@ module OneM2M_Functions { }//end group altstepFunctions + function f_resourceIdCleaner(in XSD.ID p_resourceID) return XSD.ID { + var integer v_length := lengthof(p_resourceID); + var integer i; + var XSD.ID result := ""; + + for (i := v_length - 1; i>=0; i := i-1){ + if(p_resourceID[i]=="/"){ + return result; + } + else{ + result := p_resourceID[i] & result; + } + } + return result; + } + function f_removeElementFromList (inout IntegerList p_list, in integer index) { + var IntegerList result := {}; + var integer i; + for(i := 0; i < lengthof(p_list); i := i+1){ + if(i != index){ + result := result & {p_list[i]}; + } + } + p_list := result; + } + }//end of commonFunctions group externalFunctions { diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index a786468fb56ff7ef6c6301030c5939879077e0e4..d253ad55471bd18d50b88efb3547f6aeaa042407 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 210 2017-01-17 16:08:54Z carres $ + * $Id: OneM2M_Testcases.ttcn 213 2017-01-19 10:03:51Z reinaortega $ * @desc Module containing test cases for oneM2M * */ @@ -4143,7 +4143,8 @@ module OneM2M_Testcases { // Postamble // We are forced to delete the Ae because the delete request in the postamble_deleteResources is sent by Ae itself, witch doesn't have privileges f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex)))); - //TODO Update vc_resourcesIndexToBeDeleted + //Update vc_resourcesIndexToBeDeleted + f_removeElementFromList (vc_resourcesIndexToBeDeleted, v_aeIndex); f_cse_postamble_deleteResources(); // Tear down