From 4f431fdf4d1e3dc9d8ed308f3c7d6260039b3de7 Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Fri, 17 Jul 2020 13:55:47 +0200
Subject: [PATCH] Removal of PX_POA and use of f_getPoA and f_getLocalPoA
 functions

Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org>
---
 LibOneM2M/OneM2M_Functions.ttcn     | 108 ++++++++++++++++++----------
 LibOneM2M/OneM2M_Pixits.ttcn        |   3 +-
 OneM2M_PermutationFunctions.ttcn    |  22 +++---
 OneM2M_Testcases_CSE_Release_1.ttcn |  34 ++++-----
 OneM2M_Testcases_CSE_Release_2.ttcn |   2 +-
 5 files changed, 102 insertions(+), 67 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index c8e2f11..dc3b302 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1160,7 +1160,7 @@ module OneM2M_Functions {
 					vc_ae2.start(f_cse_createAccessControlPolicyAux("SubscriptionVerificationAcp",{"all"}, int63));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
-					vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getCompletePoA(PX_TS_AE2.mcaPortIn, "")}), -1)); // AE2 is registred
+					vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}), -1)); // AE2 is registred
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
 					p_ae2Index := f_getResourceFromAeSimu(vc_ae2);
@@ -2745,7 +2745,7 @@ module OneM2M_Functions {
 						setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly");
 						f_checkAttributesToBeSaved(int16, v_request, v_response.primitive.responsePrimitive);
 						vc_remoteCseIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int16, -1);
-						v_localRemoteCSEResource := f_generateLocalResource(valueof(m_primitiveContentRemoteCSE(m_contentLocalRemoteCSEResource(f_getCompletePoA(PX_TS_CSE1.mccPortIn, "")))), vc_cSEBaseIndex, int16); // FIXME To be review not sure we have to use CSE1
+						v_localRemoteCSEResource := f_generateLocalResource(valueof(m_primitiveContentRemoteCSE(m_contentLocalRemoteCSEResource(f_getLocalPoA(PX_TS_CSE1.mccPortIn, "")))), vc_cSEBaseIndex, int16); // FIXME To be review not sure we have to use CSE1
 						vc_localRemoteCseIndex := f_setLocalResource(v_localRemoteCSEResource, int16, vc_cSEBaseIndex);
 					}
 					[] mccPort.receive(mw_response(mw_responsePrimitiveKO)) {
@@ -2799,7 +2799,7 @@ module OneM2M_Functions {
 						v_response.primitiveContent.remoteCSE := vc_localResourcesList[vc_localRemoteCseIndex].resource.remoteCSE;
 						f_send(e_mcc_in_port, m_response(v_response));
 						
-						vc_remoteCseIndex := f_setResource(valueof(m_primitiveContentRemoteCSE(m_contentMyRemoteCSEResource(f_getCompletePoA(PX_TS_CSE1.mcaPortIn, "")))), int16, -1, true);
+						vc_remoteCseIndex := f_setResource(valueof(m_primitiveContentRemoteCSE(m_contentMyRemoteCSEResource(f_getLocalPoA(PX_TS_CSE1.mcaPortIn, "")))), int16, -1, true);
 						v_resourceIndex := vc_remoteCseIndex;
 						v_remoteCSERegistered:=true;
 						tc_ac.start(10.0);
@@ -2897,7 +2897,7 @@ module OneM2M_Functions {
 					v_myResource.cSEBase.lastModifiedTime := v_myResource.cSEBase.creationTime;		
 					v_myResource.cSEBase.cSE_ID := PX_TS_CSE1.cseId;
 					v_myResource.cSEBase.supportedResourceType := PX_TS_CSE1.supportedResourceType;
-					v_myResource.cSEBase.pointOfAccess := {f_getCompletePoA(PX_TS_CSE1.mccPortIn, "")};
+					v_myResource.cSEBase.pointOfAccess := {f_getLocalPoA(PX_TS_CSE1.mccPortIn, "")};
 					v_myResource.cSEBase.cseType := vc_cseType;
 					v_myResource.cSEBase.supportedReleaseVersions := {"1", "2", "2a"};
 				    
@@ -4539,43 +4539,79 @@ module OneM2M_Functions {
 		}
 		
 		/**
-		 * @desc Resolution of the announcement target CSE PoA
-		 * @param p_protocolBinding	Protocol Binding
-		 * @param p_announcementTargetAddress	Announcement Target Address
-		 * @param p_announcementTargetResource Announcement Target Resource
-		 * @return p_annoucementTargetPoA Announcemenet Target PoA
+		 * @desc Resolution of the test system PoA for a given port
+		 * @param p_portDesc			Description of port from where PoA will be built
+		 * @param p_additionalContext	Additional context
+		 * @return PoA for the given port
 		 */
-		function f_getCompletePoA(in PortDesc p_portDesc := PX_TS_CSE1.mccPortIn, charstring p_announcementTargetResource := "") return charstring {
-      var charstring v_poa;
-      
-      log(">>> f_getCompletePoA: ", p_portDesc);
-      
-      if (ischosen(p_portDesc.binding.httpBindingDesc)) {
-        v_poa := "http://" & p_portDesc.binding.httpBindingDesc.bindingDesc.tsAddress;
-        if (ispresent(p_portDesc.binding.httpBindingDesc.bindingDesc.localPort)) {
-            v_poa := v_poa & ":" & int2str(p_portDesc.binding.httpBindingDesc.bindingDesc.localPort);
-        }
-      } else if (ischosen(p_portDesc.binding.coapBindingDesc)) {
-        v_poa := "coap://" & p_portDesc.binding.coapBindingDesc.bindingDesc.tsAddress;
-        if (ispresent(p_portDesc.binding.coapBindingDesc.bindingDesc.localPort)) {
-            v_poa := v_poa & ":" & int2str(p_portDesc.binding.coapBindingDesc.bindingDesc.localPort);
-        }
-      } else if (ischosen(p_portDesc.binding.mqttBindingDesc)) {
-        v_poa := "mqtt://" & p_portDesc.binding.mqttBindingDesc.bindingDesc.tsAddress;
-        if (ispresent(p_portDesc.binding.mqttBindingDesc.bindingDesc.localPort)) {
-            v_poa := v_poa & ":" & int2str(p_portDesc.binding.mqttBindingDesc.bindingDesc.localPort);
-        }
-      } else {
-        v_poa := "ws://" & p_portDesc.binding.wsBindingDesc.bindingDesc.tsAddress;
-        if (ispresent(p_portDesc.binding.wsBindingDesc.bindingDesc.localPort)) {
-            v_poa := v_poa & ":" & int2str(p_portDesc.binding.wsBindingDesc.bindingDesc.localPort);
-        }
-      }
-			v_poa := v_poa & "/" & p_announcementTargetResource;
+		function f_getLocalPoA(in PortDesc p_portDesc := PX_TS_CSE1.mccPortIn, charstring p_additionalContext := "") return charstring {
+			var charstring v_poa;
+  
+  			log(">>> f_getLocalPoA: ", p_portDesc);
+  
+			if (ischosen(p_portDesc.binding.httpBindingDesc)) {
+				v_poa := "http://" & p_portDesc.binding.httpBindingDesc.bindingDesc.tsAddress;
+				if (ispresent(p_portDesc.binding.httpBindingDesc.bindingDesc.localPort)) {
+			    	v_poa := v_poa & ":" & int2str(p_portDesc.binding.httpBindingDesc.bindingDesc.localPort);
+			    }
+			} else if (ischosen(p_portDesc.binding.coapBindingDesc)) {
+			    v_poa := "coap://" & p_portDesc.binding.coapBindingDesc.bindingDesc.tsAddress;
+			    if (ispresent(p_portDesc.binding.coapBindingDesc.bindingDesc.localPort)) {
+			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.coapBindingDesc.bindingDesc.localPort);
+			    }
+			} else if (ischosen(p_portDesc.binding.mqttBindingDesc)) {
+			    v_poa := "mqtt://" & p_portDesc.binding.mqttBindingDesc.bindingDesc.tsAddress;
+			    if (ispresent(p_portDesc.binding.mqttBindingDesc.bindingDesc.localPort)) {
+			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.mqttBindingDesc.bindingDesc.localPort);
+			    }
+			} else {
+			    v_poa := "ws://" & p_portDesc.binding.wsBindingDesc.bindingDesc.tsAddress;
+			    if (ispresent(p_portDesc.binding.wsBindingDesc.bindingDesc.localPort)) {
+			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.wsBindingDesc.bindingDesc.localPort);
+			    }
+			}
+			v_poa := v_poa & "/" & p_additionalContext;
 			
 			return v_poa;
 		}
 				
+		/**
+		 * @desc Resolution of the IUT PoA for a given port
+		 * @param p_portDesc			Description of port from where PoA will be built
+		 * @param p_additionalContext	Additional context
+		 * @return PoA for the given port
+		 */
+		function f_getPoA(in PortDesc p_portDesc := PX_TS_AE1.mcaPort, charstring p_additionalContext := "") return charstring {
+			var charstring v_poa;
+  
+  			log(">>> f_getPoA: ", p_portDesc);
+  
+			if (ischosen(p_portDesc.binding.httpBindingDesc)) {
+				v_poa := "http://" & p_portDesc.binding.httpBindingDesc.bindingDesc.sutAddress;
+				if (ispresent(p_portDesc.binding.httpBindingDesc.bindingDesc.remotePort)) {
+			    	v_poa := v_poa & ":" & int2str(p_portDesc.binding.httpBindingDesc.bindingDesc.remotePort);
+			    }
+			} else if (ischosen(p_portDesc.binding.coapBindingDesc)) {
+			    v_poa := "coap://" & p_portDesc.binding.coapBindingDesc.bindingDesc.sutAddress;
+			    if (ispresent(p_portDesc.binding.coapBindingDesc.bindingDesc.remotePort)) {
+			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.coapBindingDesc.bindingDesc.remotePort);
+			    }
+			} else if (ischosen(p_portDesc.binding.mqttBindingDesc)) {
+			    v_poa := "mqtt://" & p_portDesc.binding.mqttBindingDesc.bindingDesc.sutAddress;
+			    if (ispresent(p_portDesc.binding.mqttBindingDesc.bindingDesc.remotePort)) {
+			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.mqttBindingDesc.bindingDesc.remotePort);
+			    }
+			} else {
+			    v_poa := "ws://" & p_portDesc.binding.wsBindingDesc.bindingDesc.sutAddress;
+			    if (ispresent(p_portDesc.binding.wsBindingDesc.bindingDesc.remotePort)) {
+			        v_poa := v_poa & ":" & int2str(p_portDesc.binding.wsBindingDesc.bindingDesc.remotePort);
+			    }
+			}
+			v_poa := v_poa & "/" & p_additionalContext;
+			
+			return v_poa;
+		}
+
 		/**
 		 * @desc Resolution of the local resource index for a given resource address (URI)
 		 * @param p_address	Resource URI (can be structured/unstructured cseRelative/spRelative/absolute)
diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn
index 697b275..9c08c45 100644
--- a/LibOneM2M/OneM2M_Pixits.ttcn
+++ b/LibOneM2M/OneM2M_Pixits.ttcn
@@ -132,6 +132,7 @@ module OneM2M_Pixits {
 			 */			
 			modulepar ReleaseVersion PX_RELEASE_VERSION		:= "2a";
 			
+			modulepar ResourceTypeList_1 PX_SRT := {int1, int2, int3, int4};
 			
 			group flexContainerContainerDefinitions {
 				/**
@@ -304,8 +305,6 @@ module OneM2M_Pixits {
 	modulepar Labels PX_LABELS := {"VALUE_1"}; 	
 	modulepar boolean PX_IS_LOC_CONTAINER	:= false;//default //set it to true when the container is created to store location information
 	
-	modulepar PoaList PX_POA := {""};
-	modulepar ResourceTypeList_1 PX_SRT := {int1, int2, int3, int4};
 	
 }  // end of module
 
diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 4ccf7b5..6861146 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -2349,7 +2349,7 @@ module OneM2M_PermutationFunctions {
 
 				// Preamble
 				
-				v_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()}));
+				v_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getLocalPoA()}));
 				
 				vc_ae1.start(f_cse_preamble_registerAe());				
 				f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1);
@@ -2439,7 +2439,7 @@ module OneM2M_PermutationFunctions {
 				
 				v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1);
 
-				vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})));
+				vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getLocalPoA()})));
 				f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 				
 				v_aeIndex := f_cse_preamble_registerAe();				
@@ -2608,7 +2608,7 @@ module OneM2M_PermutationFunctions {
 						var integer v_parentIndex := -1;
 						var integer v_resourceIndex := -1;
 						var integer v_ae1Index := -1;
-						var PoaList v_poaList := { f_getCompletePoA(PX_TS_AE1.mcaPortIn) };
+						var PoaList v_poaList := { f_getLocalPoA(PX_TS_AE1.mcaPortIn) };
 										   
 						// Test control
 				
@@ -5966,7 +5966,7 @@ module OneM2M_PermutationFunctions {
 
 						 // Preamble
 						if(p_resourceType != int2) {
-						 	v_aeIndex := f_cse_preamble_registerAe(-, {f_getCompletePoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
+						 	v_aeIndex := f_cse_preamble_registerAe(-, {f_getLocalPoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
 						}
 						
 						if(p_resourceType != int1) {
@@ -5999,7 +5999,7 @@ module OneM2M_PermutationFunctions {
 						}
 						
 						if(p_resourceType == int9) {
-							vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getCompletePoA(PX_TS_AE2.mcaPortIn, "")}), -1)); // AE2 is registred
+							vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}), -1)); // AE2 is registred
 							f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 					
 							v_ae2Index := f_getResourceFromAeSimu(vc_ae2);
@@ -8196,7 +8196,7 @@ module OneM2M_PermutationFunctions {
 							v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule};
 							vc_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
 							
-							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, {f_getCompletePoA(PX_TS_AE1.mcaPortIn)});
+							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, {f_getLocalPoA(PX_TS_AE1.mcaPortIn)});
 			
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
@@ -8257,7 +8257,7 @@ module OneM2M_PermutationFunctions {
 							v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule};
 							vc_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource
 							
-							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, {f_getCompletePoA(PX_TS_AE1.mcaPortIn)});
+							v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[vc_acpIndex].resource)}, {f_getLocalPoA(PX_TS_AE1.mcaPortIn)});
 			
 							// Test Body
 							p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex);
@@ -8995,7 +8995,7 @@ module OneM2M_PermutationFunctions {
 	
 						v_contentResponse.uRI := ?;
 	
-						v_aeIndex := f_cse_preamble_registerAe(-,  {f_getCompletePoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
+						v_aeIndex := f_cse_preamble_registerAe(-,  {f_getLocalPoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
 						if(ispresent(p_parentRequestPrimitive)) {
 							v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex);	
 							p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex);
@@ -9068,7 +9068,7 @@ module OneM2M_PermutationFunctions {
 	
 						v_contentResponse.uRI := ?;
 	
-						v_aeIndex := f_cse_preamble_registerAe(-,  {f_getCompletePoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
+						v_aeIndex := f_cse_preamble_registerAe(-,  {f_getLocalPoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
 	
 						if(ispresent(p_parentRequestPrimitive)) {
 							v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex);	
@@ -9144,11 +9144,11 @@ module OneM2M_PermutationFunctions {
 	
 						v_contentResponse.uRI := ?;
 	
-						v_aeIndex := f_cse_preamble_registerAe(-,  {f_getCompletePoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
+						v_aeIndex := f_cse_preamble_registerAe(-,  {f_getLocalPoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi);
 	
 						f_checkAeSimuStatus();
 						
-						vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getCompletePoA(PX_TS_AE2.mcaPortIn, "")}))); // AE2 is registred
+						vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}))); // AE2 is registred
 						
 						f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2);
 						
diff --git a/OneM2M_Testcases_CSE_Release_1.ttcn b/OneM2M_Testcases_CSE_Release_1.ttcn
index df9614a..ed4c936 100644
--- a/OneM2M_Testcases_CSE_Release_1.ttcn
+++ b/OneM2M_Testcases_CSE_Release_1.ttcn
@@ -1123,7 +1123,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					testcase TC_CSE_REG_CRE_012_AE_POA() runs on Tester system CseSystem {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
 						var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, PX_TS_AE1.aeIdStem);
-						v_create.primitiveContent.aE.pointOfAccess := {f_getCompletePoA(PX_TS_AE1.mcaPortIn)};
+						v_create.primitiveContent.aE.pointOfAccess := {f_getLocalPoA(PX_TS_AE1.mcaPortIn)};
 						v_ae1.start(f_CSE_REG_CRE_012(v_create));
 						v_ae1.done;
 					}
@@ -1183,7 +1183,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						const AttributeAux c_optionalAttribute := {"pointOfAccess", omit};
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 	
-						v_createRequest.primitiveContent.remoteCSE.pointOfAccess := {f_getCompletePoA(PX_TS_CSE1.mccPortIn)};
+						v_createRequest.primitiveContent.remoteCSE.pointOfAccess := {f_getLocalPoA(PX_TS_CSE1.mccPortIn)};
 	
 						v_cse1.start(f_CSE_REG_CRE_013(v_createRequest, c_optionalAttribute));
 						v_cse1.done;
@@ -1993,11 +1993,11 @@ module OneM2M_Testcases_CSE_Release_1 {
 						
 						 v_request := valueof(m_createRemoteCSEBase);
 						 v_request.primitiveContent.remoteCSE.cseType := int2;	//MN_CSE
-						 v_request.primitiveContent.remoteCSE.pointOfAccess := {f_getCompletePoA(PX_TS_CSE1.mccPortIn)};
+						 v_request.primitiveContent.remoteCSE.pointOfAccess := {f_getLocalPoA(PX_TS_CSE1.mccPortIn)};
 		
 						 v_contentResponse.remoteCSE := mw_contentRemoteCSEBase;
 						 v_contentResponse.remoteCSE.cseType := int2;	//MN_CSE
-						 v_contentResponse.remoteCSE.pointOfAccess := {f_getCompletePoA(PX_TS_CSE1.mccPortIn)};
+						 v_contentResponse.remoteCSE.pointOfAccess := {f_getLocalPoA(PX_TS_CSE1.mccPortIn)};
 		
 						 v_cse1.start(f_CSE_REG_CRE_028(v_request, v_contentResponse));
 						 v_cse1.done;
@@ -2525,7 +2525,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						 var template RequestPrimitive v_createRequest := m_createAe(PX_TS_AE1.appId, -, PX_TS_AE1.aeIdStem);
 						 var template PrimitiveContent v_contentResponse;
 						
-						 v_createRequest.primitiveContent.aE.pointOfAccess := {f_getCompletePoA(PX_TS_AE1.mcaPortIn)};
+						 v_createRequest.primitiveContent.aE.pointOfAccess := {f_getLocalPoA(PX_TS_AE1.mcaPortIn)};
 
 						 v_contentResponse.aE := mw_contentAeBase;
 						 v_contentResponse.aE.pointOfAccess := ?;
@@ -2731,7 +2731,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var template RequestPrimitive v_createRequest := m_createRemoteCSEBase;
 						var template PrimitiveContent v_contentResponse;
 						
-						v_createRequest.primitiveContent.remoteCSE.pointOfAccess := {f_getCompletePoA(PX_TS_CSE1.mccPortIn)};
+						v_createRequest.primitiveContent.remoteCSE.pointOfAccess := {f_getLocalPoA(PX_TS_CSE1.mccPortIn)};
 
 						v_contentResponse.remoteCSE := mw_contentRemoteCSEBase;
 						v_contentResponse.remoteCSE.pointOfAccess := ?;
@@ -2801,14 +2801,14 @@ module OneM2M_Testcases_CSE_Release_1 {
 							
 							if (v_response.primitive.responsePrimitive.primitiveContent.cSEBase.supportedResourceType == PX_SRT) {
 								setverdict(pass, __SCOPE__ & ": supportedResourceTypes attribute is set according to PX_SRT");
-							}else{
+							} else {
 								setverdict(fail, __SCOPE__ & ": supportedResourceTypes attribute is not set according to PX_SRT");
 							}
 							
-							if (v_response.primitive.responsePrimitive.primitiveContent.cSEBase.pointOfAccess==PX_POA){
-								setverdict(pass, __SCOPE__ & ": supportedResourceTypes attribute is set according to PX_POA");
-							}else{
-								setverdict(fail, __SCOPE__ & ": supportedResourceTypes attribute is not set according to PX_POA");
+							if (match(v_response.primitive.responsePrimitive.primitiveContent.cSEBase.pointOfAccess, {*, f_getPoA(), *})) {
+								setverdict(pass, __SCOPE__ & ": pointOfAccess attribute is set according settings");
+							} else {
+								setverdict(fail, __SCOPE__ & ": pointOfAccess attribute is not set according settings");
 							}
 			
 						}
@@ -3066,7 +3066,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;	
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
     					
-						v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := {f_getCompletePoA(PX_TS_CSE1.mccPortIn)};
+						v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := {f_getLocalPoA(PX_TS_CSE1.mccPortIn)};
 	
 						v_cse1.start(f_CSE_REG_UPD_002(v_updateRequest));
 						v_cse1.done;
@@ -3113,7 +3113,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 						var AttributeList c_optionalAttribute;
 						var CseSimu v_cse1 := CseSimu.create("CSE1") alive;
 						
-						v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := {f_getCompletePoA(PX_TS_CSE1.mccPortIn)};
+						v_updateRequest.primitiveContent.remoteCSE.pointOfAccess := {f_getLocalPoA(PX_TS_CSE1.mccPortIn)};
 						c_optionalAttribute := {"pointofAccess"};
 
 						v_cse1.start(f_CSE_REG_UPD_003(v_updateRequest, c_optionalAttribute));
@@ -6809,7 +6809,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					
 					testcase TC_CSE_DMR_UPD_015_CSR_POA() runs on Tester system CseSystem {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var PoaList v_poaList := {f_getCompletePoA(PX_TS_AE2.mcaPortIn)};
+						var PoaList v_poaList := {f_getLocalPoA(PX_TS_AE2.mcaPortIn)};
 					   var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase;
 					   var ResponsePrimitive v_responsePrimitive;
 					   var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -6973,7 +6973,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 					
 					testcase TC_CSE_DMR_UPD_015_AE_POA() runs on Tester system CseSystem {
 						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
-						var PoaList v_poaList := {f_getCompletePoA(PX_TS_AE2.mcaPortIn)};
+						var PoaList v_poaList := {f_getLocalPoA(PX_TS_AE2.mcaPortIn)};
 						var template RequestPrimitive v_updateRequest := m_updateAeBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var PrimitiveContent v_primitiveContentRetrieveResource;
@@ -10623,7 +10623,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 				
 					v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1);
 
-					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})));
+					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getLocalPoA()})));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 				
 					v_aeIndex := f_cse_preamble_registerAe();				
@@ -11188,7 +11188,7 @@ module OneM2M_Testcases_CSE_Release_1 {
 
 					// Preamble
 				
-					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getCompletePoA()})));
+					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, {f_getLocalPoA()})));
 					f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1);
 				
 					v_aeIndex := f_cse_preamble_registerAe();				
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index 7ecb008..89944e7 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -2380,7 +2380,7 @@ module OneM2M_Testcases_CSE_Release_2 {
 					// Preamble
 					f_cse_createAccessControlPolicyAux("SubscriptionVerificationAcp",{"all"}, int63);
 					
-					v_ae1Index := f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE1.appId, -, PX_TS_AE1.aeIdStem, c_defaultAe1ResourceName, {f_getCompletePoA(PX_TS_AE1.mcaPortIn, "")}), -1); // AE1 is registred
+					v_ae1Index := f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE1.appId, -, PX_TS_AE1.aeIdStem, c_defaultAe1ResourceName, {f_getLocalPoA(PX_TS_AE1.mcaPortIn, "")}), -1); // AE1 is registred
 					
 					vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, omit), -1)); // AE2 is registred
 					
-- 
GitLab