From fea7c48a82ef000febc80ce91b7cb7bccb267e28 Mon Sep 17 00:00:00 2001
From: Pramod Kulkarni <pkulkarni75@gmail.com>
Date: Tue, 24 Apr 2018 11:15:19 +0100
Subject: [PATCH] Implemented TC ANNC_UPD_008

---
 OneM2M_PermutationFunctions.ttcn    | 62 +++++++++++++++++++
 OneM2M_Testcases_CSE_Release_2.ttcn | 95 +++++++++++++++++++++++++++++
 2 files changed, 157 insertions(+)

diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn
index 39473fa..83ae5f0 100644
--- a/OneM2M_PermutationFunctions.ttcn
+++ b/OneM2M_PermutationFunctions.ttcn
@@ -7463,6 +7463,68 @@ module OneM2M_PermutationFunctions {
 
 				}//end f_CSE_ANNC_UPD_007
 				
+				function f_CSE_ANNC_UPD_008(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu {
+					//Local variables
+					var RequestPrimitive v_updateRequest;
+					var integer v_aeIndex := -1;
+					var integer v_resourceIndex;
+					var ResponsePrimitive v_responsePrimitive;
+					var template RequestPrimitive v_create := m_createAe(PX_APP_ID, omit, omit);
+
+					v_create.primitiveContent.aE.announceTo := {PX_CSE_ID};
+					//Test control
+
+					//Test component configuration
+					f_cf02Up();
+
+					//Register the CSE
+					vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase));	
+					vc_cse1.done;
+
+					//Preamble
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)));
+					v_aeIndex := f_cse_createResource(int2,v_create);
+					vc_cse1.done;
+
+					vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc));	
+					v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex);
+					vc_cse1.done;				  	
+
+					vc_cse1.start(f_cse_announcementProcedure_updateHandler());
+					v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive);
+					mcaPort.send(m_request(v_updateRequest));
+
+					tc_ac.start;
+					alt {
+						[] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response {
+							tc_ac.stop;
+							setverdict(pass, __SCOPE__ & ": Resource updated successfully");
+
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Wrong response status code in the response");
+						}
+						[] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) {
+							tc_ac.stop;
+							setverdict(fail, __SCOPE__ & ": Error while updating container resource");
+						}
+						[] tc_ac.timeout {
+							setverdict(fail, __SCOPE__ & ": No answer while updating resource");
+						}
+					}
+
+					vc_cse1.done;
+
+					//Used to check that the resource has been updated
+					vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex);
+
+					//Postamble
+					f_cse_postamble_deleteResources();
+
+					// Tear down
+					f_cf02Down();
+				} //end f_CSE_ANNC_UPD_008
 				
 				function f_CSE_ANNC_UPD_009(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu {
 					// Local variables
diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn
index f80e08b..33b2b9e 100644
--- a/OneM2M_Testcases_CSE_Release_2.ttcn
+++ b/OneM2M_Testcases_CSE_Release_2.ttcn
@@ -8036,6 +8036,101 @@ module OneM2M_Testcases_CSE_Release_2 {
 					}
 				} //end group g_CSE_ANNC_UPD_007
 				
+				group g_CSE_ANNC_UPD_008 {
+					
+					testcase TC_CSE_ANNC_UPD_008_CNT_MBS() runs on Tester system CseSystem {
+						// Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_createRequest := m_createContainerBase;
+						var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase;
+						var template RequestPrimitive v_updateRequest := m_updateContainerBase;	
+						var ResponsePrimitive v_responsePrimitive;	
+						var AttributeAux_list v_nullFields;
+						var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"};
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						var XSD.NonNegativeInteger v_maxByteSize := 512;
+  
+						v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID};
+						v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize;
+						v_createRequest.primitiveContent.container.announcedAttribute := v_announcedAttribute;
+
+						v_updateRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"};
+  
+						v_ae1.start(f_CSE_ANNC_UPD_008(int3, v_createRequestAnnc, v_createRequest, v_updateRequest));//Container
+						v_ae1.done;
+
+						if(getverdict == pass){
+							v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.container)) {
+									if(ispresent(v_responsePrimitive.primitiveContent.container.announcedAttribute)){
+										setverdict(pass, __SCOPE__ & ": announcedAttribute attribute is present");
+									} else {
+										setverdict(fail, __SCOPE__ & ": announcedAttribute attribute is not present");
+									}
+								}
+							}
+
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+
+							//Check that the resource has been udpated correctly
+							if(ischosen(v_primitiveContentRetrieveResource.container)) {
+								if(ispresent(v_primitiveContentRetrieveResource.container.announcedAttribute)){
+									setverdict(pass, __SCOPE__ & "announcedAttribute attribute updated correctly");
+								} else {
+									setverdict(fail, __SCOPE__ & "announcedAttribute attribute not updated correctly");
+								}
+							}
+						}	
+					}
+					
+					testcase TC_CSE_ANNC_UPD_008_GRP_MT() runs on Tester system CseSystem {
+						// Local variables
+						var AeSimu v_ae1 := AeSimu.create("AE1") alive;
+						var template RequestPrimitive v_createRequest := m_createGroupBase;
+						var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase;
+						var template RequestPrimitive v_updateRequest := m_updateGroupBase;	
+						var ResponsePrimitive v_responsePrimitive;	
+						var AttributeAux_list v_nullFields;
+						var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"};
+						var PrimitiveContent v_primitiveContentRetrieveResource;
+						var MemberType v_memberType := int3;
+  
+						v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID};
+						v_createRequest.primitiveContent.group_.memberType := v_memberType;
+						v_createRequest.primitiveContent.group_.announcedAttribute := v_announcedAttribute;
+
+						v_updateRequest.primitiveContent.group_.announcedAttribute := {"memberType"};
+  
+						v_ae1.start(f_CSE_ANNC_UPD_008(int9, v_createRequestAnnc, v_createRequest, v_updateRequest));//Group
+						v_ae1.done;
+
+						if(getverdict == pass){
+							v_responsePrimitive := f_getResponsePrimitive(v_ae1);
+							if(ispresent(v_responsePrimitive.primitiveContent)) {
+								if(ischosen(v_responsePrimitive.primitiveContent.group_)) {
+									if(ispresent(v_responsePrimitive.primitiveContent.group_.announcedAttribute)){
+										setverdict(pass, __SCOPE__ & ": announcedAttribute attribute is present");
+									} else {
+										setverdict(fail, __SCOPE__ & ": announcedAttribute attribute is not present");
+									}
+								}
+							}
+
+							v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1);
+
+							//Check that the resource has been udpated correctly
+							if(ischosen(v_primitiveContentRetrieveResource.group_)) {
+								if(ispresent(v_primitiveContentRetrieveResource.group_.announcedAttribute)){
+									setverdict(pass, __SCOPE__ & "announcedAttribute attribute updated correctly");
+								} else {
+									setverdict(fail, __SCOPE__ & "announcedAttribute attribute not updated correctly");
+								}
+							}
+						}
+					}
+				} //end group g_CSE_ANNC_UPD_008
+				
 				group g_CSE_ANNC_UPD_009{
 
 					testcase TC_CSE_ANNC_UPD_009_CNT_MBS() runs on Tester system CseSystem {
-- 
GitLab