diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 5f7bd471514c17a34286db228c4f8652a2b55a6a..2bfda7718bb832d04ffb1ecf7110850be114cdec 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -1038,7 +1038,7 @@ module OneM2M_Functions { * @param p_resourceIndex Internal resource index which indicates the resource to be updated * @verdict */ - function f_cse_updateResource(in ResourceType p_resourceType, integer p_resourceIndex, template RequestPrimitive p_request) runs on AeSimu { + function f_cse_updateResource(in ResourceType p_resourceType, integer p_resourceIndex, template RequestPrimitive p_request, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu { var RequestPrimitive v_request; @@ -1047,7 +1047,7 @@ module OneM2M_Functions { v_request := f_getUpdateRequestPrimitive(p_resourceType, p_resourceIndex, p_request); - mcaPort.send(m_request(v_request)); + mcaPort.send(m_request(v_request, p_nullFields)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index fbda2032ef332e525abd4775cc371def4e056745..a1d16c1a5145597b258864380a19106b0b636396 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -572,11 +572,31 @@ module OneM2M_Templates { primitiveContent := {aEAnnc := m_contentUpdateAEAnnc} }; - template (value) RequestPrimitive mw_updateContainerAnncBase modifies m_update:= { - requestIdentifier := testcasename() & "-m_updateContainerAnnc", + /** + * @desc Base Reception template for update ContainerAnnc + */ + template RequestPrimitive mw_updateContainerAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { resourceType := int10003, - primitiveContent := {containerAnnc := m_contentUpdateContainerAnnc} - }; + primitiveContent := {containerAnnc := ?} + }; + + /** + * @desc Base Reception template for update GroupAnnc + */ + template RequestPrimitive mw_updateGroupAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { + resourceType := int10009, + primitiveContent := {groupAnnc := ?} + }; + + /** + * @desc Base Reception template for update AccessControlPolicyAnnc + */ + template RequestPrimitive mw_updateAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := { + resourceType := int10001, + primitiveContent := {accessControlPolicyAnnc := ?} + }; + + }//end group Update group Create { @@ -2689,6 +2709,31 @@ module OneM2M_Templates { disableRetrieval := omit, choice := omit }; + + template (value) GroupAnnc_optional m_contentUpdateGroupAnnc := { + resourceName := omit, + resourceType := omit, + resourceID := omit, + parentID := omit, + creationTime := omit, + lastModifiedTime := omit, + labels := omit, + accessControlPolicyIDs := omit, + expirationTime := omit, + link := omit, + dynamicAuthorizationConsultationIDs := omit, + memberType := omit, + currentNrOfMembers := omit, + maxNrOfMembers := omit, + memberIDs := omit, + membersAccessControlPolicyIDs := omit, + memberTypeValidated := omit, + consistencyStrategy := omit, + groupName := omit, + semanticSupportIndicator := omit, + choice := omit + }; + }//end group ContentUpdate diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index ded2cba5dba0e7bb9da743b3bfdd4bf49cca1347..4fc52aab2ce8c285c920a41736ac3e909e962302 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -7093,7 +7093,7 @@ module OneM2M_PermutationFunctions { }//end f_CSE_ANNC_UPD_001 - function f_CSE_ANNC_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu { + function f_CSE_ANNC_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var MsgIn v_request; @@ -7156,9 +7156,8 @@ module OneM2M_PermutationFunctions { }//end f_CSE_ANNC_UPD_002 - function f_CSE_ANNC_UPD_003(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu { + function f_CSE_ANNC_UPD_003(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu { //Local variables - var MsgIn v_request; var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; var integer v_resourceIndex; @@ -7186,11 +7185,11 @@ module OneM2M_PermutationFunctions { vc_cse1.start(f_cse_announcementProcedure_deleteHandler()); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); - mcaPort.send(m_request(v_updateRequest)); + mcaPort.send(m_request(v_updateRequest, p_nullFields)); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_request { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource updated successfully"); @@ -7210,12 +7209,8 @@ module OneM2M_PermutationFunctions { vc_cse1.done; - //Check to see if the resource is present or not - if (f_isResourceNotPresent(v_aeIndex, f_getResourceName(vc_resourcesList[v_resourceIndex].resource))){ - setverdict(pass, __SCOPE__ & ":INFO: Resource deleted"); - }else { - setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted"); - } + //Used to check that the resource has been updated + vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); //Postamble f_cse_postamble_deleteResources(); @@ -7224,10 +7219,9 @@ module OneM2M_PermutationFunctions { f_cf02Down(); } //end f_CSE_ANNC_UPD_003 - function f_CSE_ANNC_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu { + function f_CSE_ANNC_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; - var MsgIn v_request; var RequestPrimitive v_requestUpdatePrimitive; var integer v_parentIndex := -1; var integer v_aeIndex := -1; @@ -7262,17 +7256,17 @@ module OneM2M_PermutationFunctions { p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); // Test Body - v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive, p_nullFields)); tc_ac.start; alt { - [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); - v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive := valueof(m_responsePrimitive(int2004,vc_request.primitive.requestPrimitive.requestIdentifier)); v_responsePrimitive.from_ := PX_CSE1_ID; - v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + v_responsePrimitive.to_ := vc_request.primitive.requestPrimitive.from_; mccPortIn.send(m_response(v_responsePrimitive)); } [] tc_ac.timeout { @@ -7288,6 +7282,328 @@ module OneM2M_PermutationFunctions { f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_UPD_005 + + 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 + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + 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_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_009 + + function f_CSE_ANNC_UPD_010(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + 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_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_010 + + function f_CSE_ANNC_UPD_011(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var MsgIn v_request; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + 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_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,v_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_011 + + function f_CSE_ANNC_UPD_012(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_requestUpdatePrimitive; + var integer v_parentIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex; + var integer v_aEAnncIndex := -1; + var integer v_latestResourceIndex; + 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_cf02UpCseSimuMaster(); + + // Test adapter configuration + // Register the CSE + f_cse_registerRemoteCse(m_createRemoteCSEBase); + + //Preamble + + v_ae1.start(f_cse_createResource(int2,v_create)); + f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); + v_ae1.done; + + v_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, vc_aeAuxIndex)); + f_cse_announcementProcedure_createHandler(p_createRequestAnnc); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive, p_nullFields)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); + + v_responsePrimitive := valueof(m_responsePrimitive(int2004,vc_request.primitive.requestPrimitive.requestIdentifier)); + v_responsePrimitive.from_ := PX_CSE1_ID; + v_responsePrimitive.to_ := vc_request.primitive.requestPrimitive.from_; + mccPortIn.send(m_response(v_responsePrimitive)); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_ANNC_UPD_012 + + function f_CSE_ANNC_UPD_013(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) 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, p_nullFields)); + + 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_013 }//end group Update diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 5ca4f10b72eb62d91dadee1cf6831390e14c158d..91fd819f3bb04b54833bedda4415e0d63a12a955 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -7365,10 +7365,15 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createAcpBase; var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; var template RequestPrimitive v_updateRequest := m_updateAcpBase; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; - v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; - v_cse1.start(f_CSE_ANNC_UPD_002(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.start(f_CSE_ANNC_UPD_002(int1, v_createRequest, v_createRequestAnnc, v_updateRequest, v_nullFields));//AccessControlPolicy v_cse1.done; } @@ -7378,10 +7383,15 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.container.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; - v_cse1.start(f_CSE_ANNC_UPD_002(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.start(f_CSE_ANNC_UPD_002(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_nullFields));//Container v_cse1.done; } @@ -7391,10 +7401,15 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.group_.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; - v_cse1.start(f_CSE_ANNC_UPD_002(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.start(f_CSE_ANNC_UPD_002(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_nullFields));//Group v_cse1.done; } @@ -7409,10 +7424,16 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; var template RequestPrimitive v_updateRequest := m_updateAcpBase; var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; - v_ae1.start(f_CSE_ANNC_UPD_003(int1, v_createRequestAnnc, v_createRequest, v_updateRequest));//AccessControlPolicy + v_ae1.start(f_CSE_ANNC_UPD_003(int1, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//AccessControlPolicy v_ae1.done; if(getverdict == pass){ @@ -7420,11 +7441,19 @@ module OneM2M_Testcases_CSE_Release_2 { if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.accessControlPolicy)) { if(ispresent(v_responsePrimitive.primitiveContent.accessControlPolicy.announceTo)){ - setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL") + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL"); } } } - + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.accessControlPolicy)) { + if(ispresent(v_primitiveContentRetrieveResource.accessControlPolicy.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute not updated correctly"); + } + } } } @@ -7436,10 +7465,16 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.container.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; - v_ae1.start(f_CSE_ANNC_UPD_003(int3, v_createRequestAnnc, v_createRequest, v_updateRequest));//Container + v_ae1.start(f_CSE_ANNC_UPD_003(int3, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//Container v_ae1.done; if(getverdict == pass){ @@ -7447,11 +7482,19 @@ module OneM2M_Testcases_CSE_Release_2 { if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.container)) { if(ispresent(v_responsePrimitive.primitiveContent.container.announceTo)){ - setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL") + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL"); } } } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.container)) { + if(ispresent(v_primitiveContentRetrieveResource.container.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute not updated correctly"); + } + } } } @@ -7463,10 +7506,16 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var ResponsePrimitive v_responsePrimitive; + var AttributeAux_list v_nullFields; + var ListOfURIs v_announceTo := {"To be deleted"}; + var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_updateRequest.primitiveContent.group_.announceTo := v_announceTo; + v_nullFields := {{"announceTo", omit}}; - v_ae1.start(f_CSE_ANNC_UPD_003(int9, v_createRequestAnnc, v_createRequest, v_updateRequest));//Group + v_ae1.start(f_CSE_ANNC_UPD_003(int9, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//Group v_ae1.done; if(getverdict == pass){ @@ -7474,11 +7523,19 @@ module OneM2M_Testcases_CSE_Release_2 { if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.group_)) { if(ispresent(v_responsePrimitive.primitiveContent.group_.announceTo)){ - setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL") + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute is not set to NULL"); } } } + + v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); + //Check that the resource has been udpated correctly + if(ischosen(v_primitiveContentRetrieveResource.group_)) { + if(ispresent(v_primitiveContentRetrieveResource.group_.announceTo)){ + setverdict(fail, __SCOPE__ & ": Error: announceTo attribute not updated correctly"); + } + } } } @@ -7492,17 +7549,378 @@ module OneM2M_Testcases_CSE_Release_2 { var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; - var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnncBase; - var Labels v_labels_1 := {"VALUE_1"}; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var RequestPrimitive v_requestPrimitive; + var Labels v_labels_1 := {"VALUE_1"}; + var AttributeAux_list v_nullFields; + var Labels v_labels_2 := {"To be deleted"}; v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; v_createRequest.primitiveContent.container.labels := v_labels_1; + + v_updateRequest.primitiveContent.container.labels := v_labels_2; + v_nullFields := {{"labels", omit}}; - v_cse1.start(f_CSE_ANNC_UPD_005(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.start(f_CSE_ANNC_UPD_005(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields));//Container v_cse1.done; + + if(getverdict == pass){ + v_requestPrimitive := f_getRequestPrimitive(v_cse1); + if(ispresent(v_requestPrimitive.primitiveContent)) { + if(ischosen(v_requestPrimitive.primitiveContent.containerAnnc)) { + if(ispresent(v_requestPrimitive.primitiveContent.containerAnnc.labels)){ + setverdict(fail, __SCOPE__ & ": Error: labels attribute is not set to NULL"); + } + } + } - } //end TC_CSE_ANNC_CRE_001 - } // end group g_CSE_ANNC_CRE_001 + } + + } + } // end group g_CSE_ANNC_UPD_005 + + group g_CSE_ANNC_UPD_009{ + + testcase TC_CSE_ANNC_UPD_009_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var XSD.NonNegativeInteger v_maxByteSize := 512; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; + + v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; + + v_updateRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_updateRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; + + v_cse1.start(f_CSE_ANNC_UPD_009(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_009_GRP_MT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var MemberType v_memberType := int3; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType; + + v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + + v_updateRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_updateRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + + v_cse1.start(f_CSE_ANNC_UPD_009(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_009 + + group g_CSE_ANNC_UPD_010{ + + testcase TC_CSE_ANNC_UPD_010_ACP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateAccessControlPolicyAnnc; + var Timestamp v_expirationTime_1 := "21001231T012345"; + var Timestamp v_expirationTime_2 := "21101231T012345"; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_1; + + v_createRequestAnnc.primitiveContent.accessControlPolicyAnnc.expirationTime := v_expirationTime_1; + + v_updateRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_2; + + v_updateRequestAnnc.primitiveContent.accessControlPolicyAnnc.expirationTime := v_expirationTime_2; + + v_cse1.start(f_CSE_ANNC_UPD_010(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_010_CNT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var Timestamp v_expirationTime_1 := "21001231T012345"; + var Timestamp v_expirationTime_2 := "21101231T012345"; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.expirationTime := v_expirationTime_1; + + v_createRequestAnnc.primitiveContent.containerAnnc.expirationTime := v_expirationTime_1; + + v_updateRequest.primitiveContent.container.expirationTime := v_expirationTime_2; + + v_updateRequestAnnc.primitiveContent.containerAnnc.expirationTime := v_expirationTime_2; + + v_cse1.start(f_CSE_ANNC_UPD_010(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_010_GRP() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var Timestamp v_expirationTime_1 := "21001231T012345"; + var Timestamp v_expirationTime_2 := "21101231T012345"; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.expirationTime := v_expirationTime_1; + + v_createRequestAnnc.primitiveContent.groupAnnc.expirationTime := v_expirationTime_1; + + v_updateRequest.primitiveContent.group_.expirationTime := v_expirationTime_2; + + v_updateRequestAnnc.primitiveContent.groupAnnc.expirationTime := v_expirationTime_2; + + v_cse1.start(f_CSE_ANNC_UPD_010(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_010 + + group g_CSE_ANNC_UPD_011{ + + testcase TC_CSE_ANNC_UPD_011_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var XSD.NonNegativeInteger v_maxByteSize_1 := 512; + var XSD.NonNegativeInteger v_maxByteSize_2 := 1024; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize_1; + v_createRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize_1; + + v_updateRequest.primitiveContent.container.maxByteSize := v_maxByteSize_2; + + v_updateRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize_2; + + v_cse1.start(f_CSE_ANNC_UPD_011(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_ANNC_UPD_011_GRP_MT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var MemberType v_memberType_1 := int3; + var MemberType v_memberType_2 := int4; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType_1; + v_createRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType_1; + + v_updateRequest.primitiveContent.group_.memberType := v_memberType_2; + + v_updateRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType_2; + + v_cse1.start(f_CSE_ANNC_UPD_011(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + }// end group g_CSE_ANNC_UPD_011 + + group g_CSE_ANNC_UPD_012{ + + testcase TC_CSE_ANNC_UPD_012_CNT_MBS() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createContainerBase; + var template RequestPrimitive v_createRequestAnnc := mw_createContainerAnncBase; + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateContainerAnnc; + var RequestPrimitive v_requestPrimitive; + var XSD.NonNegativeInteger v_maxByteSize := 512; + var AttributeAux_list v_nullFields; + var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; + + v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.container.maxByteSize := v_maxByteSize; + v_createRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; + + v_createRequestAnnc.primitiveContent.containerAnnc.maxByteSize := v_maxByteSize; + + v_updateRequest.primitiveContent.container.announcedAttribute := v_announcedAttribute; + v_nullFields := {{"announcedAttribute", omit}}; + + v_cse1.start(f_CSE_ANNC_UPD_012(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields));//Container + v_cse1.done; + + if(getverdict == pass){ + v_requestPrimitive := f_getRequestPrimitive(v_cse1); + if(ispresent(v_requestPrimitive.primitiveContent)) { + if(ischosen(v_requestPrimitive.primitiveContent.containerAnnc)) { + if(ispresent(v_requestPrimitive.primitiveContent.containerAnnc.maxByteSize)){ + setverdict(fail, __SCOPE__ & ": Error: maxByteSize attribute is not set to NULL"); + } + } + } + + } + + } + + testcase TC_CSE_ANNC_UPD_012_GRP_MT() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createGroupBase; + var template RequestPrimitive v_createRequestAnnc := mw_createGroupAnncBase; + var template RequestPrimitive v_updateRequest := m_updateGroupBase; + var template RequestPrimitive v_updateRequestAnnc := mw_updateGroupAnnc; + var RequestPrimitive v_requestPrimitive; + var MemberType v_memberType := int3; + var AttributeAux_list v_nullFields; + var ListOfNCNames v_announcedAttribute := {"ToBeDeleted"}; + + v_createRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + v_createRequest.primitiveContent.group_.memberType := v_memberType; + v_createRequest.primitiveContent.group_.announcedAttribute := {"memberType"}; + + v_createRequestAnnc.primitiveContent.groupAnnc.memberType := v_memberType; + + v_updateRequest.primitiveContent.group_.announcedAttribute := v_announcedAttribute; + v_nullFields := {{"announcedAttribute", omit}}; + + v_cse1.start(f_CSE_ANNC_UPD_012(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc, v_nullFields));//Group + v_cse1.done; + + if(getverdict == pass){ + v_requestPrimitive := f_getRequestPrimitive(v_cse1); + if(ispresent(v_requestPrimitive.primitiveContent)) { + if(ischosen(v_requestPrimitive.primitiveContent.groupAnnc)) { + if(ispresent(v_requestPrimitive.primitiveContent.groupAnnc.memberType)){ + setverdict(fail, __SCOPE__ & ": Error: memberType attribute is not set to NULL"); + } + } + } + + } + } + + }// end group g_CSE_ANNC_UPD_012 + + group g_CSE_ANNC_UPD_013{ + + testcase TC_CSE_ANNC_UPD_013_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 := {"maxByteSize"}; + + v_updateRequest.primitiveContent.container.announcedAttribute := v_announcedAttribute; + v_nullFields := {{"announcedAttribute", omit}}; + + v_ae1.start(f_CSE_ANNC_UPD_013(int3, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//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(fail, __SCOPE__ & ": Error: announcedAttribute attribute is not set to NULL"); + } + } + } + + 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(fail, __SCOPE__ & ": Error: announcedAttribute attribute not updated correctly"); + } + } + } + + } + + testcase TC_CSE_ANNC_UPD_013_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 := {"memberType"}; + + v_updateRequest.primitiveContent.group_.announcedAttribute := v_announcedAttribute; + v_nullFields := {{"announcedAttribute", omit}}; + + v_ae1.start(f_CSE_ANNC_UPD_013(int9, v_createRequestAnnc, v_createRequest, v_updateRequest, v_nullFields));//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(fail, __SCOPE__ & ": Error: announcedAttribute attribute is not set to NULL"); + } + } + } + + 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(fail, __SCOPE__ & ": Error: announcedAttribute attribute not updated correctly"); + } + } + } + } + + }// end group g_CSE_ANNC_UPD_013 }//end group Update