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