From f778d82a7f07d96d1eecbe3e7ed79931c4f6b7b6 Mon Sep 17 00:00:00 2001
From: acverdugo <acverdugo@at4wireless.com>
Date: Wed, 23 Aug 2017 17:48:14 +0200
Subject: [PATCH] Fixed errors found in:

TC_CSE_SUB_CRE_004
TC_CSE_SUB_UPD_001
TC_CSE_SUB_DEL_001
TC_CSE_SEC_ACP_CRE_001
TC_CSE_SEC_ACP_CRE_002
TC_CSE_SEC_ACP_UPD_001
TC_CSE_SEC_ACP_012_UPD
TC_CSE_SEC_ACP_012_RET
TC_CSE_SEC_ACP_012_DEL
---
 LibOneM2M/OneM2M_Functions.ttcn |  6 ++++++
 LibOneM2M/OneM2M_Templates.ttcn |  3 ++-
 OneM2M_Testcases.ttcn           | 18 ++++++++++--------
 3 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 95b9e7a..6134461 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1996,19 +1996,25 @@ module OneM2M_Functions {
 
 		}//end group altstepFunctions
 		
+		/**
+		  * @desc	Get the Resource Identifier with Unstructured-CSE-relative -Resource-ID format
+		  */
 		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 := "";
 			
+			//log("p_resourceID: " & p_resourceID);
 			for (i := v_length - 1; i>=0; i := i-1){
 				if(p_resourceID[i]=="/"){
+					//log("result: " & result);
 					return result;
 				}
 				else{
 					result := p_resourceID[i] & result;
 				}	
 			}
+			//log("result: " & result);
 			return result;
 		}
 		
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index c8566b0..c65b712 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -3013,7 +3013,8 @@ module OneM2M_Templates {
 		
 		template Notification mw_contentNotificationVerification modifies mw_contentNotificationBase := {
 			verificationRequest := true,
-			creator := ?
+			//creator := ?			//Temporal change, do not commit!
+			creator := *
 		}
 
 
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index fc9612b..530ba02 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -16330,6 +16330,7 @@ module OneM2M_Testcases {
 				
 					 // Test Body
 					v_request := f_getCreateRequestPrimitive(int23, m_createSubscriptionBase, v_aeIndex);
+					v_request.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae2Index)};
 	
 					 mcaPort.send(m_request(valueof(v_request)));
 					
@@ -16656,7 +16657,7 @@ module OneM2M_Testcases {
 					v_notifyHandler.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs
 					
 					v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request
-					v_updateRequest.primitiveContent.aE.labels := v_labels_1; 
+					v_request.primitiveContent.aE.labels := v_labels_1; 
 
 					mcaPort.send(m_request(v_request));
 					tc_ac.start;
@@ -17335,6 +17336,7 @@ module OneM2M_Testcases {
 					v_notifyHandler.start(f_CSE_SUB_DEL_001(f_getResourceAddress(v_resourceIndex))); // check that no notification is received
 					
 					mcaPort.send(m_request(v_request));
+					tc_ac.start;
 					alt {
 						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response {
 							tc_ac.stop;
@@ -17590,7 +17592,7 @@ module OneM2M_Testcases {
 							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
 								tc_ac.stop;
 								setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(c_accessControlPolicyType)) & " created successfully");
-								v_acpIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int1);
+								v_acpIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int1, v_aeIndex);
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
 								tc_ac.stop;
@@ -17662,7 +17664,7 @@ module OneM2M_Testcases {
 							[] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response {
 								tc_ac.stop;
 								setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(c_accessControlPolicyType)) & " created successfully");
-								v_acpIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, c_accessControlPolicyType);
+								v_acpIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, c_accessControlPolicyType, v_aeIndex);
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
 								tc_ac.stop;
@@ -17765,8 +17767,8 @@ module OneM2M_Testcases {
 						v_primitiveContentRetrievedResource := f_cse_retrieveResource(v_aeIndex);
 						if(getverdict == pass){
 							if(ischosen(v_primitiveContentRetrievedResource.aE)) {
-								 if(not match (v_primitiveContentRetrievedResource.aE.accessControlPolicyIDs, valueof(v_updateRequest.primitiveContent.aE.accessControlPolicyIDs))){
-									  setverdict(fail, __SCOPE__ & ": Error: Access Control policy ID attribute not updated correctly")
+								 if(not match (f_resourceIdCleaner(v_primitiveContentRetrievedResource.aE.accessControlPolicyIDs[0]), v_updateRequest.primitiveContent.aE.accessControlPolicyIDs[0])){
+									  setverdict(fail, __SCOPE__ & ": Error: Access Control policy ID attribute not updated correctly");
 							}
 						  }
 						}
@@ -18320,15 +18322,15 @@ module OneM2M_Testcases {
 							var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 							var Labels v_labels_1:= {"VALUE_1"};
 							v_updateRequest.primitiveContent.container.labels := v_labels_1;
-							f_CSE_SEC_ACP_012(v_updateRequest, int62);	//TODO Fix p_acor
+							f_CSE_SEC_ACP_012(v_updateRequest, int59);
 						}//end TC_CSE_SEC_ACP_012_UPD
 	
 						testcase TC_CSE_SEC_ACP_012_RET() runs on CseTester system CseSystem { //Retrieve
-							f_CSE_SEC_ACP_012(m_retrieveResource("Temporary", "Temporary"), int62);	//TODO Fix p_acor
+							f_CSE_SEC_ACP_012(m_retrieveResource("Temporary", "Temporary"), int61);
 						}//end TC_CSE_SEC_ACP_012_RET
 	
 						testcase TC_CSE_SEC_ACP_012_DEL() runs on CseTester system CseSystem { //Delete
-							f_CSE_SEC_ACP_012(m_delete("Temporary", "Temporary"), int62);	//TODO Fix p_acor
+							f_CSE_SEC_ACP_012(m_delete("Temporary", "Temporary"), int55);
 						}//end TC_CSE_SEC_ACP_012_DEL
 	
 						function f_CSE_SEC_ACP_012(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_acor) runs on CseTester {
-- 
GitLab