From db4990f861e8a9a2dc8c830494bf96bc7d1bb5c6 Mon Sep 17 00:00:00 2001 From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org> Date: Wed, 8 Feb 2017 15:27:59 +0100 Subject: [PATCH] oneM2M Interop event#3 output: received ResourceIDs from CSE checked by f_resourceIdCleaner. New helping function f_removeElementFromList added. Signed-off-by: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org> --- LibOneM2M/OneM2M_Functions.ttcn | 44 ++++++++++++++++++++++++++------- OneM2M_Testcases.ttcn | 5 ++-- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index c147ed8..37ab437 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 a786468..d253ad5 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 -- GitLab