From ad9b9a3a9234d2265ba91fee1ba9810f8e956265 Mon Sep 17 00:00:00 2001 From: pkulkarni <pkulkarni75@gmail.com> Date: Wed, 6 Jun 2018 12:34:11 +0200 Subject: [PATCH] Implemented TPs CSE/PCH/003 and CSE/PCH/005 Signed-off-by: pkulkarni <pkulkarni75@gmail.com> --- LibOneM2M/OneM2M_Templates.ttcn | 26 +++ LibOneM2M/OneM2M_Types.ttcn | 1 + OneM2M_Testcases_CSE_Release_2.ttcn | 238 +++++++++++++++++++++++++++- 3 files changed, 262 insertions(+), 3 deletions(-) diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 59019ba..24cad87 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -1243,6 +1243,14 @@ module OneM2M_Templates { vendorInformation := * }; + /** + * @desc Base UPDATE request primitive for PollingChannel resource + */ + template (value) RequestPrimitive m_deletePollingChannelBase modifies m_delete := { + requestIdentifier := "m_deletePollingChannel", + primitiveContent:= {pollingChannel := m_contentDeletePollingChannel} + }; + }//end group Delete group Notify { @@ -2670,6 +2678,24 @@ module OneM2M_Templates { } }//end group ContentUpdate + + group ContentDelete { + + /** + * @desc Base primitiveContent for DELETE operation for PollingChannel resource + */ + template (value) PollingChannel_optional m_contentDeletePollingChannel := { + resourceName := omit,//NP + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + expirationTime := omit//O + }; + + } //end group ContentDelete group RequestContent { diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn index baa7956..49af981 100644 --- a/LibOneM2M/OneM2M_Types.ttcn +++ b/LibOneM2M/OneM2M_Types.ttcn @@ -1729,6 +1729,7 @@ type union PrimitiveContent { ResourceRefList resourceRefList, AggregatedResponse aggregatedResponse, URI uRI, + RequestPrimitive requestPrimitive, DebugInfo debugInfo, //Invalid types AE_update_invalid aE_update_invalid, diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index 24370a1..dd89ae2 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -7203,7 +7203,7 @@ module OneM2M_Testcases_CSE_Release_2 { * @desc Check that the IUT which hosts <pollingChannel> resource forwards a Notify request successfully to a target AE, once the IUT receives a polling request from AE (retrieve request to <pollingChannelURI> resource) * */ - testcase TC_CSE_PCH_001() runs on Tester system CseSystem { + testcase TC_CSE_PCH_002() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; @@ -7213,7 +7213,7 @@ module OneM2M_Testcases_CSE_Release_2 { } - function f_CSE_PCH_001() runs on AeSimu { + function f_CSE_PCH_002() runs on AeSimu { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; @@ -7271,7 +7271,239 @@ module OneM2M_Testcases_CSE_Release_2 { // Tear down f_cf01Down(); - } // end TC_CSE_PCH_001 + } // end TC_CSE_PCH_002 + + testcase TC_CSE_PCH_003() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_CSE_PCH_003()); + + v_ae1.done; + + } + + function f_CSE_PCH_003() runs on AeSimu { + //Local variables + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var RequestPrimitive v_request; + var MsgIn v_response; + var RequestPrimitive v_requestNotify; + + // Test control + + // Test component configuration + f_cf02Up(); + + // Test adapter configuration + + // Preamble + vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSEBase)); + vc_cse1.done; + + v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; + + v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex); + + v_request := valueof(m_retrievePollingRequest(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + mcaPort.send(m_request(v_request)); + + v_requestNotify := valueof(m_notify(f_getResourceAddress(v_aeIndex))); + vc_cse1.start(f_cse_notifyProcedure_notify(v_requestNotify)); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePollingResponse(v_requestNotify))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Polling response received"); + } + [] mcaPort.receive(mw_response(mw_responsePollingResponse)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Content not carrying request targeting AE1"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); + } + } + + mcaPort.send(m_request(v_requestNotify)); + + //Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf02Down(); + } + + testcase TC_CSE_PCH_004() runs on Tester system CseSystem { + + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + + v_cse1.start(f_CSE_PCH_004()); + + v_cse1.done; + } + + function f_CSE_PCH_004() runs on CseSimu { + + } + + group g_CSE_PCH_005 { + + testcase TC_CSE_PCH_005_CRE() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_request; + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var template RequestPrimitive v_createRequest := m_createPollingChannelBase; + + v_ae1.start(f_CSE_PCH_005(v_aeIndex1, v_aeIndex2)); + v_request := f_getCreateRequestPrimitive(int15, v_createRequest, v_aeIndex1); + v_request.to_ := f_getResourceAddress(v_aeIndex2); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Resource type " & int2str(enum2int(int15)) & " not created as originator has no privilege"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while creating polling resource type " & int2str(enum2int(p_resourceType))); + } + } + v_ae1.done; + + } + + testcase TC_CSE_PCH_005_RET() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_request; + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var template RequestPrimitive v_createRequest := m_createPollingChannelBase; + + v_ae1.start(f_CSE_PCH_005(v_aeIndex1, v_aeIndex2)); + v_request := f_getCreateRequestPrimitive(int15, v_createRequest, v_aeIndex1); + mcaPort.send(m_request(v_request)); + + v_request := valueof(m_retrievePollingRequest(f_getResourceAddress(v_aeIndex1), f_getOriginator(v_aeIndex1))); + v_request.to_ := f_getResourceAddress(v_aeIndex2); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Resource type " & int2str(enum2int(int15)) & " not retrieved as originator has no privilege"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while retrieving polling resource type " & int2str(enum2int(p_resourceType))); + } + } + + v_ae1.done; + } + + testcase TC_CSE_PCH_005_UPD() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + var RequestPrimitive v_request; + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var template RequestPrimitive v_createRequest := m_createPollingChannelBase; + + v_ae1.start(f_CSE_PCH_005(v_aeIndex1, v_aeIndex2)); + v_request := f_getCreateRequestPrimitive(int15, v_createRequest, v_aeIndex1); + mcaPort.send(m_request(v_request)); + + v_request := valueof(m_updatePollingChannelBase); + v_request.to_ := f_getResourceAddress(v_aeIndex2); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Resource type " & int2str(enum2int(int15)) & " not retrieved as originator has no privilege"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while retrieving polling resource type " & int2str(enum2int(p_resourceType))); + } + } + v_ae1.done; + + } + + testcase TC_CSE_PCH_005_DEL() runs on Tester system CseSystem { + + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + var RequestPrimitive v_request; + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var template RequestPrimitive v_createRequest := m_createPollingChannelBase; + + v_ae1.start(f_CSE_PCH_005(v_aeIndex1, v_aeIndex2)); + v_request := f_getCreateRequestPrimitive(int15, v_createRequest, v_aeIndex1); + mcaPort.send(m_request(v_request)); + + v_request := valueof(m_deletePollingChannelBase); + v_request.to_ := f_getResourceAddress(v_aeIndex2); + mcaPort.send(m_request(v_request)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) { + tc_ac.stop; + setverdict(pass, __SCOPE__&":INFO: Resource type " & int2str(enum2int(int15)) & " not deleted as originator has no privilege"); + } + [] tc_ac.timeout { + setverdict(inconc, __SCOPE__&":INFO: No answer while deleting polling resource type " & int2str(enum2int(p_resourceType))); + } + } + v_ae1.done; + + } + + function f_CSE_PCH_005(inout integer p_aeIndex1, inout integer p_aeIndex2) runs on AeSimu { + + //Local variables + var integer v_aeIndex1 := -1; + var integer v_aeIndex2 := -1; + var integer v_resourceIndex := -1; + var integer v_acpAuxIndex := -1; + var RequestPrimitive v_request; + var MsgIn v_response; + var RequestPrimitive v_requestNotify; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int63);//c_CUDNDi) + + p_aeIndex1 := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRDNDi); + + p_aeIndex2 := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRDNDi); + + //v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex); + + + } + } //end group g_CSE_PCH_005 }//end group PollingChannel -- GitLab