From 1388a95fcca387aa500e9165dbbf70e9d74ab38a Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Fri, 19 May 2017 07:56:07 +0200
Subject: [PATCH] Adding PX_AE1_ADDRESS, PX_AE2_ADDRESS and PX_CSE1_ADDRESS
 replacing PX_TESTER_ADDRESS

Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org>
---
 LibOneM2M/OneM2M_Functions.ttcn | 24 +++++++++++++++++++--
 LibOneM2M/OneM2M_Pixits.ttcn    |  8 +++++--
 OneM2M_Testcases.ttcn           | 38 ++++++++++++++++-----------------
 3 files changed, 47 insertions(+), 23 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index b7cf763..da37353 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $
- *              $Id: OneM2M_Functions.ttcn 278 2017-05-18 05:37:19Z reinaortega $
+ *              $Id: OneM2M_Functions.ttcn 283 2017-05-19 05:31:55Z reinaortega $
  *  @desc       Module containing functions for oneM2M
  *
  */
@@ -295,7 +295,7 @@ module OneM2M_Functions {
 			function f_cse_preamble_subscriptionVerification(out CseTester p_notifyHandler,in integer p_aeIndex, inout integer p_ae2Index, inout template RequestPrimitive p_createRequestPrimitive,in ResourceType p_resourceType ) runs on CseTester {
 				if(p_resourceType == int23){
 					p_notifyHandler := CseTester.create("NotifyHandler") alive;
-					p_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", {"http://" & PX_TESTER_ADDRESS & "/"}), -1); // AE2 is registred
+					p_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", {"http://" & PX_AE2_ADDRESS & "/"}), -1); // AE2 is registred
 					if(ischosen(p_createRequestPrimitive.primitiveContent.any_1[0].Subscription_optional)){		//this condition is necessary for Subscription TCs where notification URI is set in m_createSubscriptionAdvanced
 						p_createRequestPrimitive.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(p_ae2Index)}; 
 					}
@@ -1347,6 +1347,26 @@ module OneM2M_Functions {
 		return -1;
 			
 		}
+		
+		/**
+		 * @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
+		 */
+		function f_getAnnoucementTargetPoA(in charstring p_protocolBinding := PX_PROTOCOL_BINDING, in charstring p_announcementTargetAddress := PX_CSE1_ADDRESS, charstring p_announcementTargetResource := "/CseBaseTester" ) return charstring {
+			
+			if(p_protocolBinding == "HTTP") {
+			 	return "http://" & p_announcementTargetAddress & "/" & p_announcementTargetResource;
+			} else if (p_protocolBinding == "COAP") {
+				return "coap://" & p_announcementTargetAddress & "/" & p_announcementTargetResource;
+			} else if (p_protocolBinding == "MQTT") {
+				return "mqtt://" & PX_SUT_ADDRESS & "/" & p_announcementTargetResource;//TODO
+			} else {
+				return "ws://" & p_announcementTargetAddress & "/" & p_announcementTargetResource;
+			}
+		}
 			
     		
 		/**
diff --git a/LibOneM2M/OneM2M_Pixits.ttcn b/LibOneM2M/OneM2M_Pixits.ttcn
index 3890959..8c8c143 100644
--- a/LibOneM2M/OneM2M_Pixits.ttcn
+++ b/LibOneM2M/OneM2M_Pixits.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Pixits.ttcn $
- *              $Id: OneM2M_Pixits.ttcn 247 2017-03-27 17:09:55Z reinaortega $
+ *              $Id: OneM2M_Pixits.ttcn 283 2017-05-19 05:31:55Z reinaortega $
  *  @desc       Module containing Pixits for oneM2M
  *
  */
@@ -25,8 +25,12 @@ module OneM2M_Pixits {
 	modulepar XSD.IDREFS PX_RESOURCES_TO_BE_DELETED := {"/ae_test", "/MyAcp"};
 	
 	modulepar charstring PX_SUT_ADDRESS 			:= "127.0.0.1:8080";
+		
+	modulepar charstring PX_AE1_ADDRESS				:= "127.0.0.1:3131";
+	
+	modulepar charstring PX_AE2_ADDRESS				:= "127.0.0.1:3132";
 	
-	modulepar charstring PX_TESTER_ADDRESS 			:= "127.0.0.1:3131";
+	modulepar charstring PX_CSE1_ADDRESS			:= "127.0.0.1:3141";
 	
 	modulepar charstring PX_XML_NAMESPACE 			:= "m2m=""http://www.onem2m.org/xml/protocols""";
 	
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index 054bb81..6232ceb 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 280 2017-05-18 10:30:30Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 284 2017-05-19 05:54:20Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -1361,7 +1361,7 @@ module OneM2M_Testcases {
 						var integer v_parentIndex := -1;
     					var integer v_resourceIndex := -1;
 						var integer v_ae2Index := -1;
-						var PoaList v_poaList := {"http://" & PX_TESTER_ADDRESS & "/"};
+						var PoaList v_poaList := {"http://" & PX_AE2_ADDRESS & "/"};
     										   
     					// Test control
     				
@@ -2974,7 +2974,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
 						
-						v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						                    
 						f_CSE_DMR_CRE_BV_016(int1, v_createRequest, mw_createAccessControlPolicyAnnc);//AccessControlPolicy
 					}
@@ -2984,7 +2984,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
 						
-						v_createRequest.primitiveContent.any_1[0].Container_optional.announceTo := {PX_TESTER_ADDRESS};
+						v_createRequest.primitiveContent.any_1[0].Container_optional.announceTo := {f_getAnnoucementTargetPoA()};
 					
 						//f_CSE_DMR_CRE_BV_016(int3, v_createRequest, mw_createContainerAnnc);//Container	//@ACV
 						f_CSE_DMR_CRE_BV_016(int3, v_createRequest, mw_createContainerAnncBase);//Container
@@ -2995,7 +2995,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
 						var ResponsePrimitive v_responsePrimitive;
 						
-						v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						
 						//f_CSE_DMR_CRE_BV_016(int4, v_createRequest, mw_createContentInstanceAnnc);//ContentInstance	@ACV
 						f_CSE_DMR_CRE_BV_016(int4, v_createRequest, mw_createContentInstanceAnncBase);//ContentInstance
@@ -3006,7 +3006,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
 						
-						v_createRequest.primitiveContent.any_1[0].Group_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].Group_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						
 						//f_CSE_DMR_CRE_BV_016(int9, v_createRequest, mw_createGroupAnnc);//Group	//@ACV
 						f_CSE_DMR_CRE_BV_016(int9, v_createRequest, mw_createGroupAnncBase);//Group
@@ -3017,7 +3017,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createLocationPolicy(int1, omit, omit, omit, omit);
 						var ResponsePrimitive v_responsePrimitive;
 						
-						v_createRequest.primitiveContent.any_1[0].LocationPolicy_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].LocationPolicy_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						
 						//f_CSE_DMR_CRE_BV_016(int10, v_createRequest, mw_createLocationPolicyAnnc);//LocationPolicy	//@ACV
 						f_CSE_DMR_CRE_BV_016(int10, v_createRequest, mw_createLocationPolicyAnncBase);//LocationPolicy
@@ -3028,7 +3028,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createMgmtObjBase;
 						var ResponsePrimitive v_responsePrimitive;
 						
-						v_createRequest.primitiveContent.any_1[0].MgmtObj_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].MgmtObj_optional.announceTo := {f_getAnnoucementTargetPoA()};
 
 						//f_CSE_DMR_CRE_BV_016(int13, v_createRequest, mw_createMgmtObjAnnc);//MgmtObj	//@ACV
 						f_CSE_DMR_CRE_BV_016(int13, v_createRequest, mw_createMgmtObjAnncBase);//MgmtObj
@@ -3039,7 +3039,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createNodeBase;
 						var ResponsePrimitive v_responsePrimitive;
 						
-						v_createRequest.primitiveContent.any_1[0].Node_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].Node_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						
 						f_CSE_DMR_CRE_BV_016(int14, v_createRequest, mw_createNodeAnnc);//Node
 					}
@@ -3049,7 +3049,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createScheduleBase;
 						var ResponsePrimitive v_responsePrimitive;
 						
-						v_createRequest.primitiveContent.any_1[0].Schedule_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].Schedule_optional.announceTo := {f_getAnnoucementTargetPoA()};
 
 						//f_CSE_DMR_CRE_BV_016(int18, v_createRequest, mw_createScheduleAnnc);//Schedule	//@ACV
 						f_CSE_DMR_CRE_BV_016(int18, v_createRequest, mw_createScheduleAnncBase);//Schedule
@@ -3122,7 +3122,7 @@ module OneM2M_Testcases {
 						var RequestPrimitive v_requestPrimitive;
 						var XSD.NonNegativeInteger maxByteSize := 512;		//Correct value? Shall be indicated in TP?
 		
-						v_createRequest.primitiveContent.any_1[0].Container_optional.announceTo := {PX_TESTER_ADDRESS};
+						v_createRequest.primitiveContent.any_1[0].Container_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						v_createRequest.primitiveContent.any_1[0].Container_optional.maxByteSize := maxByteSize;						
 						v_createRequest.primitiveContent.any_1[0].Container_optional.announcedAttribute := {"maxByteSize"};		//Correct value? Shall be indicated in TP?
 	
@@ -3148,7 +3148,7 @@ module OneM2M_Testcases {
 						var RequestPrimitive v_requestPrimitive;
 						var XSD.NonNegativeInteger contentSize := 512;			//Correct value? Shall be indicated in TP?
 		
-						v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.contentSize := contentSize;						
 						v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.announcedAttribute := {"contentSize"};	//Correct value? Shall be indicated in TP?
 		
@@ -3174,7 +3174,7 @@ module OneM2M_Testcases {
 						var RequestPrimitive v_requestPrimitive;
 						var XSD.PositiveInteger maxNrOfMembers := 10;						//Correct value? Shall be indicated in TP?
 		
-						v_createRequest.primitiveContent.any_1[0].Group_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].Group_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						v_createRequest.primitiveContent.any_1[0].Group_optional.maxNrOfMembers := maxNrOfMembers;
 						v_createRequest.primitiveContent.any_1[0].Group_optional.announcedAttribute := {"maxNrOfMembers"};	//Correct value? Shall be indicated in TP?
 		
@@ -3200,7 +3200,7 @@ module OneM2M_Testcases {
 						var RequestPrimitive v_requestPrimitive;
 						var LocationSource locationSource := int1;//Network-based		//Correct value? Shall be indicated in TP?
 		
-						v_createRequest.primitiveContent.any_1[0].LocationPolicy_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].LocationPolicy_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						v_createRequest.primitiveContent.any_1[0].LocationPolicy_optional.locationSource := locationSource;
 						v_createRequest.primitiveContent.any_1[0].LocationPolicy_optional.announcedAttribute := {"locationSource"};		//Correct value? Shall be indicated in TP?
 		
@@ -3226,7 +3226,7 @@ module OneM2M_Testcases {
 						var RequestPrimitive v_requestPrimitive;
 						var XSD.String description := "Description of mgmtObj";	//Correct value? Shall be indicated in TP?
 		
-						v_createRequest.primitiveContent.any_1[0].MgmtObj_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].MgmtObj_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						v_createRequest.primitiveContent.any_1[0].MgmtObj_optional.description := description;			
 						v_createRequest.primitiveContent.any_1[0].MgmtObj_optional.announcedAttribute := {"description"};			//Correct value? Shall be indicated in TP?
 
@@ -3251,7 +3251,7 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createNodeBase;
 						var RequestPrimitive v_requestPrimitive;
 		
-						v_createRequest.primitiveContent.any_1[0].Node_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].Node_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						
 						//TODO node to be done. hostedCSELink attribute (OA) to be added!!!
 		
@@ -3264,7 +3264,7 @@ module OneM2M_Testcases {
 						var RequestPrimitive v_requestPrimitive;
 						var ScheduleEntries scheduleElement := {{"0,0,0 1 2,1,1,*"}};
 		
-						v_createRequest.primitiveContent.any_1[0].Schedule_optional.announceTo := {PX_TESTER_ADDRESS & "/CseBaseTester"};
+						v_createRequest.primitiveContent.any_1[0].Schedule_optional.announceTo := {f_getAnnoucementTargetPoA()};
 						v_createRequest.primitiveContent.any_1[0].Schedule_optional.scheduleElement := scheduleElement;			//Correct value? Shall be indicated in TP?
 						v_createRequest.primitiveContent.any_1[0].Schedule_optional.announcedAttribute := {"scheduleElement"};			//Correct value? Shall be indicated in TP?
 						
@@ -10584,7 +10584,7 @@ module OneM2M_Testcases {
 
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi);
-					v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", {"http://" & PX_TESTER_ADDRESS & "/"}), -1);
+					v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", {f_getAnnoucementTargetPoA("HTTP", PX_AE2_ADDRESS, "")}), -1);
 					
 					v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription 
 					v_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(v_ae2Index)};
@@ -10643,7 +10643,7 @@ module OneM2M_Testcases {
 
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi); // set poa to MTC adress
-					v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", {"http://" & PX_TESTER_ADDRESS & "/"}), -1);
+					v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", {f_getAnnoucementTargetPoA("HTTP", PX_AE2_ADDRESS, "")}));
 					
 					v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription 
 					v_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(v_ae2Index)};
-- 
GitLab