From 2b7af2b86711a1f6fbac24ba15253ea75a913fcd Mon Sep 17 00:00:00 2001
From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org>
Date: Mon, 7 Aug 2017 16:45:55 +0200
Subject: [PATCH] f_cse_deleteResource modified in order to remove the deleted
 resource index from the vc_resourcesIndexToBeDeleted

---
 LibOneM2M/OneM2M_Functions.ttcn | 21 +++++++++++++++------
 OneM2M_Testcases.ttcn           | 10 +++++-----
 2 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 93a6249..103099a 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 340 2017-08-07 12:08:41Z reinaortega $
+ *              $Id: OneM2M_Functions.ttcn 345 2017-08-07 14:45:26Z reinaortega $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -595,15 +595,24 @@ module OneM2M_Functions {
 			 * @param p_requestPrimitive
 			 * @verdict 
 			 */
-			function f_cse_deleteResource(in RequestPrimitive p_requestPrimitive) runs on CseTester {
+			function f_cse_deleteResource(in integer p_index, in template (omit) RequestPrimitive p_requestPrimitive := omit) runs on CseTester {
+				var RequestPrimitive v_request;
 				
-				mcaPort.send(m_request(p_requestPrimitive));
+				if(not isbound(p_requestPrimitive)) {
+					v_request := valueof(m_deleteRequest(f_getResourceAddress(p_index)));
+				} else {
+					v_request := p_requestPrimitive;
+				}
+				
+				mcaPort.send(m_request(v_request));
 						
 				tc_ac.start;
 				alt {
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
 						tc_ac.stop;
-						setverdict(pass, __SCOPE__&"INFO: Resource" & p_requestPrimitive.to_ & " deleted");
+						setverdict(pass, __SCOPE__&"INFO: Resource " & p_requestPrimitive.to_ & " deleted");
+						
+						f_removeElementFromList(vc_resourcesIndexToBeDeleted, p_index);
 					}
 					[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
 						tc_ac.stop;
@@ -2033,11 +2042,11 @@ module OneM2M_Functions {
 			}
 		}
 		
-		function f_removeElementFromList (inout IntegerList p_list, in integer index) {
+		function f_removeElementFromList (inout IntegerList p_list, in integer p_valueToBeDeleted) {
 			var IntegerList result := {};
 			var integer i;
 			for(i := 0; i < lengthof(p_list); i := i+1){
-				if(i != index){
+				if(p_list[i] != p_valueToBeDeleted){
 					result := result & {p_list[i]};
 				}
 			}
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index fbd02fd..4d478ad 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 344 2017-08-07 14:11:47Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 345 2017-08-07 14:45:26Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -1036,7 +1036,7 @@ module OneM2M_Testcases {
 		  	  	
 					//Preambule
 					v_aeAnncIndex := f_cse_preamble_registerAe();//TODO TestSystem acting as MN. It should register AeAnnc into the IUT (IN) via mcc
-					f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_aeAnncIndex)))); //to deregister the AE
+					f_cse_deleteResource(v_aeAnncIndex); //to deregister the AE
 		
 					//Test Body
 					v_request := valueof(m_updateAEAnnc(-, -, -, "APP-ID", -));	//TODO to double check all parameters			
@@ -12120,7 +12120,7 @@ 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))));
+						f_cse_deleteResource(v_aeIndex);
 						//Update vc_resourcesIndexToBeDeleted 
 						f_removeElementFromList (vc_resourcesIndexToBeDeleted, v_aeIndex);
 						f_cse_postamble_deleteResources();
@@ -12260,7 +12260,7 @@ module OneM2M_Testcases {
                 
                 		v_childResourceIndex := f_cse_createResource(p_childResourceType, p_createRequestPrimitiveChildResource, v_resourceIndex); 
                 												
-                		f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex))));
+                		f_cse_deleteResource(v_resourceIndex);
                 		
                 		// Test Body
                 		mcaPort.send(m_request(m_deleteRequest(f_getResourceAddress(v_childResourceIndex), f_getOriginator(v_childResourceIndex))));
@@ -12420,7 +12420,7 @@ module OneM2M_Testcases {
 						}
 							
 						// Test Body
-						f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_contentInstanceIndex))));
+						f_cse_deleteResource(v_contentInstanceIndex);
 					
 						v_attributesContainer_afterDeletion := f_cse_retrieveResource(v_containerIndex);
 						
-- 
GitLab