From 863b9bbb10aa212cb861517a66537a0cbb5f11c4 Mon Sep 17 00:00:00 2001 From: pkulkarni <pkulkarni75@gmail.com> Date: Tue, 3 Jul 2018 16:44:15 +0200 Subject: [PATCH] Implemented TPs DMR_UPD_017, DMR_UPD_018, DMR_CRE_001_SUB_AEA, DMR_CRE_001_CNT_AEA, DMR_CRE_001_GRP_AEA and DMR_CRE_001_ACP_AEA --- OneM2M_PermutationFunctions.ttcn | 131 ++++++++++++++++++ OneM2M_Testcases_CSE_Release_2.ttcn | 200 ++++++++++++++++++++++++++++ 2 files changed, 331 insertions(+) diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index b1045d2..3efe112 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -4841,6 +4841,137 @@ module OneM2M_PermutationFunctions { } } //end function f_CSE_DMR_UPD_016 + + function f_CSE_DMR_UPD_017(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) 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)); + v_ae1.done; + + v_latestResourceIndex := f_getLatestResourceIndex(v_ae1); + + // Test Body + v_ae1.start(f_cse_updateResource(p_resourceType, v_latestResourceIndex, p_requestUpdatePrimitive)); + + tc_ac.start; + alt { + [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value v_request { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ":INFO: CREATE REQUEST received"); + + if(match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_hierarchical, e_spRelative)) or + match(v_request.primitive.requestPrimitive.to_, f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1, e_nonHierarchical, e_spRelative))) { + setverdict(pass, __SCOPE__ & ":matching ANNC_PARENT_RESOURCE_ADDRESS"); + } else { + setverdict(fail, __SCOPE__ & ":mis-matching ANNC_PARENT_RESOURCE_ADDRESS"); + } + + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ":ERROR: No CREATE REQUEST received"); + } + } + v_ae1.done; + + // Postamble + f_cse_postamble_deleteResourcesCSE(); + + // Tear down + f_cf02DownCseSimuMaster(); + + }//end f_CSE_DMR_UPD_017 + + function f_CSE_DMR_UPD_018(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_DMR_UPD_018 }//end group Update diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index f4bd2fa..b776f60 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -490,6 +490,82 @@ module OneM2M_Testcases_CSE_Release_2 { } } + testcase TC_CSE_DMR_CRE_001_SUB_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createSubscriptionBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + + v_createRequest.primitiveContent.subscription.resourceName := omit; + v_ae1.start(f_CSE_DMR_CRE_001(int23, v_createRequest, v_createAEAnnc));//Subscription + v_ae1.done; + + + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_001_CNT_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createContainerBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + + v_createRequest.primitiveContent.subscription.resourceName := omit; + v_ae1.start(f_CSE_DMR_CRE_001(int3, v_createRequest, v_createAEAnnc));//Container + v_ae1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_001_GRP_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createGroupBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_createRequest.primitiveContent.subscription.resourceName := omit; + v_ae1.start(f_CSE_DMR_CRE_001(int9, v_createRequest, v_createAEAnnc));//Group + v_ae1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + + testcase TC_CSE_DMR_CRE_001_ACP_AEA() runs on Tester system CseSystem { + // Local variables + var template RequestPrimitive v_createRequest := m_createAcpBase; + var ResponsePrimitive v_responsePrimitive; + var RequestPrimitive v_createAEAnnc := m_createAEAnnc(omit, omit, omit, PX_CSE1_ID); + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_createRequest.primitiveContent.subscription.resourceName := omit; + v_ae1.start(f_CSE_DMR_CRE_001(int1, v_createRequest, v_createAEAnnc));//Access Control Policy + v_ae1.done; + + if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); + if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){ + setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); + } + } + } + testcase TC_CSE_DMR_CRE_001_NOD_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createNodeBase; @@ -4695,7 +4771,131 @@ module OneM2M_Testcases_CSE_Release_2 { } } // end group g_CSE_DMR_UPD_016 + + group g_CSE_DMR_UPD_017 { + + /** + * @desc Check that the IUT updates successfully the value of the announceTo optional attribute of the RESOURCE_TYPE resource + */ + testcase TC_CSE_DMR_UPD_017_ACP() runs on Tester system CseSystem { + // Local variables + var MnCseSimu v_cse1 := MnCseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createAcpBase; + var template RequestPrimitive v_createRequestAnnc := mw_createAccessControlPolicyAnnc; + var template RequestPrimitive v_updateRequest := m_updateAcpBase; + + v_updateRequest.primitiveContent.accessControlPolicy.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int1, v_createRequest, v_createRequestAnnc, v_updateRequest));//AccessControlPolicy + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_017_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; + v_updateRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int3, v_createRequest, v_createRequestAnnc, v_updateRequest));//Container + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_017_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; + + v_updateRequest.primitiveContent.group_.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int9, v_createRequest, v_createRequestAnnc, v_updateRequest));//Group + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_017_SCH() runs on Tester system CseSystem { + // Local variables + var CseSimu v_cse1 := CseSimu.create("CSE1") alive; + var template RequestPrimitive v_createRequest := m_createScheduleBase; + var template RequestPrimitive v_createRequestAnnc := mw_createScheduleAnncBase; + var template RequestPrimitive v_updateRequest := m_updateScheduleBase; + + v_updateRequest.primitiveContent.schedule.announceTo := {PX_CSE1_ID}; + + v_cse1.start(f_CSE_DMR_UPD_017(int18, v_createRequest, v_createRequestAnnc, v_updateRequest));//Schedule + v_cse1.done; + } + + } //end group g_CSE_DMR_UPD_017 + + group g_CSE_DMR_UPD_018 { + + testcase TC_CSE_DMR_UPD_018_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_DMR_UPD_018(int3, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Container + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_018_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_DMR_UPD_018(int9, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + testcase TC_CSE_DMR_UPD_018_SCH_SE() 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; + + v_createRequest.primitiveContent.schedule.announceTo := {PX_CSE1_ID}; + v_createRequestAnnc.primitiveContent.scheduleAnnc.scheduleElement := {{"0 0 0,1,2 1 1 * *"}};//Attribute 1 + + v_updateRequest.primitiveContent.schedule.announcedAttribute := {"scheduleElement"}; + v_updateRequestAnnc.primitiveContent.scheduleAnnc.scheduleElement := {{"1 1 1,2 1 1 * *"}}; //Attribute 1 + + v_cse1.start(f_CSE_DMR_UPD_018(int18, v_createRequest, v_createRequestAnnc, v_updateRequest, v_updateRequestAnnc));//Group + v_cse1.done; + } + + } //end group g_CSE_DMR_UPD_018 }//end group Update group Delete { -- GitLab