From 3b396bf1ac012a4cdc852fd4448af8cbfec422a9 Mon Sep 17 00:00:00 2001
From: pkulkarni <pkulkarni75@gmail.com>
Date: Fri, 16 Jun 2017 13:21:56 +0200
Subject: [PATCH] Corrections to oneM2M/CSE/DMR/CRE/BV/001 Testcases; Alignment
 to TS-0018 section 7.2.3.3.1.

---
 OneM2M_Testcases.ttcn | 489 ++++++++++++++++++++++--------------------
 1 file changed, 256 insertions(+), 233 deletions(-)

diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index 4ba2944..b299908 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -1176,289 +1176,350 @@ module OneM2M_Testcases {
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;//TODO useless but need to be initialized see if we can remove it
 						
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))},
-							{valueof(m_createContainerBase)}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
-						
 						v_createRequest.primitiveContent.container_optional.resourceName := omit;
-						
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-							v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);
-							log(v_responsePrimitive);
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.container_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, v_createRequest, {}, v_notifyHandler); //Container
+						log(v_responsePrimitive);
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.container_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
-						}  
+						}
+						  
 					}
 
 					testcase TC_CSE_DMR_CRE_BV_001_02() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var integer v_sizeResourceTypeList;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+						
+						v_createRequest.primitiveContent.group_optional.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, v_createRequest, {valueof(m_createAeAux(omit,omit))},v_notifyHandler);//Container
+						log(v_responsePrimitive);
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.group_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
+						
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_03() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var integer v_sizeResourceTypeList;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+						
+						v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit;
+
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int3, v_createRequest, {valueof(m_createContainerBase)}, v_notifyHandler);//Container
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
+						
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_04() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createGroupBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var integer v_sizeResourceTypeList;
-						var integer i;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						
-						//CSEBase int5, remoteCSE int16, AE int2
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))}
+						v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit;
+
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int9, v_createRequest, {}, v_notifyHandler);//Group
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
 						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
 						
-						v_createRequest.primitiveContent.group_optional.resourceName := omit;
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_05() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createGroupBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var integer v_sizeResourceTypeList;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-							v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int9, v_createRequest, v_requestPrimitivematrix[i],v_notifyHandler);
-							log(v_responsePrimitive);
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.group_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit;
+
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int9, v_createRequest, {valueof(m_createAeAux(omit,omit))}, v_notifyHandler);//Group
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
-					testcase TC_CSE_DMR_CRE_BV_001_03() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_CRE_BV_001_06() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createAcpBase;
 						var ResponsePrimitive v_responsePrimitive;
 						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+						
+						v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit;
 
-						//CSEBase int5, remoteCSE int16, AE int2
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int1, v_createRequest, {}, v_notifyHandler);//AccessControlPolicy
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
 						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
+						
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_07() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var integer v_sizeResourceTypeList;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						
 						v_createRequest.primitiveContent.accessControlPolicy_optional.resourceName := omit;
 
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-							v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int1, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//AccessControlPolicy
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int1, v_createRequest, {valueof(m_createAeAux(omit,omit))}, v_notifyHandler);//AccessControlPolicy
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
-				
-					testcase TC_CSE_DMR_CRE_BV_001_04() runs on CseTester system CseSystem {
+					
+					testcase TC_CSE_DMR_CRE_BV_001_08() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createScheduleBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						
-//						CSEBase int5, remoteCSE int16, AE int2, subscription int23 
-    					v_requestPrimitivematrix := {
-    						{},
-    						{valueof(m_createAeAux(omit,omit))},
-    						{valueof(m_createSubscriptionBase)}
-    					}
-    					v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
+						v_createRequest.primitiveContent.schedule_optional.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, v_createRequest, {}, v_notifyHandler);//Schedule
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.schedule_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
+						
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_09() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createScheduleBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						
 						v_createRequest.primitiveContent.schedule_optional.resourceName := omit;
-
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-							v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Schedule
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, v_createRequest, {valueof(m_createAeAux(omit,omit))}, v_notifyHandler);//Schedule
 						
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.schedule_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.schedule_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
+						
+					}
+				
+					testcase TC_CSE_DMR_CRE_BV_001_10() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createScheduleBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+						
+						v_createRequest.primitiveContent.schedule_optional.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int18, v_createRequest, {valueof(m_createSubscriptionBase)}, v_notifyHandler);//Schedule
+						
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.schedule_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
-					testcase TC_CSE_DMR_CRE_BV_001_05() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_CRE_BV_001_11() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createPollingChannelBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						
-						//remoteCSE int16, AE int2
-						v_requestPrimitivematrix := {
-							{valueof(m_createAeAux(omit,omit))}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
 						
 						v_createRequest.primitiveContent.pollingChannel_optional.resourceName := omit;
 
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-							v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int15, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//PollingChannel
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.pollingChannel_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int15, v_createRequest, {valueof(m_createAeAux(omit,omit))}, v_notifyHandler);//PollingChannel
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.pollingChannel_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
-					testcase TC_CSE_DMR_CRE_BV_001_06() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_CRE_BV_001_12() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						
-						//accessControlPolicy int1, CSEBase int5, remoteCSE int16, AE int2, container int, schedule int, locationPolicy int, delivery int, request int, group int, mgmtCmd int,
-						// node int, m2mServiceSubscriptionProfile int, statsConfig int, statsCollect int, serviceSubscribedAppRule int
-	
-						// mgmtObj int, execInstance int, serviceSubscribedNode int, pollingChannelURI int (doesn't exist in Release2), eventConfig int, 
-    					v_requestPrimitivematrix := {
-    						{},
-    						{valueof(m_createAeAux(omit,omit))},
-    						{valueof(m_createContainerBase)},
-    						{valueof(m_createAcpBase)},
-    						{valueof(m_createScheduleBase)},
-    						{valueof(m_createGroupBase)}
-    						//{m_createLocationPolicy(int1,omit,omit,omit,omit)}
-    						//{m_createServiceSubscribedAppRule()} //TODO set correct parameters
-    					}
-    					v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
+						v_createRequest.primitiveContent.subscription_optional.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, {}, v_notifyHandler);//Subscription
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
+						
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_13() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						
 						v_createRequest.primitiveContent.subscription_optional.resourceName := omit;
-
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Subscription
-    						if(getverdict == pass){
-    							if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){
-    								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-    							}
-    						}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, {valueof(m_createAeAux(omit,omit))}, v_notifyHandler);//Subscription
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
+						
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_14() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+						
+						v_createRequest.primitiveContent.subscription_optional.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, {valueof(m_createContainerBase)}, v_notifyHandler);//Subscription
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
 						}
+						
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_15() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+						
+						v_createRequest.primitiveContent.subscription_optional.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, {valueof(m_createSubscriptionBase)}, v_notifyHandler);//Subscription
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}		
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_16() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+						
+						v_createRequest.primitiveContent.subscription_optional.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, {valueof(m_createScheduleBase)}, v_notifyHandler);//Subscription
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}		
+					}
+					
+					testcase TC_CSE_DMR_CRE_BV_001_17() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+						
+						v_createRequest.primitiveContent.subscription_optional.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int23, v_createRequest, {valueof(m_createGroupBase)}, v_notifyHandler);//Subscription
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.subscription_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}		
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_18() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createNodeBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						 
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))},
-							{valueof(m_createNodeBase)}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
-						
 						v_createRequest.primitiveContent.node_optional.resourceName := omit;
 
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int14, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Node
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.node_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int14, v_createRequest, {}, v_notifyHandler);//Node
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.node_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_19() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createMgmtCmdBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
-						 
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))},
-							{valueof(m_createMgmtCmdBase)}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
 						
 						v_createRequest.primitiveContent.mgmtResource_optional.resourceName := omit;
-
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int14, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Node
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.mgmtResource_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int12, v_createRequest, {}, v_notifyHandler);//Management Command
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.mgmtResource_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_20() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createLocationPolicyBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
-						 
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))},
-							{valueof(m_createLocationPolicyBase)}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
 						
 						v_createRequest.primitiveContent.locationPolicy_optional.resourceName := omit;
-
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int14, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Node
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.locationPolicy_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int10, v_createRequest, {}, v_notifyHandler);//Location Policy
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.locationPolicy_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_21() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createStatsConfigBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
 						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
-						 
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))},
-							{valueof(m_createStatsConfigBase)}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
 						
 						v_createRequest.primitiveContent.statsConfig_optional.resourceName := omit;
-
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int22, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Node
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.statsConfig_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int22, v_createRequest, {}, v_notifyHandler);//Stats Config
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.statsConfig_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
 					}
@@ -1467,92 +1528,56 @@ module OneM2M_Testcases {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createStatsCollectBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						 
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))},
-							{valueof(m_createStatsCollectBase)}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
-						
 						v_createRequest.primitiveContent.statsCollect_optional.resourceName := omit;
-
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int21, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Node
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.statsCollect_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int21, v_createRequest, {}, v_notifyHandler);//Stats Collect
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.statsCollect_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_23() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createM2mServiceSubscriptionProfileBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
-						 
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))},
-							{valueof(m_createM2mServiceSubscriptionProfileBase)}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
 						
 						v_createRequest.primitiveContent.m2mServiceSubscriptionProfile_optional.resourceName := omit;
-
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int11, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Node
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.m2mServiceSubscriptionProfile_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int11, v_createRequest, {}, v_notifyHandler);//Subscription Profile
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.m2mServiceSubscriptionProfile_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
 					testcase TC_CSE_DMR_CRE_BV_001_24() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createServiceSubscribedAppRuleBase;
 						var ResponsePrimitive v_responsePrimitive;
-						var integer v_sizeResourceTypeList;
-						var integer i;
-						var RequestPrimitiveMatrix v_requestPrimitivematrix;
 						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
 						 
-						v_requestPrimitivematrix := {
-							{},
-							{valueof(m_createAeAux(omit,omit))},
-							{valueof(m_createServiceSubscribedAppRuleBase)}
-						}
-						v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix);
-						
 						v_createRequest.primitiveContent.serviceSubscribedAppRule_optional.resourceName := omit;
-
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int19, v_createRequest, v_requestPrimitivematrix[i], v_notifyHandler);//Node
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.serviceSubscribedAppRule_optional.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						v_responsePrimitive := f_CSE_DMR_CRE_BV_001(int19, v_createRequest, {}, v_notifyHandler);//Service Subscribed App
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.serviceSubscribedAppRule_optional.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
 						}
+						
 					}
 					
-    				function f_CSE_DMR_CRE_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in RequestPrimitiveList p_requestPrimitiveList, in CseTester p_notifyHandler) runs on CseTester return ResponsePrimitive {
+    				function f_CSE_DMR_CRE_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitiveList p_requestPrimitiveList := omit, in CseTester p_notifyHandler) runs on CseTester return ResponsePrimitive {
     				
     					// Local variables
     					var MsgIn v_response;
     					var RequestPrimitive v_request;
-						var integer v_sizeResourceTypeList := lengthof(p_requestPrimitiveList);
 						var integer i;
 						var integer v_parentIndex := -1;
     					var integer v_resourceIndex := -1;
@@ -1568,10 +1593,10 @@ module OneM2M_Testcases {
     				
     					// Preamble
     					
-						for (i := 0; i<v_sizeResourceTypeList; i := i+1){
-							if(match(int23, p_requestPrimitiveList[i].resourceType)){
+						if(ispresent(p_requestPrimitiveList)) {
+							if(match(int23, p_requestPrimitiveList[0].resourceType)){
 								v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, "MyAe2", v_poaList), -1); // AE2 is registred
-								p_requestPrimitiveList[i].primitiveContent.subscription_optional.notificationURI := {f_getResourceAddress(v_ae2Index)}; 
+								p_requestPrimitiveList[0].primitiveContent.subscription_optional.notificationURI := {f_getResourceAddress(v_ae2Index)}; 
 								p_notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(v_parentIndex)));
 							}
 							v_parentIndex := f_cse_createResource(p_requestPrimitiveList[i].resourceType, p_requestPrimitiveList[i], v_parentIndex);
@@ -1594,9 +1619,7 @@ module OneM2M_Testcases {
     							tc_ac.stop;
     							setverdict(pass, testcasename() & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully");
 								v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, v_parentIndex);
-								if (v_sizeResourceTypeList == 0){
-										vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_resourceIndex};
-								}
+								vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_resourceIndex};
     						}
     						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
     							tc_ac.stop;
-- 
GitLab