diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 39473fac4f1fcd75d0a4d45de79453af94979903..83ae5f095b633ad815f36e07a2720bb499076a39 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 f80e08b3e9cf7dfab4995d975e458aa2342b7ad1..33b2b9e913ce398fcd2e6f845db67b6ab16ca596 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 {