From 72b1723ac511e5abbbfc085bda92d5dbc211a17a Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Wed, 17 May 2017 10:54:17 +0200
Subject: [PATCH] New templates for createContainer and createContentInstance
 which do not provide the resourceName attribute (useful when more than one
 resource is to be created under the same parent)

Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org>
---
 LibOneM2M/OneM2M_Templates.ttcn | 25 ++++++++++--
 OneM2M_Testcases.ttcn           | 72 ++++++++++++++++-----------------
 2 files changed, 58 insertions(+), 39 deletions(-)

diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 6791849..e2a5389 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     oneM2M
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
- *              $Id: OneM2M_Templates.ttcn 269 2017-05-17 03:36:25Z reinaortega $
+ *              $Id: OneM2M_Templates.ttcn 273 2017-05-17 08:53:18Z reinaortega $
  *  @desc       Module containing templates for oneM2M
  *
  */
@@ -545,6 +545,15 @@ module OneM2M_Templates {
 					any_1 := {{Container_optional := m_contentCreateContainer}}
 				}
 			};
+			
+			/**
+			 * @desc CREATE request primitive for Container resource wiht no resourceName provided
+			 */
+			template (value) RequestPrimitive m_createContainer_noResourceName modifies m_createContainerBase := {
+				primitiveContent := {
+					any_1 := {{Container_optional := m_contentCreateContainer(omit)}}
+				}
+			};
 	
     		template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName := c_defaultContainerResourceName) modifies m_create := {
     			to_ := p_parentResourceAddress,
@@ -607,6 +616,16 @@ module OneM2M_Templates {
 					any_1 := {{ContentInstance_optional := m_contentCreateContentInstance}}
 				}
 			};
+				
+			/**
+			 * @desc CREATE request primitive for Content Instance resource with no resourceName provided
+			 */
+			template (value) RequestPrimitive m_createContentInstance_noResourceName modifies m_createContentInstanceBase := {
+				primitiveContent := {
+			
+					any_1 := {{ContentInstance_optional := m_contentCreateContentInstance(omit)}}
+				}
+			};
     		
     		template (value) RequestPrimitive m_createContentInstance(XSD.ID p_parentResourceAddress, XSD.String p_primitiveContent) modifies m_create := {
     			to_ := p_parentResourceAddress,
@@ -1508,8 +1527,8 @@ module OneM2M_Templates {
     	 * @desc Base primitiveContent for CREATE operation for ContentInstance resource
     	 * @param p_primitiveContent Content for the ContentInstance
     	 */
-    	template (value) ContentInstance_optional m_contentCreateContentInstance(XSD.String p_primitiveContent := "AnyValue") := {
-			resourceName := c_defaultContentInstanceResourceName,//O
+    	template (value) ContentInstance_optional m_contentCreateContentInstance(in template (omit) XSD.String p_name := c_defaultContentInstanceResourceName, XSD.String p_primitiveContent := "AnyValue") := {
+			resourceName := p_name,//O
 			resourceType := omit,//NP
 			resourceID := omit,//NP
 			parentID := omit,//NP
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index e25c18b..90406c4 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 271 2017-05-17 07:14:50Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 273 2017-05-17 08:53:18Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -562,7 +562,7 @@ module OneM2M_Testcases {
 						}
 						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
 							tc_ac.stop;
-							setverdict(fail, testcasename() & ": Error, Result content set to 0 is impossible for a retrieve request ");
+							setverdict(fail, testcasename() & ": Error, Result content set to " & int2str(enum2int(p_resultContent)) & " is impossible for a retrieve request ");
 						}
 						[] tc_ac.timeout {
 							setverdict(inconc, testcasename() & ": No answer while retrieving resource");
@@ -4340,9 +4340,9 @@ module OneM2M_Testcases {
 						
 						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 	
 						
-						v_contentInstanceIndex1 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex);
+						v_contentInstanceIndex1 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);
 						
-						v_contentInstanceIndex2 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex);  
+						v_contentInstanceIndex2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);  
 						
 						v_contentResponse.any_1[0].ContentInstance_optional := mw_contentContentInstanceBase;
 						v_contentResponse.any_1[0].ContentInstance_optional.resourceName := vc_resourcesList[v_contentInstanceIndex1].resource.any_1[0].ContentInstance_optional.resourceName;
@@ -4457,9 +4457,9 @@ module OneM2M_Testcases {
 						
 						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 	
 						
-						v_contentInstanceIndex1 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex);
+						v_contentInstanceIndex1 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);
 						
-						v_contentInstanceIndex2 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex);  
+						v_contentInstanceIndex2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);  
 						
 						v_contentResponse.any_1[0].ContentInstance_optional := mw_contentContentInstanceBase;
 						v_contentResponse.any_1[0].ContentInstance_optional.resourceName := vc_resourcesList[v_contentInstanceIndex2].resource.any_1[0].ContentInstance_optional.resourceName;
@@ -7567,8 +7567,8 @@ module OneM2M_Testcases {
 						
 						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 						
-						v_contentInstanceIndex_1 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); 
-						v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex);
+						v_contentInstanceIndex_1 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); 
+						v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);
 							
 						// Test Body
 						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/la"));
@@ -7692,8 +7692,8 @@ module OneM2M_Testcases {
 						
 						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 						
-						v_contentInstanceIndex_1 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex); 
-						v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstanceBase, v_containerIndex);
+						v_contentInstanceIndex_1 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex); 
+						v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);
 							
 						// Test Body
 						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/ol"));
@@ -8572,8 +8572,8 @@ module OneM2M_Testcases {
                     // Preamble
                     v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
                     
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					
 					v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
 					
@@ -8697,7 +8697,7 @@ module OneM2M_Testcases {
 					var integer v_acpIndex := -1;
 					var integer v_groupIndex := -1;
 					var RequestPrimitive v_request;
-					var template RequestPrimitive v_containerCreateRequest := m_createContainer("NotInitialized", "MyContainer2");
+					var template RequestPrimitive v_containerCreateRequest := m_createContainer_noResourceName;
 					var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 					var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, int61); //c_CUDNDi
                 
@@ -8716,8 +8716,8 @@ module OneM2M_Testcases {
 					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
 					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
 					v_containerCreateRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, v_containerCreateRequest, v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource)}, omit, int3), v_aeIndex);
 					
 					v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
@@ -9106,8 +9106,8 @@ module OneM2M_Testcases {
                     
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					v_memberId_1 :=  f_getResourceId(vc_resourcesList[v_containerIndex_1].resource);
 					v_memberId_2 :=  f_getResourceId(vc_resourcesList[v_containerIndex_2].resource);
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberId_1, v_memberId_2}, omit, int3), v_aeIndex); // AE child resource
@@ -9174,8 +9174,8 @@ module OneM2M_Testcases {
                     
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource)}, omit, int3), v_aeIndex);
 					
 					v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
@@ -9464,9 +9464,9 @@ module OneM2M_Testcases {
                     // Preamble
                     v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
                     
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource
-					v_containerIndex_3 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_3 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					
 					v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
 					
@@ -9528,8 +9528,8 @@ module OneM2M_Testcases {
                                         
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3), v_aeIndex);
 					
@@ -9796,8 +9796,8 @@ module OneM2M_Testcases {
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
 					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
 					v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3, -, v_membersAcpIds), v_aeIndex); // AE child resource
@@ -9891,8 +9891,8 @@ module OneM2M_Testcases {
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
 					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
-    				v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+    				v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
     				v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
 					v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3, -, v_membersAcpIds), v_aeIndex); // AE child resource
@@ -9984,8 +9984,8 @@ module OneM2M_Testcases {
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
 					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
 					v_acpIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, v_acpIDs, int3), v_aeIndex); // AE child resource
@@ -10079,8 +10079,8 @@ module OneM2M_Testcases {
 					// Preamble
 					v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
 					v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource
 					v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)};
 					v_acpIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, v_acpIDs, int3), v_aeIndex); // AE child resource
@@ -10263,8 +10263,8 @@ module OneM2M_Testcases {
 					v_aeIndex_1 := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
 					v_aeIndex_2 := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", omit), -1); // AE2 is registred
 					v_acpIndex := f_cse_createResource(int1, v_createAcp, -1); // AE child resource
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex_1); // AE1 child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex_2); // AE2 child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex_1); // AE1 child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex_2); // AE2 child resource
 					v_memberIDs := {f_getResourceId(vc_resourcesList[v_aeIndex_1].resource), f_getResourceId(vc_resourcesList[v_aeIndex_2].resource)};
 					v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2, -, v_membersAcpIds), -1);
@@ -10349,8 +10349,8 @@ module OneM2M_Testcases {
 					v_aeIndex_1 := f_cse_preamble_registerAe(-, -); //c_CRUDNDi
 					v_aeIndex_2 := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", omit), -1); // AE2 is registred
 					v_acpIndex := f_cse_createResource(int1, v_createAcp, -1); // AE child resource
-					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex_1); // AE1 child resource
-					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "myCon"), v_aeIndex_2); // AE2 child resource
+					v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex_1); // AE1 child resource
+					v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex_2); // AE2 child resource
 					v_memberIDs := {f_getResourceId(vc_resourcesList[v_aeIndex_1].resource), f_getResourceId(vc_resourcesList[v_aeIndex_2].resource)};
 					v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)};
 					v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2, -, v_membersAcpIds), -1);
-- 
GitLab