From f73ddb3a341cb2a4f1327d7218db42e982075f46 Mon Sep 17 00:00:00 2001
From: acverdugo <acverdugo@at4wireless.com>
Date: Fri, 28 Jul 2017 14:38:06 +0200
Subject: [PATCH] New DMR Test Cases developed:

TP/oneM2M/CSE/DMR/CRE/001_CIN/CNT
TP/oneM2M/CSE/DMR/CRE/020
TP/oneM2M/CSE/DMR/CRE/021
TP/oneM2M/CSE/DMR/DEL/001_CIN
TP/oneM2M/CSE/DMR/DEL/008
TP/oneM2M/CSE/DMR/DEL/010
TP/oneM2M/CSE/DMR/RET/001_CIN
TP/oneM2M/CSE/DMR/RET/011
TP/oneM2M/CSE/DMR/RET/012
TP/oneM2M/CSE/DMR/RET/017_LCP
TP/oneM2M/CSE/DMR/RET/017_MGC
TP/oneM2M/CSE/DMR/RET/017_NOD
TP/oneM2M/CSE/DMR/RET/017_STCL
TP/oneM2M/CSE/DMR/RET/017_STCG
TP/oneM2M/CSE/DMR/UPD/014_ACP/ET
TP/oneM2M/CSE/DMR/UPD/014_ACP/LBL
TP/oneM2M/CSE/DMR/UPD/014_ACP/PV
TP/oneM2M/CSE/DMR/UPD/014_ACP/PVS
TP/oneM2M/CSE/DMR/UPD/014_CNT/ACPI
TP/oneM2M/CSE/DMR/UPD/014_CNT/ET
TP/oneM2M/CSE/DMR/UPD/014_CNT/LBL
TP/oneM2M/CSE/DMR/UPD/014_CNT/MBS
TP/oneM2M/CSE/DMR/UPD/014_CNT/MIA
TP/oneM2M/CSE/DMR/UPD/014_CNT/MNI
TP/oneM2M/CSE/DMR/UPD/014_CNT/OR
TP/oneM2M/CSE/DMR/UPD/014_SUB/ACPI
TP/oneM2M/CSE/DMR/UPD/014_SUB/BN
TP/oneM2M/CSE/DMR/UPD/014_SUB/ENC
TP/oneM2M/CSE/DMR/UPD/014_SUB/ET
TP/oneM2M/CSE/DMR/UPD/014_SUB/EXC
TP/oneM2M/CSE/DMR/UPD/014_SUB/GPI
TP/oneM2M/CSE/DMR/UPD/014_SUB/LBL
TP/oneM2M/CSE/DMR/UPD/014_SUB/LN
TP/oneM2M/CSE/DMR/UPD/014_SUB/NCT
TP/oneM2M/CSE/DMR/UPD/014_SUB/NEC
TP/oneM2M/CSE/DMR/UPD/014_SUB/NFU
TP/oneM2M/CSE/DMR/UPD/014_SUB/NSP
TP/oneM2M/CSE/DMR/UPD/014_SUB/PN
TP/oneM2M/CSE/DMR/UPD/014_SUB/RL

Some other minor changes/fixes
---
 LibOneM2M/OneM2M_Templates.ttcn      |  199 ++++-
 LibOneM2M/OneM2M_Types.ttcn          |   81 ++
 LibOneM2M/OneM2M_TypesAndValues.ttcn |    2 +
 OneM2M_TestControl.ttcn              |  301 +++----
 OneM2M_Testcases.ttcn                | 1135 ++++++++++++++++++++++++--
 5 files changed, 1492 insertions(+), 226 deletions(-)

diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 631f4fa..0e51a9d 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -670,6 +670,15 @@ module OneM2M_Templates {
 				resourceType := int10014,
 				primitiveContent := {contentInstanceAnnc := mw_contentCreateContentInstanceAnncBase}
 			};  
+			
+			/**
+			 * @desc Base CREATE request primitive for Delivery resource
+			 */
+			/*template (value) RequestPrimitive m_createDeliveryBase modifies m_create := {
+				requestIdentifier := testcasename() & "-m_createDelivery" & f_rnd(1, 1000000),
+				resourceType := int6,
+				primitiveContent := {delivery := m_contentCreateDelivery()}
+			};*/
         	    		
        	
 			/**
@@ -924,7 +933,7 @@ module OneM2M_Templates {
 			template (value) RequestPrimitive m_createStatsConfigBase modifies m_create := {
 				requestIdentifier := testcasename() & "-m_createStatsConfig" & f_rnd(1, 1000000),
 				resourceType := int22,
-				primitiveContent := {statsConfig := m_contentCreateStatConfigBase}
+				primitiveContent := {statsConfig := m_contentCreateStatsConfigBase}
 			};
 			
 			/**
@@ -1242,6 +1251,40 @@ module OneM2M_Templates {
 			e2eSecInfo := omit, 
 			choice := omit
 		};
+		
+		/**
+		 * @desc Base primitiveContent for CREATE operation for PollingChannel resource
+		 * @param p_accessControlPolicyIds ACP IDs for the PollingChannel
+		 * @param p_name Resource name
+		 */
+		template (value) Delivery_optional m_contentCreateDelivery (in template (omit) XSD.String p_name := c_defaultDeliveryResourceName, 
+																	in template (omit) AcpType p_accessControlPolicyIds,
+																	in template (value) XSD.ID p_source,
+																	in template (value) XSD.ID p_target,
+																	in template (value) Timestamp p_lifespan,
+																	in template (value) EventCat p_eventCat,
+																	in template (value) DeliveryMetaData p_deliveryMetaData) := {
+			
+			resourceName := p_name,//O
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			labels := omit,//O
+			accessControlPolicyIDs := p_accessControlPolicyIds,//O
+			expirationTime := omit,//O
+			dynamicAuthorizationConsultationIDs := omit,//O
+			stateTag := omit,//NP
+			source := p_source,//M
+			target := p_target,//M
+			lifespan := p_lifespan,//M
+			eventCat := p_eventCat,//M
+			deliveryMetaData := p_deliveryMetaData,//M
+			aggregatedRequest := omit,//O
+			choice := omit//NP
+			
+		};    
     	
     	/**
     	 * @desc Base primitiveContent for CREATE operation for Group resource
@@ -1420,7 +1463,7 @@ module OneM2M_Templates {
             lastModifiedTime := omit,//NP
             labels := omit,//O
             expirationTime := omit//O
-    	};    	
+    	};   	   	
     	
     	/**
     	 * @desc Base primitiveContent for CREATE operation for Schedule resource
@@ -1476,6 +1519,25 @@ module OneM2M_Templates {
 			allowedRole_IDs := omit,//O
 			choice := omit //O
 		}
+		
+		/**
+		 * @desc Base primitiveContent for CREATE operation for StatsConfig resource
+		 * @param p_name Resource name
+		 */
+		template (value) StatsConfig_optional m_contentCreateStatsConfig (in template (omit) XSD.String p_name := c_defaultStatsConfigResourceName) := {
+			resourceName := p_name,//O
+			resourceType := omit,//NP
+			resourceID := omit,//NP
+			parentID := omit,//NP
+			creationTime := omit,//NP
+			lastModifiedTime := omit,//NP
+			labels := omit,//O
+			accessControlPolicyIDs := omit,//O
+			expirationTime := omit,//M
+			dynamicAuthorizationConsultationIDs := omit,//O
+			creator := omit,//O
+			choice := omit//O
+		};  
     	
 
     	/**
@@ -1817,7 +1879,7 @@ module OneM2M_Templates {
 			 * @desc Base primitiveContent for CREATE operation for StatConfig resource
 			 * @param p_primitiveConten t Content for the StatConfig
 			 */
-		template StatsConfig_optional m_contentCreateStatConfigBase := {
+		template StatsConfig_optional m_contentCreateStatsConfigBase := {
 			resourceName 				:= c_defaultStatsConfigResourceName, //O
 			resourceType				:= omit, //NP
 			resourceID					:= omit, //NP
@@ -2272,6 +2334,29 @@ module OneM2M_Templates {
 			choice := omit//O
 		}
 		
+		template LocationPolicy_optional m_contentLocationPolicy_allOmit := {
+			resourceName := omit,//M
+			resourceType := omit,//M
+			resourceID := omit,//M
+			parentID := omit,//M
+			creationTime := omit,//M
+			lastModifiedTime := omit,//M
+			labels := omit,//O
+			accessControlPolicyIDs := omit,//O
+			expirationTime := omit,//M
+			dynamicAuthorizationConsultationIDs := omit,//O
+			announceTo := omit,//O
+			announcedAttribute := omit,//O
+			locationSource := omit,//M
+			locationUpdatePeriod := omit,//O
+			locationTargetID := omit,//O
+			locationServer := omit,//O
+			locationContainerID := omit,//O
+			locationContainerName := omit,//O
+			locationStatus := omit,//M
+			choice := omit//O
+		}
+		
 		template AccessControlPolicy_optional mw_contentAcp_rc1 modifies mw_contentAcpBase := {
 			choice := omit	//O
 		}
@@ -2446,6 +2531,29 @@ module OneM2M_Templates {
 		template Group_optional mw_contentGroup_rc8 modifies m_contentGroup_allOmit := {
 			choice := {childResource_list := ?}	//O
 		}
+		
+		template MgmtCmd_optional m_contentMgmtCmd_allOmit := {
+			resourceName := omit,//M
+			resourceType := omit,//M
+			resourceID := omit,//M
+			parentID := omit,//M
+			creationTime := omit,//M
+			lastModifiedTime := omit,//M
+			labels := omit,//O
+			accessControlPolicyIDs := omit,//O
+			expirationTime := omit,//M
+			dynamicAuthorizationConsultationIDs := omit,//O
+			description := omit,//O
+			cmdType := omit,//M
+			execReqArgs := omit,//O
+			execEnable := omit,//M
+			execTarget := omit,//M
+			execMode := omit,//O
+			execFrequency := omit,//O
+			execDelay := omit,//O
+			execNumber := omit,//O
+			choice := omit//M
+		}
     	
 		template PollingChannel_optional mw_contentPollingChannelBase := {
 			resourceName := ?,//M
@@ -2645,6 +2753,43 @@ module OneM2M_Templates {
 		template Schedule_optional mw_contentSchedule_rc8 modifies m_contentSchedule_allOmit := {
 			choice := {childResource_list := ?}	//O
 		}
+		
+		template StatsCollect_optional m_contentStatsCollect_allOmit := {
+			resourceName := omit,//M
+			resourceType := omit,//M
+			resourceID := omit,//M
+			parentID := omit,//M
+			creationTime := omit,//M
+			lastModifiedTime := omit,//M
+			labels := omit,//O
+			accessControlPolicyIDs := omit,//O
+			expirationTime := omit,//M
+			dynamicAuthorizationConsultationIDs := omit,//O
+			creator := omit,//O
+			statsCollectID := omit,//M
+			collectingEntityID := omit,//M
+			collectedEntityID := omit,//M
+			statsRuleStatus := omit,//M
+			statModel := omit,//M
+			collectPeriod := omit,//O
+			eventID := omit,//O
+			choice := omit//M
+		}
+		
+		template StatsConfig_optional m_contentStatsConfig_allOmit := {
+			resourceName := omit,//M
+			resourceType := omit,//M
+			resourceID := omit,//M
+			parentID := omit,//M
+			creationTime := omit,//M
+			lastModifiedTime := omit,//M
+			labels := omit,//O
+			accessControlPolicyIDs := omit,//O
+			expirationTime := omit,//M
+			dynamicAuthorizationConsultationIDs := omit,//O
+			creator := omit,//O
+			choice := omit//M
+		}
     	
 		template Subscription_optional mw_contentSubscriptionBase := {
 			resourceName := ?,//M
@@ -2809,6 +2954,10 @@ module OneM2M_Templates {
 			
 		};
 		
+		template ContentInstance_optional mw_contentContentInstance_rc1 modifies mw_contentContentInstanceBase := {
+			choice := omit	//O
+		}
+		
 		template Container_optional mw_contentContainerBase := {
 			resourceName := ?,//M
 			resourceType := ?,//M
@@ -2887,6 +3036,29 @@ module OneM2M_Templates {
 			choice := omit//O
 		}
 		
+		template Delivery_optional m_contentDelivery_allOmit := {
+	
+			resourceName := omit,//M
+			resourceType := omit,//M
+			resourceID := omit,//M
+			parentID := omit,//M
+			creationTime := omit,//M
+			lastModifiedTime := omit,//M
+			labels := omit,//O
+			accessControlPolicyIDs := omit,//O
+			expirationTime := omit,//M
+			dynamicAuthorizationConsultationIDs := omit,//O
+			stateTag := omit,//M
+			source := omit,//M
+			target := omit,//M
+			lifespan := omit,//M
+			eventCat := omit,//M
+			deliveryMetaData := omit,//M
+			aggregatedRequest := omit,//M
+			choice := omit//O
+	
+		};    
+		
 		template Container_optional mw_contentContainer_rc1 modifies mw_contentContainerBase := {
 			choice := omit	//O
 		}
@@ -2985,6 +3157,27 @@ module OneM2M_Templates {
 			}
 		};
 		
+		template Node_optional m_contentNode_allOmit := {
+			
+			resourceName := omit,
+			resourceType := omit,
+			resourceID := omit,
+			parentID := omit,
+			creationTime := omit,
+			lastModifiedTime := omit,
+			labels := omit,
+			accessControlPolicyIDs := omit,
+			expirationTime := omit,
+			dynamicAuthorizationConsultationIDs := omit,
+			announceTo := omit,
+			announcedAttribute := omit,
+			nodeID := omit,
+			hostedCSELink := omit,
+			mgmtClientAddress := omit,
+			choice := omit			
+			
+		};
+		
 		template CSEBase_optional mw_contentCSEBaseBase := {
 			resourceName := ?,//M
 			resourceType := ?,//M
diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn
index 47460e5..e9ae4bd 100644
--- a/LibOneM2M/OneM2M_Types.ttcn
+++ b/LibOneM2M/OneM2M_Types.ttcn
@@ -1631,6 +1631,7 @@ type union PrimitiveContent {
 	ContentInstanceAnnc_optional contentInstanceAnnc,
 	Container_optional container,
 	ContainerAnnc_optional containerAnnc,
+	Delivery_optional delivery,
 	FlexContainerResource_optional flexContainer,
 	CSEBase_optional cSEBase,
 	Group_optional group_,
@@ -1638,6 +1639,7 @@ type union PrimitiveContent {
 	LocationPolicy_optional locationPolicy,
 	LocationPolicyAnnc_optional locationPolicyAnnc,
 	MgmtResource_optional mgmtResource,//MgmtResource
+	MgmtCmd_optional mgmtCmd,
 	AnnouncedMgmtResource_optional announcedMgmtResource,//AnnouncedMgmtResource
 	Node_optional node,
 	NodeAnnc_optional nodeAnnc,
@@ -4757,6 +4759,48 @@ with {
   variant (choice.choice_list[-]) "untagged";
 };
 
+type record MgmtCmd_optional
+{
+	ResourceName resourceName optional,
+	ResourceType resourceType optional,
+	XSD.ID resourceID optional,
+	NhURI parentID optional,
+	Timestamp creationTime optional,
+	Timestamp lastModifiedTime optional,
+	Labels labels optional,
+	AcpType accessControlPolicyIDs optional,
+	Timestamp expirationTime optional,
+	ListOfURIs dynamicAuthorizationConsultationIDs optional,
+	XSD.String description optional,
+	CmdType cmdType optional,
+	ExecReqArgsListType execReqArgs optional,
+	XSD.Boolean execEnable optional,
+	NodeID execTarget optional,
+	ExecModeType execMode optional,
+	XSD.Duration execFrequency optional,
+	XSD.Duration execDelay optional,
+	XSD.NonNegativeInteger execNumber optional,
+	union {
+		record length(1 .. infinity) of ChildResourceRef childResource_list,
+		record length(1 .. infinity) of union {
+			ExecInstance execInstance,
+			Subscription subscription
+		} choice_list
+	} choice optional
+}
+with {
+  variant "name as uncapitalized";
+  variant "element";
+  variant (resourceName) "attribute";
+  //variant (execEnable) "text 'true' as '1'";
+  //variant (execEnable) "text 'false' as '0'";
+  variant (choice) "untagged";
+  variant (choice.childResource_list) "untagged";
+  variant (choice.childResource_list[-]) "name as 'childResource'";
+  variant (choice.choice_list) "untagged";
+  variant (choice.choice_list[-]) "untagged";
+};
+
 
 type record Node
 {
@@ -7009,6 +7053,43 @@ with {
   variant (choice.choice_list[-].group_) "name as 'group'";
 };
 
+type record Delivery_optional
+{
+	ResourceName resourceName optional,
+	ResourceType resourceType optional,
+	XSD.ID resourceID optional,
+	NhURI parentID optional,
+	Timestamp creationTime optional,
+	Timestamp lastModifiedTime optional,
+	Labels labels optional,
+	AcpType accessControlPolicyIDs optional,
+	Timestamp expirationTime optional,
+	ListOfURIs dynamicAuthorizationConsultationIDs optional,
+	XSD.NonNegativeInteger stateTag optional,
+	XSD.ID source optional,
+	XSD.ID target optional,
+	Timestamp lifespan optional,
+	EventCat eventCat optional,
+	DeliveryMetaData deliveryMetaData optional,
+	AggregatedRequest aggregatedRequest optional,
+	union {
+		record length(1 .. infinity) of ChildResourceRef childResource_list,
+		record length(1 .. infinity) of union {
+			Subscription subscription
+		} choice_list
+	} choice optional
+}
+with {
+  variant "name as uncapitalized";
+  variant "element";
+  variant (resourceName) "attribute";
+  variant (choice) "untagged";
+  variant (choice.childResource_list) "untagged";
+  variant (choice.childResource_list[-]) "name as 'childResource'";
+  variant (choice.choice_list) "untagged";
+  variant (choice.choice_list[-]) "untagged";
+};
+
 type record GenericInterworkingOperationInstance_optional
 {
 	ResourceName resourceName optional,
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index a0e8093..33f7119 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -25,6 +25,7 @@ module OneM2M_TypesAndValues {
 	const XSD.String c_defaultSubscriptionResourceName := "MySubscriptionResource";
 	const XSD.String c_defaultContentInstanceResourceName := "MyContentInstanceResource";
 	const XSD.String c_defaultContainerResourceName := "MyContainerResource";
+	const XSD.String c_defaultDeliveryResourceName := "MyDeliveryResource";
 	const XSD.String c_defaultRemoteCSEResourceName := "MyRemoteCSEResource";
 	const XSD.String c_defaultMgmtObjResourceName := "MyMgmtObjResource";
 	const XSD.String c_defaultMgmtCmdResourceName := "MyMgmtCmdResource";
@@ -32,6 +33,7 @@ module OneM2M_TypesAndValues {
 	const XSD.String c_defaultLocationPolicyResourceName := "MyLocationPolicyResource";
 	const XSD.String c_defaultNodeResourceName := "MyNodeResource";
 	const XSD.String c_defaultNodeID := "MyNodeId";
+	const XSD.String c_defaultRequestResourceName := "MyRequestResource";
 	const XSD.String c_defaultStatsConfigResourceName := "MyStatsConfigResource";
 	const XSD.String c_defaultStatsCollectResourceName := "MyStatsCollectResource";
 	const XSD.String c_defaultm2mServiceSubscriptionProfileResourceName := "Mym2mServiceSubscriptionProfileResource";
diff --git a/OneM2M_TestControl.ttcn b/OneM2M_TestControl.ttcn
index 48d5866..244cf65 100644
--- a/OneM2M_TestControl.ttcn
+++ b/OneM2M_TestControl.ttcn
@@ -77,146 +77,167 @@ module OneM2M_TestControl {
 		execute(TC_CSE_DMR_BV_005_04());
 		execute(TC_CSE_DMR_BV_005_05());
 		execute(TC_CSE_DMR_BV_005_06());
-		execute(TC_CSE_DMR_CRE_BV_001_01());
-		execute(TC_CSE_DMR_CRE_BV_001_02());
-		execute(TC_CSE_DMR_CRE_BV_001_03());
-		execute(TC_CSE_DMR_CRE_BV_001_04());
-		execute(TC_CSE_DMR_CRE_BV_001_05());
-		execute(TC_CSE_DMR_CRE_BV_001_06());
-		execute(TC_CSE_DMR_CRE_BV_002_01());
-		execute(TC_CSE_DMR_CRE_BV_002_02());
-		execute(TC_CSE_DMR_CRE_BV_002_03());
-		execute(TC_CSE_DMR_CRE_BV_002_04());
-		execute(TC_CSE_DMR_CRE_BV_002_05());
-		execute(TC_CSE_DMR_CRE_BV_002_06());
-		execute(TC_CSE_DMR_CRE_BV_003_01());
-		execute(TC_CSE_DMR_CRE_BV_003_02());
-		execute(TC_CSE_DMR_CRE_BV_003_03());
-		execute(TC_CSE_DMR_CRE_BV_003_04());
-		execute(TC_CSE_DMR_CRE_BV_003_05());
-		execute(TC_CSE_DMR_CRE_BV_003_06());
-		execute(TC_CSE_DMR_CRE_BV_004_01());
-		execute(TC_CSE_DMR_CRE_BV_004_02());
-		execute(TC_CSE_DMR_CRE_BV_004_03());
-		execute(TC_CSE_DMR_CRE_BV_004_04());
-		execute(TC_CSE_DMR_CRE_BV_004_05());
-		execute(TC_CSE_DMR_CRE_BV_004_06());
-		execute(TC_CSE_DMR_RET_BV_001_01());
-		execute(TC_CSE_DMR_RET_BV_001_02());
-		execute(TC_CSE_DMR_RET_BV_001_03());
-		execute(TC_CSE_DMR_RET_BV_001_04());
-		execute(TC_CSE_DMR_RET_BV_001_05());
-		execute(TC_CSE_DMR_RET_BV_001_06());
-		execute(TC_CSE_DMR_RET_BO_002());
-		execute(TC_CSE_DMR_RET_BO_003_01());
-		execute(TC_CSE_DMR_RET_BO_003_02());
-		execute(TC_CSE_DMR_RET_BO_003_03());
-		execute(TC_CSE_DMR_RET_BO_003_04());
-		execute(TC_CSE_DMR_RET_BO_003_05());
-		execute(TC_CSE_DMR_RET_BO_003_06());
-		execute(TC_CSE_DMR_RET_BV_004_01());
-		execute(TC_CSE_DMR_RET_BV_004_02());
-		execute(TC_CSE_DMR_RET_BV_004_03());
-		execute(TC_CSE_DMR_RET_BV_004_04());
-		execute(TC_CSE_DMR_RET_BV_004_05());
-		execute(TC_CSE_DMR_RET_BV_004_06());
-		execute(TC_CSE_DMR_RET_BV_005_01());
-		execute(TC_CSE_DMR_RET_BV_005_02());
-		execute(TC_CSE_DMR_RET_BV_005_03());
-		execute(TC_CSE_DMR_RET_BV_005_04());
-		execute(TC_CSE_DMR_RET_BV_005_05());
-		execute(TC_CSE_DMR_RET_BV_005_06());
-		execute(TC_CSE_DMR_RET_BV_006_01());
-		execute(TC_CSE_DMR_RET_BV_006_02());
-		execute(TC_CSE_DMR_RET_BV_006_03());
-		execute(TC_CSE_DMR_RET_BV_006_04());
-		execute(TC_CSE_DMR_RET_BV_006_05());
-		execute(TC_CSE_DMR_RET_BV_006_06());
-		execute(TC_CSE_DMR_RET_BO_007_01());
-		execute(TC_CSE_DMR_RET_BO_007_02());
-		execute(TC_CSE_DMR_RET_BO_007_03());
-		execute(TC_CSE_DMR_RET_BO_007_04());
-		execute(TC_CSE_DMR_RET_BO_007_05());
-		execute(TC_CSE_DMR_RET_BO_007_06());
-		execute(TC_CSE_DMR_RET_BO_008_01());
-		execute(TC_CSE_DMR_RET_BO_008_02());
-		execute(TC_CSE_DMR_RET_BO_008_03());
-		execute(TC_CSE_DMR_RET_BO_008_04());
-		execute(TC_CSE_DMR_RET_BO_008_05());
-		execute(TC_CSE_DMR_RET_BO_008_06());
-		execute(TC_CSE_DMR_UPD_BV_001_01());
-		execute(TC_CSE_DMR_UPD_BV_001_02());
-		execute(TC_CSE_DMR_UPD_BV_001_03());
-		execute(TC_CSE_DMR_UPD_BV_001_04());
-		execute(TC_CSE_DMR_UPD_BV_001_05());
-		execute(TC_CSE_DMR_UPD_BV_001_06());
-		execute(TC_CSE_DMR_UPD_BV_002_01());
-		execute(TC_CSE_DMR_UPD_BV_002_02());
-		execute(TC_CSE_DMR_UPD_BV_002_03());
-		execute(TC_CSE_DMR_UPD_BV_002_04());
-		execute(TC_CSE_DMR_UPD_BV_002_05());
-		execute(TC_CSE_DMR_UPD_BV_002_06());
-		execute(TC_CSE_DMR_UPD_BV_003_01());
-		execute(TC_CSE_DMR_UPD_BV_003_02());
-		execute(TC_CSE_DMR_UPD_BV_003_03());
-		execute(TC_CSE_DMR_UPD_BV_003_04());
-		execute(TC_CSE_DMR_UPD_BV_003_05());
-		execute(TC_CSE_DMR_UPD_BV_003_06());
-		execute(TC_CSE_DMR_UPD_BV_004_01());
-		execute(TC_CSE_DMR_UPD_BV_004_02());
-		execute(TC_CSE_DMR_UPD_BV_004_03());
-		execute(TC_CSE_DMR_UPD_BV_004_04());
-		execute(TC_CSE_DMR_UPD_BV_004_05());
-		execute(TC_CSE_DMR_UPD_BV_004_06());
-		execute(TC_CSE_DMR_UPD_BI_005_01());
-		execute(TC_CSE_DMR_UPD_BI_005_02());
-		execute(TC_CSE_DMR_UPD_BI_005_03());
-		execute(TC_CSE_DMR_UPD_BI_005_04());
-		execute(TC_CSE_DMR_UPD_BI_005_05());
-		execute(TC_CSE_DMR_UPD_BI_005_06());
-		execute(TC_CSE_DMR_UPD_BO_006_01());
-		execute(TC_CSE_DMR_UPD_BO_006_02());
-		execute(TC_CSE_DMR_UPD_BO_006_03());
-		execute(TC_CSE_DMR_UPD_BO_006_04());
-		execute(TC_CSE_DMR_UPD_BO_006_05());
-		execute(TC_CSE_DMR_UPD_BO_006_06());
-		execute(TC_CSE_DMR_UPD_BO_007_01());
-		execute(TC_CSE_DMR_UPD_BO_007_02());
-		execute(TC_CSE_DMR_UPD_BO_007_03());
-		execute(TC_CSE_DMR_UPD_BO_007_04());
-		execute(TC_CSE_DMR_UPD_BO_007_05());
-		execute(TC_CSE_DMR_UPD_BO_007_06());
-		execute(TC_CSE_DMR_UPD_BO_008_01());
-		execute(TC_CSE_DMR_UPD_BO_008_02());
-		execute(TC_CSE_DMR_UPD_BO_008_03());
-		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_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());
-		execute(TC_CSE_DMR_DEL_BV_001_04());
-		execute(TC_CSE_DMR_DEL_BV_001_05());
-		execute(TC_CSE_DMR_DEL_BV_001_06());
-		execute(TC_CSE_DMR_DEL_BV_002_01());
-		execute(TC_CSE_DMR_DEL_BV_002_02());
-		execute(TC_CSE_DMR_DEL_BV_002_03());
-		execute(TC_CSE_DMR_DEL_BV_002_04());
-		execute(TC_CSE_DMR_DEL_BV_002_05());
-		execute(TC_CSE_DMR_DEL_BV_002_06());
-		execute(TC_CSE_DMR_DEL_BV_003_01());
-		execute(TC_CSE_DMR_DEL_BV_004_01());
-		execute(TC_CSE_DMR_DEL_BV_004_02());
-		execute(TC_CSE_DMR_DEL_BV_004_03());
-		execute(TC_CSE_DMR_DEL_BV_004_04());
-		execute(TC_CSE_DMR_DEL_BV_004_05());
-		execute(TC_CSE_DMR_DEL_BV_004_06());
-		execute(TC_CSE_DMR_DEL_BV_005());
-		execute(TC_CSE_DMR_DEL_BV_007());
-		execute(TC_CSE_DMR_DEL_BO_008());
-		execute(TC_CSE_DMR_DEL_BV_009());
-		execute(TC_CSE_DMR_DEL_BO_010());
+		execute(TC_CSE_DMR_CRE_001_CNT_CB());
+		execute(TC_CSE_DMR_CRE_001_CNT_AE());
+		execute(TC_CSE_DMR_CRE_001_CNT_CNT());
+		execute(TC_CSE_DMR_CRE_001_GRP_CB());
+		execute(TC_CSE_DMR_CRE_001_GRP_AE());
+		execute(TC_CSE_DMR_CRE_001_ACP_CB());
+		execute(TC_CSE_DMR_CRE_001_ACP_AE());
+		execute(TC_CSE_DMR_CRE_001_SCH_CB());
+		execute(TC_CSE_DMR_CRE_001_SCH_AE());
+		execute(TC_CSE_DMR_CRE_001_SCH_SUB());
+		execute(TC_CSE_DMR_CRE_001_PCH_AE());
+		execute(TC_CSE_DMR_CRE_001_SUB_CB());
+		execute(TC_CSE_DMR_CRE_001_SUB_AE());
+		execute(TC_CSE_DMR_CRE_001_SUB_CNT());
+		execute(TC_CSE_DMR_CRE_001_SUB_ACP());
+		execute(TC_CSE_DMR_CRE_001_SUB_SCH());
+		execute(TC_CSE_DMR_CRE_001_SUB_GRP());
+		execute(TC_CSE_DMR_CRE_001_NOD_CB());
+		execute(TC_CSE_DMR_CRE_001_MGC_CB());
+		execute(TC_CSE_DMR_CRE_001_LCP_CB());
+		execute(TC_CSE_DMR_CRE_001_STCG_CB());
+		execute(TC_CSE_DMR_CRE_001_STCL_CB());
+		execute(TC_CSE_DMR_CRE_001_MSSP_CB());
+		execute(TC_CSE_DMR_CRE_001_ASAR_CB());
+		execute(TC_CSE_DMR_CRE_001_CIN_CNT());
+		execute(TC_CSE_DMR_CRE_002_CNT());
+		execute(TC_CSE_DMR_CRE_002_GRP());
+		execute(TC_CSE_DMR_CRE_002_ACP());
+		execute(TC_CSE_DMR_CRE_002_SCH());
+		execute(TC_CSE_DMR_CRE_002_PCH());
+		execute(TC_CSE_DMR_CRE_002_SUB());
+		execute(TC_CSE_DMR_CRE_003_CNT());
+		execute(TC_CSE_DMR_CRE_003_GRP());
+		execute(TC_CSE_DMR_CRE_003_ACP());
+		execute(TC_CSE_DMR_CRE_003_SCH());
+		execute(TC_CSE_DMR_CRE_003_PCH());
+		execute(TC_CSE_DMR_CRE_003_SUB());
+		execute(TC_CSE_DMR_CRE_004_CNT());
+		execute(TC_CSE_DMR_CRE_004_GRP());
+		execute(TC_CSE_DMR_CRE_004_ACP());
+		execute(TC_CSE_DMR_CRE_004_SCH());
+		execute(TC_CSE_DMR_CRE_004_PCH());
+		execute(TC_CSE_DMR_CRE_004_SUB());
+		execute(TC_CSE_DMR_RET_001_CNT());
+		execute(TC_CSE_DMR_RET_001_GRP());
+		execute(TC_CSE_DMR_RET_001_ACP());
+		execute(TC_CSE_DMR_RET_001_SCH());
+		execute(TC_CSE_DMR_RET_001_PCH());
+		execute(TC_CSE_DMR_RET_001_SUB());
+		execute(TC_CSE_DMR_RET_001_CIN());
+		execute(TC_CSE_DMR_RET_002());
+		execute(TC_CSE_DMR_RET_003_CNT());
+		execute(TC_CSE_DMR_RET_003_GRP());
+		execute(TC_CSE_DMR_RET_003_ACP());
+		execute(TC_CSE_DMR_RET_003_SCH());
+		execute(TC_CSE_DMR_RET_003_PCH());
+		execute(TC_CSE_DMR_RET_003_SUB());
+		execute(TC_CSE_DMR_RET_004_CNT());
+		execute(TC_CSE_DMR_RET_004_GRP());
+		execute(TC_CSE_DMR_RET_004_ACP());
+		execute(TC_CSE_DMR_RET_004_SCH());
+		execute(TC_CSE_DMR_RET_004_PCH());
+		execute(TC_CSE_DMR_RET_004_SUB());
+		execute(TC_CSE_DMR_RET_005_CNT());
+		execute(TC_CSE_DMR_RET_005_GRP());
+		execute(TC_CSE_DMR_RET_005_ACP());
+		execute(TC_CSE_DMR_RET_005_SCH());
+		execute(TC_CSE_DMR_RET_005_PCH());
+		execute(TC_CSE_DMR_RET_005_SUB());
+		execute(TC_CSE_DMR_RET_006_CNT());
+		execute(TC_CSE_DMR_RET_006_GRP());
+		execute(TC_CSE_DMR_RET_006_ACP());
+		execute(TC_CSE_DMR_RET_006_SCH());
+		execute(TC_CSE_DMR_RET_006_PCH());
+		execute(TC_CSE_DMR_RET_006_SUB());
+		execute(TC_CSE_DMR_RET_007_CNT_LBL());
+		execute(TC_CSE_DMR_RET_007_GRP_LBL());
+		execute(TC_CSE_DMR_RET_007_ACP_LBL());
+		execute(TC_CSE_DMR_RET_007_SCH_LBL());
+		execute(TC_CSE_DMR_RET_007_PCH_LBL());
+		execute(TC_CSE_DMR_RET_007_SUB_LBL());
+		execute(TC_CSE_DMR_RET_008_CNT_AT());
+		execute(TC_CSE_DMR_RET_008_GRP_AT());
+		execute(TC_CSE_DMR_RET_008_ACP_AT());
+		execute(TC_CSE_DMR_RET_008_SCH_AT());
+		execute(TC_CSE_DMR_RET_008_PCH_AT());
+		execute(TC_CSE_DMR_RET_008_SUB_AT());
+		execute(TC_CSE_DMR_UPD_001_CNT_LBL());
+		execute(TC_CSE_DMR_UPD_001_GRP_LBL());
+		execute(TC_CSE_DMR_UPD_001_ACP_LBL());
+		execute(TC_CSE_DMR_UPD_001_SCH_LBL());
+		execute(TC_CSE_DMR_UPD_001_PCH_LBL());
+		execute(TC_CSE_DMR_UPD_001_SUB_LBL());
+		execute(TC_CSE_DMR_UPD_002_CNT_LBL());
+		execute(TC_CSE_DMR_UPD_002_GRP_LBL());
+		execute(TC_CSE_DMR_UPD_002_ACP_LBL());
+		execute(TC_CSE_DMR_UPD_002_SCH_LBL());
+		execute(TC_CSE_DMR_UPD_002_PCH_LBL());
+		execute(TC_CSE_DMR_UPD_002_SUB_LBL());
+		execute(TC_CSE_DMR_UPD_003_CNT_LBL());
+		execute(TC_CSE_DMR_UPD_003_GRP_LBL());
+		execute(TC_CSE_DMR_UPD_003_ACP_LBL());
+		execute(TC_CSE_DMR_UPD_003_SCH_LBL());
+		execute(TC_CSE_DMR_UPD_003_PCH_LBL());
+		execute(TC_CSE_DMR_UPD_003_SUB_LBL());
+		execute(TC_CSE_DMR_UPD_004_CNT_ET_MNI_LBL());
+		execute(TC_CSE_DMR_UPD_004_GRP_ET_GN_LBL());
+		execute(TC_CSE_DMR_UPD_004_ACP_PV_AT_LBL());
+		execute(TC_CSE_DMR_UPD_004_SCH_SE_AT_LBL());
+		execute(TC_CSE_DMR_UPD_004_PCH_LBL_ACP_LBL());
+		execute(TC_CSE_DMR_UPD_004_SUB_ET_LBL_EXC());
+		execute(TC_CSE_DMR_UPD_005_CNT_EXC());
+		execute(TC_CSE_DMR_UPD_005_GRP_EXC());
+		execute(TC_CSE_DMR_UPD_005_ACP_EXC());
+		execute(TC_CSE_DMR_UPD_005_SCH_EXCLBL());
+		execute(TC_CSE_DMR_UPD_005_PCH_EXC());
+		execute(TC_CSE_DMR_UPD_005_SUB_LBLMNI());
+		execute(TC_CSE_DMR_UPD_006_CNT_LBL());
+		execute(TC_CSE_DMR_UPD_006_GRP_LBL());
+		execute(TC_CSE_DMR_UPD_006_ACP_LBL());
+		execute(TC_CSE_DMR_UPD_006_SCH_LBL());
+		execute(TC_CSE_DMR_UPD_006_PCH_LBL());
+		execute(TC_CSE_DMR_UPD_006_SUB_LBL());
+		execute(TC_CSE_DMR_UPD_007_CNT_CT());
+		execute(TC_CSE_DMR_UPD_007_GRP_CT());
+		execute(TC_CSE_DMR_UPD_007_ACP_CT());
+		execute(TC_CSE_DMR_UPD_007_SCH_CT());
+		execute(TC_CSE_DMR_UPD_007_PCH_CT());
+		execute(TC_CSE_DMR_UPD_007_SUB_CT());
+		execute(TC_CSE_DMR_UPD_008_CNT_ET());
+		execute(TC_CSE_DMR_UPD_008_GRP_ET());
+		execute(TC_CSE_DMR_UPD_008_ACP_ET());
+		execute(TC_CSE_DMR_UPD_008_SCH_ET());
+		execute(TC_CSE_DMR_UPD_008_PCH_ET());
+		execute(TC_CSE_DMR_UPD_008_SUB_ET());
+		execute(TC_CSE_DMR_UPD_010());
+		execute(TC_CSE_DMR_DEL_001_CNT());
+		execute(TC_CSE_DMR_DEL_001_GRP());
+		execute(TC_CSE_DMR_DEL_001_ACP());
+		execute(TC_CSE_DMR_DEL_001_SCH());
+		execute(TC_CSE_DMR_DEL_001_PCH());
+		execute(TC_CSE_DMR_DEL_001_SUB());
+		execute(TC_CSE_DMR_DEL_001_CIN());
+		execute(TC_CSE_DMR_DEL_002_CNT());
+		execute(TC_CSE_DMR_DEL_002_GRP());
+		execute(TC_CSE_DMR_DEL_002_ACP());
+		execute(TC_CSE_DMR_DEL_002_SCH());
+		execute(TC_CSE_DMR_DEL_002_PCH());
+		execute(TC_CSE_DMR_DEL_002_SUB());
+		execute(TC_CSE_DMR_DEL_003());
+		execute(TC_CSE_DMR_DEL_004_CNT());
+		execute(TC_CSE_DMR_DEL_004_GRP());
+		execute(TC_CSE_DMR_DEL_004_ACP());
+		execute(TC_CSE_DMR_DEL_004_SCH());
+		execute(TC_CSE_DMR_DEL_004_PCH());
+		execute(TC_CSE_DMR_DEL_004_SUB());
+		execute(TC_CSE_DMR_DEL_005());
+		execute(TC_CSE_DMR_DEL_007());
+		execute(TC_CSE_DMR_DEL_008());
+		execute(TC_CSE_DMR_DEL_009());
+		execute(TC_CSE_DMR_DEL_010());
 		execute(TC_CSE_LOC_BV_001());
 		execute(TC_CSE_LOC_BV_002());
 		execute(TC_CSE_LOC_BO_003());
diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn
index e078073..c2b39c9 100644
--- a/OneM2M_Testcases.ttcn
+++ b/OneM2M_Testcases.ttcn
@@ -1779,7 +1779,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.container.resourceName)){
 								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-						}
+							}
 						}
 						
 					}
@@ -1792,8 +1792,8 @@ module OneM2M_Testcases {
 						
 						v_createRequest.primitiveContent.group_.resourceName := omit;
 						v_responsePrimitive := f_CSE_DMR_CRE_001(int3, v_createRequest, m_createAeAux(omit,omit),v_notifyHandler);//Container
-							log(v_responsePrimitive);
-							if(getverdict == pass){
+						log(v_responsePrimitive);
+						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.group_.resourceName)){
 									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 								}
@@ -1813,7 +1813,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.resourceName)){
 								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-					}
+							}
 						}
 
 					}
@@ -1830,7 +1830,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.resourceName)){
 								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-						}
+							}
 						}
 						
 					}
@@ -1844,13 +1844,13 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.accessControlPolicy.resourceName := omit;
 
 						v_responsePrimitive := f_CSE_DMR_CRE_001(int9, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//Group
-							if(getverdict == pass){
+						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.resourceName)){
 									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
 							}
-						
 						}
+						
+					}
 					
 					testcase TC_CSE_DMR_CRE_001_ACP_CB() runs on CseTester system CseSystem {
 						// Local variables
@@ -1864,7 +1864,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.resourceName)){
 								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-						}
+							}
 						}
 						
 					}
@@ -1878,13 +1878,13 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.accessControlPolicy.resourceName := omit;
 
 						v_responsePrimitive := f_CSE_DMR_CRE_001(int1, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//AccessControlPolicy
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
-						
 						}
+						
+					}
 				
 					testcase TC_CSE_DMR_CRE_001_SCH_CB() runs on CseTester system CseSystem {
 						// Local variables
@@ -1898,7 +1898,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.schedule.resourceName)){
 								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-    					}
+    						}
 						}
 						
 					}
@@ -1912,13 +1912,13 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.schedule.resourceName := omit;
 						v_responsePrimitive := f_CSE_DMR_CRE_001(int18, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//Schedule
 
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.schedule.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.schedule.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
-						
 						}
+						
+					}
 				
 					testcase TC_CSE_DMR_CRE_001_SCH_SUB() runs on CseTester system CseSystem {
 						// Local variables
@@ -1932,7 +1932,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.schedule.resourceName)){
 								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-					}
+							}
 						}
 					
 					}
@@ -1947,13 +1947,13 @@ module OneM2M_Testcases {
 						v_createRequest.primitiveContent.pollingChannel.resourceName := omit;
 
 						v_responsePrimitive := f_CSE_DMR_CRE_001(int15, v_createRequest, m_createAeAux(omit,omit), v_notifyHandler);//PollingChannel
-							if(getverdict == pass){
-								if(not ispresent(v_responsePrimitive.primitiveContent.pollingChannel.resourceName)){
-									setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-								}
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.pollingChannel.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
 							}
-						
 						}
+						
+					}
 					
 					testcase TC_CSE_DMR_CRE_001_SUB_CB() runs on CseTester system CseSystem {
 						// Local variables
@@ -1966,7 +1966,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){
 								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-					}
+							}
 						}
 					
 					}
@@ -1985,7 +1985,7 @@ module OneM2M_Testcases {
 							}
 						}
 	
-    					}
+    				}
 						
 					testcase TC_CSE_DMR_CRE_001_SUB_CNT() runs on CseTester system CseSystem {
 						// Local variables
@@ -2011,12 +2011,12 @@ module OneM2M_Testcases {
 						
 						v_createRequest.primitiveContent.subscription.resourceName := omit;
 						v_responsePrimitive := f_CSE_DMR_CRE_001(int23, v_createRequest, m_createAcpBase, v_notifyHandler);//Subscription
-    						if(getverdict == pass){
-    							if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){
-    								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-    							}
-    						}
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
 						}
+					}
 					
 					testcase TC_CSE_DMR_CRE_001_SUB_SCH() runs on CseTester system CseSystem {
 						// Local variables
@@ -2029,7 +2029,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){
 								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
-					}
+							}
 						}		
 					}
 					
@@ -2162,6 +2162,22 @@ module OneM2M_Testcases {
 						
 					}
 					
+					testcase TC_CSE_DMR_CRE_001_CIN_CNT() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
+						var ResponsePrimitive v_responsePrimitive;
+						var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;
+	
+						v_createRequest.primitiveContent.contentInstance.resourceName := omit;
+						v_responsePrimitive := f_CSE_DMR_CRE_001(int4, v_createRequest, m_createContainerBase, v_notifyHandler);//Subscription
+						if(getverdict == pass){
+							if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){
+								setverdict(fail, testcasename(), ": Error, resourceName attribute not provided");
+							}
+						}
+
+					}
+					
     				function f_CSE_DMR_CRE_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit, in CseTester p_notifyHandler) runs on CseTester return ResponsePrimitive {
     				
     					// Local variables
@@ -2601,7 +2617,7 @@ module OneM2M_Testcases {
     				
 				}// end group g_CSE_DMR_CRE_004
 				
-				group g_CSE_DMR_CRE_BV_005 {
+				group g_CSE_DMR_CRE_005 {
 			
 					/**
 					 * @desc Check that the IUT rejects the CREATE Request of container resource when the RW ATTRIBUTE is provided with an invalid value
@@ -2795,7 +2811,7 @@ module OneM2M_Testcases {
 					 * @desc Check that the IUT responds with error when the newly created <contentInstance> results in that the field value of attribute currentNrOfInstances exceeds the field value of maxNrOfInstances in the parent container resource.
 					 * 
 					 */
-					testcase TC_CSE_DMR_CRE_BV_007() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_CRE_007() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createContainerBase;
 						var MsgIn v_response;
@@ -2825,7 +2841,7 @@ module OneM2M_Testcases {
 						alt {
 							[] mcaPort.receive(mw_response(mw_responsePrimitive(int5207))) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Maximun number of instances exceeded");
+								setverdict(pass, testcasename() & ": Maximum number of instances exceeded");
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
 								tc_ac.stop;
@@ -2886,7 +2902,7 @@ module OneM2M_Testcases {
 						alt {
 							[] mcaPort.receive(mw_response(mw_responsePrimitive(int5207))) -> value v_response {
 								tc_ac.stop;
-								setverdict(pass, testcasename() & ": Maximun byte size exceeded");
+								setverdict(pass, testcasename() & ": Maximum byte size exceeded");
 							}
 							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
 								tc_ac.stop;
@@ -3196,7 +3212,7 @@ module OneM2M_Testcases {
     				
 				} // end g_CSE_DMR_CRE_012							
 
-				group g_CSE_DMR_CRE_BV_013 {
+				group g_CSE_DMR_CRE_013 {
 					
 					/**
 					 * @desc Check that the IUT returns successfully after a CREATE request only hierarchichal address of the created resource when the Result Content is set to 2 (hierarchical address)
@@ -3418,7 +3434,7 @@ module OneM2M_Testcases {
     				
 				} // end g_CSE_DMR_CRE_014
 				
-				group g_CSE_DMR_CRE_BV_015 {
+				group g_CSE_DMR_CRE_015 {
 					
 					/**
 					 * @desc Check that the IUT accepts the creation of a RESOURCE_TYPE resource with the optional attribute OPTIONAL_ATTRIBUTE provided
@@ -3976,7 +3992,7 @@ module OneM2M_Testcases {
     				
 				} // end g_CSE_DMR_CRE_016			
 				
-				group g_CSE_DMR_CRE_BV_017 {
+				group g_CSE_DMR_CRE_017 {
 
 					/**
 					 * @desc Check that the IUT accepts the creation of a RESOURCE_TYPE resource with the optional attribute announcedAttribute provided
@@ -4012,10 +4028,10 @@ module OneM2M_Testcases {
 						// Local variables
 						var template RequestPrimitive v_createRequest := m_createContentInstanceBase;
 						var RequestPrimitive v_requestPrimitive;
-						var XSD.NonNegativeInteger contentSize := 512;			//Correct value? Shall be indicated in TP?
+						var XSD.NonNegativeInteger v_contentSize := 512;			//Correct value? Shall be indicated in TP?
 		
 						v_createRequest.primitiveContent.contentInstance.announceTo := {f_getAnnouncementTargetPoA()};
-						v_createRequest.primitiveContent.contentInstance.contentSize := contentSize;						
+						v_createRequest.primitiveContent.contentInstance.contentSize := v_contentSize;						
 						v_createRequest.primitiveContent.contentInstance.announcedAttribute := {"contentSize"};	//Correct value? Shall be indicated in TP?
 		
 						v_requestPrimitive := f_CSE_DMR_CRE_017(int4, v_createRequest, mw_createContentInstanceAnncBase());//ContentInstance
@@ -4023,7 +4039,7 @@ module OneM2M_Testcases {
 						if(getverdict == pass){
 							//Check if contentSize attribute has been announced
 							if (ispresent(v_requestPrimitive.primitiveContent.contentInstanceAnnc.contentSize)){
-								if(v_requestPrimitive.primitiveContent.contentInstanceAnnc.contentSize != contentSize){
+								if(v_requestPrimitive.primitiveContent.contentInstanceAnnc.contentSize != v_contentSize){
 									setverdict(fail, testcasename() & ": Error: Value of contentSize has not been announced successfully");
 								}else{
 									setverdict(pass, testcasename() & ": Value of contentSize has been announced successfully");
@@ -4206,7 +4222,137 @@ module OneM2M_Testcases {
 	
 					}//end f_CSE_DMR_CRE_017
 	
-				} // end g_CSE_DMR_CRE_017		
+				} // end g_CSE_DMR_CRE_017	
+				
+				group g_CSE_DMR_CRE_020{
+					
+					/**
+					 * @desc Check that the IUT rejects the CREATE Request of a contentInstance resource with error “NOT_ACCEPTABLE” when contentSize exceeds maxByteSize
+					 * 
+					 */
+					testcase TC_CSE_DMR_CRE_020() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var integer v_aeIndex := -1;
+						var integer v_containerIndex := -1;
+						const integer c_maxByteSize := 0;				   
+						// Test control
+
+						// Test component configuration
+						f_cf01Up();
+
+						// Test adapter configuration
+
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+		
+						v_createRequest.primitiveContent.container.maxByteSize := c_maxByteSize;
+								
+						v_containerIndex := f_cse_createResource(int3, v_createRequest, v_aeIndex);
+	
+						// Test Body
+						v_request := f_getCreateRequestPrimitive(int4, m_createContentInstanceBase, v_containerIndex);
+	
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitive(int5207))) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Maximum byte size exceeded");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Bad responseStatusCode in response");
+							}
+			
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Accepted creation of contentInstance exceding maximum byte size");
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while creating resource type 4");
+							}
+						}	
+				
+						// Postamble
+						f_cse_postamble_deleteResources();
+		
+						// Tear down
+						f_cf01Down();
+	    				
+					}//end TC_CSE_DMR_CRE_020
+		
+				}// end group g_CSE_DMR_CRE_020	
+				
+				group g_CSE_DMR_CRE_021{
+					
+					/**
+					 * @desc Check that the IUT updates the currentByteSize attribute in a <container> parent resource when a new <contentInstance> resource is created. 
+					 * 
+					 */
+					testcase TC_CSE_DMR_CRE_021() runs on CseTester system CseSystem {
+						// Local variables
+						var template RequestPrimitive v_createRequest;
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var integer v_aeIndex := -1;
+						var integer v_containerIndex := -1;
+						var integer v_contentInstanceIndex := -1;
+						const integer c_maxByteSize := 512;				   
+						// Test control
+
+						// Test component configuration
+						f_cf01Up();
+
+						// Test adapter configuration
+
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+
+						v_createRequest.primitiveContent.container.maxByteSize := c_maxByteSize;
+						
+						v_createRequest := m_createContainerBase;
+				
+						v_containerIndex := f_cse_createResource(int3, v_createRequest, v_aeIndex);
+						
+						v_createRequest := m_createContentInstanceBase;
+						
+						v_contentInstanceIndex := f_cse_createResource(int4, v_createRequest, v_containerIndex);	//Default content: "AnyValue" (8 bytes length)
+
+						// Test Body
+						mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_containerIndex), f_getOriginator(v_containerIndex))));
+
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								if(v_response.primitive.responsePrimitive.primitiveContent.container.currentByteSize == 8) { //Default content: "AnyValue" (8 bytes length)
+									setverdict(pass, testcasename() & ": CurrentByteSize attribute in content resource is incremented successfully");	
+								}
+								else{
+									setverdict(fail, testcasename() & ": CurrentByteSize attribute in content resource not incremented successfully");
+								}
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while retrieving resource");
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while retrieving resource");
+							}
+						}	
+
+						// Postamble
+						f_cse_postamble_deleteResources();
+
+						// Tear down
+						f_cf01Down();
+		
+					}//end TC_CSE_DMR_CRE_021
+
+				}// end group g_CSE_DMR_CRE_021		
 				
 			}//end group Create
 			
@@ -4283,6 +4429,17 @@ module OneM2M_Testcases {
 						v_responsePrimitive := f_CSE_DMR_RET_001(int23, m_createSubscriptionBase, v_contentResponse);//Subscription
 					
 					}
+					
+					testcase TC_CSE_DMR_RET_001_CIN() runs on CseTester system CseSystem {
+						// Local variables
+						var ResponsePrimitive v_responsePrimitive;
+						var template PrimitiveContent v_contentResponse;
+
+						v_contentResponse.contentInstance := mw_contentContentInstance_rc1;
+	
+						v_responsePrimitive := f_CSE_DMR_RET_001(int4, m_createContentInstanceBase, v_contentResponse);//ContentInstance
+
+					}
 				
 					function f_CSE_DMR_RET_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester return ResponsePrimitive {
     				
@@ -4290,6 +4447,8 @@ module OneM2M_Testcases {
 						var MsgIn v_response;
 						var RequestPrimitive v_request;
 						var integer v_aeIndex := -1;
+						var integer v_containerIndex := -1;
+						var integer v_parentIndex := -1;
 						var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
@@ -4306,7 +4465,14 @@ module OneM2M_Testcases {
 						
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
 						
-						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); 				
+						if(p_resourceType == int4) {	//ContentInstance
+							v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
+							v_parentIndex := v_containerIndex;
+						}else{
+							v_parentIndex := v_aeIndex;
+						}
+						
+						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); 				
     									
 						// Test Body
 						mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))));
@@ -4430,7 +4596,7 @@ module OneM2M_Testcases {
 					testcase TC_CSE_DMR_RET_003_ACP() runs on CseTester system CseSystem {
 						// Local variables
 						var template RequestPrimitive v_requestPrimitive := m_createAcpBase;
-						
+																				
 						v_requestPrimitive.primitiveContent.accessControlPolicy.selfPrivileges.accessControlRule_list[0].accessControlOperations := int61;
 						
 						f_CSE_DMR_RET_003(int1, v_requestPrimitive);//AccessControlPolicy
@@ -5277,7 +5443,7 @@ module OneM2M_Testcases {
 				group g_CSE_DMR_RET_012{
 
 					/**
-					 * @desc Check that the IUT accepts the RETRIEVE Request of the latest contentInstance target to a <container> resource7
+					 * @desc Check that the IUT accepts the RETRIEVE Request of the latest contentInstance target to a <container> resource
 					 * 
 					 */
 				  	testcase TC_CSE_DMR_RET_012() runs on CseTester system CseSystem {
@@ -5439,9 +5605,9 @@ module OneM2M_Testcases {
 						
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 							
-						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
-						
-						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
+							f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
+							
+							v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
     									
 						} else {	//ResourceType = RemoteCSE
 													
@@ -5691,9 +5857,9 @@ module OneM2M_Testcases {
 						
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 							
-						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
-						
-						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
+							f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
+							
+							v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
     									
 						} else {
 							v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive);
@@ -5830,9 +5996,9 @@ module OneM2M_Testcases {
 						
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
-						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
-						
-						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
+							f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
+							
+							v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
     									
 						}else{
 							v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive);
@@ -5875,7 +6041,7 @@ module OneM2M_Testcases {
 					 * @desc Check that the IUT returns  successfully multiple attributes of TARGET_RESOURCE_ADDRESS resource under CSEBase
 					 * 
 					 */
-					testcase TC_CSE_DMR_RET_BV_ACP() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_RET_017_ACP() runs on CseTester system CseSystem {
 						// Local variables
 						var template PrimitiveContent v_contentResponse;
 					
@@ -5886,7 +6052,7 @@ module OneM2M_Testcases {
 						f_CSE_DMR_RET_017(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy
 					}
 										
-					testcase TC_CSE_DMR_RET_BV_AE() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_RET_017_AE() runs on CseTester system CseSystem {
 						// Local variables
 						var template PrimitiveContent v_contentResponse;
 					
@@ -5897,7 +6063,7 @@ module OneM2M_Testcases {
 						f_CSE_DMR_RET_017(int2, m_createAe(PX_APP_ID), v_contentResponse);//AE
 					}
 										
-					testcase TC_CSE_DMR_RET_BV_CNT() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_RET_017_CNT() runs on CseTester system CseSystem {
 						// Local variables
 						var template PrimitiveContent v_contentResponse;
 					
@@ -5907,8 +6073,19 @@ module OneM2M_Testcases {
                         
 						f_CSE_DMR_RET_017(int3, m_createContainerBase, v_contentResponse);//Container
 					}
+					
+					/*testcase TC_CSE_DMR_RET_017_DLV() runs on CseTester system CseSystem {
+						// Local variables
+						var template PrimitiveContent v_contentResponse;
+
+						v_contentResponse.delivery := m_contentDelivery_allOmit;
+						v_contentResponse.delivery.parentID := ?;
+						v_contentResponse.delivery.creationTime := ?;
 
-					testcase TC_CSE_DMR_RET_BV_GRP() runs on CseTester system CseSystem {
+						f_CSE_DMR_RET_017(int6, m_createDeliveryBase, v_contentResponse);//Delivery
+					}*/
+
+					testcase TC_CSE_DMR_RET_017_GRP() runs on CseTester system CseSystem {
 						// Local variables
 						var template PrimitiveContent v_contentResponse;
 					
@@ -5918,8 +6095,41 @@ module OneM2M_Testcases {
 												
 						f_CSE_DMR_RET_017(int9, m_createGroupBase, v_contentResponse);//Group
 					}
+					
+					testcase TC_CSE_DMR_RET_017_LCP() runs on CseTester system CseSystem {
+						// Local variables
+						var template PrimitiveContent v_contentResponse;
+
+						v_contentResponse.locationPolicy := m_contentLocationPolicy_allOmit;
+						v_contentResponse.locationPolicy.parentID := ?;
+						v_contentResponse.locationPolicy.creationTime := ?;
+
+						f_CSE_DMR_RET_017(int10, m_createLocationPolicyBase, v_contentResponse);//LocationPolicy
+					}
+					
+					testcase TC_CSE_DMR_RET_017_MGC() runs on CseTester system CseSystem {
+						// Local variables
+						var template PrimitiveContent v_contentResponse;
+
+						v_contentResponse.mgmtCmd := m_contentMgmtCmd_allOmit;
+						v_contentResponse.mgmtCmd.parentID := ?;
+						v_contentResponse.mgmtCmd.creationTime := ?;
+
+						f_CSE_DMR_RET_017(int12, m_createMgmtCmdBase, v_contentResponse);//MgmtCmd
+					}
+					
+					testcase TC_CSE_DMR_RET_017_NOD() runs on CseTester system CseSystem {
+						// Local variables
+						var template PrimitiveContent v_contentResponse;
+
+						v_contentResponse.node := m_contentNode_allOmit;
+						v_contentResponse.node.parentID := ?;
+						v_contentResponse.node.creationTime := ?;
+
+						f_CSE_DMR_RET_017(int14, m_createNodeBase, v_contentResponse);//Node
+					}
 				
-					testcase TC_CSE_DMR_RET_BV_CSR() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_RET_017_CSR() runs on CseTester system CseSystem {
 						// Local variables
 						var template PrimitiveContent v_contentResponse;
 
@@ -5930,7 +6140,7 @@ module OneM2M_Testcases {
 						f_CSE_DMR_RET_017(int16, m_createRemoteCSEBase, v_contentResponse);//RemoteCSE
 					}
 				
-					testcase TC_CSE_DMR_RET_BV_SCH() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_RET_017_SCH() runs on CseTester system CseSystem {
 						// Local variables
 						var template PrimitiveContent v_contentResponse;
 					
@@ -5941,7 +6151,29 @@ module OneM2M_Testcases {
 						f_CSE_DMR_RET_017(int18, m_createScheduleBase, v_contentResponse);//Schedule
 					}
 					
-					testcase TC_CSE_DMR_RET_BV_SUB() runs on CseTester system CseSystem {
+					testcase TC_CSE_DMR_RET_017_STCL() runs on CseTester system CseSystem {
+						// Local variables
+						var template PrimitiveContent v_contentResponse;
+
+						v_contentResponse.statsCollect := m_contentStatsCollect_allOmit;
+						v_contentResponse.statsCollect.parentID := ?;
+						v_contentResponse.statsCollect.creationTime := ?;
+
+						f_CSE_DMR_RET_017(int21, m_createStatsCollectBase, v_contentResponse);//StatsCollect
+					}
+					
+					testcase TC_CSE_DMR_RET_017_STCG() runs on CseTester system CseSystem {
+						// Local variables
+						var template PrimitiveContent v_contentResponse;
+
+						v_contentResponse.statsConfig := m_contentStatsConfig_allOmit;
+						v_contentResponse.statsConfig.parentID := ?;
+						v_contentResponse.statsConfig.creationTime := ?;
+		
+						f_CSE_DMR_RET_017(int22, m_createStatsConfigBase, v_contentResponse);//StatsConfig
+					}
+					
+					testcase TC_CSE_DMR_RET_017_SUB() runs on CseTester system CseSystem {
 						// Local variables
 						var template PrimitiveContent v_contentResponse;
 					
@@ -5975,9 +6207,9 @@ module OneM2M_Testcases {
 						
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
-						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
-						
-						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
+							f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
+							
+							v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
     									
 						}else{
 							v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive);
@@ -6086,9 +6318,9 @@ module OneM2M_Testcases {
 						
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
-						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
-						
-						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
+							f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
+							
+							v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
     									
 						}else{
 							v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive);
@@ -6197,9 +6429,9 @@ module OneM2M_Testcases {
 						
 						if (p_resourceType!=int16){	//ResourceType != RemoteCSE
 	
-						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
-						
-						v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
+							f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType);
+							
+							v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource
     									
 						}else{
 							v_resourceIndex := f_cse_registerRemoteCse(p_requestPrimitive);
@@ -8699,9 +8931,733 @@ module OneM2M_Testcases {
 				  	}//end TC_CSE_DMR_UPD_013
 
 			  	} // end group g_CSE_DMR_UPD_013
-
-			}//end group Update
-			
+			  	
+				group g_CSE_DMR_UPD_014 {
+					
+					/**
+					 * @desc Check that the IUT updates successfully the value of the optional attribute OPTIONAL_ATTRIBUTE of the RESOURCE_TYPE resource. 
+					 * 
+					 */
+					testcase TC_CSE_DMR_UPD_014_ACP_ET() runs on CseTester system CseSystem {
+						// Local variables
+						var Timestamp v_expirationTime_1 := "20301231T012345";
+						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_1;
+						v_updateRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int1, v_createRequest, v_updateRequest);//ACP
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.accessControlPolicy)) {
+									if(v_responsePrimitive.primitiveContent.accessControlPolicy.expirationTime != v_expirationTime_2){
+										setverdict(fail, testcasename() & ": Error: ExpirationTime attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+										
+					testcase TC_CSE_DMR_UPD_014_ACP_LBL() runs on CseTester system CseSystem {
+						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"VALUE_2"};
+						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.accessControlPolicy.labels := v_labels_1;
+						v_updateRequest.primitiveContent.accessControlPolicy.labels := v_labels_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int1, v_createRequest, v_updateRequest);//ACP
+	
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.accessControlPolicy)) {
+									if(v_responsePrimitive.primitiveContent.accessControlPolicy.labels != v_labels_2){
+										setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+									}
+								}
+							}
+						}
+	
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_ACP_PV() runs on CseTester system CseSystem {
+						// Local variables
+						var SetOfAcrs v_privileges_1;
+						var SetOfAcrs v_privileges_2;
+						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_privileges_1.accessControlRule_list[0].accessControlOperations := int31;
+						v_privileges_2.accessControlRule_list[0].accessControlOperations := int63;
+	
+						v_createRequest.primitiveContent.accessControlPolicy.privileges := v_privileges_1;
+						v_updateRequest.primitiveContent.accessControlPolicy.privileges := v_privileges_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int1, v_createRequest, v_updateRequest);//ACP
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.accessControlPolicy)) {
+									if(v_responsePrimitive.primitiveContent.accessControlPolicy.privileges != v_privileges_2){
+										setverdict(fail, testcasename() & ": Error: Privileges attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_ACP_PVS() runs on CseTester system CseSystem {
+						// Local variables
+						var SetOfAcrs v_selfPrivileges_1;
+						var SetOfAcrs v_selfPrivileges_2;
+						var template RequestPrimitive v_createRequest := m_createAcpBase;
+						var template RequestPrimitive v_updateRequest := m_updateAcpBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_selfPrivileges_1.accessControlRule_list[0].accessControlOperations := int31;
+						v_selfPrivileges_2.accessControlRule_list[0].accessControlOperations := int63;
+						
+						v_createRequest.primitiveContent.accessControlPolicy.selfPrivileges := v_selfPrivileges_1;
+						v_updateRequest.primitiveContent.accessControlPolicy.selfPrivileges := v_selfPrivileges_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int1, v_createRequest, v_updateRequest);//ACP
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.accessControlPolicy)) {
+									if(v_responsePrimitive.primitiveContent.accessControlPolicy.selfPrivileges != v_selfPrivileges_2){
+										setverdict(fail, testcasename() & ": Error: SelfPrivileges attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_CNT_ACPI() runs on CseTester system CseSystem {
+						// Local variables
+						var AcpType v_accessControlPolicyIDs_1 := {"NotInitialized_1"};
+						var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"};
+						var ResponsePrimitive v_responsePrimitive;
+
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+
+						v_createRequest.primitiveContent.container.accessControlPolicyIDs := v_accessControlPolicyIDs_1;
+						v_updateRequest.primitiveContent.container.accessControlPolicyIDs := v_accessControlPolicyIDs_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest);//Container
+
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
+									if(v_responsePrimitive.primitiveContent.container.accessControlPolicyIDs != v_accessControlPolicyIDs_2){
+										setverdict(fail, testcasename() & ": Error: AccessControlPolicyIDs attribute not updated correctly")
+									}
+								}
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_CNT_ET() runs on CseTester system CseSystem {
+						// Local variables
+						var Timestamp v_expirationTime_1 := "20301231T012345";
+						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var ResponsePrimitive v_responsePrimitive;
+
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+
+						v_createRequest.primitiveContent.container.expirationTime := v_expirationTime_1;
+						v_updateRequest.primitiveContent.container.expirationTime := v_expirationTime_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest);//Container
+
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
+									if(v_responsePrimitive.primitiveContent.container.expirationTime != v_expirationTime_2){
+										setverdict(fail, testcasename() & ": Error: ExpirationTime attribute not updated correctly")
+									}
+								}
+							}
+						}
+					}
+										
+					testcase TC_CSE_DMR_UPD_014_CNT_LBL() runs on CseTester system CseSystem {
+						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"VALUE_2"};
+						var ResponsePrimitive v_responsePrimitive;
+		
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+		
+						v_createRequest.primitiveContent.container.labels := v_labels_1;
+						v_updateRequest.primitiveContent.container.labels := v_labels_2;
+		
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest);//Container
+		
+		
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
+									if(v_responsePrimitive.primitiveContent.container.labels != v_labels_2){
+										setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+									}
+								}
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_CNT_MBS() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.NonNegativeInteger v_maxByteSize_1 := 256;
+						var XSD.NonNegativeInteger v_maxByteSize_2 := 512;
+						var ResponsePrimitive v_responsePrimitive;
+	
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+	
+						v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize_1;
+						v_updateRequest.primitiveContent.container.maxByteSize := v_maxByteSize_2;
+	
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest);//Container
+	
+	
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
+									if(v_responsePrimitive.primitiveContent.container.maxByteSize != v_maxByteSize_2){
+										setverdict(fail, testcasename() & ": Error: MaxByteSize attribute not updated correctly")
+									}
+								}
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_CNT_MIA() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.NonNegativeInteger v_maxInstanceAge_1 := 60;
+						var XSD.NonNegativeInteger v_maxInstanceAge_2 := 120;
+						var ResponsePrimitive v_responsePrimitive;
+
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+
+						v_createRequest.primitiveContent.container.maxInstanceAge := v_maxInstanceAge_1;
+						v_updateRequest.primitiveContent.container.maxInstanceAge := v_maxInstanceAge_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest);//Container
+
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
+									if(v_responsePrimitive.primitiveContent.container.maxInstanceAge != v_maxInstanceAge_2){
+										setverdict(fail, testcasename() & ": Error: MaxInstanceAge attribute not updated correctly")
+									}
+								}
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_CNT_MNI() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.NonNegativeInteger v_maxNrOfInstances_1 := 1;
+						var XSD.NonNegativeInteger v_maxNrOfInstances_2 := 2;
+						var ResponsePrimitive v_responsePrimitive;
+	
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+	
+						v_createRequest.primitiveContent.container.maxNrOfInstances := v_maxNrOfInstances_1;
+						v_updateRequest.primitiveContent.container.maxNrOfInstances := v_maxNrOfInstances_2;
+	
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest);//Container
+	
+	
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
+									if(v_responsePrimitive.primitiveContent.container.maxNrOfInstances != v_maxNrOfInstances_2){
+										setverdict(fail, testcasename() & ": Error: MaxNrOfInstances attribute not updated correctly")
+									}
+								}
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_CNT_OR() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.AnyURI v_ontologyRef_1 := "MyOntologyRef_1";
+						var XSD.AnyURI v_ontologyRef_2 := "MyOntologyRef_2";
+						var ResponsePrimitive v_responsePrimitive;
+	
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;
+	
+						v_createRequest.primitiveContent.container.ontologyRef := v_ontologyRef_1;
+						v_updateRequest.primitiveContent.container.ontologyRef := v_ontologyRef_2;
+	
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest);//Container
+	
+	
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
+									if(v_responsePrimitive.primitiveContent.container.ontologyRef != v_ontologyRef_2){
+										setverdict(fail, testcasename() & ": Error: OntologyRef attribute not updated correctly")
+									}
+								}
+							}
+						}
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_ACPI() runs on CseTester system CseSystem {
+						// Local variables
+						var AcpType v_accessControlPolicyIDs_1 := {"NotInitialized_1"};
+						var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"};
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_1;
+						v_updateRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_accessControlPolicyIDs_2){
+										setverdict(fail, testcasename() & ": Error: AccessControlPolicyIDs attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_BN() runs on CseTester system CseSystem {
+						// Local variables
+						var BatchNotify v_batchNotify_1 := {1, "PT1S"};
+						var BatchNotify v_batchNotify_2 := {2, "PT1S"};
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.batchNotify := v_batchNotify_1;
+						v_updateRequest.primitiveContent.subscription.batchNotify := v_batchNotify_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.batchNotify != v_batchNotify_2){
+										setverdict(fail, testcasename() & ": Error: EventNotificationCriteria attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_ENC() runs on CseTester system CseSystem {
+						// Local variables
+						var EventNotificationCriteria v_eventNotificationCriteria_1 := valueof(m_eventNotificationCriteria({int1}, -));
+						var EventNotificationCriteria v_eventNotificationCriteria_2 := valueof(m_eventNotificationCriteria({int2}, -));
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.eventNotificationCriteria := v_eventNotificationCriteria_1;
+						v_updateRequest.primitiveContent.subscription.eventNotificationCriteria := v_eventNotificationCriteria_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.eventNotificationCriteria != v_eventNotificationCriteria_2){
+										setverdict(fail, testcasename() & ": Error: EventNotificationCriteria attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_ET() runs on CseTester system CseSystem {
+						// Local variables
+						var Timestamp v_expirationTime_1 := "20301231T012345";
+						var Timestamp v_expirationTime_2 := "20401020T012345";
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.expirationTime := v_expirationTime_1;
+						v_updateRequest.primitiveContent.subscription.expirationTime := v_expirationTime_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.expirationTime != v_expirationTime_2){
+										setverdict(fail, testcasename() & ": Error: ExpirationTime attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_EXC() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.PositiveInteger v_expirationCounter_1 := 10;
+						var XSD.PositiveInteger v_expirationCounter_2 := 20;
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.expirationCounter := v_expirationCounter_1;
+						v_updateRequest.primitiveContent.subscription.expirationCounter := v_expirationCounter_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.expirationCounter != v_expirationCounter_2){
+										setverdict(fail, testcasename() & ": Error: ExpirationCounter attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_GPI() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.AnyURI v_groupID_1 := "MyGroupID_1";
+						var XSD.AnyURI v_groupID_2 := "MyGroupID_2";
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.groupID := v_groupID_1;
+						v_updateRequest.primitiveContent.subscription.groupID := v_groupID_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.groupID != v_groupID_2){
+										setverdict(fail, testcasename() & ": Error: GroupID attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_LBL() runs on CseTester system CseSystem {
+						// Local variables
+						var Labels v_labels_1 := {"VALUE_1"};
+						var Labels v_labels_2 := {"VALUE_2"};
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.labels := v_labels_1;
+						v_updateRequest.primitiveContent.subscription.labels := v_labels_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+	
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.labels != v_labels_2){
+										setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_LN() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.Boolean v_latestNotify_1 := true;
+						var XSD.Boolean v_latestNotify_2 := false;
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.latestNotify := v_latestNotify_1;
+						v_updateRequest.primitiveContent.subscription.latestNotify := v_latestNotify_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.latestNotify != v_latestNotify_2){
+										setverdict(fail, testcasename() & ": Error: LatestNotify attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_NCT() runs on CseTester system CseSystem {
+						// Local variables
+						var NotificationContentType v_notificationContentType_1 := int1;
+						var NotificationContentType v_notificationContentType_2 := int2;
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.notificationContentType := v_notificationContentType_1;
+						v_updateRequest.primitiveContent.subscription.notificationContentType := v_notificationContentType_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.notificationContentType != v_notificationContentType_2){
+										setverdict(fail, testcasename() & ": Error: NotificationContentType attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_NEC() runs on CseTester system CseSystem {
+						// Local variables
+						var EventCat v_notificationEventCat_1 := {alt_1 := 100};
+						var EventCat v_notificationEventCat_2 := {alt_1 := 101};
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.notificationEventCat := v_notificationEventCat_1;
+						v_updateRequest.primitiveContent.subscription.notificationEventCat := v_notificationEventCat_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.notificationEventCat != v_notificationEventCat_2){
+										setverdict(fail, testcasename() & ": Error: NotificationEventCat attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_NFU() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.AnyURI v_notificationForwardingURI_1 := "MyForwardingURI_1";
+						var XSD.AnyURI v_notificationForwardingURI_2 := "MyForwardingURI_2";
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.notificationForwardingURI := v_notificationForwardingURI_1;
+						v_updateRequest.primitiveContent.subscription.notificationForwardingURI := v_notificationForwardingURI_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.notificationForwardingURI != v_notificationForwardingURI_2){
+										setverdict(fail, testcasename() & ": Error: NotificationForwardingURI attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_NSP() runs on CseTester system CseSystem {
+						// Local variables
+						var XSD.PositiveInteger v_notificationStoragePriority_1 := 1;
+						var XSD.PositiveInteger v_notificationStoragePriority_2 := 2;
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.notificationStoragePriority := v_notificationStoragePriority_1;
+						v_updateRequest.primitiveContent.subscription.notificationStoragePriority := v_notificationStoragePriority_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.notificationStoragePriority != v_notificationStoragePriority_2){
+										setverdict(fail, testcasename() & ": Error: NotificationStoragePriority attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_PN() runs on CseTester system CseSystem {
+						// Local variables
+						var PendingNotification v_pendingNotification_1 := int1;
+						var PendingNotification v_pendingNotification_2 := int2;
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.pendingNotification := v_pendingNotification_1;
+						v_updateRequest.primitiveContent.subscription.pendingNotification := v_pendingNotification_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.pendingNotification != v_pendingNotification_2){
+										setverdict(fail, testcasename() & ": Error: PendingNotification attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+					
+					testcase TC_CSE_DMR_UPD_014_SUB_RL() runs on CseTester system CseSystem {
+						// Local variables
+						var RateLimit v_rateLimit_1 := {0, omit};
+						var RateLimit v_rateLimit_2 := {1, omit};
+						var template RequestPrimitive v_createRequest := m_createSubscriptionBase;
+						var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase;
+						var ResponsePrimitive v_responsePrimitive;
+
+						v_createRequest.primitiveContent.subscription.rateLimit := v_rateLimit_1;
+						v_updateRequest.primitiveContent.subscription.rateLimit := v_rateLimit_2;
+
+						v_responsePrimitive := f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest);//Subscription
+
+						if(getverdict == pass){
+							//Check attribute 1
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.subscription)) {
+									if(v_responsePrimitive.primitiveContent.subscription.rateLimit != v_rateLimit_2){
+										setverdict(fail, testcasename() & ": Error: RateLimit attribute not updated correctly")
+									}
+								}
+							}
+						}
+
+					}
+	
+					function f_CSE_DMR_UPD_014(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on CseTester return ResponsePrimitive{
+	
+						// Local variables
+						var MsgIn v_response;
+						var RequestPrimitive v_request;
+						var integer v_aeIndex := -1;
+						var integer v_resourceIndex := -1;
+						var CseTester v_notifyHandler;
+						var integer v_ae2Index := -1;
+							   
+						// Test control
+	
+						// Test component configuration
+						f_cf01Up();
+	
+						// Test adapter configuration
+	
+						// Preamble
+						v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi);
+		
+						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType);
+		
+						v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); 				
+						
+						// Test Body
+						v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive);
+		
+						mcaPort.send(m_request(v_request));
+						tc_ac.start;
+						alt {
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response {
+								tc_ac.stop;
+								setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfully");
+							}
+							[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response {
+								tc_ac.stop;
+								setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType)));
+							}
+							[] tc_ac.timeout {
+								setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType)));
+							}
+						}	
+					
+						// Postamble
+						f_cse_postamble_deleteResources();
+		
+						// Tear down
+						f_cf01Down();
+		
+						return v_response.primitive.responsePrimitive;
+		    				
+					}//end f_CSE_DMR_UPD_014
+	
+				} // end g_CSE_DMR_UPD_014
+
+			}//end group Update
+			
 			group Delete {
 			
 				group g_CSE_DMR_DEL_001{
@@ -8750,13 +9706,19 @@ module OneM2M_Testcases {
 						f_CSE_DMR_DEL_001(int23, m_createSubscriptionBase);//Subscription
                 	};	
                 
-                
+					testcase TC_CSE_DMR_DEL_001_CIN() runs on CseTester system CseSystem {
+							// Local variables
+
+						f_CSE_DMR_DEL_001(int4, m_createContentInstanceBase);//ContentInstance
+					};	
                 
                 	function f_CSE_DMR_DEL_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on CseTester {
                 		// Local variables
                 		var MsgIn v_response;
                 		var RequestPrimitive v_request;
                 		var integer v_aeIndex := -1;
+						var integer v_parentIndex := -1;
+						var integer v_containerIndex := -1;
                 		var integer v_resourceIndex := -1;
 						var CseTester v_notifyHandler;
 						var integer v_ae2Index := -1;
@@ -8772,8 +9734,15 @@ module OneM2M_Testcases {
                 		v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi)
 						
 						f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType);
+						
+						if(p_resourceType == int4) {
+							v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);
+							v_parentIndex := v_containerIndex;
+						}else{
+							v_parentIndex := v_aeIndex;
+						}
                 		
-                		v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); 				
+                		v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); 				
                 												
                 		// Test Body
                 		v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex)));
@@ -9310,7 +10279,7 @@ module OneM2M_Testcases {
 						v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);
 							
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/la"));
+						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameLatest));
             	
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
@@ -9385,7 +10354,7 @@ module OneM2M_Testcases {
 						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 							
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/la"));
+						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameLatest));
 						mcaPort.send(m_request(v_request));
 					    tc_ac.start;
 						alt {
@@ -9443,7 +10412,7 @@ module OneM2M_Testcases {
 						v_contentInstanceIndex_2 := f_cse_createResource(int4, m_createContentInstance_noResourceName, v_containerIndex);
 							
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/ol"));
+						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameOldest));
             	
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
@@ -9518,7 +10487,7 @@ module OneM2M_Testcases {
 						v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); 
 							
 						// Test Body
-						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/ol"));
+						v_request := valueof(m_deleteRequest(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameOldest));
 						mcaPort.send(m_request(v_request));
 						tc_ac.start;
 						alt {
@@ -12162,7 +13131,7 @@ module OneM2M_Testcases {
 					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);
    
-					v_fanoutPointAddress := f_getResourceAddress(v_groupIndex) & "/fopt" & "/myCon" & "/la";
+					v_fanoutPointAddress := f_getResourceAddress(v_groupIndex) & "/fopt" & "/myCon" & "/" & c_resourceShortNameLatest;
 					
 					// Test Body
 					mcaPort.send(m_request(m_retrieveResource(v_fanoutPointAddress, f_getOriginator(v_aeIndex_1)))); //TODO see if it is correct or if we have to use PX_SUPER_ADMIN
-- 
GitLab