diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index 83ae5f095b633ad815f36e07a2720bb499076a39..5c3eacf306d46bbbeebedd33730928d7e8a0fa5c 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -7847,6 +7847,66 @@ module OneM2M_PermutationFunctions { // Tear down f_cf02Down(); } //end f_CSE_ANNC_UPD_013 + + function f_CSE_ANNC_UPD_014(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; + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); + + vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000)); + 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_014 }//end group Update diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 33b2b9e913ce398fcd2e6f845db67b6ab16ca596..3c02d4cbc71986f963dd27ba42cc79a6095b2f5e 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -8473,7 +8473,34 @@ module OneM2M_Testcases_CSE_Release_2 { } }// end group g_CSE_ANNC_UPD_013 - + + group g_CSE_ANNC_UPD_014{ + + testcase TC_CSE_ANNC_UPD_014_CNT() 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; + + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_ae1.start(f_CSE_ANNC_UPD_014(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(fail, __SCOPE__ & ": Error: announcedAttribute attribute is not set to NULL"); + } + } + } + } + } + } //end group g_CSE_ANNC_UPD_014 }//end group Update group Delete{