From 6733eb0c6fabf254ff00373b858607665036c5e8 Mon Sep 17 00:00:00 2001 From: reinaortega <miguelangel.reinaortega@etsi.org> Date: Thu, 7 Feb 2019 16:05:56 +0100 Subject: [PATCH] New TCs implemented for rcn related TPs According to: - TDE-2019-0013 - TDE-2019-0012 Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org> --- LibOneM2M/OneM2M_Templates.ttcn | 12 +- OneM2M_PermutationFunctions.ttcn | 767 +++++++++++++++++++++++++--- OneM2M_Testcases_CSE_Release_2.ttcn | 748 ++++++++++++++++++++++++++- 3 files changed, 1437 insertions(+), 90 deletions(-) diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index d0a9087..43d2eaf 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -3868,7 +3868,7 @@ module OneM2M_Templates { } template AccessControlPolicy_optional mw_contentAcp_rc8 modifies m_contentAcp_allOmit := { - choice := {childResource_list := ?} //O + choice := {choice_list := ?} //O } template Group_optional mw_contentGroupBase := { @@ -4003,7 +4003,7 @@ module OneM2M_Templates { } template Group_optional mw_contentGroup_rc8 modifies m_contentGroup_allOmit := { - choice := {childResource_list := ?} //O + choice := {choice_list := ?} //O } template MgmtCmd_optional m_contentMgmtCmd_allOmit := { @@ -4270,7 +4270,7 @@ module OneM2M_Templates { } template Schedule_optional mw_contentSchedule_rc8 modifies m_contentSchedule_allOmit := { - choice := {childResource_list := ?} //O + choice := {choice_list := ?} //O } template StatsCollect_optional m_contentStatsCollect_allOmit := { @@ -4453,7 +4453,7 @@ module OneM2M_Templates { } template Subscription_optional mw_contentSubscription_rc8 modifies m_contentSubscription_allOmit := { - choice := {childResource_list := ?} //O + choice := {choice_list := ?} //O } template ContentInstance_optional mw_contentContentInstanceBase := { @@ -4654,7 +4654,7 @@ module OneM2M_Templates { } template Container_optional mw_contentContainer_rc8 modifies m_contentContainer_allOmit := { - choice := {childResource_list := ?} //O + choice := {choice_list := ?} //O } template Notification m_contentNotification_allOmit := { @@ -4876,7 +4876,7 @@ module OneM2M_Templates { } template TimeSeries_optional mw_contentTimeSeries_rc8 modifies m_contentTimeSeries_allOmit := { - choice := {childResource_list := ?} //O + choice := {choice_list := ?} //O } diff --git a/OneM2M_PermutationFunctions.ttcn b/OneM2M_PermutationFunctions.ttcn index cd148c7..6238466 100644 --- a/OneM2M_PermutationFunctions.ttcn +++ b/OneM2M_PermutationFunctions.ttcn @@ -2966,7 +2966,121 @@ module OneM2M_PermutationFunctions { }//end f_CSE_DMR_CRE_018 - function f_CSE_DMR_CRE_019(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseSimu{ + function f_CSE_DMR_CRE_019(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_ae2Index := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); + + // Test Body + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); + v_request.resultContent := int1;//Attributes + + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001, p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Only attributes provided with RC set to 1"); + + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong content provided with RC set to 1"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while creating resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_CRE_019 + + function f_CSE_DMR_CRE_020(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_ae2Index := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); + + // Test Body + v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); + v_request.resultContent := int9;//Modified Attributes + + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001, p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Only modified attributes provided with RC set to 9"); + + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong content provided with RC set to 9"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while creating resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while creating resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_CRE_020 + + function f_CSE_DMR_CRE_021(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseSimu{ // Local variables var MsgIn v_response; @@ -3028,9 +3142,9 @@ module OneM2M_PermutationFunctions { // Tear down f_cf04Down(); - }//end f_CSE_DMR_CRE_019 + }//end f_CSE_DMR_CRE_021 - function f_CSE_DMR_CRE_020(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template (present) RequestPrimitive p_requestAnnc) runs on AeSimu { + function f_CSE_DMR_CRE_022(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template (present) RequestPrimitive p_requestAnnc) runs on AeSimu { // Local variables var MsgIn v_response; @@ -3067,9 +3181,9 @@ module OneM2M_PermutationFunctions { // Tear down f_cf02Down(); - }//end f_CSE_DMR_CRE_020 + }//end f_CSE_DMR_CRE_022 - function f_CSE_DMR_CRE_021(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template (present) RequestPrimitive p_requestAnnc) runs on AeSimu{ + function f_CSE_DMR_CRE_023(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template (present) RequestPrimitive p_requestAnnc) runs on AeSimu{ // Local variables var MsgIn v_anncRequest; @@ -3122,7 +3236,7 @@ module OneM2M_PermutationFunctions { //return v_anncRequest.primitive.requestPrimitive; - }//end f_CSE_DMR_CRE_021 + }//end f_CSE_DMR_CRE_023 }//end group Create @@ -5457,108 +5571,367 @@ module OneM2M_PermutationFunctions { f_cf02DownCseSimuMaster(); }//end f_CSE_DMR_UPD_018 + + function f_CSE_DMR_UPD_019(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, ResultContent p_resultContent) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); + + // Test Body + v_updateRequest.primitiveContent.container.labels := {"VALUE_1"}; + v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, v_updateRequest); + v_updateRequest.resultContent := p_resultContent; + mcaPort.send(f_getMsgOutPrimitive(m_request(v_updateRequest))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) { //BAD REQUEST + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Request successfully rejected"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error, Result content set to " & int2str(enum2int(p_resultContent)) & " is impossible for a UPDATE request "); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_UPD_019 - }//end group Update - - group Delete { - - function f_CSE_DMR_DEL_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on AeSimu { + function f_CSE_DMR_UPD_020(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu { + // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; - var integer v_parentIndex := -1; - var integer v_containerIndex := -1; - var integer v_resourceIndex := -1; var integer v_ae2Index := -1; - + var integer v_resourceIndex := -1; + var integer v_childResourceIndex := -1; + // Test control - + // Test component configuration f_cf01Up(true); - + // Test adapter configuration - + // Preamble - v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi) - - f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); - - if(p_resourceType == int4) { - v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); - v_parentIndex := v_containerIndex; - }else{ - v_parentIndex := v_aeIndex; + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(isvalue(p_childResourceType)) { + if(valueof(p_childResourceType) == int23) { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_childRequestPrimitive, valueof(p_childResourceType)); + } else { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, valueof(p_resourceType)); + } + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); + + if(p_resourceType != int15) { + v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } - - v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); - + // Test Body - v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); - + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + v_request.resultContent := int0;//Nothing mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); tc_ac.start; alt { - [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, omit))) -> value v_response { tc_ac.stop; - setverdict(pass, __SCOPE__ & ": Resource" & int2str(enum2int(p_resourceType)) & " deleted successfully"); + setverdict(pass, __SCOPE__ & ": Nothing provided with RCN set to " & int2str(enum2int(v_request.resultContent))); } - [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(omit))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } - [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; - setverdict(fail, __SCOPE__ & ": Error while deleting resource type " & int2str(enum2int(p_resourceType))); + setverdict(fail, __SCOPE__ & ": Some content provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating resource"); } [] tc_ac.timeout { - setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType))); + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); } } - f_checkAeSimuStatus(); - - //Check to see if the resource is present or not - if (f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(vc_resourcesList[v_resourceIndex].resource))){ - setverdict(pass, __SCOPE__ & ":INFO: Resource deleted"); - } else { - setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted"); - } - // Postamble f_cse_postamble_deleteResources(); - + // Tear down f_cf01Down(); - - };//end f_CSE_DMR_DEL_001 - - function f_CSE_DMR_DEL_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on AeSimu { + + }//end f_CSE_DMR_UPD_020 + + function f_CSE_DMR_UPD_021(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu { + // Local variables var MsgIn v_response; var RequestPrimitive v_request; - var RequestPrimitive v_updateRequest; - var integer v_acpAuxIndex := -1; var integer v_aeIndex := -1; - var integer v_resourceIndex := -1; var integer v_ae2Index := -1; - var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_AE_ID}, int63)); - var AccessControlRule v_accessControlRule_2; - var SetOfAcrs v_setOfArcs; - + var integer v_resourceIndex := -1; + var integer v_childResourceIndex := -1; + // Test control - if(not(PICS_ACP_SUPPORT)) { - setverdict(inconc, __SCOPE__ & ": AccessControlPolicy support is required to run this test case"); - stop; - } - + // Test component configuration f_cf01Up(true); - + // Test adapter configuration - + // Preamble - v_acpAuxIndex := f_cse_preamble_createAcpAux(-,-);//c_CRDNDi); + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(isvalue(p_childResourceType)) { + if(valueof(p_childResourceType) == int23) { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_childRequestPrimitive, valueof(p_childResourceType)); + } else { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, valueof(p_resourceType)); + } + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); + + if(p_resourceType != int15) { + v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); + } + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + v_request.resultContent := int1;//Attributes + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": All attributes provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong content provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_UPD_021 + + function f_CSE_DMR_UPD_022(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_ae2Index := -1; + var integer v_resourceIndex := -1; + var integer v_childResourceIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(isvalue(p_childResourceType)) { + if(valueof(p_childResourceType) == int23) { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_childRequestPrimitive, valueof(p_childResourceType)); + } else { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, valueof(p_resourceType)); + } + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); + + if(p_resourceType != int15) { + v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); + } + + // Test Body + v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); + v_request.resultContent := int9;//Modified Attributes + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Only modified attributes provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong content provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while updating resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while updating resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_UPD_022 + + }//end group Update + + group Delete { + + function f_CSE_DMR_DEL_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on AeSimu { + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_parentIndex := -1; + var integer v_containerIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi) + + f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); + + if(p_resourceType == int4) { + v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); + v_parentIndex := v_containerIndex; + }else{ + v_parentIndex := v_aeIndex; + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); + + // Test Body + v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Resource" & int2str(enum2int(p_resourceType)) & " deleted successfully"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while deleting resource type " & int2str(enum2int(p_resourceType))); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType))); + } + } + + f_checkAeSimuStatus(); + + //Check to see if the resource is present or not + if (f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(vc_resourcesList[v_resourceIndex].resource))){ + setverdict(pass, __SCOPE__ & ":INFO: Resource deleted"); + } else { + setverdict(fail, __SCOPE__ & ":ERROR: Resource not deleted"); + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + };//end f_CSE_DMR_DEL_001 + + function f_CSE_DMR_DEL_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on AeSimu { + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var RequestPrimitive v_updateRequest; + var integer v_acpAuxIndex := -1; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + var integer v_ae2Index := -1; + var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_AE_ID}, int63)); + var AccessControlRule v_accessControlRule_2; + var SetOfAcrs v_setOfArcs; + + // Test control + if(not(PICS_ACP_SUPPORT)) { + setverdict(inconc, __SCOPE__ & ": AccessControlPolicy support is required to run this test case"); + stop; + } + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_acpAuxIndex := f_cse_preamble_createAcpAux(-,-);//c_CRDNDi); v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRUNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); @@ -5815,9 +6188,267 @@ module OneM2M_PermutationFunctions { // Tear down f_cf01Down(); };//end f_CSE_DMR_DEL_006 - + + function f_CSE_DMR_DEL_011(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, ResultContent p_resultContent) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_resourceIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); + + // Test Body + v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + v_request.resultContent := p_resultContent; + + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) { //BAD REQUEST + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Request successfully rejected"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error, Result content set to " & int2str(enum2int(p_resultContent)) & " is impossible for a DELETE request "); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_DEL_011 + + function f_CSE_DMR_DEL_012(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_ae2Index := -1; + var integer v_resourceIndex := -1; + var integer v_childResourceIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(isvalue(p_childResourceType)) { + if(valueof(p_childResourceType) == int23) { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_childRequestPrimitive, valueof(p_childResourceType)); + } else { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, valueof(p_resourceType)); + } + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); + + if(p_resourceType != int15) { + v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); + } + + // Test Body + v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + v_request.resultContent := int0;//Nothing + + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002, omit))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Nothing provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(omit))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Some content provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while deleting resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_DEL_012 + + function f_CSE_DMR_DEL_013(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex := -1; + var integer v_ae2Index := -1; + var integer v_resourceIndex := -1; + var integer v_childResourceIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + if(isvalue(p_childResourceType)) { + if(valueof(p_childResourceType) == int23) { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_childRequestPrimitive, valueof(p_childResourceType)); + } else { + f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, valueof(p_resourceType)); + } + } + + v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); + + if(p_resourceType != int15) { + v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); + } + + // Test Body + v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); + v_request.resultContent := int1;//Attributes + + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002, p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": All attributes provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong content provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error while deleting resource"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); + } + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_DEL_013 + }//end group Delete + group Notify { + + function f_CSE_DMR_NTF_001(ResultContent p_resultContent) runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex, v_ae2Index := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + vc_ae2.start(f_cse_createAccessControlPolicyAux("Ae2Acp",{"all"}, int63)); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, c_defaultAE2Name, {f_getCompletePoA("HTTP", PX_AE2_ADDRESS, "")}), -1)); // AE2 is registred + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + v_ae2Index := f_getLatestResource(vc_ae2); + + // Test Body + v_request := valueof(m_notifyNotification(f_getResourceAddress(v_ae2Index), m_contentNotification_subscriptionVerification(vc_resourcesList[v_ae2Index].resource.aE.aE_ID))); + v_request.from_ := f_getOriginator(v_aeIndex, e_ae); + v_request.resultContent := p_resultContent; + + vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler()); + + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) { //BAD REQUEST + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Request successfully rejected"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error, Result content set to " & int2str(enum2int(p_resultContent)) & " is not valid for a NOTIFY request "); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); + } + } + + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_NTF_001 + + }//end group Notify + }//end group Data_Management_and_Repository group Location { diff --git a/OneM2M_Testcases_CSE_Release_2.ttcn b/OneM2M_Testcases_CSE_Release_2.ttcn index e8f937d..ecb752c 100644 --- a/OneM2M_Testcases_CSE_Release_2.ttcn +++ b/OneM2M_Testcases_CSE_Release_2.ttcn @@ -816,7 +816,152 @@ module OneM2M_Testcases_CSE_Release_2 { v_ae1.start(f_CSE_DMR_CRE_018(int8));//ResultContent = 8 (child resources) v_ae1.done; } - } // end g_CSE_DMR_CRE_018 + } // end g_CSE_DMR_CRE_018 + + group g_CSE_DMR_CRE_019 { + /** + * @desc Check that the IUT returns successfully only attributes of TARGET_RESOURCE_ADDRESS resource when the ResultContent set to 1 (Attributes) + * + */ + testcase TC_CSE_DMR_CRE_019_CNT() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.container := mw_contentContainer_rc1; + + v_ae1.start(f_CSE_DMR_CRE_019(int3, m_createContainerBase, v_contentResponse));//Container + v_ae1.done; + } + + testcase TC_CSE_DMR_CRE_019_GRP() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.group_ := mw_contentGroup_rc1; + + v_ae1.start(f_CSE_DMR_CRE_019(int9, m_createGroupBase, v_contentResponse));//Group + v_ae1.done; + } + + testcase TC_CSE_DMR_CRE_019_ACP() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.accessControlPolicy := mw_contentAcp_rc1; + + v_ae1.start(f_CSE_DMR_CRE_019(int1, m_createAcpBase, v_contentResponse));//AccessControlPolicy + v_ae1.done; + } + + testcase TC_CSE_DMR_CRE_019_SUB() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.subscription := mw_contentSubscription_rc1; + + v_ae1.start(f_CSE_DMR_CRE_019(int23, m_createSubscriptionBase, v_contentResponse));//Subscription + v_ae1.done; + } + + testcase TC_CSE_DMR_CRE_019_PCH() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.pollingChannel := mw_contentPollingChannel_rc1; + + v_ae1.start(f_CSE_DMR_CRE_019(int15, m_createPollingChannelBase, v_contentResponse));//PollingChannel + v_ae1.done; + } + + } // end g_CSE_DMR_CRE_019 + + group g_CSE_DMR_CRE_020 { + + /** + * @desc Check that the IUT returns successfully only modified attributes of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 9 (modified attributes) + * + */ + testcase TC_CSE_DMR_CRE_020_CNT() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.container := mw_contentContainer_rc1; + + v_ae1.start(f_CSE_DMR_CRE_020(int3, m_createContainerBase, v_contentResponse));//Container + v_ae1.done; + } + + testcase TC_CSE_DMR_CRE_020_GRP() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.group_ := mw_contentGroup_rc1; + + v_ae1.start(f_CSE_DMR_CRE_020(int9, m_createGroupBase, v_contentResponse));//Group + v_ae1.done; + } + + testcase TC_CSE_DMR_CRE_020_ACP() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.accessControlPolicy := mw_contentAcp_rc1; + + v_ae1.start(f_CSE_DMR_CRE_020(int1, m_createAcpBase,v_contentResponse));//AccessControlPolicy + v_ae1.done; + } + + testcase TC_CSE_DMR_CRE_020_SUB() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.subscription := mw_contentSubscription_rc1; + + v_ae1.start(f_CSE_DMR_CRE_020(int23, m_createSubscriptionBase, v_contentResponse));//Subscription + v_ae1.done; + } + + testcase TC_CSE_DMR_CRE_020_PCH() runs on Tester system CseSystem { + // Local variables + var template PrimitiveContent v_contentResponse; + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_contentResponse.pollingChannel := mw_contentPollingChannel_rc1; + + v_ae1.start(f_CSE_DMR_CRE_020(int15, m_createPollingChannelBase, v_contentResponse));//PollingChannel + v_ae1.done; + } + } // end g_CSE_DMR_CRE_020 + }//end group Create group Retrieve { @@ -877,6 +1022,14 @@ module OneM2M_Testcases_CSE_Release_2 { v_ae1.done; } + testcase TC_CSE_DMR_RET_020_RCN_9() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_RET_020(int3, m_createContainerBase, int9));//ResultContent = 9 (modified attributes) + v_ae1.done; + } } // end g_CSE_DMR_RET_020 group g_CSE_DMR_RET_021 { @@ -2040,31 +2193,594 @@ module OneM2M_Testcases_CSE_Release_2 { } // end g_CSE_DMR_UPD_014 + + group g_CSE_DMR_UPD_019 { + + /** + * @desc Check that the IUT rejects a UPDATE Request target to TARGET_RESOURCE_ADDRESS resource when the Result Content set to RESULT_CONTENT + * + */ + testcase TC_CSE_DMR_UPD_019_RCN_2() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_UPD_019(int3, m_createContainerBase, int2));//ResultContent = 2 (hierarchical address) + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_019_RCN_3() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_UPD_019(int3, m_createContainerBase, int3));//ResultContent = 3 (attributes and hierarchichal address) + v_ae1.done; + } - }//end group Update - - group Delete { - - group g_CSE_DMR_DEL_001{ + testcase TC_CSE_DMR_UPD_019_RCN_4() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_UPD_019(int3, m_createContainerBase, int4));//ResultContent = 4 (attributes and child resources) + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_019_RCN_5() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_UPD_019(int3, m_createContainerBase, int5));//ResultContent = 5 (attributes and child resource references) + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_019_RCN_6() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_UPD_019(int3, m_createContainerBase, int6));//ResultContent = 6 (child resource references) + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_019_RCN_7() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_UPD_019(int3, m_createContainerBase, int7));//ResultContent = 7 (original resource) + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_019_RCN_8() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_UPD_019(int3, m_createContainerBase, int8));//ResultContent = 8 (child resources) + v_ae1.done; + } + } // end g_CSE_DMR_UPD_019 + group g_CSE_DMR_UPD_020 { + /** - * @desc Check that the IUT accepts the deletion of a RESOURCE_TYPE resource + * @desc Check that the IUT returns nothing of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 0 (nothing) * */ - testcase TC_CSE_DMR_DEL_001_PCH() runs on Tester system CseSystem { + testcase TC_CSE_DMR_UPD_020_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); v_ae1.done; - - v_ae1.start(f_CSE_DMR_DEL_001(int15, m_createPollingChannelBase));//PollingChannel + v_updateRequest.primitiveContent.container.labels := {"VALUE_1"}; + + v_ae1.start(f_CSE_DMR_UPD_020(int3, m_createContainerBase, int3, m_createContainerBase, v_updateRequest));//Container v_ae1.done; - }; - - };//end of group g_CSE_DMR_DEL_001 - - - }//end group Delete + } + + testcase TC_CSE_DMR_UPD_020_GRP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_updateRequest.primitiveContent.group_.labels := {"VALUE_1"}; + + v_ae1.start(f_CSE_DMR_UPD_020(int9, m_createGroupBase, int23, m_createSubscriptionBase, v_updateRequest));//Group + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_020_ACP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateAcpBase); + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_updateRequest.primitiveContent.accessControlPolicy.labels := {"VALUE_1"}; + + v_ae1.start(f_CSE_DMR_UPD_020(int1, m_createAcpBase, int23, m_createSubscriptionBase, v_updateRequest));//AccessControlPolicy + v_ae1.done; + } + + } // end g_CSE_DMR_UPD_020 + + group g_CSE_DMR_UPD_021 { + + /** + * @desc Check that the IUT returns successfully only attributes of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 1 (attributes) + * + */ + testcase TC_CSE_DMR_UPD_021_CNT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); + var template PrimitiveContent v_contentResponse; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_updateRequest.primitiveContent.container.labels := {"VALUE_1"}; + v_contentResponse := f_getTemplateFromPrimitiveContent(v_updateRequest.primitiveContent); + + v_ae1.start(f_CSE_DMR_UPD_021(int3, m_createContainerBase, v_contentResponse, int3, m_createContainerBase, v_updateRequest));//Container + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_021_GRP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); + var template PrimitiveContent v_contentResponse; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_updateRequest.primitiveContent.group_.labels := {"VALUE_1"}; + v_contentResponse := f_getTemplateFromPrimitiveContent(v_updateRequest.primitiveContent); + + v_ae1.start(f_CSE_DMR_UPD_021(int9, m_createGroupBase, v_contentResponse, int23, m_createSubscriptionBase, v_updateRequest));//Group + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_021_ACP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateAcpBase); + var template PrimitiveContent v_contentResponse; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_updateRequest.primitiveContent.accessControlPolicy.labels := {"VALUE_1"}; + v_contentResponse := f_getTemplateFromPrimitiveContent(v_updateRequest.primitiveContent); + + v_ae1.start(f_CSE_DMR_UPD_021(int1, m_createAcpBase,v_contentResponse, int23, m_createSubscriptionBase, v_updateRequest));//AccessControlPolicy + v_ae1.done; + } + + } // end g_CSE_DMR_UPD_021 + + group g_CSE_DMR_UPD_022 { + + /** + * @desc Check that the IUT returns nothing of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 0 (nothing) + * + */ + testcase TC_CSE_DMR_UPD_022_CNT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); + var template PrimitiveContent v_contentResponse; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_contentResponse.container := m_contentContainer_allOmit; + v_contentResponse.container.labels := ?; + v_updateRequest.primitiveContent.container.labels := {"VALUE_1"}; + + v_ae1.start(f_CSE_DMR_UPD_022(int3, m_createContainerBase, v_contentResponse, int3, m_createContainerBase, v_updateRequest));//Container + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_022_GRP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); + var template PrimitiveContent v_contentResponse; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_contentResponse.group_ := m_contentGroup_allOmit; + v_contentResponse.group_.labels := ?; + v_updateRequest.primitiveContent.group_.labels := {"VALUE_1"}; + + v_ae1.start(f_CSE_DMR_UPD_022(int9, m_createGroupBase, v_contentResponse, int23, m_createSubscriptionBase, v_updateRequest));//Group + v_ae1.done; + } + + testcase TC_CSE_DMR_UPD_022_ACP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateAcpBase); + var template PrimitiveContent v_contentResponse; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_contentResponse.accessControlPolicy := m_contentAcp_allOmit; + v_contentResponse.accessControlPolicy.labels := ?; + v_updateRequest.primitiveContent.accessControlPolicy.labels := {"VALUE_1"}; + + v_ae1.start(f_CSE_DMR_UPD_022(int1, m_createAcpBase,v_contentResponse, int23, m_createSubscriptionBase, v_updateRequest));//AccessControlPolicy + v_ae1.done; + } + + } // end g_CSE_DMR_UPD_022 + + }//end group Update + + group Delete { + + group g_CSE_DMR_DEL_001{ + + /** + * @desc Check that the IUT accepts the deletion of a RESOURCE_TYPE resource + * + */ + testcase TC_CSE_DMR_DEL_001_PCH() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_ae1.start(f_CSE_DMR_DEL_001(int15, m_createPollingChannelBase));//PollingChannel + v_ae1.done; + }; + + };//end of group g_CSE_DMR_DEL_001 + + group g_CSE_DMR_DEL_011 { + + /** + * @desc Check that the IUT rejects a DELETE Request target to TARGET_RESOURCE_ADDRESS resource when the Result Content set to RESULT_CONTENT + * + */ + testcase TC_CSE_DMR_DEL_011_RCN_2() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_DEL_011(int3, m_createContainerBase, int2));//ResultContent = 2 (hierarchical address) + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_011_RCN_3() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_DEL_011(int3, m_createContainerBase, int3));//ResultContent = 3 (attributes and hierarchichal address) + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_011_RCN_4() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_DEL_011(int3, m_createContainerBase, int4));//ResultContent = 4 (attributes and child resources) + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_011_RCN_5() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_DEL_011(int3, m_createContainerBase, int5));//ResultContent = 5 (attributes and child resource references) + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_011_RCN_6() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_DEL_011(int3, m_createContainerBase, int6));//ResultContent = 6 (child resource references) + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_011_RCN_7() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_DEL_011(int3, m_createContainerBase, int7));//ResultContent = 7 (original resource) + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_011_RCN_8() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_DEL_011(int3, m_createContainerBase, int8));//ResultContent = 8 (child resources) + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_011_RCN_9() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_DEL_011(int3, m_createContainerBase, int9));//ResultContent = 9 (modified attributes) + v_ae1.done; + } + } // end g_CSE_DMR_DEL_011 + + group g_CSE_DMR_DEL_012 { + + /** + * @desc Check that the IUT returns nothing of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 0 (nothing) + * + */ + testcase TC_CSE_DMR_DEL_012_CNT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_ae1.start(f_CSE_DMR_DEL_012(int3, m_createContainerBase, int3, m_createContainerBase));//Container + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_012_GRP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_ae1.start(f_CSE_DMR_DEL_012(int9, m_createGroupBase, int23, m_createSubscriptionBase));//Group + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_012_ACP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + + v_ae1.start(f_CSE_DMR_DEL_012(int1, m_createAcpBase, int23, m_createSubscriptionBase));//AccessControlPolicy + v_ae1.done; + } + + } // end g_CSE_DMR_DEL_012 + + group g_CSE_DMR_DEL_013 { + + /** + * @desc Check that the IUT returns succesfully only attributes of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 1 (attributes) + * + */ + testcase TC_CSE_DMR_DEL_013_CNT() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_contentResponse; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_contentResponse.container := mw_contentContainer_rc1; + + v_ae1.start(f_CSE_DMR_DEL_013(int3, m_createContainerBase, v_contentResponse, int3, m_createContainerBase));//Container + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_013_GRP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_contentResponse; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_contentResponse.group_ := mw_contentGroup_rc1; + + v_ae1.start(f_CSE_DMR_DEL_013(int9, m_createGroupBase, v_contentResponse, int23, m_createSubscriptionBase));//Group + v_ae1.done; + } + + testcase TC_CSE_DMR_DEL_013_ACP() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var template PrimitiveContent v_contentResponse; + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_contentResponse.accessControlPolicy := mw_contentAcp_rc1; + + v_ae1.start(f_CSE_DMR_DEL_013(int1, m_createAcpBase,v_contentResponse, int23, m_createSubscriptionBase));//AccessControlPolicy + v_ae1.done; + } + + } // end g_CSE_DMR_DEL_013 + + + }//end group Delete + + group Notify { + + group g_CSE_DMR_NTF_001 { + + /** + * @desc Check that the IUT rejects a NOTIFY request when the ResultContent is set to RESULT_CONTENT + * + */ + testcase TC_CSE_DMR_NTF_001_RCN_1() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_NTF_001(int1));//ResultContent = 1 (attributes) + v_ae1.done; + } + + testcase TC_CSE_DMR_NTF_001_RCN_2() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_NTF_001(int2));//ResultContent = 2 (hierarchical address) + v_ae1.done; + } + + testcase TC_CSE_DMR_NTF_001_RCN_3() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_NTF_001(int3));//ResultContent = 3 (attributes and hierarchical address) + v_ae1.done; + } + + testcase TC_CSE_DMR_NTF_001_RCN_4() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_NTF_001(int4));//ResultContent = 4 (attributes and child resources) + v_ae1.done; + } + + testcase TC_CSE_DMR_NTF_001_RCN_5() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_NTF_001(int5));//ResultContent = 5 (attributes and child resources references) + v_ae1.done; + } + + testcase TC_CSE_DMR_NTF_001_RCN_6() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_NTF_001(int6));//ResultContent = 6 (child resources references) + v_ae1.done; + } + + testcase TC_CSE_DMR_NTF_001_RCN_7() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_NTF_001(int7));//ResultContent = 7 (original resource) + v_ae1.done; + } + + testcase TC_CSE_DMR_NTF_001_RCN_8() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_ae1.start(f_CSE_DMR_NTF_001(int8));//ResultContent = 8 (child resources) + v_ae1.done; + } + } // end g_CSE_DMR_NTF_001 + + /** + * @desc Check that the IUT returns nothing of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 0 (nothing) + * + */ + testcase TC_CSE_DMR_NTF_002() runs on Tester system CseSystem { + // Local variables + var AeSimu v_ae1 := AeSimu.create("AE1") alive; + var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); + + v_ae1.start(f_setProtocolBinding(PX_PROTOCOL_BINDING_AE1)); + v_ae1.done; + v_updateRequest.primitiveContent.container.labels := {"VALUE_1"}; + + v_ae1.start(f_CSE_DMR_NTF_002()); + v_ae1.done; + } + + function f_CSE_DMR_NTF_002() runs on AeSimu { + + // Local variables + var MsgIn v_response; + var RequestPrimitive v_request; + var integer v_aeIndex, v_ae2Index := -1; + + // Test control + + // Test component configuration + f_cf01Up(true); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + vc_ae2.start(f_cse_createAccessControlPolicyAux("Ae2Acp",{"all"}, int63)); + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_APP_ID, -, PX_AE2_ID_STEM, c_defaultAE2Name, {f_getCompletePoA("HTTP", PX_AE2_ADDRESS, "")}), -1)); // AE2 is registred + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + v_ae2Index := f_getLatestResource(vc_ae2); + + // Test Body + v_request := valueof(m_notifyNotification(f_getResourceAddress(v_ae2Index), m_contentNotification_subscriptionVerification(vc_resourcesList[v_ae2Index].resource.aE.aE_ID))); + v_request.from_ := f_getOriginator(v_aeIndex, e_ae); + v_request.resultContent := int0; + + vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler()); + + mcaPort.send(f_getMsgOutPrimitive(m_request(v_request))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, omit))) -> value v_response { + tc_ac.stop; + setverdict(pass, __SCOPE__ & ": Nothing provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(omit))) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Wrong response status code"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Some content provided with RCN set to " & int2str(enum2int(v_request.resultContent))); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, __SCOPE__ & ": Error on the notification"); + } + [] tc_ac.timeout { + setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); + } + } + + f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end f_CSE_DMR_NTF_002 + + + + + + + + }//end group Notify }//end group Data_Management_and_Repository -- GitLab