From 6bf63abb81ad8e9fbb04cc177a4b9f98689d3425 Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Thu, 22 Feb 2018 12:05:05 +0100
Subject: [PATCH] Fix #27 as proposed

Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org>
---
 LibOneM2M/OneM2M_Functions.ttcn  |  2 ++
 OneM2M_PermutationFunctions.ttcn | 28 +++++++++++++++++++++-------
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index fabe419..e5882eb 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1174,6 +1174,8 @@ module OneM2M_Functions {
 				
 				v_request := valueof(m_updateAcpBase);
 				
+				v_request.requestIdentifier := valueof(v_request.requestIdentifier) & f_rnd(1, 1000000);
+				
 				v_request.to_ := f_getResourceAddress(vc_acpAuxIndex);
 				v_request.from_ := f_getOriginator(vc_acpAuxIndex);
 				v_request.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {valueof(m_createAcr(PX_ACOR, p_allowedOperations))};
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index b9697a4..4ce39ac 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -5905,6 +5905,9 @@ module OneM2M_PermutationFunctions {
 								[] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response {
 									tc_ac.stop;
 									setverdict(pass, __SCOPE__ & ": Successful operation on resource type int2 (Ae)");
+									if(p_responseStatusCode == int2002) {
+										f_removeElementFromList(vc_resourcesIndexToBeDeleted, v_aeIndex);
+									}
 								}
 								[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
 									tc_ac.stop;
@@ -5980,6 +5983,9 @@ module OneM2M_PermutationFunctions {
 								[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
 									tc_ac.stop;
 									setverdict(fail, __SCOPE__ & ": Error operation have been accpeted without having privileges");
+									if(p_responseStatusCode == int2002) {
+										f_removeElementFromList(vc_resourcesIndexToBeDeleted, v_aeIndex);
+									}
 								}
 								[] tc_ac.timeout {
 									setverdict(fail, __SCOPE__ & ": No answer while executing operation");
@@ -6117,7 +6123,6 @@ module OneM2M_PermutationFunctions {
 							// Local variables
 							var MsgIn v_response;
 							var integer v_aeIndex := -1;
-							var integer v_acpIndex := -1;
 							var RequestPrimitive v_createRequest;
 							var AccessControlRule v_accessControlRule := valueof(m_createAcr({"all"}, int63));	
 			
@@ -6132,9 +6137,9 @@ module OneM2M_PermutationFunctions {
 							v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1);
 							v_accessControlRule.accessControlContexts_list := {{{}, {{f_getIpv4Address(PX_AE1_ADDRESS)}, omit}, omit}};
 							v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule};
-							v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
+							vc_acpAuxIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
 							
-							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, {f_getAnnouncementTargetPoA(-, PX_AE1_ADDRESS, -)});
+							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpAuxIndex].resource)}, {f_getAnnouncementTargetPoA(-, PX_AE1_ADDRESS, -)});
 			
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
@@ -6147,6 +6152,9 @@ module OneM2M_PermutationFunctions {
 								[] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response {
 									tc_ac.stop;
 									setverdict(pass, __SCOPE__ & ": Successful operation on resource type int2 (Ae)");
+									if(p_responseStatusCode == int2002) {
+										f_removeElementFromList(vc_resourcesIndexToBeDeleted, v_aeIndex);
+									}
 								}
 								[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
 									tc_ac.stop;
@@ -6163,6 +6171,8 @@ module OneM2M_PermutationFunctions {
 	
 	
 							//Postamble
+							f_cse_updateAcpAuxResource(int63);
+							
 							f_cse_postamble_deleteResources();
 	
 							//Tear down
@@ -6174,7 +6184,6 @@ module OneM2M_PermutationFunctions {
 							// Local variables
 							var MsgIn v_response;
 							var integer v_aeIndex := -1;
-							var integer v_acpIndex := -1;
 							var RequestPrimitive v_createRequest;
 							var AccessControlRule v_accessControlRule := valueof(m_createAcr({"all"}, int63));	
 			
@@ -6187,11 +6196,11 @@ module OneM2M_PermutationFunctions {
 	
 							// Preamble
 							v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1);
-							v_accessControlRule.accessControlContexts_list := {{{}, {{f_getIpv4Address(PX_AE2_ADDRESS)}, omit}, omit}};
+							v_accessControlRule.accessControlContexts_list := {{{}, {{"240.0.0.0"}, omit}, omit}};
 							v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule};
-							v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
+							vc_acpAuxIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
 							
-							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, {f_getAnnouncementTargetPoA(-, PX_AE1_ADDRESS, -)});
+							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpAuxIndex].resource)}, {f_getAnnouncementTargetPoA(-, PX_AE1_ADDRESS, -)});
 			
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
@@ -6212,6 +6221,9 @@ module OneM2M_PermutationFunctions {
 								[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
 									tc_ac.stop;
 									setverdict(fail, __SCOPE__ & ": Error operation have been accpeted without having privileges");
+									if(p_responseStatusCode == int2002) {
+										f_removeElementFromList(vc_resourcesIndexToBeDeleted, v_aeIndex);
+									}
 								}
 								[] tc_ac.timeout {
 									setverdict(fail, __SCOPE__ & ": No answer while executing operation");
@@ -6220,6 +6232,8 @@ module OneM2M_PermutationFunctions {
 	
 	
 							//Postamble
+							f_cse_updateAcpAuxResource(int63);
+							
 							f_cse_postamble_deleteResources();
 	
 							//Tear down
-- 
GitLab