From 1c9895c132d64adb3a8d8945a8bc727003e58c53 Mon Sep 17 00:00:00 2001 From: pkulkarni <pkulkarni75@gmail.com> Date: Wed, 10 Jan 2018 17:04:52 +0100 Subject: [PATCH] First draft of TTCN code for TP/oneM2M/CSE/ANNC/001 --- LibOneM2M/OneM2M_Functions.ttcn | 4 ++ OneM2M_PermutationFunctions.ttcn | 79 +++++++++++++++++++++++++++++ OneM2M_Testcases_CSE_Release_2.ttcn | 23 +++++++++ 3 files changed, 106 insertions(+) diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 8cf442c..34c2c0d 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -1736,11 +1736,15 @@ module OneM2M_Functions { */ function f_cse_receiveCreateRequest(in template RequestPrimitive p_requestPrimitive := ?) runs on CseSimu { + var ResponsePrimitive v_responsePrimitive; tc_ac.start; alt { [] mccPortIn.receive(mw_request(p_requestPrimitive)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__&":INFO: CREATE Request received successfuly"); + v_responsePrimitive := f_getCreateResponsePrimitive(vc_request.primitive.requestPrimitive.resourceType, vc_request.primitive.requestPrimitive); + v_responsePrimitive.responseStatusCode := int2001; + mccPortIn.send(m_response(v_responsePrimitive)); } [] mccPortIn.receive(mw_request(?)) { tc_ac.stop; diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index dbcae45..9c2bbba 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -6176,6 +6176,85 @@ module OneM2M_PermutationFunctions { }//end group AccessControlPolicy }//end group Security + + group Annoucement { + + group Basic { + + function f_CSE_ANNC_001(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template (present) RequestPrimitive p_requestAnnc, template(omit) RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu { + + // Local variables + var MsgIn vc_response; + var RequestPrimitive v_request; + var integer v_parentIndex := -1; + var integer v_containerIndex := -1; + var ResponsePrimitive v_responsePrimitive; + + // Test control + + // Test component configuration + f_cf02Up(); + + // Test adapter configuration + + //Register the CSE + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + //Preamble + v_parentIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + vc_cse1.start(f_cse_resourceAnnouncementHandler()); + v_resourceIndex := f_cse_createResource(p_resourceType, m_createAEAnnc(PX_APP_ID, omit, omit)); + vc_cse1.done; + + // Test Body + if (ispresent (p_requestUpdatePrimitive)) { + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); + v_responsePrimitive.responseStatusCode := int2004; + } else { + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_parentIndex); + v_responsePrimitive.responseStatusCode := int2001; + } + mcaPort.send(m_request(v_request)); + + vc_cse1.start(f_cse_receiveCreateRequest(p_requestAnnc)); + vc_cse1.done; + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(v_responsePrimitive.responseStatusCode))) -> value vc_response { + tc_ac.stop; + if (v_responsePrimitive.responseStatusCode == int2004){ + setverdict(pass, __SCOPE__, ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfully"); + } else if (v_responsePrimitive.responseStatusCode == int2001) { + setverdict(pass, __SCOPE__, ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__, ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { + tc_ac.stop; + setverdict(fail, __SCOPE__, ": Error while updating optional attribute"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__, ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + + }//end f_CSE_ANNC_001 + + }//end group Basic + + }// end group Announcement }//end group CSE diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 7d021b0..b0758a6 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -7242,6 +7242,29 @@ module OneM2M_Testcases_CSE_Release_2 { }//end group AccessControlPolicy }//end group Security + + group Announcement { + + group Basic { + + group g_CSE_ANNC_001 { + + testcase TC_CSE_ANNC_001_ACP_UPD() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_createRequest.primitiveContent.accessControlPolicy.announceTo := {f_getAnnouncementTargetPoA()}; + + v_ae1.start(f_CSE_ANNC_001(int1, v_createRequest, mw_createAccessControlPolicyAnnc, v_updateRequest));//AccessControlPolicy + v_ae1.done; + } + + }// end group g_CSE_ANNC_001 + + } + } }//end group CSE -- GitLab