From 9a91701c23c6138003d5105a4b601a1e6d9aad62 Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Wed, 8 Mar 2017 16:51:47 +0100
Subject: [PATCH] forcedFields MsgOut field added in order to indicate to the
 test adapter either attributes set to NULL or invalid attribute values

g_CSE_DMR_CRE_BV_005 added

Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org>
---
 LibOneM2M/OneM2M_Templates.ttcn      |  10 +-
 LibOneM2M/OneM2M_TestSystem.ttcn     |   8 +-
 LibOneM2M/OneM2M_TypesAndValues.ttcn |  11 +-
 OneM2M_TestControl.ttcn              |   4 +-
 OneM2M_Testcases.ttcn                | 173 ++++++++++++++++++++-------
 5 files changed, 152 insertions(+), 54 deletions(-)

diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index cd87e06..cb476e4 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
- *              $Id: OneM2M_Templates.ttcn 219 2017-02-07 11:06:26Z reinaortega $
+ *              $Id: OneM2M_Templates.ttcn 225 2017-03-08 15:36:54Z reinaortega $
  *  @desc       Module containing templates for oneM2M
  *
  */
@@ -42,26 +42,26 @@ module OneM2M_Templates {
     	 * @desc Base template for request sending operations
     	 * @param p_requestPrimitive
     	 */
-    	template (value) MsgOut m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeList_1 p_nullFields := omit ) := {
+    	template (value) MsgOut m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
     		primitive := { requestPrimitive := p_requestPrimitive},
     		host := PX_SUT_ADDRESS,
     		xmlNamespace := PX_XML_NAMESPACE,
     		protocolBinding := PX_PROTOCOL_BINDING,
     		serialization := PX_SERIALIZATION, 
-    		nullFields := p_nullFields
+    		forcedFields := p_forcedFields
     	};
     	
 		/** 
 		 * @desc Base template for response sending operations
 		 * @param p_responsePrimitive
 		 */
-		template (value) MsgOut m_response(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeList_1 p_nullFields := omit ) := {
+		template (value) MsgOut m_response(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
 			primitive := { responsePrimitive := p_responsePrimitive},
 			host := PX_SUT_ADDRESS,
 			xmlNamespace := PX_XML_NAMESPACE,
 			protocolBinding := PX_PROTOCOL_BINDING,
 			serialization := PX_SERIALIZATION, 
-			nullFields := p_nullFields
+			forcedFields := p_forcedFields
 		};
     	//Added by @Naum
     	template MsgIn mw_request(in template (present) RequestPrimitive p_requestPrimitive) := {
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index 6bac4ba..ccb8738 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TestSystem.ttcn $
- *              $Id: OneM2M_TestSystem.ttcn 224 2017-02-10 10:40:40Z reinaortega $
+ *              $Id: OneM2M_TestSystem.ttcn 225 2017-03-08 15:36:54Z reinaortega $
  *  @desc       Test System module for oneM2M
  *
  */
@@ -88,7 +88,9 @@ module OneM2M_TestSystem {
 	 * @member xmlNamespace XML Namespace to be used
 	 * @member protocolBinding Protocol binding to be used
 	 * @member serialization Serialization to be used
-	 * @member nullFields Fields that are to be included in the oneM2M primitive but empty, i.e. <labels></labels>
+	 * @member forcedFields Attributes that need to be processed differently by the test adapter:
+	 * 			- empty fields (for instance, for attribute deletion), i.e. <labels></labels> -> value_ to be omitted
+	 * 			- invalid values, i.e. <maxNrOfInstances>-1</maxNrOfInstances>
 	 */
 	type record MsgOut {
 		union {
@@ -99,7 +101,7 @@ module OneM2M_TestSystem {
 		charstring xmlNamespace optional, 
 		charstring protocolBinding optional,
 		charstring serialization optional,
-		AttributeList_1 nullFields optional
+		AttributeAux_list forcedFields optional
 	}
 	
 	/**
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index 717a0b8..de11466 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_TypesAndValues.ttcn $
- *              $Id: OneM2M_TypesAndValues.ttcn 224 2017-02-10 10:40:40Z reinaortega $
+ *              $Id: OneM2M_TypesAndValues.ttcn 225 2017-03-08 15:36:54Z reinaortega $
  *  @desc       Module containing types and values for oneM2M
  *
  */
@@ -97,6 +97,13 @@ module OneM2M_TypesAndValues {
 		e_cf01,
 		e_cf02,
 		e_cf03	
-	}
+	};
+	
+	type record AttributeAux {
+		XSD.NCName name,
+		charstring value_ optional
+	};
+	
+	type record of AttributeAux AttributeAux_list;
 } 
 // end of module
diff --git a/OneM2M_TestControl.ttcn b/OneM2M_TestControl.ttcn
index 674a5ea..8f84e1d 100644
--- a/OneM2M_TestControl.ttcn
+++ b/OneM2M_TestControl.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_TestControl.ttcn $
- *              $Id: OneM2M_TestControl.ttcn 216 2017-01-20 10:14:30Z reinaortega $
+ *              $Id: OneM2M_TestControl.ttcn 225 2017-03-08 15:36:54Z reinaortega $
  *  @desc       Test control module for oneM2M
  *
  */
@@ -166,7 +166,7 @@ module OneM2M_TestControl {
 		execute(TC_CSE_DMR_UPD_BO_008_04());
 		execute(TC_CSE_DMR_UPD_BO_008_05());
 		execute(TC_CSE_DMR_UPD_BO_008_06());
-		execute(TC_CSE_DMR_UPD_BV_009());
+		execute(TC_CSE_DMR_UPD_BV_010());
 		execute(TC_CSE_DMR_DEL_BV_001_01());
 		execute(TC_CSE_DMR_DEL_BV_001_02());
 		execute(TC_CSE_DMR_DEL_BV_001_03());
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index c42057b..9db7298 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -7,7 +7,7 @@
  *  
  *  @author     ETSI
  *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $
- *              $Id: OneM2M_Testcases.ttcn 224 2017-02-10 10:40:40Z reinaortega $
+ *              $Id: OneM2M_Testcases.ttcn 225 2017-03-08 15:36:54Z reinaortega $
  *  @desc       Module containing test cases for oneM2M
  *
  */
@@ -1549,6 +1549,95 @@ module OneM2M_Testcases {
     				
 				}// end group g_CSE_DMR_CRE_BV_004
 				
+				group g_CSE_DMR_CRE_BV_005 {
+					
+					testcase TC_CSE_DMR_CRE_BV_005_01() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var AttributeAux v_invalidAttribute;
+						
+						v_createRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances := omit;
+						v_invalidAttribute := {name := "maxNrOfInstances", value_ := "-1"};
+						
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_005(int3, v_createRequest, v_invalidAttribute);			
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_005_02() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var AttributeAux v_invalidAttribute;
+						
+						v_createRequest.primitiveContent.any_1[0].Container_optional.maxByteSize := omit;
+						v_invalidAttribute := {name := "maxNrOfInstances", value_ := "-1"};
+						
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_005(int3, v_createRequest, v_invalidAttribute);
+						  
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_005_03() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var AttributeAux v_invalidAttribute;
+						
+						v_createRequest.primitiveContent.any_1[0].Container_optional.maxInstanceAge := omit;
+						v_invalidAttribute := {name := "maxNrOfInstances", value_ := "-1"};
+						
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_005(int3, v_createRequest, v_invalidAttribute);
+						
+					}
+				
+					function f_CSE_DMR_CRE_BV_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in template AttributeAux p_invalidAttribute) runs on CseTester return ResponsePrimitive {
+    				
+							// Local variables
+							var MsgIn v_response;
+							var RequestPrimitive v_request;
+							var integer v_aeIndex := -1;
+											   
+							// Test control
+    				
+							// Test component configuration
+							f_cf01Up();
+    				
+							// Test adapter configuration
+    				
+							// Preamble
+							v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); 
+						
+							// Test Body
+							v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex);
+    					
+							mcaPort.send(m_request(v_request, {valueof(p_invalidAttribute)}));
+							tc_ac.start;
+							alt {
+								[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+									tc_ac.stop;
+									setverdict(pass, testcasename() & ": Creation rejected for resource type " & int2str(enum2int(p_resourceType)) & " containing an invalid value for attribute " & p_invalidAttribute.name);
+								}
+								[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+									tc_ac.stop;
+									setverdict(fail, testcasename() & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType)) & " containing an invalid value for attribute" & p_invalidAttribute.name);
+								}
+								[] tc_ac.timeout {
+									setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType)));
+								}
+							}	
+    								
+							// Postamble
+							f_cse_postamble_deleteResources();
+							
+							// Tear down
+							f_cf01Down();
+						
+    					
+							return v_response.primitive.responsePrimitive;
+    					    				
+						}//end f_CSE_DMR_CRE_BV_005
+						
+				}// end group g_CSE_DMR_CRE_BV_005
+				
 			
 			}//end group Create
 			
@@ -2813,7 +2902,7 @@ module OneM2M_Testcases {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
-						var AttributeList v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var ResponsePrimitive v_responsePrimitive;
                         var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
@@ -2821,7 +2910,7 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1;
 						v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_2;
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
                         
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int3, v_createRequest, v_updateRequest, v_nullFields);//Container
 						
@@ -2843,7 +2932,7 @@ module OneM2M_Testcases {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
-						var AttributeList v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var ResponsePrimitive v_responsePrimitive;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
@@ -2851,7 +2940,7 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_1;
 						v_updateRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_2;
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
 						
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int9, v_createRequest, v_updateRequest, v_nullFields);//Group
 						
@@ -2871,7 +2960,7 @@ module OneM2M_Testcases {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
-						var AttributeList v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var ResponsePrimitive v_responsePrimitive;
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
@@ -2879,7 +2968,7 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_1;
 						v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_2;
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
 							
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int1, v_createRequest, v_updateRequest, v_nullFields);//AccessControlPolicy
 						
@@ -2899,7 +2988,7 @@ module OneM2M_Testcases {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
-						var AttributeList v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var ResponsePrimitive v_responsePrimitive;
 						var template RequestPrimitive v_createRequest := m_createScheduleBase;
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
@@ -2907,7 +2996,7 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_1;
 						v_updateRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_2;
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
 						
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int18, v_createRequest, v_updateRequest, v_nullFields);//Schedule
 						
@@ -2927,7 +3016,7 @@ module OneM2M_Testcases {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
-						var AttributeList v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var ResponsePrimitive v_responsePrimitive;
 						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
@@ -2935,7 +3024,7 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_1;
 						v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_2;
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
 						
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int15, v_createRequest, v_updateRequest, v_nullFields);//PollingChannel
 						
@@ -2955,7 +3044,7 @@ module OneM2M_Testcases {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
-						var AttributeList v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var ResponsePrimitive v_responsePrimitive;
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
@@ -2963,7 +3052,7 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_1;
 						v_updateRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_2;
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
 						
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int23, v_createRequest, v_updateRequest, v_nullFields);//Subscription
 						
@@ -2979,7 +3068,7 @@ module OneM2M_Testcases {
 						}
 					}
 					
-					function f_CSE_DMR_UPD_BV_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeList_1 p_nullFields := omit) runs on CseTester return ResponsePrimitive {
+					function f_CSE_DMR_UPD_BV_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseTester return ResponsePrimitive {
     				
 						// Local variables
 						var MsgIn v_response;
@@ -3045,14 +3134,14 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 
 						v_createRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1;//Attribute 3
 						v_updateRequest.primitiveContent.any_1[0].Container_optional.expirationTime := "20301231T012345";//Attribute 1
 						v_updateRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances := 5;//Attribute 2
 						v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_2;//Attribute 3
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
 						
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int3, v_createRequest, v_updateRequest, v_nullFields);//Container
 						
@@ -3082,7 +3171,7 @@ module OneM2M_Testcases {
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
 						
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -3092,7 +3181,7 @@ module OneM2M_Testcases {
 						v_updateRequest.primitiveContent.any_1[0].Group_optional.groupName:= v_groupName_1;//Attribute 2
 						v_updateRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_2;//Attribute 3
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
                         
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int9, v_createRequest, v_updateRequest, v_nullFields);//Group
 						
@@ -3131,7 +3220,7 @@ module OneM2M_Testcases {
 								}
 							}
 						}
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createAcpBase;// privileges set by default to 63 for *
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -3141,7 +3230,7 @@ module OneM2M_Testcases {
 						v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo := {PX_URI_CSE};//Attribute 2
 						v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_2;//Attribute 3
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
       							
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int1, v_createRequest, v_updateRequest, v_nullFields);//AccessControlPolicy
 						
@@ -3169,7 +3258,7 @@ module OneM2M_Testcases {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createScheduleBase;
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -3179,7 +3268,7 @@ module OneM2M_Testcases {
 						v_updateRequest.primitiveContent.any_1[0].Schedule_optional.announceTo := {PX_URI_CSE};//Attribute 2
 						v_updateRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_2;//Attribute 3
                 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
 						
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int18, v_createRequest, v_updateRequest, v_nullFields);//Schedule
 						
@@ -3208,7 +3297,7 @@ module OneM2M_Testcases {
 						var Labels v_labels_1 := {"VALUE_1"};
 						var Labels v_labels_2 := {"To be deleted"};
 						var AcpType v_acp := {"ACP_ID"};
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -3218,7 +3307,7 @@ module OneM2M_Testcases {
 						//v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.accessControlPolicyIDs := v_acp;//Attribute 2 TODO Find another alternative for Attribute 2
 						v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_2;//Attribute 3
 						
-						v_nullFields := {"labels"};
+						v_nullFields := {{"labels", omit}};
       						
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int15, v_createRequest, v_updateRequest, v_nullFields);//PollingChannel
 						
@@ -3243,7 +3332,7 @@ module OneM2M_Testcases {
 					testcase TC_CSE_DMR_UPD_BV_004_06() runs on CseTester system CseSystem {
 						// Local variables
 						var Labels v_labels_1 := {"VALUE_1"};
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
@@ -3253,7 +3342,7 @@ module OneM2M_Testcases {
 						v_updateRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_1;//Attribute 2
 						v_updateRequest.primitiveContent.any_1[0].Subscription_optional.expirationCounter := 5;//Attribute 3
 						
-						v_nullFields := {"expirationCounter"};
+						v_nullFields := {{"expirationCounter", omit}};
       							
 						v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int23, v_createRequest, v_updateRequest, v_nullFields);//Subscription
 						
@@ -3277,7 +3366,7 @@ module OneM2M_Testcases {
     					}
 					}
 					
-					function f_CSE_DMR_UPD_BV_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeList_1 p_nullFields := omit) runs on CseTester return ResponsePrimitive {
+					function f_CSE_DMR_UPD_BV_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseTester return ResponsePrimitive {
     				
 						// Local variables
 						var MsgIn v_response;
@@ -3719,9 +3808,9 @@ module OneM2M_Testcases {
 						// Local variables
 						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 						
-						v_nullFields := {"expirationTime"};
+						v_nullFields := {{"expirationTime", omit}};
 
 						v_updateRequest.primitiveContent.any_1[0].Container_optional.expirationTime := v_expirationTime;
 						
@@ -3732,9 +3821,9 @@ module OneM2M_Testcases {
 						// Local variables
 						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateGroupBase;
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 
-						v_nullFields := {"expirationTime"};
+						v_nullFields := {{"expirationTime", omit}};
 						
 						v_updateRequest.primitiveContent.any_1[0].Group_optional.expirationTime := v_expirationTime;
 						
@@ -3745,9 +3834,9 @@ module OneM2M_Testcases {
 						// Local variables
 						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 
-						v_nullFields := {"expirationTime"};
+						v_nullFields := {{"expirationTime", omit}};
 						
 						v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.expirationTime := v_expirationTime;
 								
@@ -3758,9 +3847,9 @@ module OneM2M_Testcases {
 						// Local variables
 						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateScheduleBase;
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 
-						v_nullFields := {"expirationTime"};
+						v_nullFields := {{"expirationTime", omit}};
 						
 						v_updateRequest.primitiveContent.any_1[0].Schedule_optional.expirationTime := v_expirationTime;
 										
@@ -3771,9 +3860,9 @@ module OneM2M_Testcases {
 						// Local variables
 						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase;
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 
-						v_nullFields := {"expirationTime"};
+						v_nullFields := {{"expirationTime", omit}};
 						
 						v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.expirationTime := v_expirationTime;
 							
@@ -3784,16 +3873,16 @@ module OneM2M_Testcases {
 						// Local variables
 						var Timestamp v_expirationTime := "20001231T012345";
 						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
-						var AttributeList_1 v_nullFields;
+						var AttributeAux_list v_nullFields;
 
-						v_nullFields := {"expirationTime"};
+						v_nullFields := {{"expirationTime", omit}};
 						
 						v_updateRequest.primitiveContent.any_1[0].Subscription_optional.expirationTime := v_expirationTime;
 								
 						f_CSE_DMR_UPD_BO_008(int23, m_createSubscriptionBase, v_updateRequest, v_nullFields);//Subscription
 						}
 					
-					function f_CSE_DMR_UPD_BO_008(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeList_1 p_nullFields := omit) runs on CseTester {
+					function f_CSE_DMR_UPD_BO_008(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseTester {
     				
 						// Local variables
 						var MsgIn v_response;
@@ -3850,9 +3939,9 @@ module OneM2M_Testcases {
     				
 				} // end g_CSE_DMR_UPD_BO_008				
 
-				group g_CSE_DMR_UPD_BV_009{
+				group g_CSE_DMR_UPD_BV_010{
 
-					testcase TC_CSE_DMR_UPD_BV_009() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_UPD_BV_010() runs on CseTester system CseSystem {
 						var MsgIn v_response;
 						var integer v_aeIndex := -1;
 						var integer v_containerIndex := -1;
-- 
GitLab