/** * Copyright Notification * No part of this document may be reproduced, in an electronic retrieval system or otherwise, except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * © 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC). * All rights reserved. * * @author oneM2M/ETSI * @desc Module containing test cases for oneM2M * */ module OneM2M_PermutationFunctions { import from OneM2M_Types_3GPP_T8 all; import from OneM2M_TestSystem all; import from OneM2M_Templates all; import from OneM2M_Types all;//{type XSD.ID}; import from OneM2M_TypesAndValues all; import from OneM2M_Pixits all; import from LibCommon_Time all; import from OneM2M_Pics all; import from OneM2M_Functions all; import from XSD all; group AE { group General { group Create { function f_AE_GEN_CRE_001(PrimitiveScope p_primitiveScope) runs on CseSimu system AeSystem { var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; var integer v_resourceIndex := -1; var MsgIn v_request; var universal charstring v_action := __SCOPE__ & ": Please, send a valid CREATE Request for container to "; if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } f_cf03Up(); //Send Trigger Message v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, e_nonHierarchical, p_primitiveScope); f_ae_sendUtPrimitive(v_utRequest, v_action & f_getLocalResourceAddress(-, e_nonHierarchical, p_primitiveScope)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_createContainer(-,v_utRequest.requestPrimitive.to_))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container creation request received successfuly"); v_resourceIndex := f_processCreateRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_createContainer())) -> value v_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Create Request with unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); stop; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : No answer while creating resource"); stop; } } // Postamble f_cf03Down(); } function f_AE_GEN_CRE_002(PrimitiveScope p_primitiveScope) runs on CseSimu system AeSystem { var MsgIn v_request; var Integer v_resourceIndex := -1; var template UtTriggerPrimitive v_utRequest := m_utCreateContainer; var universal charstring v_action := __SCOPE__ & ": Please, send a valid CREATE Request for container to "; //Test Control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } f_cf03Up(); //Send Trigger Message v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, e_hierarchical, p_primitiveScope); f_ae_sendUtPrimitive(v_utRequest,v_action & f_getLocalResourceAddress(-, e_hierarchical, p_primitiveScope)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_createContainer(-,v_utRequest.requestPrimitive.to_))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container creation request received successfuly"); v_resourceIndex := f_processCreateRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_createContainer())) -> value v_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Create Request with unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); stop; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : No answer while creating resource"); stop; } } // Postamble f_cf03Down(); } } //end group Create group Update { function f_AE_GEN_UPD_001(PrimitiveScope p_primitiveScope) runs on CseSimu system AeSystem { var MsgIn v_request; var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; var integer v_resourceIndex; var PrimitiveContent v_localResource; var universal charstring v_action := __SCOPE__ & ": Please, send a valid UPDATE Request for container to "; if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } f_cf03Up(); //Send Trigger Message v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_resourceIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_resourceIndex, e_nonHierarchical, p_primitiveScope); f_ae_sendUtPrimitive(v_utRequest,v_action & f_getLocalResourceAddress(v_resourceIndex, e_nonHierarchical, p_primitiveScope)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_updateContainer(-,v_utRequest.requestPrimitive.to_))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container update request received successfuly"); f_processUpdateRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_updateContainer())) { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Update Request with unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); stop; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : No answer while updating resource"); stop; } } // Postamble f_cf03Down(); } function f_AE_GEN_UPD_002(PrimitiveScope p_primitiveScope) runs on CseSimu system AeSystem { var MsgIn v_request; var template UtTriggerPrimitive v_utRequest := m_utUpdateContainer; var integer v_resourceIndex := -1; var PrimitiveContent v_localResource; var universal charstring v_action := __SCOPE__ & ": Please, send a valid UPDATE Request for container to "; if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } f_cf03Up(); //Send Trigger Message v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_resourceIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_resourceIndex, e_hierarchical, p_primitiveScope); f_ae_sendUtPrimitive(v_utRequest,v_action & f_getLocalResourceAddress(v_resourceIndex, e_hierarchical, p_primitiveScope)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_updateContainer(-,v_utRequest.requestPrimitive.to_))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container update request received successfuly"); f_processUpdateRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_updateContainer())) { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Update Request with unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); stop; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : No answer while updating resource"); stop; } } // Postamble f_cf03Down(); } } //end group Update group Retrieve { function f_AE_GEN_RET_001(PrimitiveScope p_primitiveScope) runs on CseSimu system AeSystem { var MsgIn v_request; var template UtTriggerPrimitive v_utRequest; var integer v_resourceIndex := -1; var PrimitiveContent v_localResource; var universal charstring v_action := __SCOPE__ & ": Please, send a valid RETRIEVE Request for container to "; if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } f_cf03Up(); //Send Trigger Message v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_resourceIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); v_utRequest := m_utRetrieve(f_getLocalResourceAddress(v_resourceIndex, e_nonHierarchical, p_primitiveScope)); f_ae_sendUtPrimitive(v_utRequest,v_action & f_getLocalResourceAddress(v_resourceIndex, e_nonHierarchical, p_primitiveScope)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_retrieve(v_utRequest.requestPrimitive.to_))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container retrieve request received successfuly"); f_processRetrieveRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_retrieve(?))) -> value v_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Retrieve request with unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); stop; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : No answer while retrieving resource"); stop; } } // Postamble f_cf03Down(); } function f_AE_GEN_RET_002(PrimitiveScope p_primitiveScope) runs on CseSimu system AeSystem { var MsgIn v_request; var template UtTriggerPrimitive v_utRequest; var integer v_resourceIndex := -1; var PrimitiveContent v_localResource; var universal charstring v_action := __SCOPE__ & ": Please, send a valid RETRIEVE Request for container to "; if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } f_cf03Up(); //Send Trigger Message v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_resourceIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); v_utRequest := m_utRetrieve(f_getLocalResourceAddress(v_resourceIndex, e_hierarchical, p_primitiveScope)); f_ae_sendUtPrimitive(v_utRequest,v_action & f_getLocalResourceAddress(v_resourceIndex, e_hierarchical, p_primitiveScope)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_retrieve(v_utRequest.requestPrimitive.to_))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container retrieve request received successfuly"); f_processRetrieveRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_retrieve(?))) -> value v_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Retrieve request with unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); stop; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : No answer while retrieving resource"); stop; } } // Postamble f_cf03Down(); } } //end group Retrieve group Delete { function f_AE_GEN_DEL_001(PrimitiveScope p_primitiveScope) runs on CseSimu system AeSystem { var MsgIn v_request; var template UtTriggerPrimitive v_utRequest := m_utDelete; var integer v_auxInteger; var PrimitiveContent v_localResource; var universal charstring v_action := __SCOPE__ & ": Please, send a valid DELETE Request for container to "; if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } f_cf03Up(); //Send Trigger Message v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_auxInteger := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_auxInteger, e_nonHierarchical, p_primitiveScope); f_ae_sendUtPrimitive(v_utRequest,v_action & f_getLocalResourceAddress(v_auxInteger, e_nonHierarchical, p_primitiveScope)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_delete(v_utRequest.requestPrimitive.to_))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container delete request received successfuly"); f_processDeleteRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_delete(?))) -> value v_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Delete request with unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); stop; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : No answer while updating resource"); stop; } } // Postamble f_cf03Down(); } function f_AE_GEN_DEL_002(PrimitiveScope p_primitiveScope) runs on CseSimu system AeSystem { var MsgIn v_request; var template UtTriggerPrimitive v_utRequest := m_utDelete; var integer v_auxInteger; var PrimitiveContent v_localResource; var universal charstring v_action := __SCOPE__ & ": Please, send a valid DELETE Request for container to "; if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } f_cf03Up(); //Send Trigger Message v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_auxInteger := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_auxInteger, e_hierarchical, p_primitiveScope); f_ae_sendUtPrimitive(v_utRequest,v_action & f_getLocalResourceAddress(v_auxInteger, e_hierarchical, p_primitiveScope)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_delete(v_utRequest.requestPrimitive.to_))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container delete request received successfuly"); f_processDeleteRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_delete(?))) -> value v_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Delete request with unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); stop; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : No answer while updating resource"); stop; } } // Postamble f_cf03Down(); } } //end group Delete }//end group General group Registration { group Create { function f_AE_REG_CRE_002(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request, in universal charstring p_action) runs on CseSimu system AeSystem { //primitives for mcaPortIn var MsgIn v_request; var integer v_parentIndex := -1; var integer v_resourceIndex := -1; var PrimitiveContent v_resource; var ResponsePrimitive v_responsePrimitive; f_cf03Up(); //Send Trigger Message p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); p_request.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(-, -, -)); //Test behavior tc_ac.start; alt{ [] mcaPortIn.receive(mw_request(p_request)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : AE registration request is accepted!!"); v_resourceIndex := f_processCreateRequestPrimitive(v_request.primitive.requestPrimitive); //send back responsePrimitive f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_createAe())) -> value v_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Unexpected AE registration request"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf03Down(); } } // End of subgroup Create group Delete { }// End Delete subgroup }//end Registration subgroup group Data_Management_and_Repository { group Create { function f_AE_DMR_CRE_003(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request, in universal charstring p_action) runs on CseSimu system AeSystem { var MsgIn v_request; var integer v_resourceIndex := -1; var PrimitiveContent v_localResource; var integer v_containerIndex := -1; //Test component configuration f_cf03Up(); //send triggering v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_containerIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_containerIndex, -, -); p_request.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(v_containerIndex, -, -)); //Test behavior tc_ac.start; alt{ //receive MsgIn requestPrimitive [] mcaPortIn.receive(mw_request(p_request)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : ContentInstance creation request is accepted!!"); v_resourceIndex := f_processCreateRequestPrimitive(v_request.primitive.requestPrimitive); //send back responsePrimitive f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_create)) -> value v_request{ tc_ac.stop; setverdict(fail, __SCOPE__ & " : Unexpected CREATE request "); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf03Down(); } function f_AE_DMR_CRE_004(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request, in universal charstring p_action) runs on CseSimu system AeSystem { var MsgIn v_request; var integer v_resourceIndex := -1; //Test component configuration f_cf03Up(); //send triggering primitive to SUT p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); p_request.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(-, -, -)); //Test behavior tc_ac.start; alt{ //receive MsgIn requestPrimitive [] mcaPortIn.receive(mw_request(p_request)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container creation request is accepted!!"); v_resourceIndex := f_processCreateRequestPrimitive(v_request.primitive.requestPrimitive); //send back responsePrimitive f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_create)) { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Unexpected CREATE request "); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf03Down(); } }//End of subgroup Create group Update { function f_AE_DMR_UPD_001(template UtTriggerPrimitive p_utRequest, in universal charstring p_action, template RequestPrimitive p_expectedUpdateRequest) runs on CseSimu system AeSystem { //primitives for mcaPortIn var MsgIn v_request; var integer v_resourceIndex := -1; var PrimitiveContent v_localResource; f_cf03Up(); //Preamble //Send Tr v_localResource := f_generateLocalResource(valueof(m_primitiveContentAe(m_contentCreateAe(omit, -, -, omit))), vc_cSEBaseIndex, int2); v_resourceIndex := f_setLocalResource(v_localResource, int2, vc_cSEBaseIndex); p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_resourceIndex); f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(v_resourceIndex)); //Test behavior tc_ac.start; alt{ [] mcaPortIn.receive(mw_request(p_expectedUpdateRequest)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : AE update request is accepted!"); f_processUpdateRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_update)) -> value v_request { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Unexpected UPDATE request"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf03Down(); } function f_AE_DMR_UPD_002(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request, in universal charstring p_action) runs on CseSimu system AeSystem { var MsgIn v_request; var PrimitiveContent v_localResource; var integer v_resourceIndex := -1; //Test component configuration f_cf03Up(); //send triggering v_localResource := f_generateLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); v_resourceIndex := f_setLocalResource(v_localResource, int3, vc_cSEBaseIndex); p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(v_resourceIndex); f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(v_resourceIndex)); //Test behavior tc_ac.start; alt{ //receive MsgIn requestPrimitive [] mcaPortIn.receive(mw_request(p_request)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Container update request is accepted!!"); f_processUpdateRequestPrimitive(v_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_update)) { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Unexpected UPDATE request"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf03Down(); } }//End of subgroup Update group Retrieve { function f_AE_DMR_RET_001(ResourceType p_resourceType, in template (omit) PrimitiveContent p_primitiveContent, in universal charstring p_action) runs on CseSimu system AeSystem { //variables var template UtTriggerPrimitive v_utRequest; var MsgIn v_request; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_localResource; var integer v_resourceIndex := -1; //Test component configuration f_cf03Up(); //send triggering message if(p_resourceType != int5) { v_localResource := f_generateLocalResource(p_primitiveContent, vc_cSEBaseIndex, p_resourceType); v_resourceIndex := f_setLocalResource(v_localResource, p_resourceType, vc_cSEBaseIndex); } else { v_resourceIndex := vc_cSEBaseIndex; } v_utRequest := m_utRetrieve(f_getLocalResourceAddress(v_resourceIndex)); f_ae_sendUtPrimitive(v_utRequest,p_action & f_getLocalResourceAddress(v_resourceIndex)); //Test behavior tc_ac.start; alt{ [] mcaPortIn.receive(mw_request(mw_retrieve(f_getLocalResourceAddress(v_resourceIndex)))) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : retrieve resource type request is accepted!!"); v_responsePrimitive := valueof(m_responsePrimitive(int2000, v_request.primitive.requestPrimitive.requestIdentifier, vc_localResourcesList[v_resourceIndex].resource)); f_send(e_mcaPortIn, m_response(v_responsePrimitive)); } [] mcaPortIn.receive (mw_request(mw_retrieve(?))){ tc_ac.stop; setverdict(fail, __SCOPE__ & " : Retrieve request for unexpected target"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf03Down(); } }//End of subgroup Retrieve group Delete { } }//end DMR subgroup group Subscription_and_Notification { group Create { function f_AE_SUB_CRE_002(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request, in universal charstring p_action) runs on CseSimu system AeSystem { var MsgIn v_request; var integer v_parentIndex := -1; var integer v_resourceIndex := -1; var PrimitiveContent v_resource; var ResponsePrimitive v_responsePrimitive; f_cf03Up(); //send triggering primitive to SUT p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(); f_ae_sendUtPrimitive(p_utRequest,p_action); //Test behavior tc_ac.start; alt{ [] mcaPortIn.receive(mw_request(p_request)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Subscription creation request is accepted!"); v_parentIndex := f_getLocalResourceIndex(v_request.primitive.requestPrimitive.to_); v_resource := f_generateLocalResource(v_request.primitive.requestPrimitive.primitiveContent, v_parentIndex, v_request.primitive.requestPrimitive.resourceType); v_resourceIndex := f_setLocalResource(v_resource, v_request.primitive.requestPrimitive.resourceType, v_parentIndex); v_responsePrimitive := valueof(m_responsePrimitive(int2001, v_request.primitive.requestPrimitive.requestIdentifier, vc_localResourcesList[v_resourceIndex].resource)); //send back responsePrimitive f_send(e_mcaPortIn, m_response(v_responsePrimitive)); } [] mcaPortIn.receive { tc_ac.stop; setverdict(fail, __SCOPE__ & " : Subscription creation request is rejected due to not including the optional attribute!"); f_send(e_mcaPortIn, m_response(valueof(m_responsePrimitive(int4004, v_request.primitive.requestPrimitive.requestIdentifier, omit)))); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf03Down(); } }//End Create Group group Notify { }//End of Notify group }//end SUB subgroup group Onthology_Based_Interworking { group Registration { function f_AE_OBI_REG_001() runs on CseSimu { var template UtTriggerPrimitive v_utRequest := m_utCreateAe; var template RequestPrimitive v_requestPrimitive := mw_createAe; var universal charstring v_action := __SCOPE__ & ": Please, start AE-IPE device"; //primitives for mcaPortIn var MsgIn v_request; var integer v_parentIndex := -1; var integer v_resourceIndex := -1; var PrimitiveContent v_resource; var ResponsePrimitive v_responsePrimitive; // Test control if (not(PICS_AE_IPE)) { setverdict(inconc, "PICS_AE_IPE shall be set"); return; } f_cf07Up(); //Send Trigger Message v_utRequest.requestPrimitive.primitiveContent.aE.resourceName := "UNINITIALIZED"; v_requestPrimitive.primitiveContent.aE.resourceName := complement("UNINITIALIZED"); v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); f_ae_sendUtPrimitive(v_utRequest, v_action & f_getLocalResourceAddress(-, -, -)); //Test behavior tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_createAe)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : AE-IPE registration request is accepted!!"); v_resourceIndex := f_processCreateRequestPrimitive(v_request.primitive.requestPrimitive); //send back responsePrimitive f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf07Down(); } } group Initialization { function f_AE_OBI_INI_001() runs on CseSimu { var template UtTriggerPrimitive v_utRequest := m_utCreateAe; var template RequestPrimitive v_requestPrimitive := mw_createAe; var universal charstring v_action := __SCOPE__ & ": Please, start AE-IPE device"; // Test control if (not(PICS_AE_IPE) or (not(PICS_TS_ONTOLOGY_SERVER))) { setverdict(inconc, "PICS_AE_IPE and PICS_TS_ONTOLOGY_SERVER shall be set"); return; } f_cf07Up(); //Send Trigger Message v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); v_utRequest.requestPrimitive.primitiveContent.aE.resourceName := "UNINITIALIZED"; f_ae_sendUtPrimitive(v_utRequest,v_action & f_getLocalResourceAddress(-, -, -)); //Test behavior tc_ac.start; alt { [] mcaPortIn.receive(mw_request(mw_retrieveFormalOntology(v_utRequest.requestPrimitive.to_, v_utRequest.requestPrimitive.from_, PICS_OBI_URI))) -> value vc_request { tc_ac.stop; // Retrieve the formal description of the ontology f_prepare_formal_description_ontology(vc_request.primitive.requestPrimitive); // And send it to the IUT mcaPortIn.send(m_response(vc_response.primitive.responsePrimitive)); // And the final verdict setverdict(pass, __SCOPE__ & "SUT requests at least one of the formal description of the ontology required by none-oneM2M devices"); } [] mcaPortIn.receive { // Any other message is unexpected tc_ac.stop; // Send error f_prepare_formal_description_ontology(vc_request.primitive.requestPrimitive, int4000); mcaPortIn.send(m_response(vc_request.primitive.responsePrimitive)); setverdict(fail, __SCOPE__ & " : Unexpected Retrieve message received from requested SUT!"); } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no response received from requested SUT!"); } } // Postamble f_cf07Down(); } function f_prepare_formal_description_ontology(in RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode := int2000) runs on CseSimu { vc_response.primitive.responsePrimitive := valueof(m_responsePrimitive(p_responseStatusCode, p_request.requestIdentifier)); if(p_responseStatusCode == int2000) { var charstring v_ontology := fx_retrieve_formal_ontology(oct2char(unichar2oct(p_request.primitiveContent.flexContainer.ontologyRef))); // FIXME How to return the formal ontoilogu, this is an OWL file in string foramt //vc_response.primitive.responsePrimitive.primitiveContent := ???; } vc_response.primitive.responsePrimitive.from_ := PX_TS_CSE1.cseId; vc_response.primitive.responsePrimitive.to_ := p_request.from_; } } group Discovery { function f_await_ipe_registration( template UtTriggerPrimitive p_utRequest, in universal charstring p_action, template RequestPrimitive p_request := mw_create, in ResponseStatusCode p_responseStatusCode := int2001 ) runs on CseSimu return integer { var integer v_localResourceIndex := -1; //Send Trigger Message p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); p_request.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(-, -, -)); tc_ac.start; alt { [] mcaPortIn.receive(mw_request(p_request)) -> value vc_request { tc_ac.stop; v_localResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, p_responseStatusCode); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout{ setverdict(inconc, __SCOPE__&":INFO: No creation for resource received"); } } return v_localResourceIndex; } function f_AE_OBI_DIS_001() runs on CseSimu { var template UtTriggerPrimitive v_utRequest := m_utCreateAe; var template RequestPrimitive v_requestPrimitive := mw_createAe; var universal charstring v_action := __SCOPE__ & ": Please, start AE-IPE device"; // Test control if (not(PICS_AE_IPE) or not(PICS_AE_IPE_DISCOVERY)) { setverdict(inconc, "PICS_AE_IPE and PICS_AE_IPE_DISCOVERY shall be set"); return; } f_cf07Up(); // Preamble // Await for AE-IPE registration v_utRequest.requestPrimitive.primitiveContent.aE.resourceName := "UNINITIALIZED"; v_requestPrimitive.primitiveContent.aE.resourceName := complement("UNINITIALIZED"); f_await_ipe_registration(v_utRequest, v_action); // Give time to the AE-IPE to achieve the initial discovery f_sleepIgnoreDef(5.0); // Test body // Request for a non-oneM2M device description f_send(e_mcaPortIn, m_request(m_retrieve(vc_request.primitive.requestPrimitive.from_, vc_request.primitive.requestPrimitive.to_))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(pass,__SCOPE__&":INFO: AE-IPE initial discovery successfuly done"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } } function f_AE_OBI_DIS_002() runs on CseSimu { var template UtTriggerPrimitive v_utRequest := m_utCreateAe; var template RequestPrimitive v_requestPrimitive := mw_createAe; var universal charstring v_action := __SCOPE__ & ": Please, switch on a new none-oneM2M device"; // Test control if (not(PICS_AE_IPE) or not(PICS_AE_IPE_DISCOVERY)) { setverdict(inconc, "PICS_AE_IPE and PICS_AE_IPE_DISCOVERY shall be set"); return; } f_cf07Up(); // Preamble // Await for AE-IPE registration v_utRequest.requestPrimitive.primitiveContent.aE.resourceName := "UNINITIALIZED"; v_requestPrimitive.primitiveContent.aE.resourceName := complement("UNINITIALIZED"); f_await_ipe_registration(v_utRequest, v_action); // Give time to the AE-IPE to achieve the discovery of the new device f_sleepIgnoreDef(5.0); // Test body // Request for a non-oneM2M device description f_send(e_mcaPortIn, m_request(m_retrieve(vc_request.primitive.requestPrimitive.from_, vc_request.primitive.requestPrimitive.to_))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(pass,__SCOPE__&":INFO: AE-IP successfuly discovered new device"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } } function f_AE_OBI_DIS_003() runs on CseSimu { var template UtTriggerPrimitive v_utRequest := m_utCreateAe; var template RequestPrimitive v_requestPrimitive := mw_createAe; var universal charstring v_action := __SCOPE__ & ": Please, switch off the new none-oneM2M device"; // Test control if (not(PICS_AE_IPE) or not(PICS_AE_IPE_DISCOVERY)) { setverdict(inconc, "PICS_AE_IPE and PICS_AE_IPE_DISCOVERY shall be set"); return; } f_cf07Up(); // Preamble // Await for AE-IPE registration v_utRequest.requestPrimitive.primitiveContent.aE.resourceName := "UNINITIALIZED"; v_requestPrimitive.primitiveContent.aE.resourceName := complement("UNINITIALIZED"); f_await_ipe_registration(v_utRequest, v_action); // Give time to the AE-IPE to achieve the discovery of the new device f_sleepIgnoreDef(5.0); // Test body // Request for a non-oneM2M device description f_send(e_mcaPortIn, m_request(m_retrieve(vc_request.primitive.requestPrimitive.from_, vc_request.primitive.requestPrimitive.to_))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) { tc_ac.stop; setverdict(pass,__SCOPE__&":INFO: AE-IP successfuly discovered switched off device"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } } function f_AE_OBI_DIS_004() runs on CseSimu { var template UtTriggerPrimitive v_utRequest := m_utCreateAe; var template RequestPrimitive v_requestPrimitive := mw_createAe; var universal charstring v_action := __SCOPE__ & ": Please, start AE-IPE device"; var RequestPrimitive v_request; // Test control if (not(PICS_AE_IPE) or not(PICS_AE_IPE_DISCOVERY)) { setverdict(inconc, "PICS_AE_IPE and PICS_AE_IPE_DISCOVERY shall be set"); return; } f_cf07Up(); // Preamble // Await for AE-IPE registration v_utRequest.requestPrimitive.primitiveContent.aE.resourceName := "UNINITIALIZED"; v_requestPrimitive.primitiveContent.aE.resourceName := complement("UNINITIALIZED"); f_await_ipe_registration(v_utRequest, v_action); // Give time to the AE-IPE to achieve the discovery of the new device f_sleepIgnoreDef(5.0); // Test body v_request := valueof(m_retrieveFilterUsageOption(vc_request.primitive.requestPrimitive.from_, vc_request.primitive.requestPrimitive.to_, int1)); f_send(e_mcaPortIn, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responseDiscovery)) { tc_ac.stop; setverdict(pass,__SCOPE__&":INFO: AE-IP successfuly discovered switched off device"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } } } group Retrieve { function f_AE_OBI_RET_001() runs on CseSimu { var template UtTriggerPrimitive v_utRequest := m_utCreateAe; var template RequestPrimitive v_requestPrimitive := mw_createAe; var universal charstring v_action := __SCOPE__ & ": Please, start AE-IPE device"; // Test control if (not(PICS_AE_IPE)) { setverdict(inconc, "PICS_AE_IPE shall be set"); return; } f_cf07Up(); // Preamble // Await for AE-IPE registration v_utRequest.requestPrimitive.primitiveContent.aE.resourceName := "UNINITIALIZED"; v_requestPrimitive.primitiveContent.aE.resourceName := complement("UNINITIALIZED"); f_await_ipe_registration(v_utRequest, v_action); // Give time to the AE-IPE to achieve the discovery of the new device f_sleepIgnoreDef(5.0); // Test body // Request for a non-oneM2M device description // TODO Add more details f_send(e_mcaPortIn, m_request(m_retrieve(vc_request.primitive.requestPrimitive.from_, vc_request.primitive.requestPrimitive.to_))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001, mw_primitiveContentFlexContainer(mw_contentFlexContainer)))) { tc_ac.stop; setverdict(pass,__SCOPE__&":INFO: Response OK for retrieving"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } } } } group Home_Appliance_Information_Model { group Create { function f_AE_HAIM_CRE_001(in universal charstring p_action, in template UtTriggerPrimitive p_utRequest, in template RequestPrimitive p_requestPrimitive) runs on CseSimu system AeSystem { var integer v_resourceIndex := -1; //Test component configuration f_cf03Up(); //send triggering primitive to SUT p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); p_requestPrimitive.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(-, -, -)); //Test behavior tc_ac.start; alt{ [] mcaPortIn.receive(mw_request(p_requestPrimitive)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Device model creation request is accepted"); v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_create)) -> value vc_request { tc_ac.stop; //Send Response v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); tc_ac.start; repeat; } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } // Postamble f_cf03Down(); } function f_AE_HAIM_CRE_002(in universal charstring p_action, in template UtTriggerPrimitive p_utRequest, in template RequestPrimitive p_requestPrimitive1, in template RequestPrimitive p_requestPrimitive2) runs on CseSimu system AeSystem { var integer v_resourceIndex := -1; var integer v_parentResourceIndex := -1; //Test component configuration f_cf03Up(); //send triggering primitive to SUT p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); p_requestPrimitive1.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(-, -, -)); //device model creation handler v_parentResourceIndex := f_ae_createResourceHandler(p_requestPrimitive1); //Set Module class parent p_requestPrimitive2.to_ := f_getResourceAddress(v_parentResourceIndex); //Test behavior tc_ac.start; alt{ [] mcaPortIn.receive(mw_request(p_requestPrimitive2)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Module class creation request is accepted"); v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_create)) -> value vc_request { tc_ac.stop; //Send response v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); tc_ac.start; repeat; } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } // Postamble f_cf03Down(); } function f_AE_HAIM_CRE_003(in universal charstring p_action, in template UtTriggerPrimitive p_utRequest, in template RequestPrimitive p_requestPrimitive) runs on CseSimu system AeSystem { var integer v_resourceIndex := -1; var integer v_resourceIndexNode := -1; var integer v_resourceIndexDeviceInfo := -1; var boolean v_nodeCreated := false; var boolean v_deviceInfoCreated := false; var XSD.ID v_resourceAddressNode; //Test component configuration f_cf03Up(); //Send triggering primitive to SUT p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); p_requestPrimitive.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(-, -, -)); //node resource var template RequestPrimitive v_requestPrimitiveNode := mw_createNode; //deviceInfo resource var template RequestPrimitive v_requestPrimitiveDeviceInfo := mw_createDeviceInfo; //Test behavior tc_ac.start; alt{ [v_deviceInfoCreated] mcaPortIn.receive(mw_request(p_requestPrimitive)) -> value vc_request { tc_ac.stop; v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); if(f_checkNodeLink(vc_request.primitive.requestPrimitive.primitiveContent, f_getResourceAddress(v_resourceIndexNode))) { setverdict(pass, __SCOPE__ & " : Device model Properties creation request is correct"); } else { setverdict(fail, __SCOPE__ & " : Device model Properties creation request is not correct"); } } [] mcaPortIn.receive(mw_request(v_requestPrimitiveNode)) -> value vc_request { tc_ac.stop; v_resourceIndexNode := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); v_nodeCreated := true; //Set deviceInfo parent v_requestPrimitiveDeviceInfo.to_ := f_getResourceAddress(v_resourceIndexNode); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); tc_ac.start; repeat; } [v_nodeCreated] mcaPortIn.receive(mw_request(v_requestPrimitiveDeviceInfo)) -> value vc_request { tc_ac.stop; v_resourceIndexDeviceInfo := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); v_deviceInfoCreated := true; f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); tc_ac.start; repeat; } [] mcaPortIn.receive(mw_request(mw_create)) -> value vc_request { tc_ac.stop; //Send Response v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); tc_ac.start; repeat; } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } // Postamble f_cf03Down(); } function f_AE_HAIM_CRE_004(in universal charstring p_action, in template UtTriggerPrimitive p_utRequest, in template RequestPrimitive p_requestPrimitive1, in template RequestPrimitive p_requestPrimitive2) runs on CseSimu system AeSystem { var integer v_resourceIndex := -1; var integer v_parentResourceIndex := -1; //Test component configuration f_cf03Up(); //Send triggering primitive to SUT p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); p_requestPrimitive1.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(-, -, -)); //device model creation handler v_parentResourceIndex := f_ae_createResourceHandler(p_requestPrimitive1); //Set module class parent p_requestPrimitive2.to_ := f_getResourceAddress(v_parentResourceIndex); //Test behavior tc_ac.start; alt{ [] mcaPortIn.receive(mw_request(p_requestPrimitive2)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Module class creation request contains required Properties"); v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_create)) -> value vc_request { tc_ac.stop; //Send response v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); tc_ac.start; repeat; } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } // Postamble f_cf03Down(); } function f_AE_HAIM_CRE_005(in universal charstring p_action, in template UtTriggerPrimitive p_utRequest, in template RequestPrimitive p_requestPrimitive1, in template RequestPrimitive p_requestPrimitive2) runs on CseSimu system AeSystem { var integer v_resourceIndex := -1; var integer v_parentResourceIndex := -1; //Test component configuration f_cf03Up(); //Send triggering primitive to SUT p_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(-, -, -); p_requestPrimitive1.to_ := p_utRequest.requestPrimitive.to_; f_ae_sendUtPrimitive(p_utRequest,p_action & f_getLocalResourceAddress(-, -, -)); //Device model creation handler v_parentResourceIndex := f_ae_createResourceHandler(p_requestPrimitive1); //Set module class parentID p_requestPrimitive2.to_ := f_getResourceAddress(v_parentResourceIndex); //Test behavior tc_ac.start; alt{ [] mcaPortIn.receive(mw_request(p_requestPrimitive2)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & " : Module class creation request contains required DataPoints"); v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mcaPortIn.receive(mw_request(mw_create)) -> value vc_request { tc_ac.stop; //Send response v_resourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mcaPortIn, m_response(vc_response.primitive.responsePrimitive)); tc_ac.start; repeat; } [] tc_ac.timeout{ setverdict(fail, __SCOPE__ & " : Timeout due to no required request received from SUT"); } } // Postamble f_cf03Down(); } }//end group Create }//end group Home_Appliance_Information_Model }//end group AE group CSE { group Generic { group Create { function f_CSE_GEN_CRE_001(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Non-Hierarchical addressing method v_addressingMethod := e_nonHierarchical; v_primitiveScope := p_primitiveScope; v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_resourceIndex); v_request.to_ := f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource created using non-hierarchical addressing method"); } [] 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 creating container resource using non-hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_CRE_001 function f_CSE_GEN_CRE_002(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Hierarchical addressing method v_addressingMethod := e_hierarchical; v_primitiveScope := p_primitiveScope; v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_resourceIndex); v_request.to_ := f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource created using hierarchical addressing method"); } [] 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 creating container resource using hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_CRE_002 function f_CSE_GEN_CRE_003(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; var XSD.ID v_cseName := PX_CSE_NAME; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Non-Hierarchical addressing method v_addressingMethod := e_hierarchical; v_primitiveScope := p_primitiveScope; v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_resourceIndex); v_request.to_ := f_useShortcutInResourceId(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope)); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource created using shortcut in hierarchical addressing method"); } [] 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 creating container resource using shortcut in hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_CRE_003 function f_CSE_GEN_CRE_004(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var template RequestPrimitive v_groupRequest := m_createGroupBase; var integer v_aeIndex := -1; var integer v_groupIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceAddress(v_resourceIndex)}; v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); // Test Body v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex); //Force usage of Hybrid Hierarchical addressing method v_addressingMethod := e_nonHierarchical; v_request.to_ := f_getResourceAddress(v_groupIndex, v_addressingMethod, p_primitiveScope); v_request.to_ := v_request.to_ & "/fopt"; f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Fanout operation performed successfully by using hybrid addressing"); } [] 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 creating container resource using hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_CRE_004 } // end of group Create group Retrieve { function f_CSE_GEN_RET_001(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Non-Hierarchical addressing method v_addressingMethod := e_nonHierarchical; v_primitiveScope := p_primitiveScope; f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource retrieved using non-hierarchical addressing method"); } [] 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 retrieving container resource using non-hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_RET_001 function f_CSE_GEN_RET_002(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Hierarchical addressing method v_addressingMethod := e_hierarchical; v_primitiveScope := p_primitiveScope; f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource retrieved using hierarchical addressing method"); } [] 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 retrieving container resource using hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_RET_002 function f_CSE_GEN_RET_003(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Non-Hierarchical addressing method v_addressingMethod := e_hierarchical; v_primitiveScope := p_primitiveScope; f_send(e_mcaPort, m_request(m_retrieve(f_useShortcutInResourceId(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope)), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource retrieved using shortcut in hierarchical addressing method"); } [] 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 retrieving container resource using shortcut in hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_RET_003 function f_CSE_GEN_RET_004(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_groupIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var RequestPrimitive v_request; var template RequestPrimitive v_groupRequest := m_createGroupBase; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceAddress(v_resourceIndex)}; v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); // Test Body //Force usage of Hybrid Hierarchical addressing method v_addressingMethod := e_nonHierarchical; v_request := valueof(m_retrieve(f_getResourceAddress(v_groupIndex, v_addressingMethod, p_primitiveScope), f_getOriginator(v_groupIndex))); v_request.to_ := v_request.to_ & "/fopt"; f_send(e_mcaPort, m_request(valueof(v_request))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Fanout operation performed successfully by using hybrid addressing"); } [] 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 creating container resource using hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_RET_004 } // end of group Retrieve group Update { function f_CSE_GEN_UPD_001(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Non-Hierarchical addressing method v_addressingMethod := e_nonHierarchical; v_primitiveScope := p_primitiveScope; v_updateRequest.primitiveContent.container.labels := {"MyLabel"}; v_updateRequest := f_getUpdateRequestPrimitive(int3, v_resourceIndex, v_updateRequest); v_updateRequest.to_ := f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope); f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource updated using non-hierarchical addressing method"); } [] 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 using non-hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_UPD_001 function f_CSE_GEN_UPD_002(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Hierarchical addressing method v_addressingMethod := e_hierarchical; v_primitiveScope := p_primitiveScope; v_updateRequest.primitiveContent.container.labels := {"MyLabel"}; v_updateRequest := f_getUpdateRequestPrimitive(int3, v_resourceIndex, v_updateRequest); v_updateRequest.to_ := f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope); f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource updated using hierarchical addressing method"); } [] 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 using hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_UPD_002 function f_CSE_GEN_UPD_003(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Non-Hierarchical addressing method v_addressingMethod := e_hierarchical; v_primitiveScope := p_primitiveScope; v_updateRequest.primitiveContent.container.labels := {"MyLabel"}; v_updateRequest := f_getUpdateRequestPrimitive(int3, v_resourceIndex, v_updateRequest); v_updateRequest.to_ := f_useShortcutInResourceId(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope)); f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource updated using shortcut in hierarchical addressing method"); } [] 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 using shortcut in hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_UPD_003 function f_CSE_GEN_UPD_004(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var template RequestPrimitive v_groupRequest := m_createGroupBase; var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); var integer v_aeIndex := -1; var integer v_groupIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceAddress(v_resourceIndex)}; v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); // Test Body v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); v_updateRequest.primitiveContent.container.labels := {"MyLabel"}; //Force usage of Hybrid Hierarchical addressing method v_addressingMethod := e_nonHierarchical; v_updateRequest.to_ := f_getResourceAddress(v_groupIndex, v_addressingMethod, p_primitiveScope); v_updateRequest.to_ := v_updateRequest.to_ & "/fopt"; f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Fanout operation performed successfully by using hybrid addressing"); } [] 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 creating container resource using hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_UPD_004 } // end of group Update group Delete { function f_CSE_GEN_DEL_001(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_UNSTRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Unstructured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Non-Hierarchical addressing method v_addressingMethod := e_nonHierarchical; v_primitiveScope := p_primitiveScope; v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope), f_getOriginator(v_resourceIndex))); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource deleted using non-hierarchical addressing method"); } [] 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 deleting container resource using non-hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_DEL_001 function f_CSE_GEN_DEL_002(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Hierarchical addressing method v_addressingMethod := e_hierarchical; v_primitiveScope := p_primitiveScope; v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope), f_getOriginator(v_resourceIndex))); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource deleted using hierarchical addressing method"); } [] 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 deleting container resource using hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_DEL_002 function f_CSE_GEN_DEL_003(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; var PrimitiveScope v_primitiveScope; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body //Force usage of Non-Hierarchical addressing method v_addressingMethod := e_hierarchical; v_primitiveScope := p_primitiveScope; v_request := valueof(m_delete(f_useShortcutInResourceId(f_getResourceAddress(v_resourceIndex, v_addressingMethod, v_primitiveScope)), f_getOriginator(v_resourceIndex))); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource deleted using shortcut in hierarchical addressing method"); } [] 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 deleting container resource using shortcut in hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_DEL_003 function f_CSE_GEN_DEL_004(in PrimitiveScope p_primitiveScope) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var template RequestPrimitive v_groupRequest := m_createGroupBase; var integer v_aeIndex := -1; var integer v_groupIndex := -1; var integer v_resourceIndex := -1; var AddressingMethod v_addressingMethod; // Test control if(not(PICS_STRUCTURED_CSE_RELATIVE_RESOURCE_ID_FORMAT)) { setverdict(inconc, __SCOPE__ & ": Structured-CSE-Relative-Resource-ID format support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceAddress(v_resourceIndex)}; v_groupIndex := f_cse_createResource(int9, v_groupRequest, v_aeIndex); // Test Body //Force usage of Hybrid Hierarchical addressing method v_addressingMethod := e_nonHierarchical; v_request := valueof(m_delete(f_getResourceAddress(v_groupIndex, v_addressingMethod, p_primitiveScope), f_getOriginator(v_resourceIndex))); v_request.to_ := v_request.to_ & "/fopt"; f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Fanout operation performed successfully by using hybrid addressing"); } [] 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 creating container resource using hierarchical addressing method"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_GEN_DEL_004 } // end of group Delete } // end of group Generic group Registration { group Create{ function f_CSE_REG_CRE_001(in XSD.ID p_aeIdStem) runs on AeSimu system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; var universal charstring v_action := __SCOPE__ & ": Please, make sure that the following AE-ID is allowed to register: " & p_aeIdStem; //Test control if(p_aeIdStem[0] == "S") { if(not(PICS_IN_CSE)) { setverdict(inconc, __SCOPE__ & ": IUT shall be IN-CSE to run this test case"); stop; } } // Test component configuration f_cf01Up(); //Preamble action(v_action); f_sleepIgnoreDef(PX_TCONFIG_IUT); //Test Body v_request := valueof(m_createAe(vc_aeSimuDesc.appId, omit, PX_CSE_ID & "/" & p_aeIdStem)); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, -1); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive); vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2); setverdict(pass, __SCOPE__ & ": AE successfully created."); } [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } function f_CSE_REG_CRE_002(in XSD.ID v_aeIdStem) runs on AeSimu system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; //Test control if(v_aeIdStem[0] == "S") { if(not(PICS_IN_CSE)) { setverdict(inconc, __SCOPE__ & ": IUT shall be IN-CSE to run this test case"); stop; } } // Test component configuration f_cf01Up(); //Preamble //Test Body v_request := valueof(m_createAe(vc_aeSimuDesc.appId, omit, v_aeIdStem)); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, -1); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response{ tc_ac.stop; f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive); vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2); setverdict(pass, __SCOPE__ & ": AE successfully created."); } [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } function f_CSE_REG_CRE_012(in template RequestPrimitive p_createAe) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_request; var ResourceType v_resourceType := int2; //AE // Test control // Test component configuration f_cf01Up(); //Test Body v_request := valueof(p_createAe); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, -1); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response{ tc_ac.stop; f_checkAttributesToBeSaved(int2, v_request, v_response.primitive.responsePrimitive); vc_aeIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int2); setverdict(pass, __SCOPE__ & ": AE creation successfull."); } [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating AE"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } function f_CSE_REG_CRE_013(template RequestPrimitive p_requestPrimitive, in AttributeAux p_optionalAttribute) runs on CseSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var ResourceType v_resourceType := int16; //remoteCSE // Test control // Test component configuration f_cf04Up(); // Test adapter configuration // Preamble // Test Body v_request := f_getCreateRequestPrimitive(v_resourceType, p_requestPrimitive, -1); f_send(e_mccPort, m_request(v_request)); tc_ac.start; alt { [] mccPort.receive(mw_response(mw_responsePrimitive(int2001, f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Accepted creation for resource type remoteCSE containing attribute " & p_optionalAttribute.name); f_setResource(v_response.primitive.responsePrimitive.primitiveContent,int16); } [] mccPort.receive(mw_response(mw_responsePrimitiveOK(f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); f_setResource(v_response.primitive.responsePrimitive.primitiveContent,int16); } [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Accepted creation for resource type remoteCSE without containing attribute " & p_optionalAttribute.name); f_setResource(v_response.primitive.responsePrimitive.primitiveContent,int16); } [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Rejected creation of resource type remoteCSE containing attribute " & p_optionalAttribute.name); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type remoteCSE"); } } // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf04Down(); }//end f_CSE_REG_CRE_BV_013 function f_CSE_REG_CRE_017(template RequestPrimitive p_createRequestPrimitive) runs on AeSimu system CseSystem { //Local variables var ResourceType v_resourceType := int2; var RequestPrimitive v_request; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble // Test Body v_request := f_getCreateRequestPrimitive(int2, p_createRequestPrimitive, -1); f_send(e_mcaPort, 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)){ tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error, AE has been registered"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } function f_CSE_REG_CRE_026(template UtTriggerPrimitive p_utRequest, template RequestPrimitive p_request, in universal charstring p_action) runs on CseSimu system CseSystem { var MsgIn v_request; var ResponsePrimitive v_responsePrimitive; //Test control if(not(PICS_MN_CSE or PICS_ASN_CSE)) { setverdict(inconc, __SCOPE__ & ": IUT shall be MN-CSE or ASN-CSE to run this test case"); stop; } //Test component configuration f_cf04Up(); //send triggering primitive to SUT f_cse_sendUtPrimitive_cseSimu(p_utRequest,p_action); //Test behavior tc_ac.start; alt{ //receive MsgIn requestPrimitive [] mccPortIn.receive(mw_request(p_request)) -> value v_request { tc_ac.stop; setverdict(pass, __SCOPE__&":INFO: Resource type remoteCSE created successfuly"); //set responseStatusCode back to SUT v_responsePrimitive := valueof(m_responsePrimitive(int2001, v_request.primitive.requestPrimitive.requestIdentifier, omit)); //send back responsePrimitive f_send(e_mccPortIn, m_response(v_responsePrimitive)); } [] mccPortIn.receive { tc_ac.stop; setverdict(fail, __SCOPE__&":INFO: Unexpected message received"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__&":INFO: No request received for creating resource type remoteCSE"); } } // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf04Down(); } function f_CSE_REG_CRE_028(RequestPrimitive p_request, template PrimitiveContent p_contentResponse) runs on CseSimu system CseSystem { //Local variables var ResourceType v_resourceType := int16; //remoteCSE // Test control // Test component configuration f_cf04Up(); // Test adapter configuration // Preamble //Test Body vc_remoteCseIndex := f_cse_registerRemoteCse(p_request, p_contentResponse); //Check if the resource has been deleted or not if(f_cse_isResourcePresent_cseSimu(vc_remoteCseIndex)) { setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":INFO: Resource not created"); } // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf04Down(); }//end TC_CSE_REG_CRE_028 } //end group Create group Retrieve{ function f_CSE_REG_RET_002(template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var integer v_aeIndex := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(), f_getOriginator(v_aeIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Response OK for retrieving for attribute"); } [] 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__ & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } //end f_CSE_REG_RET_002 function f_CSE_REG_RET_004(template RequestPrimitive p_createRequestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var integer v_aeIndex := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_createResource(int2, p_createRequestPrimitive, -1); f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_aeIndex), f_getOriginator(v_aeIndex))));//TODO Maybe PX_SUPER_AE_ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Response OK for retrieving for attribute"); } [] 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__ & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } //end f_CSE_REG_RET_004 function f_CSE_REG_RET_007(template RequestPrimitive p_createRequestPrimitive, template PrimitiveContent p_contentResponse) runs on CseSimu system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var ResourceType v_resourceType := int16; //remoteCSE var template PrimitiveContent v_contentResponse; // Test control // Test component configuration f_cf04Up(); // Test adapter configuration // Preamble vc_remoteCseIndex := f_cse_registerRemoteCse(p_createRequestPrimitive); f_send(e_mccPort, m_request(m_retrieve(f_getResourceAddress(vc_remoteCseIndex), f_getOriginator(vc_remoteCseIndex)))); tc_ac.start; alt { [] mccPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Response OK for retrieving for attribute"); } [] mccPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); } [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } //Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf04Down(); } // f_CSE_REG_RET_007 }//end group Retrieve group Update{ function f_CSE_REG_UPD_002(template RequestPrimitive p_requestPrimitive) runs on CseSimu system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_request; var ResourceType v_resourceType := int16; //remoteCSE // Test control // Test component configuration f_cf04Up(); // Test adapter configuration // Preamble vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); // Test Body v_request := f_getUpdateRequestPrimitive(int16, vc_remoteCseIndex, p_requestPrimitive); f_send(e_mccPort, m_request(v_request)); tc_ac.start; alt { [] mccPort.receive(mw_response(mw_responsePrimitive(int2004, f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Accepted update for resource type remoteCSE containing attribute "); } [] mccPort.receive(mw_response(mw_responsePrimitiveOK(f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); } [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Accepted update for resource type remoteCSE without containing attribute "); } [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Rejected update of resource type remoteCSE containing attribute"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type remoteCSE"); } } // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf04Down(); }//end f_CSE_REG_UPD_002 function f_CSE_REG_UPD_003(template RequestPrimitive p_requestPrimitive, in AttributeList p_attribute) runs on CseSimu system CseSystem { // Local variables //Local variables var MsgIn v_response; var RequestPrimitive v_request; var ResourceType v_resourceType := int16; //remoteCSE var template UtTriggerPrimitive v_utRequest := m_utCreateRemoteCSE; var universal charstring v_action := __SCOPE__ & ": Please, send a valid UPDATE Request for remoteCSE resource containing a valid attribute " & p_attribute[0]; // Test control if(not(PICS_MN_CSE)) { setverdict(inconc, __SCOPE__ & ": IUT shall be MN-CSE to run this test case"); stop; } // Test component configuration f_cf04Up(); // Test adapter configuration // Preamble vc_remoteCseIndex := f_cse_registrationRemoteCse(mw_createRemoteCSE); //Send Trigger Message v_utRequest.requestPrimitive.to_ := f_getResourceAddress(); f_cse_sendUtPrimitive_cseSimu(v_utRequest, v_action); // Test Body v_request := f_getUpdateRequestPrimitive(int16, vc_remoteCseIndex, p_requestPrimitive); tc_ac.start; alt { [] mccPortIn.receive(mw_request(v_request)) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Received request for updation for resource type remoteCSE containing attribute " & p_attribute[0]); f_setResource(v_request.primitiveContent,int16); } [] mccPortIn.receive { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error: Did not receive update request for resource type remoteCSE"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type remoteCSE"); } } // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf04Down(); }//end f_CSE_REG_UPD_003 }// end group Update group Delete{ }// end group Delete }//end Registration group Data_Management_and_Repository { function f_CSE_DMR_001(template RequestPrimitive p_requestPrimitive) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex, v_remoteCseIndex, v_targetResourceIndex := -1; var ResponseStatusCode v_responseStatusCode := int2000; var XSD.ID v_targetResourceAddress; var XSD.ID v_originatorResourceAddress; // Test control // Test component configuration f_cf02UpCseSimuMaster(); // Test adapter configuration // Preamble v_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA(vc_cseSimuDesc.mccPortIn)})); vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); //Creating resource in Hosting CSE v_targetResourceIndex := f_generateAndSetLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), vc_cSEBaseIndex, int3); // Test Body v_aeIndex := f_getLatestResource(vc_ae1); v_originatorResourceAddress := f_getLatestResourceAddress(vc_ae1, e_nonHierarchical, e_spRelative); v_targetResourceAddress := f_getLocalResourceAddress(v_targetResourceIndex, PX_ADDRESSING_METHOD, e_spRelative); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.to_ := v_targetResourceAddress; if(valueof(p_requestPrimitive.operation) == int1) { v_responseStatusCode := int2001; } else if(valueof(p_requestPrimitive.operation) == int2) { v_responseStatusCode := int2000; } else if(valueof(p_requestPrimitive.operation) == int3) { v_responseStatusCode := int2004; } else if(valueof(p_requestPrimitive.operation) == int4) { v_responseStatusCode := int2002; } vc_ae1.start(f_cse_operationResource(p_requestPrimitive)); tc_ac.start; alt { [v_responseStatusCode == int2001] mccPortIn.receive(mw_request(mw_create(v_originatorResourceAddress, v_targetResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully"); f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [v_responseStatusCode == int2000] mccPortIn.receive(mw_request(mw_retrieve(v_targetResourceAddress, v_originatorResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully"); f_processRetrieveRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [v_responseStatusCode == int2004] mccPortIn.receive(mw_request(mw_update(v_originatorResourceAddress, v_targetResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [v_responseStatusCode == int2002] mccPortIn.receive(mw_request(mw_delete(v_targetResourceAddress, v_originatorResourceAddress))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitive retargeted successfully"); f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(?)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong request received"); f_send(e_mccPortIn, m_response(m_responsePrimitive(int4000, vc_request.primitive.requestPrimitive.requestIdentifier))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retargeting request"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_DMR_001 function f_CSE_DMR_002(template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex, v_cseBaseIndex, v_targetResourceIndex := -1; var ResponseStatusCode v_responseStatusCode := int2000; var XSD.ID v_targetResourceAddress; // Test control // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1); vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_aeIndex := f_cse_preamble_registerAe(); //Creating resource in Hosting CSE vc_cse1.start(f_generateAndSetLocalResource(valueof(m_primitiveContentContainer(m_contentCreateContainer)), v_cseBaseIndex, int3)); vc_cse1.done; // Test Body v_targetResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, PX_ADDRESSING_METHOD, e_spRelative); p_requestPrimitive.to_ := v_targetResourceAddress; p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); v_targetResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); if(valueof(p_requestPrimitive.operation) == int1) { v_responseStatusCode := int2001; vc_cse1.start(f_cse_createResourceHandler(mw_create(f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative), v_targetResourceAddress ))); } else if(valueof(p_requestPrimitive.operation) == int2) { v_responseStatusCode := int2000; vc_cse1.start(f_cse_retrieveResourceHandler(v_targetResourceIndex, mw_retrieve(v_targetResourceAddress, f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative)))); } else if(valueof(p_requestPrimitive.operation) == int3) { v_responseStatusCode := int2004; vc_cse1.start(f_cse_updateResourceHandler(v_targetResourceIndex, mw_update(f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative),v_targetResourceAddress))); } else if(valueof(p_requestPrimitive.operation) == int4) { v_responseStatusCode := int2002; vc_cse1.start(f_cse_deleteResourceHandler(v_targetResourceIndex, mw_delete(v_targetResourceAddress,f_getResourceAddress(v_aeIndex, e_nonHierarchical, e_spRelative)))); } f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(v_responseStatusCode))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Request primitieve retargeted 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 retargeting request"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retargeting request"); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); }//end f_CSE_DMR_002 group Create { function f_CSE_DMR_CRE_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit) runs on AeSimu system CseSystem return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_parentIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var template RequestPrimitive v_parentRequestPrimitive; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble if(ispresent(p_parentRequestPrimitive)) { v_parentRequestPrimitive := p_parentRequestPrimitive; if(match(int23, p_parentRequestPrimitive.resourceType)){ f_cse_preamble_subscriptionVerification(v_ae2Index, v_parentRequestPrimitive, int23, -); } if(ischosen(p_parentRequestPrimitive.primitiveContent.group_)) { f_cse_preamble_registerAe(); } v_parentIndex := f_cse_createResource(valueof(v_parentRequestPrimitive.resourceType), v_parentRequestPrimitive, v_parentIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); } else {//Resource under CSEBase if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if(ischosen(p_requestPrimitive.primitiveContent.group_)){ f_cse_preamble_registerAe(); } } // Test Body if(match(int23, p_requestPrimitive.resourceType)){ f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, int23, -); } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_parentIndex); } [] 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 creating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); //Check to see if the resource is present or not if (f_cse_isResourcePresent(v_resourceIndex)){ setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return vc_response.primitive.responsePrimitive; }//end f_CSE_DMR_CRE_001 function f_CSE_DMR_CRE_001_cseSimu(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, ResourceType p_parentResourceType := int2, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit) runs on CseSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_parentIndex := -1; var integer v_resourceIndex := -1; var integer v_ae1Index := -1; var PoaList v_poaList := { f_getLocalPoA(PX_TS_AE1.mcaPortIn) }; // Test control // Test component configuration f_cf02UpCseSimuMaster(); // Test adapter configuration // Preamble vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); if(match(int23, p_resourceType)){ vc_ae1.start(f_cse_createAccessControlPolicyAux("SubscriptionVerificationAcp", -, int63)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); vc_ae1.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE1.appId, -, PX_TS_AE1.aeIdStem, "MyAe", v_poaList), -1)); // AE1 is registered f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_ae1Index := f_getResourceFromAeSimu(vc_ae1); p_requestPrimitive.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_ae1Index)}; vc_ae1.start(f_cse_notifyProcedure_subscriptionVerificationHandler()); } if (not ispresent(p_parentRequestPrimitive)){ //Create the resource directly under RemoteCSE v_parentIndex := vc_remoteCseIndex; }else{ //Create the resource under parentResource v_parentIndex := f_cse_createResource_cseSimu(p_parentResourceType, p_parentRequestPrimitive, vc_remoteCseIndex); } // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); f_send(e_mccPort, m_request(v_request)); tc_ac.start; alt { [] mccPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_parentIndex); } [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } f_checkCseSimuStatus(); //Check to see if the resource is present or not if (f_cse_isResourcePresent_cseSimu(v_resourceIndex)){ setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_DMR_CRE_001_cseSimu function f_CSE_DMR_CRE_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive { // 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_parentIndex := -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 if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_parentIndex); } [] 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 creating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); //Check to see if the resource is present or not if(f_cse_isResourcePresent(v_resourceIndex)){ setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return vc_response.primitive.responsePrimitive; }//end f_CSE_DMR_CRE_002 function f_CSE_DMR_CRE_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // 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_parentIndex := -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); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType == int15) { v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex); v_request.primitiveContent.container.resourceName := vc_resourcesList[v_resourceIndex].resource.pollingChannel.resourceName; } else { v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); } // Test Body v_request.requestIdentifier := "Existing resource"; if(p_resourceType == int23){ if(PICS_SUBSCRIPTION_VERIFICATION) { vc_ae2.start(f_cse_notifyProcedure_subscriptionVerificationHandler()); } } f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4105))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource already exists"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating an already existing resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Creating a resource that already exists"); } [] 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_003 function f_CSE_DMR_CRE_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_parentIndex := -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(); // Test adapter configuration // Preamble if (p_resourceType != int23) { f_cse_createAccessControlPolicyAux(-, -, int62);//c_RUDNDi) } else { f_cse_createAccessControlPolicyAux(-, -, int60);//c_UDNDi); } v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(vc_acpIndex)}, -); // Test Body if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Access denied to create a resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating a resource without privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Resource created without creation privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_004 function f_CSE_DMR_CRE_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in AttributeAux p_invalidAttribute) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); f_send(e_mcaPort, m_request(v_request, {p_invalidAttribute})); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Creation rejected for resource type " & int2str(enum2int(p_resourceType)) & " containing an invalid value for attribute " & p_invalidAttribute.name); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType)) & " containing an invalid value for attribute" & p_invalidAttribute.name); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_005 function f_CSE_DMR_CRE_006(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive { // 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); // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType))); f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aeIndex); } [] 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__ & ": Creation rejected of resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); //Check to see if the resource is present or not if(f_cse_isResourcePresent(v_resourceIndex)){ setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return vc_response.primitive.responsePrimitive; }//end f_CSE_DMR_CRE_006 function f_CSE_DMR_CRE_007(ResourceType p_resourceTypeParent, template RequestPrimitive p_requestPrimitiveParent, ResourceType p_resourceTypeChild, template RequestPrimitive p_requestPrimitiveChild1, template RequestPrimitive p_requestPrimitiveChild2, XSD.String p_resourceName) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_parentIndex := -1; var integer v_childIndex := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_parentIndex := f_cse_createResource(p_resourceTypeParent, p_requestPrimitiveParent, v_aeIndex); //Parent v_childIndex := f_cse_createResource(p_resourceTypeChild, p_requestPrimitiveChild1, v_parentIndex); //Child1 // Test Body v_request := f_getCreateRequestPrimitive(p_resourceTypeChild, p_requestPrimitiveChild2, v_parentIndex); ////Child2 f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource " & int2str(enum2int(p_resourceTypeChild)) & " created"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating resource type " & int2str(enum2int(p_resourceTypeChild))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceTypeChild))); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_parentIndex, p_resourceName)){ setverdict(pass, __SCOPE__ & ":INFO: Oldest resource " & int2str(enum2int(p_resourceTypeChild)) & " has been removed to allow the creation of the new instance"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Oldest resource " & int2str(enum2int(p_resourceTypeChild)) & " has not been removed to allow the creation of the new instance"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_007 function f_CSE_DMR_CRE_008(ResourceType p_resourceTypeParent, template RequestPrimitive p_requestPrimitiveParent, ResourceType p_resourceTypeChild, template RequestPrimitive p_requestPrimitiveChild1, template RequestPrimitive p_requestPrimitiveChild2, XSD.String p_resourceName) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_parentIndex := -1; var integer v_childIndex := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_parentIndex := f_cse_createResource(p_resourceTypeParent, p_requestPrimitiveParent, v_aeIndex); //Parent v_childIndex := f_cse_createResource(p_resourceTypeChild, p_requestPrimitiveChild1, v_parentIndex); //Child1 // Test Body v_request := f_getCreateRequestPrimitive(p_resourceTypeChild, p_requestPrimitiveChild2, v_parentIndex); //Child2 f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource " & int2str(enum2int(p_resourceTypeChild)) & " created"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating resource type " & int2str(enum2int(p_resourceTypeChild))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceTypeChild))); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_parentIndex, p_resourceName)){ setverdict(pass, __SCOPE__ & ":INFO: Oldest resource " & int2str(enum2int(p_resourceTypeChild)) & " has been removed to allow the creation of the new instance"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Oldest resource " & int2str(enum2int(p_resourceTypeChild)) & " has not been removed to allow the creation of the new instance"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_008 function f_CSE_DMR_CRE_012(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in AttributeList p_optionalAttribute) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_parentIndex := -1; var integer v_ae2Index := -1; const XSD.NCName c_accessControlPolicyIDs := "accessControlPolicyIDs"; var integer v_resourceIndex := -1; var XSD.NCName v_myOptionalAttribute := p_optionalAttribute[0]; // Test control if(v_myOptionalAttribute == c_accessControlPolicyIDs) { 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 if (v_myOptionalAttribute == c_accessControlPolicyIDs) { f_cse_createAccessControlPolicyAux();//c_CRUDNDi) } v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); if(p_resourceType == int4) { v_parentIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); } if(p_resourceType == int30) { v_parentIndex := f_cse_createResource(int29, m_createTimeSeriesBase, v_aeIndex); } // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); if(v_myOptionalAttribute == "creator") { f_send(e_mcaPort, m_request(v_request, {{v_myOptionalAttribute, omit}})); } else { f_send(e_mcaPort, m_request(v_request)); } tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001, f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Accepted creation for resource type " & int2str(enum2int(p_resourceType)) & " containing attribute " & v_myOptionalAttribute); f_checkAttributesToBeSaved(p_resourceType, v_request, v_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_parentIndex); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> 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__ & ": Accepted creation for resource type " & int2str(enum2int(p_resourceType)) & " with incorrect attributes"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Rejected creation of resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); //Check to see if the resource is present or not if(f_cse_isResourcePresent(v_resourceIndex)) { setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_012 function f_CSE_DMR_CRE_013(ResourceType p_resourceTypeParent, template RequestPrimitive p_requestPrimitiveParent, ResourceType p_resourceTypeChild, template RequestPrimitive p_requestPrimitiveChild) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_parentIndex := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_parentIndex := f_cse_createResource(p_resourceTypeParent, p_requestPrimitiveParent, v_aeIndex); // Test Body v_request := f_getCreateRequestPrimitive(p_resourceTypeChild, p_requestPrimitiveChild, v_parentIndex); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5207))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Maximum byte size exceeded"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Bad responseStatusCode in response"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Accepted creation of resource type " & int2str(enum2int(p_resourceTypeChild)) & " exceding maximum byte size"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type 4 " & int2str(enum2int(p_resourceTypeChild))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_013 function f_CSE_DMR_CRE_014(ResourceType p_parentResourceType, template RequestPrimitive p_parentResourceRequestPrimitive, ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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_parentResourceType, p_parentResourceRequestPrimitive, v_aeIndex); // Test Body v_request := f_getCreateRequestPrimitive(p_childResourceType, p_childRequestPrimitive, v_resourceIndex); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource created"); } [] 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 when creating resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } //Check currentByteSize f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; if(p_parentResourceType == int3){ if(v_response.primitive.responsePrimitive.primitiveContent.container.currentByteSize == 8) { //Default content: "AnyValue" (8 bytes length) setverdict(pass, __SCOPE__ & ": CurrentByteSize attribute in content resource is incremented successfully"); } else{ setverdict(fail, __SCOPE__ & ": CurrentByteSize attribute in content resource not incremented successfully"); } } else if(p_parentResourceType == int29){ if(v_response.primitive.responsePrimitive.primitiveContent.timeSeries.currentByteSize == 8) { //Default content: "AnyValue" (8 bytes length) setverdict(pass, __SCOPE__ & ": CurrentByteSize attribute in content resource is incremented successfully"); } else{ setverdict(fail, __SCOPE__ & ": CurrentByteSize attribute in content resource not incremented successfully"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_014 function f_CSE_DMR_CRE_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); v_request.resultContent := int0;//Attributes f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001, omit))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": No content provided with RC set to 0"); } [] 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__ & ": Content provided with RC set to 0"); } [] 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_015 function f_CSE_DMR_CRE_016(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); v_request.resultContent := int2;//Attributes f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001, p_contentResponse))) -> value v_response { tc_ac.stop; if(f_isHierarchical(v_response.primitive.responsePrimitive.primitiveContent.uRI)) { setverdict(pass, __SCOPE__ & ": Response returning correctly only the hierarchical address of the created resource"); } else { setverdict(fail, __SCOPE__ & ": Response returning the address of the created resource with wrong format"); } } [] 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 2"); } [] 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_016 function f_CSE_DMR_CRE_017(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); v_request.resultContent := int3;//Attributes + Hierarchichal Address f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001, p_contentResponse))) -> value v_response { tc_ac.stop; if(f_isHierarchical(v_response.primitive.responsePrimitive.primitiveContent.resource.uRI)) { setverdict(pass, __SCOPE__ & ": Response returning correctly the hierarchical address of the created resource and resource representation"); } else { setverdict(fail, __SCOPE__ & ": Response returning the address of the created resource with wrong format"); } } [] 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 3"); } [] 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_017 function f_CSE_DMR_CRE_018(ResultContent p_resultContent) runs on AeSimu system CseSystem { // 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); // Test Body v_request := f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex); v_request.resultContent := p_resultContent; f_send(e_mcaPort, 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 retrieve request "); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_018 function f_CSE_DMR_CRE_019(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); v_request.resultContent := int1;//Attributes f_send(e_mcaPort, 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 system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_parentIndex); v_request.resultContent := int9;//Modified Attributes f_send(e_mcaPort, 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 system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_parentIndex := -1; var integer v_resourceIndex := -1; var integer v_originalResourceIndex := -1; var integer v_aEAnncIndex := -1; // Test control // Test component configuration f_cf04Up(); // Test adapter configuration // Preamble vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSEBase); v_aEAnncIndex := f_cse_createResource_cseSimu(int10002, m_createAEAnnc(-, vc_cseSimuDesc.cseId, omit, -), vc_remoteCseIndex); //AEAnnnc under RemoteCSE //Create original resource locally if resource type is an announced variant if (p_resourceType == int10001) { v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentAccessControlPolicy(m_contentCreateAcp), -, int1); } else if(p_resourceType == int10002) { v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentAe(m_contentCreateAe(omit, -, PX_TS_AE1.appId, omit)), -, int2); } else if (p_resourceType == int10003) { v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentContainer(m_contentCreateContainer), -, int3); } else if (p_resourceType == int10004) { v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentContentInstance(m_contentCreateContentInstance), -, int4); } else if (p_resourceType == int10009) { v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentGroup(m_contentCreateGroup(1, {"NotInitialized"}, omit, -, -, -, -, -)), -, int9); } else if (p_resourceType == int10029) { v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentTimeSeries(m_contentCreateTimeSeries), -, int29); } else if (p_resourceType == int10030) { v_originalResourceIndex := f_generateAndSetLocalResource(m_primitiveContentTimeSeriesInstance(m_contentCreateTimeSeriesInstance), -, int30); } if(v_originalResourceIndex != -1) { p_requestPrimitive.primitiveContent := f_setLink(valueof(p_requestPrimitive.primitiveContent), f_getLocalResourceAddress(v_originalResourceIndex, -, e_spRelative)); p_requestPrimitive.primitiveContent := f_setExpirationTime(valueof(p_requestPrimitive.primitiveContent), vc_localResourcesList[v_originalResourceIndex].resource); } // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aEAnncIndex); f_send(e_mccPort, m_request(v_request)); tc_ac.start; alt { [] mccPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfully"); f_checkAttributesToBeSaved(p_resourceType, v_request, vc_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(vc_response.primitive.responsePrimitive.primitiveContent, p_resourceType, v_aEAnncIndex); } [] mccPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mccPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } f_checkCseSimuStatus(); //Check to see if the resource is present or not if (f_cse_isResourcePresent_cseSimu(v_resourceIndex)){ setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf04Down(); }//end f_CSE_DMR_CRE_021 function f_CSE_DMR_CRE_022(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template RequestPrimitive p_requestAnnc) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_parentIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; // Test control // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); v_aeIndex := f_cse_createResource(int2,v_create); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); if(p_resourceType == int4) { v_create := m_createContainerBase; v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; vc_cse1.start(f_cse_announcementProcedure_createHandler()); v_parentIndex := f_cse_createResource(int3, v_create, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); } else if(p_resourceType == int30) { v_create := m_createTimeSeriesBase; v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; vc_cse1.start(f_cse_announcementProcedure_createHandler()); v_parentIndex := f_cse_createResource(int29, v_create, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); } else if (p_resourceType != int18) { v_parentIndex := v_aeIndex; } // Test Body vc_cse1.start(f_cse_announcementProcedure_createHandler(p_requestAnnc)); f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); }//end f_CSE_DMR_CRE_022 function f_CSE_DMR_CRE_023(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template (present) RequestPrimitive p_requestAnnc) runs on AeSimu system CseSystem{ // Local variables var integer v_aeIndex := -1; var integer v_parentIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; // Test control // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); v_aeIndex := f_cse_createResource(int2,v_create); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); if(p_resourceType == int4) { v_create := m_createContainerBase; v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; vc_cse1.start(f_cse_announcementProcedure_createHandler()); v_parentIndex := f_cse_createResource(int3, v_create, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); } else if(p_resourceType == int30) { v_create := m_createTimeSeriesBase; v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; vc_cse1.start(f_cse_announcementProcedure_createHandler()); v_parentIndex := f_cse_createResource(int29, v_create, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); } else if (p_resourceType != int18) { v_parentIndex := v_aeIndex; } // Test Body vc_cse1.start(f_cse_announcementProcedure_createHandler(p_requestAnnc)); f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); //return v_anncRequest.primitive.requestPrimitive; }//end f_CSE_DMR_CRE_023 }//end group Create group Retrieve { function f_CSE_DMR_RET_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem return ResponsePrimitive { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_parentIndex := -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_requestPrimitive, p_resourceType); if(p_resourceType == int4) { //ContentInstance v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); v_parentIndex := v_containerIndex; } else if (p_resourceType != int18) { v_parentIndex := v_aeIndex; } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); // Test Body f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); } [] 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__ & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_RET_001 function f_CSE_DMR_RET_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -1; // Test control if(not(PICS_ACP_SUPPORT)) { log(__SCOPE__ & ":INFO: AccessControlPolicy support is required for executing this test case"); stop; } // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, int61);//c_CRUDNDi) p_requestPrimitive := f_setAcpId(p_requestPrimitive, {f_getResourceAddress(vc_acpIndex)}); } v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi; f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); // Test Body f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Access denied to retrieve attributes from resource type " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving attributes from resource without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Retrieving attributes from resource without having privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_003 function f_CSE_DMR_RET_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var XSD.String v_attribute := "#pi";//Attribute parentId to be retrieved var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); // Test Body f_send(e_mcaPort, m_request(m_retrieveAttributeToOption(f_getResourceAddress(v_resourceIndex) & v_attribute, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Requested attribute retrieved successfully"); } [] 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__ & ": Error, not only requested attribute retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attribute"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_004 function f_CSE_DMR_RET_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); // Test Body f_send(e_mcaPort, m_request(m_retrieveAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi"}, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Requested attribute retrieved successfully"); } [] 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__ & ": Error, not only requested attribute retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attribute"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_005 function f_CSE_DMR_RET_006(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); // Test Body f_send(e_mcaPort, m_request(m_retrieveAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi", "ct"}, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Requested attributes retrieved successfully"); } [] 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__ & ": Error, not only requested attributes retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attributes"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_006 function f_CSE_DMR_RET_007(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); // Test Body f_send(e_mcaPort, m_request(m_retrieveAttributeContentOption(f_getResourceAddress(v_resourceIndex), {"lbl"}, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Non-existing attribute not found"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error : attribute was retrieved while it doesn't exist"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_007 function f_CSE_DMR_RET_008(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, AttributeList_1 p_attributeList) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); // Test Body f_send(e_mcaPort, m_request(m_retrieveAttributeContentOption(f_getResourceAddress(v_resourceIndex), p_attributeList, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Non-existing attribute not found"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error : attribute was retrieved while it doesn't exist"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attributes"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_008 function f_CSE_DMR_RET_013(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; // Test control // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); } // Test adapter configuration // Preamble if(p_resourceType != int2) { //ResourceType != AE v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); } if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource if (p_resourceType==int2){ v_aeIndex := v_resourceIndex; } } else { //ResourceType = RemoteCSE vc_cse1.start(f_cse_registerRemoteCse(p_requestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } // Test Body f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); } [] 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__ & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Down(); } else { f_cf02Down(); } }//end f_CSE_DMR_RET_013 function f_CSE_DMR_RET_014(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; // Test control if(not(PICS_ACP_SUPPORT)) { log(__SCOPE__ & ":INFO: AccessControlPolicy support is required for executing this test case"); stop; } // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); } // Test adapter configuration // Preamble if (p_resourceType!=int2){ v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi; } if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, int61); p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource if (p_resourceType==int2){ v_aeIndex := v_resourceIndex; } } else { //ResourceType = RemoteCSE vc_cse1.start(f_cse_registerRemoteCse(p_requestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } // Test Body f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Access denied to retrieve attributes from resource type " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving attributes from resource without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Retrieving attributes from resource without having privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_014 function f_CSE_DMR_RET_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var XSD.String v_attribute := "#pi";//Attribute parentId to be retrieved var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; // Test control // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); } // Test adapter configuration // Preamble if(p_resourceType != int2) { //ResourceType != AE v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); } if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource if (p_resourceType==int2){ v_aeIndex := v_resourceIndex; } } else { vc_cse1.start(f_cse_registerRemoteCse(p_requestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } // Test Body f_send(e_mcaPort, m_request(m_retrieveAttributeToOption(f_getResourceAddress(v_resourceIndex) & v_attribute, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Requested attribute retrieved successfully"); } [] 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__ & ": Error, not only requested attribute retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attribute"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Down(); } else { f_cf02Down(); } }//end f_CSE_DMR_RET_015 function f_CSE_DMR_RET_016(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; // Test control // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); } // Test adapter configuration // Preamble if(p_resourceType != int2) { //ResourceType != AE v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); } if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource if (p_resourceType==int2){ v_aeIndex := v_resourceIndex; } }else{ vc_cse1.start(f_cse_registerRemoteCse(p_requestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } f_send(e_mcaPort, m_request(m_retrieveAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi"}, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Requested attribute retrieved successfully"); } [] 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__ & ": Error, not only requested attribute retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attribute"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Down(); } else { f_cf02Down(); } }//end f_CSE_DMR_RET_016 function f_CSE_DMR_RET_017(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; // Test control // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); } // Test adapter configuration // Preamble if(p_resourceType != int2) { //ResourceType != AE v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); } if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource if (p_resourceType==int2){ v_aeIndex := v_resourceIndex; } }else{ vc_cse1.start(f_cse_registerRemoteCse(p_requestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } f_send(e_mcaPort,m_request(m_retrieveAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi", "ct"}, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Requested attributes retrieved successfully"); } [] 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__ & ": Error, not only requested attributes retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attributes"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Down(); } else { f_cf02Down(); } }//end f_CSE_DMR_RET_017 function f_CSE_DMR_RET_018(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; // Test control // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); }; // Test adapter configuration // Preamble if(p_resourceType != int2) { //ResourceType != AE v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); } if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource if (p_resourceType==int2){ v_aeIndex := v_resourceIndex; } }else{ vc_cse1.start(f_cse_registerRemoteCse(p_requestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } f_send(e_mcaPort, m_request(m_retrieveAttributeContentOption(f_getResourceAddress(v_resourceIndex), {"lbl"}, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Retrieved attribute does not exist"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error : attribute was retrieved while it doesn't exist"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Down(); } else { f_cf02Down(); } }//end f_CSE_DMR_RET_018 function f_CSE_DMR_RET_019(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; // Test control // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); } // Test adapter configuration // Preamble if(p_resourceType != int2) { //ResourceType != AE v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); } if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_requestPrimitive := f_setAcpId(p_requestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource if (p_resourceType==int2){ v_aeIndex := v_resourceIndex; } }else{ vc_cse1.start(f_cse_registerRemoteCse(p_requestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } f_send(e_mcaPort, m_request(m_retrieveAttributeContentOption(f_getResourceAddress(v_resourceIndex), {"lbl", "at"}, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Retrieved attribute does not exist"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error : attribute was retrieved while it doesn't exist"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attributes"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Down(); } else { f_cf02Down(); } }//end f_CSE_DMR_RET_019 function f_CSE_DMR_RET_020(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, ResultContent p_resultContent) runs on AeSimu system CseSystem { // 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_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := p_resultContent; f_send(e_mcaPort, 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 retrieve request "); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_020 function f_CSE_DMR_RET_021(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType != int15) { v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } // Test Body v_request := valueof(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int1;//Attributes f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": No child resources provided with RC 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__ & ": Child resources provided with RC set to " & int2str(enum2int(v_request.resultContent))); } [] 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"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_021 function f_CSE_DMR_RET_022(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType != int15) { v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } // Test Body v_request := valueof(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int4;//Attributes and child resources f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attributes and child resources provided with RC 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__ & ": Child resources provided with RC set to " & int2str(enum2int(v_request.resultContent))); } [] 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"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_022 function f_CSE_DMR_RET_023(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType != int15) { v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } // Test Body v_request := valueof(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int5;//attributes and child resource references f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attributes and child resources reference provided with RC 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__ & ": Child resources provided with RC set to " & int2str(enum2int(v_request.resultContent))); } [] 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"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_023 function f_CSE_DMR_RET_024(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType != int15) { v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } // Test Body v_request := valueof(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int6;//Child resource references f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Only child resources references provided with RC 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__ & ": Child resources provided with RC set to " & int2str(enum2int(v_request.resultContent))); } [] 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"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_024 function f_CSE_DMR_RET_025(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType != int15) { v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } // Test Body v_request := valueof(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int8;//Child resources f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Only child resources provided with RC 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__ & ": Child resources provided with RC set to " & int2str(enum2int(v_request.resultContent))); } [] 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"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_025 function f_CSE_DMR_RET_026(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc) runs on AeSimu system CseSystem { //Local variables var template RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var integer v_aeIndex := -1; var integer v_remoteCSEIndex := -1; var integer v_originalResourceIndex, v_originalLocalResourceIndex := -1; var XSD.ID v_originalResourceAddress; var XSD.ID v_resourceAnncAddress; var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createAcp := m_createAcpBase; var integer v_aeAnncIndex; var integer v_resourceAnncIndex; var integer v_acpIndex; var XSD.ID v_membersAcpId; //Test control // Test component configuration f_cf02Up(); // Test adapter configuration //Preamble v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1); //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_remoteCSEIndex := f_getLatestResourceIndex(vc_cse1); //Creating resource in Hosting CSE vc_cse1.start(f_generateAndSetLocalResource(valueof(p_originalResource), v_cseBaseIndex, p_resourceType)); vc_cse1.done; v_originalResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, e_spRelative); v_originalResourceIndex := f_getLatestLocalResource(vc_cse1); v_originalLocalResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); v_aeIndex := f_cse_createResource(int2,v_createAE); v_acpIndex := f_cse_createResource(int1, v_createAcp, -); // AE child resource if((p_resourceType == int3) or (p_resourceType == int9) or (p_resourceType == int29)) { p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); } p_createRequestAnnc.primitiveContent := f_setLink(valueof(p_createRequestAnnc.primitiveContent), v_originalResourceAddress); p_createRequestAnnc.primitiveContent := f_setExpirationTime(valueof(p_createRequestAnnc.primitiveContent), vc_resourcesList[v_originalResourceIndex].resource); vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_remoteCSEIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -); v_resourceAnncIndex := f_getLatestResourceIndex(vc_cse1); v_request := m_retrieve(v_resourceAnncAddress, f_getOriginator(v_aeIndex)); v_request.resultContent := int7; // Test Body vc_cse1.start(f_cse_retrieveResourceHandler(v_originalLocalResourceIndex, -, -)); f_send(e_mcaPort, m_request(valueof(v_request))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, vc_resourcesList[v_originalResourceIndex].resource))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__, ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__, ": No answer while retrieving resource type " & int2str(enum2int(p_resourceType))); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); } //end f_CSE_DMR_RET_026 }//end group Retrieve group Update { function f_CSE_DMR_UPD_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated 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 resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); //Used to check that the resource has been updated vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return vc_response.primitive.responsePrimitive; }//end f_CSE_DMR_UPD_001 function f_CSE_DMR_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated 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 resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); //Used to check that the resource has been updated vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return vc_response.primitive.responsePrimitive; }//end f_CSE_DMR_UPD_002 function f_CSE_DMR_UPD_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu system CseSystem return ResponsePrimitive { // Local variables var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); //f_match2PrimitiveContent(vc_resourcesList[v_resourceIndex].resource, p_createRequestPrimitive.primitiveContent); TODO fix the match problem // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request, p_nullFields)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated 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 resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return vc_response.primitive.responsePrimitive; }//end f_CSE_DMR_UPD_003 function f_CSE_DMR_UPD_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu system CseSystem return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request, p_nullFields)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated 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 resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return vc_response.primitive.responsePrimitive; }//end f_CSE_DMR_UPD_004 function f_CSE_DMR_UPD_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 f_cse_createAccessControlPolicyAux(-, -, int59);//c_CRDNDi) v_aeIndex := f_cse_preamble_registerAe(-, -); f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); if(p_resourceType != int1) { p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive,{f_getResourceAddress(vc_acpIndex)});//c_CRDNDi); } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Access denied to update attributes from resource type " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Updating attributes from resource without having privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_006 function f_CSE_DMR_UPD_007(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation not allowed. RO attribute from resource type " & int2str(enum2int(p_resourceType)) ); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Updating RO attribute from resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_007 function f_CSE_DMR_UPD_008(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request, p_nullFields)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation not allowed. Mandatory RW attribute from resource type " & int2str(enum2int(p_resourceType)) ); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Deleting a mandatory RW attribute from resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_008 function f_CSE_DMR_UPD_009(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { // 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_parentIndex := -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 != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive , v_parentIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": It is not possible to update an unexisting attribute of resource type " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while updating an unexisting resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_009 function f_CSE_DMR_UPD_010(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; 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_createRequestPrimitive, v_aeIndex); // Test Body f_cse_updateResource(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attributes"); } } vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_010 function f_CSE_DMR_UPD_011(ResourceType p_resourceTypeParent, template RequestPrimitive p_createParentRequestPrimitive, ResourceType p_resourceTypeChild, template RequestPrimitive p_createChildRequestPrimitive,template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_parentIndex := -1; var integer v_childIndex := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_parentIndex := f_cse_createResource(p_resourceTypeParent, p_createParentRequestPrimitive, v_aeIndex); v_childIndex := f_cse_createResource(p_resourceTypeChild, p_createChildRequestPrimitive, v_parentIndex); //Test Body v_request := f_getUpdateRequestPrimitive(p_resourceTypeChild, v_childIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Not allowed to update resource " & int2str(enum2int(p_resourceTypeChild)) & " with error OPERATION_NOT_ALLOWED"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Accepted update of resource " & int2str(enum2int(p_resourceTypeChild))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource " & int2str(enum2int(p_resourceTypeChild))); } } vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_childIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_011 function f_CSE_DMR_UPD_014(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, in boolean p_acpsRequired := false) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_acp1Index := -1; var integer v_acp2Index := -1; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble vc_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); if (p_acpsRequired) { v_acp1Index := f_cse_createResource(int1, m_createAcp("MyAcp1"), vc_aeIndex); v_acp2Index := f_cse_createResource(int1, m_createAcp("MyAcp2"), vc_aeIndex); p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive,{f_getResourceAddress(v_acp1Index)}); p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive,{f_getResourceAddress(v_acp2Index)}); infoPort.send(f_getResourceAddress(lengthof(vc_resourcesList)-1, e_nonHierarchical)) to mtc; } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, vc_aeIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while updating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_014 function f_CSE_DMR_UPD_015(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, boolean p_secondAcp := false) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var AcpType v_acpi; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_acpIndex := -1; // Test control // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); } // Test adapter configuration // Preamble if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if((p_resourceType != int2) and (p_resourceType != int1)) { v_aeIndex := f_cse_preamble_registerAe({vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID});//c_CRUDNDi); } if(p_secondAcp) {//A second ACP is required v_acpIndex := f_cse_createResource(int1, m_createAcpBase); v_acpi := {vc_resourcesList[v_acpIndex].resource.accessControlPolicy.resourceID}; if(p_resourceType == int9){ if(ispresent(p_updateRequestPrimitive.primitiveContent.group_.membersAccessControlPolicyIDs)) { p_updateRequestPrimitive.primitiveContent.group_.membersAccessControlPolicyIDs := v_acpi; } else { p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive, v_acpi); } } else { p_updateRequestPrimitive := f_setAcpId(p_updateRequestPrimitive, v_acpi); } } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive);//under the CSEBase resource } else { //ResourceType = RemoteCSE vc_cse1.start(f_cse_registerRemoteCse(p_createRequestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } //Test Body vc_request.primitive.requestPrimitive := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); f_send(e_mcaPort, m_request(vc_request.primitive.requestPrimitive)); //CSEBase tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated 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))); } } f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); //Postamble f_cse_postamble_deleteResources(); // Tear down if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Down(); } else { f_cf02Down(); } } // end function f_CSE_DMR_UPD_015 function f_CSE_DMR_UPD_016(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var MsgIn v_msgIn; var RequestPrimitive v_request; var ResponsePrimitive v_responsePrimitive; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; // Test control // Test component configuration if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Up(true); } else { f_cf02Up(); } // Test adapter configuration // Preamble if(p_resourceType != int2) { v_aeIndex := f_cse_preamble_registerAe(-, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn, "")});//c_CRUDNDi); } if(p_resourceType != int1) { f_cse_createAccessControlPolicyAux(-, -, -); p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}); } if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive);//under the CSEBase resource if(vc_ae2.running) { vc_ae2.stop; } } else { //ResourceType = RemoteCSE vc_cse1.start(f_cse_registerRemoteCse(p_createRequestPrimitive)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceIndex := f_getRemoteCseResource(vc_cse1); } //Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); if((p_resourceType == int23) and (ispresent(v_request.primitiveContent.subscription.notificationURI))) { //Subscription v_request.primitiveContent.subscription.notificationURI := {f_getResourceAddress(v_aeIndex)}; } if(p_resourceType == int9) { vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, {vc_resourcesList[vc_acpIndex].resource.accessControlPolicy.resourceID}, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}), -1)); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_ae2Index := f_getResourceFromAeSimu(vc_ae2); if(ispresent(v_request.primitiveContent.group_.memberIDs)) { v_request.primitiveContent.group_.memberIDs := {f_getResourceAddress(v_ae2Index)}; } } f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated 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 mandatory attribute"); } [] mcaPortIn.receive(mw_request(mw_notifyNotification(mw_contentNotificationVerification))) -> value v_msgIn { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Notification for Subscription verification received"); v_responsePrimitive := valueof(m_responseNotification(int2000, omit)); v_responsePrimitive.requestIdentifier := v_msgIn.primitive.requestPrimitive.requestIdentifier; f_send(e_mcaPortIn, m_response(v_responsePrimitive)); tc_ac.start; repeat; } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); //Postamble f_cse_postamble_deleteResources(); // Tear down if (p_resourceType!=int16){ //ResourceType != RemoteCSE f_cf01Down(); } else { f_cf02Down(); } } //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 system CseSystem { // Local variables var MsgIn v_request; var RequestPrimitive v_requestUpdatePrimitive; var integer v_parentIndex := -1; var integer v_aeIndex := -1; var integer v_latestResourceIndex; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control // Test component configuration f_cf02UpCseSimuMaster(); // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSEBase); //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex:= f_getLatestResourceIndex(vc_ae1); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } vc_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_parentIndex)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_latestResourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_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"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // 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 system CseSystem { // Local variables var MsgIn v_request; var RequestPrimitive v_requestUpdatePrimitive; var integer v_parentIndex := -1; var integer v_aeIndex := -1; var integer v_latestResourceIndex; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control // Test component configuration f_cf02UpCseSimuMaster(); // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSEBase); //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } vc_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_parentIndex)); f_cse_announcementProcedure_createHandler(p_createRequestAnnc); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_latestResourceIndex := f_getLatestResourceIndex(vc_ae1); p_updateRequestAnnc.to_ := f_getLocalResourceAddress(lengthof(vc_localResourcesList)-1); // Test Body vc_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_ := vc_cseSimuDesc.cseId; v_responsePrimitive.to_ := v_request.primitive.requestPrimitive.from_; f_send(e_mccPortIn, m_response(v_responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down 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 system CseSystem { // 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; f_send(e_mcaPort, 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 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 system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType != int15) { v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); v_request.resultContent := int0;//Nothing if(valueof(p_childResourceType) == int23) { vc_ae2.start(f_cse_notifyProcedure_defaultHandler()); } f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, 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 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_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 system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType != int15) { v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); v_request.resultContent := int1;//Attributes if(valueof(p_childResourceType) == int23) { vc_ae2.start(f_cse_notifyProcedure_defaultHandler()); } f_send(e_mcaPort, 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 system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); if(p_resourceType != int15) { v_childResourceIndex := f_cse_createResource(valueof(p_childResourceType), p_childRequestPrimitive, v_resourceIndex); } f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); v_request.resultContent := int9;//Modified Attributes if(valueof(p_childResourceType) == int23) { vc_ae2.start(f_cse_notifyProcedure_defaultHandler()); } f_send(e_mcaPort, 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 system CseSystem { // 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 if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); // Test Body if(p_resourceType == int23) { vc_ae2.start(f_cse_notifyProcedure_defaultHandler()); } v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); f_send(e_mcaPort, 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 system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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_aeIndex := f_cse_preamble_registerAe(-, -);//c_CRUNDi); f_cse_createAccessControlPolicyAux(-, {f_getResourceId(vc_resourcesList[v_aeIndex].resource)},int55);//c_CRDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitive, p_resourceType); //Adjustments for ACP resource type if(p_resourceType == int1) { p_createRequestPrimitive.primitiveContent.accessControlPolicy.selfPrivileges.accessControlRule_list := {m_createAcr({f_getResourceId(vc_resourcesList[v_aeIndex].resource)}, int55)}; } else { p_createRequestPrimitive := f_setAcpId(p_createRequestPrimitive, {f_getResourceAddress(vc_acpIndex)}); } //Creation of resource if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } 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.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Access denied to delete the resource " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error resource deleted without having privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType))); } } f_checkAeSimuStatus(); //Check if the resource has been deleted or not if(f_cse_isResourcePresent(v_resourceIndex)) { setverdict(pass, __SCOPE__ & ":INFO: Resource not deleted"); } else { setverdict(fail, __SCOPE__ & ":INFO: Resource deleted"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); };//end f_CSE_DMR_DEL_002 function f_CSE_DMR_DEL_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, ResourceType p_childResourceType, template RequestPrimitive p_createRequestPrimitiveChildResource) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_childResourceIndex := -1; var integer v_ae2Index := -1; var integer v_parentIndex := -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 != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_parentIndex); f_cse_preamble_subscriptionVerification(v_ae2Index, p_createRequestPrimitiveChildResource, p_childResourceType); v_childResourceIndex := f_cse_createResource(p_childResourceType, p_createRequestPrimitiveChildResource, v_resourceIndex); if((p_resourceType == int23) or (p_childResourceType == int23)) { vc_ae2.start(f_cse_notifyProcedure_defaultHandler()); } f_cse_deleteResource(v_resourceIndex); // Test Body f_send(e_mcaPort, m_request(m_delete(f_getResourceAddress(v_childResourceIndex), f_getOriginator(v_childResourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Error while deleting non existing resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error while deleting non existing 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_004 function f_CSE_DMR_DEL_005(ResourceType p_resourceTypeParent, template RequestPrimitive p_requestPrimitiveParent, ResourceType p_resourceTypeChild, template RequestPrimitive p_requestPrimitiveChild) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_childResourceIndex := -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_resourceTypeParent, p_requestPrimitiveParent, v_aeIndex); v_childResourceIndex := f_cse_createResource(p_resourceTypeChild, p_requestPrimitiveChild, v_resourceIndex); // Test Body f_send(e_mcaPort, m_request(m_delete(f_getResourceAddress(v_childResourceIndex), f_getOriginator(v_childResourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_resourceTypeChild)) & " 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_resourceTypeChild))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(p_resourceTypeChild))); } } vc_primitiveContentRetrievedResource := f_cse_retrieveResource(v_resourceIndex); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); };//end f_CSE_DMR_DEL_005 function f_CSE_DMR_DEL_006(ResourceType p_resourceTypeParent, template RequestPrimitive p_requestPrimitiveParent, ResourceType p_resourceTypeChild, template RequestPrimitive p_requestPrimitiveChild) runs on AeSimu system CseSystem { //Local variables var integer v_aeIndex := -1; var integer v_parentIndex := -1; var integer v_childIndex := -1; var PrimitiveContent v_attributesParent, v_attributesParent_afterDeletion; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_parentIndex := f_cse_createResource(p_resourceTypeParent, p_requestPrimitiveParent, v_aeIndex); v_childIndex := f_cse_createResource(p_resourceTypeChild, p_requestPrimitiveChild, v_parentIndex); v_attributesParent := f_cse_retrieveResource(v_parentIndex); if (p_resourceTypeParent==int3){ //Container if(not(ispresent(v_attributesParent.container.currentNrOfInstances))) { setverdict(fail, __SCOPE__ & ": Error the currentNrOfInstances attribute is empty"); f_checkAeSimuStatus(); } }else if (p_resourceTypeParent==int29){ //TimeSeries if(not(ispresent(v_attributesParent.timeSeries.currentNrOfInstances))) { setverdict(fail, __SCOPE__ & ": Error the currentNrOfInstances attribute is empty"); f_checkAeSimuStatus(); } } // Test Body f_cse_deleteResource(v_childIndex); v_attributesParent_afterDeletion := f_cse_retrieveResource(v_parentIndex); if (p_resourceTypeParent==int3){ //Container if(not(ispresent(v_attributesParent_afterDeletion.container.currentNrOfInstances))) { setverdict(fail, __SCOPE__ & ": Error the currentNrOfInstances attribute is empty"); f_checkAeSimuStatus(); } }else if (p_resourceTypeParent==int29){ //TimeSeries if(not(ispresent(v_attributesParent_afterDeletion.timeSeries.currentNrOfInstances))) { setverdict(fail, __SCOPE__ & ": Error the currentNrOfInstances attribute is empty"); f_checkAeSimuStatus(); } } if (p_resourceTypeParent==int3){ //Container if((v_attributesParent.container.currentNrOfInstances > v_attributesParent_afterDeletion.container.currentNrOfInstances) and (v_attributesParent.container.currentByteSize > v_attributesParent_afterDeletion.container.currentByteSize)) { setverdict(pass, __SCOPE__ & ": The currentNrOfInstances and currentByteSize attributes are decreased"); } else { setverdict(fail, __SCOPE__ & ": currentNrOfInstances and/or currentByteSize attributes are not decreased"); } }else if (p_resourceTypeParent==int29){ //TimeSeries if((v_attributesParent.timeSeries.currentNrOfInstances > v_attributesParent_afterDeletion.timeSeries.currentNrOfInstances) and (v_attributesParent.timeSeries.currentByteSize > v_attributesParent_afterDeletion.timeSeries.currentByteSize)) { setverdict(pass, __SCOPE__ & ": The currentNrOfInstances and currentByteSize attributes are decreased"); } else { setverdict(fail, __SCOPE__ & ": currentNrOfInstances and/or currentByteSize attributes are not decreased"); } } // Postamble f_cse_postamble_deleteResources(); // 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 system CseSystem { // 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; f_send(e_mcaPort, 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 system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); 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 f_send(e_mcaPort, 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 system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); 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 f_send(e_mcaPort, 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 function f_CSE_DMR_DEL_014(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); 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 := int4;//Attributes and child resources f_send(e_mcaPort, 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_014 function f_CSE_DMR_DEL_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); 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 := int5;//Attributes and child resource references f_send(e_mcaPort, 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_015 function f_CSE_DMR_DEL_016(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); 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 := int6;//Child resource references f_send(e_mcaPort, 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_016 function f_CSE_DMR_DEL_017(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse, template ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { // 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; var integer v_parentIndex := -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)); } } if(p_resourceType != int18) { v_parentIndex := v_aeIndex;//For resources that can have AE resource as parent } v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_parentIndex); 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 := int8;//Child resources f_send(e_mcaPort, 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_017 }//end group Delete }//end group Data_Management_and_Repository group Group_Managment { group Create { } // end group Create group Retrieve { } // end group Retrieve group Update { } // end group Update group Basic_Operations { function f_CSE_GMG_001(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_acpIndex := -1; var integer v_containerIndex_1 := -1; var integer v_containerIndex_2 := -1; var integer v_groupIndex := -1; var integer i; var ListOfURIs v_memberIDs; var AcpType v_membersAcpIds; var template RequestPrimitive v_createAcp := m_createAcpBase; // 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(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceAddress(v_containerIndex_1), f_getResourceAddress(v_containerIndex_2)}; v_membersAcpIds := {f_getResourceAddress(v_acpIndex)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3, -, v_membersAcpIds, -), v_aeIndex); // AE child resource p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation performed successfully by using fanOutPoint in the Group resource"); if(not ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list)){ setverdict(fail, __SCOPE__ & ": Error, aggregatedResponse element not provided"); } else { for(i:=0; i<lengthof(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list); i := i+1){ if(not match(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list[i], mw_responsePrimitive(p_responseStatusCode))){ setverdict(fail, __SCOPE__ & ": Error, one responsePrimitve of aggregatedResponse is not successful"); } } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while performing the operation"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while performing the operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_GMG_001 function f_CSE_GMG_002(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on AeSimu system CseSystem { //Local variables var integer v_aeIndex := -1; var integer v_acpIndex := -1; var integer v_containerIndex_1 := -1; var integer v_containerIndex_2 := -1; var integer v_groupIndex := -1; var ListOfURIs v_memberIDs; var ListOfURIs v_membersAcpIds; var template RequestPrimitive v_createAcp := m_createAcp(-, -, p_accessControlOperations); // 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(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceAddress(v_containerIndex_1), f_getResourceAddress(v_containerIndex_2)}; v_membersAcpIds := {f_getResourceAddress(v_acpIndex)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3, -, v_membersAcpIds), v_aeIndex); // AE child resource p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation failed due to lack of privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error, operation successful while no privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_GMG_002 function f_CSE_GMG_003(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_acpIndex := -1; var integer v_containerIndex_1 := -1; var integer v_containerIndex_2 := -1; var integer v_groupIndex := -1; var integer i; var ListOfURIs v_memberIDs; var ListOfURIs v_acpIds; var template RequestPrimitive v_createAcp := m_createAcpBase; // 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(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceAddress(v_containerIndex_1), f_getResourceAddress(v_containerIndex_2)}; v_acpIds := {f_getResourceAddress(v_acpIndex)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, v_acpIds, int3, -, -), v_aeIndex); // AE child resource p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation performed successfully by using fanOutPoint in group resource"); if(not ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list)){ setverdict(fail, __SCOPE__ & ": Error, aggregatedResponse element not provided"); } else { for(i:=0; i<lengthof(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list); i := i+1){ if(not match(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list[i], mw_responsePrimitive(p_responseStatusCode))){ setverdict(fail, __SCOPE__ & ": Error, one responsePrimitve of aggregatedResponse is not successful"); } } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while performing the operation"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while performing the operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_GMG_003 function f_CSE_GMG_004(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_accessControlOperations) runs on AeSimu system CseSystem { //Local variables var integer v_aeIndex := -1; var integer v_acpIndex := -1; var integer v_containerIndex_1 := -1; var integer v_containerIndex_2 := -1; var integer v_groupIndex := -1; var ListOfURIs v_memberIDs; var AcpType v_acpIDs; var template RequestPrimitive v_createAcp := m_createAcp(-, -, p_accessControlOperations); // 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(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_acpIndex := f_cse_createResource(int1, v_createAcp, v_aeIndex); // AE child resource v_containerIndex_1 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer_noResourceName, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceAddress(v_containerIndex_1), f_getResourceAddress(v_containerIndex_2)}; v_acpIDs := {f_getResourceAddress(v_acpIndex)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, v_acpIDs, int3), v_aeIndex); // AE child resource p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation failed due to lack of privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error, operation successful while no privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_GMG_004 function f_CSE_GMG_005(template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse := omit) runs on AeSimu system CseSystem { //Local constants const integer c_numberOfResponsePrimitive := 2; //Local variables var integer v_acpIndex, v_aeIndex_1, v_aeIndex_2 := -1; var integer v_groupIndex := -1; var ListOfURIs v_memberIDs; var AcpType v_acpIds; var integer i; var template RequestPrimitive v_createAcp := m_createAcp("PermissionForEveryone", -, -); // 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_acpIndex := f_cse_createResource(int1, v_createAcp, -); // AE child resource v_acpIds := {f_getResourceAddress(v_acpIndex)}; v_aeIndex_1 := f_cse_preamble_registerAe(v_acpIds, -); //c_CRUDNDi //vc_ae2.start(f_cse_createAccessControlPolicyAux("PermissionForAE1",{"all"}, int63)); //f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, v_acpIds, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, omit), -1)); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_aeIndex_2 := f_getLatestResource(vc_ae2); v_memberIDs := {f_getResourceAddress(v_aeIndex_1), f_getResourceAddress(v_aeIndex_2)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2, -, v_acpIds), v_aeIndex_1); // AE child resource p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation performed successfully by using fanOutPoint in group resource"); if(not ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list)){ setverdict(fail, __SCOPE__ & ": Error, aggregatedResponse element not provided"); } else{ if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list) != c_numberOfResponsePrimitive){ setverdict(fail, __SCOPE__ & ": Error, length of aggregatedResponse is not valid"); } else{ for(i:=0; i<c_numberOfResponsePrimitive; i:=i+1){ if(not match(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list[i].primitiveContent, p_contentResponse)){ setverdict(fail, __SCOPE__ & ": Error, aggregatedResponse doesn't match with template expected"); } } } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while performing the operation"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while performing the operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_GMG_005 function f_CSE_GMG_006(template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse := omit) runs on AeSimu system CseSystem { //Local constants const integer c_numberOfResponsePrimitive := 2; // Local variables var integer v_aeIndex_1, v_aeIndex_2, v_acpIndex, v_containerIndex_1, v_ae2LocalIndex, v_groupIndex := -1; var integer i; var ListOfURIs v_memberIDs; var AcpType v_acpIds; var template RequestPrimitive v_createAcp := m_createAcp("PermissionForEveryone", -, -); var template RequestPrimitive v_createContainerInAE1 := m_createContainerBase; var template RequestPrimitive v_createContainerInAE2 := m_createContainerBase; // 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_acpIndex := f_cse_createResource(int1, v_createAcp, -); // AE child resource v_acpIds := {f_getResourceAddress(v_acpIndex)}; v_aeIndex_1 := f_cse_preamble_registerAe(v_acpIds, -); //c_CRUDNDi //vc_ae2.start(f_cse_createAccessControlPolicyAux("PermissionForAE1",{"all"}, int63)); //f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, v_acpIds, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, omit), -1)); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_aeIndex_2 := f_getLatestResourceIndex(vc_ae2); v_ae2LocalIndex := f_getLatestResource(vc_ae2); v_createContainerInAE1 := f_setAcpId(v_createContainerInAE1, v_acpIds); v_containerIndex_1 := f_cse_createResource(int3, v_createContainerInAE1, v_aeIndex_1); // AE1 child resource v_createContainerInAE2 := f_setAcpId(v_createContainerInAE2, v_acpIds); vc_ae2.start(f_cse_createResource(int3, v_createContainerInAE2, v_aeIndex_2)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_memberIDs := {f_getResourceAddress(v_aeIndex_1), f_getResourceAddress(v_ae2LocalIndex)}; //v_membersAcpIds := {f_getResourceAddress(v_acpIndex)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2, -, v_acpIds, -), v_aeIndex_1); p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/" & c_resourceShortNameFanOutPoint & "/" & c_defaultContainerResourceName; p_requestPrimitive.from_ := f_getOriginator(v_groupIndex); //TODO see if it is correct or if we have to use PX_SUPER_ADMIN // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation performed successfully by using fanOutPoint in group resource"); if(not ispresent(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list)){ setverdict(fail, __SCOPE__ & ": Error, aggregatedResponse attribute not provided"); } else{ if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list) != c_numberOfResponsePrimitive){ setverdict(fail, __SCOPE__ & ": Error, length of aggregatedResponse is not valid"); } else{ for(i:=0; i<c_numberOfResponsePrimitive; i:=i+1){ if(not match(vc_response.primitive.responsePrimitive.primitiveContent.aggregatedResponse.responsePrimitive_list[i].primitiveContent, p_contentResponse)){ setverdict(fail, __SCOPE__ & ": Error, aggregatedResponse doesn't match with template expected"); } } } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while performing the operation"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while performing the operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_GMG_006 }// End of Basic_Operations } // end group Group_Managment group Discovery { function f_CSE_DIS_008(in FilterCriteria p_filterCriteria) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_request; var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//AE1 is registred; v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); v_request := valueof(m_retrieveFilterCriteria(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex), p_filterCriteria)); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responseDiscovery({}))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Expected no match due to conflicting filter criteria "); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code while retrieving resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_DIS_008 } //end group Group Discovery group Subscription_And_Notification { group Create { function f_CSE_SUB_CRE_001(ResourceType p_parentResourceType, template RequestPrimitive p_parentResourceRequestPrimitive, ResourceType p_childResourceType, template RequestPrimitive p_childRequestPrimitive) runs on AeSimu system CseSystem { //Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_parentResourceIndex := -1; var integer v_childResourceIndex := -1; var RequestPrimitive v_request; var integer v_ae2Index := -1; var template RequestPrimitive v_createSubscriptionRequest := m_createSubscriptionBase; // 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, v_createSubscriptionRequest, int23); v_parentResourceIndex := f_cse_createResource(p_parentResourceType, p_parentResourceRequestPrimitive, v_aeIndex);//Parent if(p_parentResourceType != int23){ v_childResourceIndex := f_cse_createResource(p_childResourceType, p_childRequestPrimitive, v_parentResourceIndex);//Child }else{ v_childResourceIndex := v_parentResourceIndex; } v_request := f_getCreateRequestPrimitive(int23, v_createSubscriptionRequest, v_childResourceIndex);//Subscription under child // Test Body f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5203))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(p_childResourceType)) & " not subscribable"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Subscription successful whereas resource type " & int2str(enum2int(p_childResourceType)) & " resource is not subscribable"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_childResourceIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Subscription resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Subscription resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }// end f_CSE_SUB_CRE_001 function f_CSE_SUB_CRE_006(template RequestPrimitive p_createRequest) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_request; var MsgIn v_response; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi; v_request := f_getCreateRequestPrimitive(int23, p_createRequest, v_aeIndex);//Subscription // Test Body f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { //CREATED - TS-004 - Table 6.6.3.3-1: RSCs for successful response class tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource created successfully"); f_checkAttributesToBeSaved(int23, v_request, v_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int23, vc_aeIndex); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(inconc, __SCOPE__&":INFO: Error while creating resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code in the response"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is present or not if (f_cse_isResourcePresent(v_resourceIndex)){ setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end f_CSE_SUB_CRE_006 function f_CSE_SUB_CRE_009(in NotificationEventType p_notificationEventType) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria({int6, p_notificationEventType}); v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription // Test Body f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value vc_response { //SUBSCRIPTION_VERIFICATION_INITIATION_FAILED tc_ac.stop; setverdict(pass, __SCOPE__ & ": Subscription rejected due to incompatible NotificationEventType elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Subscription successful with incompatible NotificationEventType elements"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end f_CSE_SUB_CRE_009 function f_CSE_SUB_CRE_010(in NotificationEventType p_notificationEventType) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria({int7, p_notificationEventType}); v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription // Test Body f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value vc_response { //SUBSCRIPTION_VERIFICATION_INITIATION_FAILED tc_ac.stop; setverdict(pass, __SCOPE__ & ": Subscription rejected due to incompatible NotificationEventType elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Subscription successful with incompatible NotificationEventType elements"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end f_CSE_SUB_CRE_010 function f_CSE_SUB_CRE_011(in NotificationContentType p_notificationContentType) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria({int6}); v_createRequest.primitiveContent.subscription.notificationContentType := p_notificationContentType; v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription // Test Body f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Subscription rejected due to incompatible NotificationEventType and NotificationContentType elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Subscription successful with incompatible NotificationEventType and NotificationContentType elements"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end f_CSE_SUB_CRE_011 function f_CSE_SUB_CRE_012(in NotificationContentType p_notificationContentType) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria({int7}); v_createRequest.primitiveContent.subscription.notificationContentType := p_notificationContentType; v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription // Test Body f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Subscription rejected due to incompatible NotificationEventType and NotificationContentType elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Subscription successful with incompatible NotificationEventType and NotificationContentType elements"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end f_CSE_SUB_CRE_012 function f_CSE_SUB_CRE_013(in NotificationEventType p_notificationEventType) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria({p_notificationEventType}); v_createRequest.primitiveContent.subscription.notificationContentType := int4; v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription // Test Body f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Subscription rejected due to incompatible NotificationEventType and NotificationContentType elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Subscription successful with incompatible NotificationEventType and NotificationContentType elements"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end f_CSE_SUB_CRE_013 function f_CSE_SUB_CRE_014(in NotificationEventType p_notificationEventType) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.subscription.eventNotificationCriteria := m_eventNotificationCriteria({p_notificationEventType}); v_createRequest.primitiveContent.subscription.notificationContentType := int2; v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription // Test Body f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Subscription rejected due to incompatible NotificationEventType and NotificationContentType elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Subscription successful with incompatible NotificationEventType and NotificationContentType elements"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_cse_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end f_CSE_SUB_CRE_014 }//end group Create group Notify{ }//end group Notify group Update { }//end group Update group Delete { }//end group Delete }//end group Subscription_And_Notification group Security { group Access_Control_Policy { group Create { }// end of group Create group Update { }// end of group Update group Basic_Operations { function f_CSE_SEC_ACP_001(template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_aeIndex2 := -1; var integer v_acpIndex := -1; var RequestPrimitive v_createRequest := valueof(m_createAcpBase); var RequestPrimitive v_updateRequest; var AccessControlRule v_accessControlRule_1; var SetOfAcrs v_setOfArcs; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(v_acpIndex)}, -); vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, -), -1)); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_aeIndex2 := f_getLatestResource(vc_ae2); v_accessControlRule_1 := valueof(m_createAcr({ f_getOriginator(v_aeIndex), PX_SUPER_AE_ID}, int63)); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, v_setOfArcs)); f_cse_updateResource(int1, v_acpIndex, v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_aeIndex2].resource); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation denied because of lack of right on Container"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error operation have been accepted without having privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int3 (Container)"); } } //Postamble //We are forced to delete the Ae because the delete request in the postamble_deleteResources is sent by Ae itself, witch doesn't have privileges if(testcasename() == "TC_CSE_SEC_ACP_001_DEL") { f_cse_deleteResource(v_aeIndex, m_delete(f_getResourceAddress(v_aeIndex), f_getOriginator()));//Use of PX_SUPER_AE_ID to remove AE } f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_001 function f_CSE_SEC_ACP_002(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpIndex1 := -1; var integer v_acpIndex2 := -1; var RequestPrimitive v_updateRequest; var AccessControlRule v_accessControlRule_1; var SetOfAcrs v_setOfArcs; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpIndex1 := f_cse_createResource(int1, m_createAcp("MyAcp1")); // CSE child resource v_acpIndex2 := f_cse_createResource(int1, m_createAcp("MyAcp2")); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(v_acpIndex1), f_getResourceAddress(v_acpIndex2)}, -); v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int3)); // c_CR v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); f_cse_updateResource(int1, v_acpIndex1, v_updateRequest); v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int60)); // c_UDNDi v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); f_cse_updateResource(int1, v_acpIndex2, v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation on resource type int2 (Ae)"); } [] 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 operation on resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_002 function f_CSE_SEC_ACP_003(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpIndex := -1; var RequestPrimitive v_createRequest; var AccessControlRule v_accessControlRule_1; var RequestPrimitive v_updateRequest; var SetOfAcrs v_setOfArcs; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_createRequest := valueof(m_createAcp( -, {"testDomain"}, -)); v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(v_acpIndex)}, -); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := "testDomain"; f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation on resource type int2 (Ae)"); } [] 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 operation on resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble v_accessControlRule_1 := valueof(m_createAcr({"all"}, int63)); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, v_setOfArcs)); v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); v_updateRequest.from_ := "testDomain"; f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; log(__SCOPE__ & ":INFO: Attribute of resource type ACP updated successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; log(__SCOPE__ & ":INFO: Error while updating resource type ACP"); } [] tc_ac.timeout { log(__SCOPE__ & ":INFO: No answer while updating resource type ACP"); } } f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_003 function f_CSE_SEC_ACP_004(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_aeIndex2 := -1; var integer v_acpIndex := -1; var RequestPrimitive v_createRequest; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1); v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(v_acpIndex)}, -); vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, -), -1)); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_aeIndex2 := f_getLatestResource(vc_ae2); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getResourceId(vc_resourcesList[v_aeIndex2].resource); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation on resource type int2 (Ae)"); } [] 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 operation on resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_004 function f_CSE_SEC_ACP_005(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var charstring v_currentTime; var RequestPrimitive v_createRequest; var AccessControlRule v_accessControlRule := valueof(m_createAcr({"all"}, int63)); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1); v_currentTime := fx_generateTimestamp(); v_accessControlRule.accessControlContexts_list := {{{"* * * * " & int2str(f_getMonth(v_currentTime)) & " * *"}, omit, omit}}; v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule}; vc_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(vc_acpIndex)}, -); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation on resource type int2 (Ae)"); if(p_responseStatusCode == int2002) { f_removeElementFromList(vc_resourcesIndexToBeDeleted, v_aeIndex); } } [] 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 operation on resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble f_cse_updateAcpAuxResource(int63); f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_005 function f_CSE_SEC_ACP_006(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_month; var charstring v_currentTime; var integer v_aeIndex := -1; var RequestPrimitive v_createRequest; var AccessControlRule v_accessControlRule := valueof(m_createAcr({"all"}, int63)); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1); v_currentTime := fx_generateTimestamp(); v_month := f_getMonth(v_currentTime); if(v_month == 12) { v_month := 1; } else { v_month := v_month + 1; } v_accessControlRule.accessControlContexts_list := {{{"* * * * " & int2str(v_month) & " * *"}, omit, omit}}; v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule}; vc_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(vc_acpIndex)}, -); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation denied due to lack of privileges, out of accessControlTimeWindow"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error operation have been accepted without having privileges"); if(p_responseStatusCode == int2002) { f_removeElementFromList(vc_resourcesIndexToBeDeleted, v_aeIndex); } } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation"); } } //Postamble f_cse_updateAcpAuxResource(int63); f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_006 function f_CSE_SEC_ACP_007(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpIndex := -1; var RequestPrimitive v_createRequest; var AccessControlRule v_accessControlRule := valueof(m_createAcr({"all"}, int63)); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1); v_accessControlRule.accessControlContexts_list := {{omit, omit, { choice := { countryCode := {"ES"}}}}}; v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule}; v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource //TODO How to indicate the location of the Originator (AE1)? v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(v_acpIndex)}, -); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation on resource type int2 (Ae)"); } [] 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 operation on resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_007 function f_CSE_SEC_ACP_008(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpIndex := -1; var RequestPrimitive v_createRequest; var AccessControlRule v_accessControlRule := valueof(m_createAcr({"all"}, int63)); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1); v_accessControlRule.accessControlContexts_list := {{omit, omit, { choice := { countryCode := {"ES"}}}}}; v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule}; v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource //TODO How to indicate the location of the Originator (AE1)? v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(v_acpIndex)}, -); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation denied due to lack of privileges, out of accessControlTimeWindow"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error operation have been accepted without having privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_008 function f_CSE_SEC_ACP_009(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var RequestPrimitive v_createRequest; var AccessControlRule v_accessControlRule := valueof(m_createAcr({"all"}, int63)); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1); v_accessControlRule.accessControlContexts_list := {{{}, {{f_getIpv4Address(vc_aeSimuDesc.mcaPortIn)}, omit}, omit}}; v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule}; vc_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(vc_acpIndex)}, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn)}); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation on resource type int2 (Ae)"); if(p_responseStatusCode == int2002) { f_removeElementFromList(vc_resourcesIndexToBeDeleted, v_aeIndex); } } [] 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 operation on resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble f_cse_updateAcpAuxResource(int63); f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_009 function f_CSE_SEC_ACP_010(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var RequestPrimitive v_createRequest; var AccessControlRule v_accessControlRule := valueof(m_createAcr({"all"}, int63)); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1); v_accessControlRule.accessControlContexts_list := {{omit, {{"240.0.0.0"}, omit}, omit}}; v_createRequest.primitiveContent.accessControlPolicy.privileges.accessControlRule_list := {v_accessControlRule}; vc_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(vc_acpIndex)}, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn)}); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation denied due to lack of privileges, out of accessControlTimeWindow"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error operation have been accepted without having privileges"); if(p_responseStatusCode == int2002) { f_removeElementFromList(vc_resourcesIndexToBeDeleted, v_aeIndex); } } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation"); } } //Postamble f_cse_updateAcpAuxResource(int63); f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_010 function f_CSE_SEC_ACP_011(template RequestPrimitive p_requestPrimitive, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_containerIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation on resource type int3 (Container)"); } [] 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 operation on resource type int3 (Container)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int3 (Container)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_011 function f_CSE_SEC_ACP_012(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_acor) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_acpIndex := -1; var RequestPrimitive v_request; var RequestPrimitive v_createRequest := valueof(m_createAcpBase); var RequestPrimitive v_updateRequest; var AccessControlRule v_accessControlRule_1, v_accessControlRule_2; var SetOfAcrs v_setOfArcs; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceAddress(v_acpIndex)}, -); v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_AE_ID}, int63)); v_accessControlRule_2 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, p_acor)); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); f_cse_updateResource(int1, v_acpIndex, v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_containerIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation denied because of lack of right on Container"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error operation have been accepted without having privileges"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource type int3 (Container)"); } } //Postamble //We are forced to delete the Ae because the delete request in the postamble_deleteResources is sent by Ae itself, witch doesn't have privileges if(testcasename() == "TC_CSE_SEC_ACP_012_DEL") { f_cse_deleteResource(v_aeIndex, m_delete(f_getResourceAddress(v_aeIndex), f_getOriginator()));//Use of PX_SUPER_AE_ID to remove AE } f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_012 function f_CSE_SEC_ACP_015(template RequestPrimitive p_request, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_ae2Index := -1; var integer v_acpIndex := -1; var integer v_groupIndex := -1; var XSD.AnyURI v_ae2ResourceAddress; var template RequestPrimitive v_groupRequest := m_createGroup(1, -, omit, int2, -, -, -); var template RequestPrimitive v_createRequest := valueof(m_createAcpBase); var template RequestPrimitive v_updateRequest := m_updateAeBase; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, omit), -1)); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_ae2ResourceAddress := f_getLatestResourceAddress(vc_ae2, e_nonHierarchical, e_cseRelative); v_ae2Index := f_getLatestResourceIndex(vc_ae2); v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceAddress(v_aeIndex)}; v_groupIndex := f_cse_createResource(int9, v_groupRequest, -); v_createRequest := m_createAcp(-, {v_ae2ResourceAddress, f_getResourceAddress(v_groupIndex, e_nonHierarchical, e_cseRelative)} , -); v_acpIndex := f_cse_createResource(int1, v_createRequest, -); v_updateRequest.primitiveContent.aE.accessControlPolicyIDs := {f_getResourceAddress(v_acpIndex)}; vc_ae2.start(f_cse_updateResource(int2, v_ae2Index, v_updateRequest)); // AE2 is updated f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); // Test Body p_request.to_ := v_ae2ResourceAddress; p_request.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_request))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation on AE"); } [] 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 operation on resource AE"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource AE"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_015 function f_CSE_SEC_ACP_016(template RequestPrimitive p_request) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_ae2Index := -1; var integer v_ae3Index := -1; var integer v_acpIndex := -1; var integer v_groupIndex := -1; var XSD.AnyURI v_ae2ResourceAddress; var template RequestPrimitive v_groupRequest := m_createGroup(1, -, omit, int2, -, -, -); var template RequestPrimitive v_createRequest := valueof(m_createAcpBase); var template RequestPrimitive v_updateRequest := m_updateAeBase; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); v_ae3Index := f_cse_createResource(int2, m_createAe("NMyApp3Id", -, "", "MyAe3", omit), -1); // AE3 is registred v_groupRequest.primitiveContent.group_.memberIDs := {f_getResourceId(vc_resourcesList[v_ae3Index].resource)}; v_groupIndex := f_cse_createResource(int9, v_groupRequest, -); vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, omit), -1)); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_ae2ResourceAddress := f_getLatestResourceAddress(vc_ae2, e_nonHierarchical, e_cseRelative); v_ae2Index := f_getLatestResourceIndex(vc_ae2); v_createRequest := m_createAcp(-, {v_ae2ResourceAddress, f_getResourceAddress(v_groupIndex, e_nonHierarchical, e_cseRelative)} , -); v_acpIndex := f_cse_createResource(int1, v_createRequest, -); v_updateRequest.primitiveContent.aE.accessControlPolicyIDs := {f_getResourceAddress(v_acpIndex)}; vc_ae2.start(f_cse_updateResource(int2, v_ae2Index, v_updateRequest)); // AE2 is updated f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); // Test Body p_request.to_ := v_ae2ResourceAddress; p_request.from_ := f_getOriginator(v_aeIndex); f_send(e_mcaPort, m_request(valueof(p_request))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation denied because of lack of right on AE"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error, successful operation response when having no privilege on AE"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing operation on resource AE"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_016 }// end of Basic_Operations }//end group AccessControlPolicy }//end group Security group Annoucement { group Basic { function f_CSE_ANNC_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive, in template RequestPrimitive p_requestUpdatePrimitive := omit) runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var integer v_announcedParentIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex; var ResponsePrimitive v_responsePrimitive; var integer v_AEAnncResourceIndex; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; // Test control // Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Preamble vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); v_aeIndex := f_cse_createResource(int2,v_create); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Announced parent resource is by default the parent for an announced resource v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1); // Test Body if (ispresent (p_requestUpdatePrimitive)) { v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); v_responsePrimitive.responseStatusCode := int2004; } else { if (p_resourceType == int4) { v_create := m_createContainerBase; v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, v_announcedParentIndex)); v_resourceIndex := f_cse_createResource(int3, v_create, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex); //Retrieve the parent resource index v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1); } else if (p_resourceType == int30) { v_create := m_createTimeSeriesBase; v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, v_announcedParentIndex)); v_resourceIndex := f_cse_createResource(int29, v_create, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex); //Retrieve the parent resource index v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1); } else { v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_aeIndex); } v_responsePrimitive.responseStatusCode := int2001; } vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_announcedParentIndex)); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(v_responsePrimitive.responseStatusCode))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation for resource " & int2str(enum2int(p_resourceType)) & " performed successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); }//end f_CSE_ANNC_001 }//end group Basic group Create { function f_CSE_ANNC_CRE_001(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu system CseSystem { //Local variables var integer v_aeIndex := -1; var integer v_announcedParentIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control //Test component configuration f_cf02Up(); vc_resetRequired := true; //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Preamble vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); v_aeIndex := f_cse_createResource(int2,v_create); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Retrieve the announced parent resource index v_announcedParentIndex := f_getLatestLocalResourceIndex(vc_cse1); //Test body vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_announcedParentIndex)); f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); } //end f_CSE_ANNC_CRE_001 function f_CSE_ANNC_CRE_002(ResourceType p_resourceType, template RequestPrimitive p_createRequest, in template RequestPrimitive p_updateRequest := omit, in template RequestPrimitive p_createRequestAnnc) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_announcedResourceIndex := -1; var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}); var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE; var ResponsePrimitive v_response; v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(-, true); vc_resetRequired := true; // Test adapter configuration //Register the CSE f_cse_registerRemoteCse(v_createRemoteCse); //Preamble vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); vc_ae1.start(f_cse_createResource(p_resourceType, p_createRequest, v_aeIndex)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body //Update of the resource so that it gets announced vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_updateRequest, -)); //IUT should first create CSEBaseAnnc at the announcement target, and then, IUT announces the resource on the remoteCSEAnnc resource //p_createRequestAnnc.to_ := PX_TS_CSE1.cseId; vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(mw_createAnnc(-, PX_TS_CSE2.cseId))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received"); mccPortInternal.send(vc_request.primitive.requestPrimitive); alt { []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { } } f_send(e_mccPortIn, m_response(v_response)); //Retrieve the CSEBaseAnnc resource index if(v_response.responseStatusCode == int2001) { tc_ac.start; repeat; } else { setverdict(fail, __SCOPE__ & ":ERROR: CSEBaseAnnc not created"); } } [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { mccPortInternal.send(vc_request.primitive.requestPrimitive); alt { []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { } } f_send(e_mccPortIn, m_response(v_response)); } else { setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target"); v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } if(getverdict == inconc) { setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); } } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_CRE_002 function f_CSE_ANNC_CRE_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_parentIndex := -1; var RequestPrimitive v_request; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); v_parentIndex := vc_localRemoteCseIndex; //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); v_resourceIndex := v_aeIndex; // Test Body if (p_resourceType == int4) { v_create := m_createContainerBase; v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; vc_ae1.start(f_cse_createResource(int3,v_create, v_aeIndex)); v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); } else if (p_resourceType == int30) { v_create := m_createTimeSeriesBase; v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; vc_ae1.start(f_cse_createResource(int29,v_create, v_aeIndex)); v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); } vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_resourceIndex)); f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_CRE_004 function f_CSE_ANNC_CRE_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_cSEBaseAnncIndex := -1; var integer v_containerAnncIndex := -1; var integer v_announcedResourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createContainer := m_createContainerBase; var template RequestPrimitive v_createContainerAnnc := mw_createContainerAnnc; var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}); var ResponsePrimitive v_response; v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(-, true); vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_remoteCseIndex := f_cse_registerRemoteCse(v_createRemoteCse); //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); //Trigger creation of CSEBaseAnnc vc_cse2.start(f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -)); v_createContainer.primitiveContent.container.resourceName := "TriggerCreationCSEBaseAnnc"; vc_ae1.start(f_cse_createResource(int3,v_createContainer, v_aeIndex)); f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); //Then, IUT announces the resource on the CSEBaseAnnc v_containerAnncIndex := f_getLatestLocalResourceIndex(vc_cse2); v_cSEBaseAnncIndex := v_containerAnncIndex -1; // Test Body vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_cSEBaseAnncIndex)); vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { mccPortInternal.send(vc_request.primitive.requestPrimitive); alt { []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted"); } } f_send(e_mccPortIn, m_response(v_response)); } else { setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target"); v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } if(getverdict == inconc) { setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); } } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_CRE_005 function f_CSE_ANNC_CRE_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_create; // Test control // Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Preamble v_aeIndex := f_cse_preamble_registerAe(); v_resourceIndex := v_aeIndex; // Test Body if (p_resourceType == int4) { v_create := valueof(m_createContainerBase); v_resourceIndex := f_cse_createResource(int3,v_create, v_aeIndex); } else if (p_resourceType == int30) { v_create := valueof(m_createTimeSeriesBase); v_resourceIndex := f_cse_createResource(int29,v_create, v_aeIndex); } f_send(e_mcaPort, m_request(f_getCreateRequestPrimitive(p_resourceType, p_requestCreatePrimitive, v_resourceIndex))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__, ": Resource created successfully"); if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance)) { if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance.announceTo)) { if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.contentInstance.announceTo) != 0) { setverdict(fail, __SCOPE__, ": Resource contains the attribute announceTo"); } } } else if(ischosen(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance)) { if(ispresent(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance.announceTo)) { if(lengthof(vc_response.primitive.responsePrimitive.primitiveContent.timeSeriesInstance.announceTo) != 0) { setverdict(fail, __SCOPE__, ": Resource contains the attribute announceTo"); } } } } [] 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 creating resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__, ": No answer while creating resource ContentInstance"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); }//end f_CSE_ANNC_CRE_006 function f_CSE_ANNC_CRE_007(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_announcedResourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}); var template RequestPrimitive v_updateRemoteCse := mw_updateRemoteCSE; var ResponsePrimitive v_response; v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(-, true); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(v_createRemoteCse); //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -)); vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(mw_createAnnc(-, PX_TS_CSE2.cseId))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Expected Announcement received"); mccPortInternal.send(vc_request.primitive.requestPrimitive); alt { []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { } } f_send(e_mccPortIn, m_response(v_response)); //Retrieve the CSEBaseAnnc resource index if(v_response.responseStatusCode == int2001) { tc_ac.start; repeat; } else { setverdict(fail, __SCOPE__ & ":ERROR: CSEBaseAnnc not created"); } } [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { mccPortInternal.send(vc_request.primitive.requestPrimitive); alt { []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted"); } } f_send(e_mccPortIn, m_response(v_response)); } else { setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target"); v_announcedResourceIndex := f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } if(getverdict == inconc) { setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); } } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_CRE_007 function f_CSE_ANNC_CRE_008(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_parentIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; //Test adapter configuration // Register the CSE vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); v_parentIndex := vc_localRemoteCseIndex; vc_ae1.start(f_cse_createResource(int2,v_create)); v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); v_resourceIndex := v_aeIndex; // Test Body if (p_resourceType == int4) { v_create := m_createContainerBase; v_create.primitiveContent.container.announceTo := {PX_TS_CSE1.cseId}; vc_ae1.start(f_cse_createResource(int3,v_create, v_aeIndex)); v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createContainerAnnc(), -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); } else if (p_resourceType == int30) { v_create := m_createTimeSeriesBase; v_create.primitiveContent.timeSeries.announceTo := {PX_TS_CSE1.cseId}; vc_ae1.start(f_cse_createResource(int29,v_create, v_aeIndex)); v_parentIndex := f_cse_announcementProcedure_createHandler(mw_createTimeSeriesAnnc(), -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); } vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_resourceIndex)); f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_parentIndex); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_CRE_008 function f_CSE_ANNC_CRE_009(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_aEAnncIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; //Test adapter configuration // Register the CSE vc_remoteCseIndex := f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); vc_ae1.start(f_cse_createResource(int2,v_create)); v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_CRE_009 } //end group Create group Retrieve { function f_CSE_ANNC_RET_001(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc, template PrimitiveContent p_primitiveContent) runs on AeSimu system CseSystem { // Local variables var integer v_cseBaseIndex := -1; var integer v_aeIndex := -1; var integer v_remoteCSEIndex := -1; var integer v_originalResourceIndex := -1; var integer v_parentAnncIndex := -1; var XSD.ID v_originalResourceAddress, v_cseBaseResourceAddress; var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createAcp := m_createAcpBase; var template RequestPrimitive v_parentAnncResource; var XSD.ID v_resourceAnncAddress; var integer v_acpIndex; // Test control // Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration //Preamble v_aeIndex := f_cse_createResource(int2,v_createAE); v_acpIndex := f_cse_createResource(int1, v_createAcp, -); // AE child resource v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1); v_cseBaseResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, e_spRelative); //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); if((p_resourceType != int1) and (p_resourceType != int4) and (p_resourceType != int30)) { p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); } vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int5), m_createCSEBaseAnncBase(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, v_cseBaseResourceAddress), -)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1); //Creating announced resource (original resource in CSE1) in Hosting CSE if(p_resourceType == int4){//Create both original and announced parent resource for contentInstance v_parentAnncResource := m_createContainerAnncBase; v_parentAnncResource := f_setAcpId(v_parentAnncResource, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int3), v_parentAnncResource, v_parentAnncIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1); } else if (p_resourceType == int30){//Create both original and announced parent resource for timeSeriesInstance v_parentAnncResource := m_createTimeSeriesAnncBase; v_parentAnncResource := f_setAcpId(v_parentAnncResource, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int29), v_parentAnncResource, v_parentAnncIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1); } vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_parentAnncIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -); // Test Body f_send(e_mcaPort, m_request(m_retrieve(v_resourceAnncAddress, f_getOriginator(v_aeIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_primitiveContent))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__, ": Wrong content"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__, ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__, ": No answer while retrieving resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); }//end f_CSE_ANNC_RET_001 function f_CSE_ANNC_RET_002(ResourceType p_resourceType, template PrimitiveContent p_originalResource, template RequestPrimitive p_createRequestAnnc, template PrimitiveContent p_primitiveContent) runs on AeSimu system CseSystem { // Local variables var integer v_cseBaseIndex := -1; var integer v_aeIndex := -1; var integer v_remoteCSEIndex := -1; var integer v_originalResourceIndex := -1; var integer v_parentAnncIndex := -1; var XSD.ID v_originalResourceAddress, v_cseBaseResourceAddress; var template RequestPrimitive v_createAE := m_createAe(PX_TS_AE1.appId, omit, omit); var template RequestPrimitive v_createAcp := m_createAcpBase; var XSD.ID v_resourceAnncAddress; var integer v_acpIndex; var RequestPrimitive v_request; var template RequestPrimitive v_parentAnncResource; // Test control // Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration //Preamble v_aeIndex := f_cse_createResource(int2,v_createAE); v_acpIndex := f_cse_createResource(int1, v_createAcp, -); // AE child resource v_cseBaseIndex := f_getLatestLocalResourceIndex(vc_cse1); v_cseBaseResourceAddress := f_getLatestLocalResourceAddress(vc_cse1, -, e_spRelative); //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); if((p_resourceType == int3) or (p_resourceType == int9) or (p_resourceType == int29)) { p_createRequestAnnc := f_setAcpId(p_createRequestAnnc, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); } vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int5), m_createCSEBaseAnncBase(-, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, v_cseBaseResourceAddress), -)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1); //Creating announced resource (original resource in CSE1) in Hosting CSE if(p_resourceType == int4){//Create both original and announced parent resource for contentInstance v_parentAnncResource := m_createContainerAnncBase; v_parentAnncResource := f_setAcpId(v_parentAnncResource, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int3), v_parentAnncResource, v_parentAnncIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1); } else if (p_resourceType == int30){//Create both original and announced parent resource for timeSeriesInstance v_parentAnncResource := m_createTimeSeriesAnncBase; v_parentAnncResource := f_setAcpId(v_parentAnncResource, {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}); vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(int29), v_parentAnncResource, v_parentAnncIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_parentAnncIndex := f_getLatestResourceIndex(vc_cse1); } //Creating announced resource (original resource in CSE1) in Hosting CSE vc_cse1.start(f_cse_createResource_cseSimu(f_getAnnouncedResourceType(p_resourceType), p_createRequestAnnc, v_parentAnncIndex)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_resourceAnncAddress := f_getLatestResourceAddress(vc_cse1, -, -); v_originalResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); // Test Body vc_cse1.start(f_cse_retrieveResourceHandler(v_originalResourceIndex, -, -)); v_request := valueof(m_retrieve(v_resourceAnncAddress, f_getOriginator(v_aeIndex))); v_request.resultContent := int7; f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, p_primitiveContent))) -> value vc_response { tc_ac.stop; setverdict(pass, __SCOPE__, ": Resource " & int2str(enum2int(p_resourceType)) & " retrieved successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000))) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__, ": Wrong content"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value vc_response { tc_ac.stop; setverdict(fail, __SCOPE__, ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__, ": No answer while retrieving resource type " & int2str(enum2int(p_resourceType))); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); } //end f_CSE_ANNC_RET_002 } //end group Retrieve group Update{ function f_CSE_ANNC_UPD_001(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu system CseSystem { // Local variables var integer v_aEAnncIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); v_aEAnncIndex := f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(p_createRequestAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement creation received"); f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_aEAnncIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Unexpected creation received"); f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, -, -); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_UPD_001 function f_CSE_ANNC_UPD_002(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_announcedResourceIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); //Test control // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, p_nullFields)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(mw_delete)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement deletion received"); f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_UPD_002 function f_CSE_ANNC_UPD_003(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on AeSimu system CseSystem { //Local variables var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; var integer v_aEAnncIndex := -1; var integer v_resourceIndex := -1; var integer v_announcedResourceIndex := -1; //Test control //Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Preamble v_aeIndex := f_cse_preamble_registerAe(); // Test Body vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -)); v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_announcedResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); // Test Body vc_cse1.start(f_cse_announcementProcedure_deleteHandler(-, -, v_announcedResourceIndex)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest, p_nullFields)); 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"); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //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_003 function f_CSE_ANNC_UPD_004(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template PrimitiveContent p_updateResponse) runs on AeSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_announcedResourceIndex := -1; var integer v_aEAnncIndex := -1; var integer v_resourceIndex := -1; var RequestPrimitive v_updateRequest; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); v_create.primitiveContent.aE.announceTo := {PX_TS_CSE1.cseId}; //Test control // Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Preamble vc_cse1.start(f_cse_announcementProcedure_createHandler(mw_createAEAnnc(-, -, -))); v_aeIndex := f_cse_createResource(int2,v_create); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_aEAnncIndex := f_getLatestLocalResourceIndex(vc_cse1); // Test Body v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); // Test Body vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_aEAnncIndex)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, p_updateResponse))) -> 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"); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); }//end f_CSE_ANNC_UPD_004 function f_CSE_ANNC_UPD_005(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc, template (omit) AttributeAux_list p_nullFields := omit) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_announcedResourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); //Test control // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_createResource(int2,v_create)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, p_nullFields)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(p_updateRequestAnnc, {p_nullFields[0].name})) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Update for announced resource received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Update for announced resource received but not deannouncing attribute"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_UPD_005 function f_CSE_ANNC_UPD_006(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu system CseSystem { // Local variables var integer v_resourceIndex, v_containerAnncIndex, v_cSEBaseAnncIndex := -1; var integer v_aeIndex := -1; var ResponsePrimitive v_response; var template RequestPrimitive v_createRequestRemoteCseAnnc := m_createRemoteCSEAnncBase; var template RequestPrimitive v_createRemoteCse := m_createRemoteCSE_poa(PX_TS_CSE1.cseId, -, -, -, -, {f_getLocalPoA()}); var template RequestPrimitive v_createContainer := m_createContainerBase; var template RequestPrimitive v_createContainerAnnc := mw_createContainerAnnc; v_createRemoteCse.primitiveContent.remoteCSE.descendantCSEs := {PX_TS_CSE2.cseId}; v_createContainer.primitiveContent.container.announceTo := {PX_TS_CSE2.cseId}; // Test control // Test component configuration f_cf02UpCseSimuMaster(-, true); vc_resetRequired := true; // Test adapter configuration //Register the CSE f_cse_registerRemoteCse(v_createRemoteCse); //Preamble vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); //Trigger creation of CSEBaseAnnc vc_cse2.start(f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -)); v_createContainer.primitiveContent.container.resourceName := "TriggerCreationCSEBaseAnnc"; vc_ae1.start(f_cse_createResource(int3,v_createContainer, v_aeIndex)); f_cse_announcementProcedure_createHandler(v_createContainerAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); //Then, IUT announces the resource on the CSEBaseAnnc v_containerAnncIndex := f_getLatestLocalResourceIndex(vc_cse2); v_cSEBaseAnncIndex := v_containerAnncIndex -1; vc_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_cse2.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, v_cSEBaseAnncIndex)); vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(mw_createAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); if(f_getTargetCseId(vc_request.primitive.requestPrimitive.to_) == PX_TS_CSE2.cseId) { mccPortInternal.send(vc_request.primitive.requestPrimitive); alt { []mccPortInternal.receive(mw_responsePrimitive(?)) -> value v_response { setverdict(pass, __SCOPE__ & ":INFO: Announcement retargeted"); } } f_send(e_mccPortIn, m_response(v_response)); } else { setverdict(fail, __SCOPE__ & ":ERROR: Wrong announcement target"); f_processCreateRequestPrimitive(vc_request.primitive.requestPrimitive, int4000); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } if(getverdict == inconc) { setverdict(fail, __SCOPE__ & ":ERROR: Wrong target resource address"); } } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_cse2); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_UPD_006 function f_CSE_ANNC_UPD_007(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive) runs on CseSimu system CseSystem { // Local variables var integer v_aeIndex := -1; var integer v_resourceIndex := -1; //Test control // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_UPD_007 function f_CSE_ANNC_UPD_008(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive) runs on AeSimu system CseSystem { //Local variables var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_announcedResourceIndex := -1; var integer v_localRemoteCseIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); //Test control //Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Preamble v_aeIndex := f_cse_preamble_registerAe(); // Test Body vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -)); v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_announcedResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); // Test Body vc_cse1.start(f_cse_announcementProcedure_updateHandler(-, -, v_announcedResourceIndex)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, 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"); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //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_008 function f_CSE_ANNC_UPD_009(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu system CseSystem { // Local variables var integer v_announcedResourceIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_UPD_009 function f_CSE_ANNC_UPD_010(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu system CseSystem { // Local variables var integer v_announcedResourceIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_UPD_010 function f_CSE_ANNC_UPD_011(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc) runs on CseSimu system CseSystem { // Local variables var integer v_announcedResourceIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, -)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); }//end f_CSE_ANNC_UPD_011 function f_CSE_ANNC_UPD_012(ResourceType p_resourceType, template RequestPrimitive p_requestCreatePrimitive, template RequestPrimitive p_createRequestAnnc, template RequestPrimitive p_requestUpdatePrimitive, template RequestPrimitive p_updateRequestAnnc, template (omit) AttributeAux_list p_nullFields := omit, charstring p_attributeToDeannounce) runs on CseSimu system CseSystem { // Local variables var integer v_announcedResourceIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex)); v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_resourceIndex := f_getLatestResourceIndex(vc_ae1); // Test Body vc_ae1.start(f_cse_updateResource(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive, p_nullFields)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(p_updateRequestAnnc, {*, p_attributeToDeannounce, *})) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ":INFO: Announcement received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex, vc_request.nullFields); f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(p_updateRequestAnnc)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Announcement received but not deannouncing attribute"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex);//Update function with expected index f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] mccPortIn.receive(mw_request(mw_update)) -> value vc_request { tc_ac.stop; setverdict(fail, __SCOPE__ & ":ERROR: Unexpected update operation received"); f_processUpdateRequestPrimitive(vc_request.primitive.requestPrimitive, -, v_announcedResourceIndex);//Update function with expected index f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ":ERROR: No announcement received"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); }//end f_CSE_ANNC_UPD_012 function f_CSE_ANNC_UPD_013(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive, template (omit) AttributeAux_list p_nullFields := omit, template PrimitiveContent p_updateResponse) runs on AeSimu system CseSystem { //Local variables var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; var integer v_localRemoteCseIndex := -1; var integer v_announcedResourceIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); //Test control //Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); //Preamble v_aeIndex := f_cse_preamble_registerAe(); // Test Body vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, -, -)); v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_announcedResourceIndex := f_getLatestLocalResourceIndex(vc_cse1); // Test Body vc_cse1.start(f_cse_announcementProcedure_updateHandler(-, -, v_announcedResourceIndex)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest, p_nullFields)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, p_updateResponse))) -> 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"); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //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_013 function f_CSE_ANNC_UPD_014(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit, template RequestPrimitive p_requestUpdatePrimitive, template PrimitiveContent p_updateResponse) runs on AeSimu system CseSystem { //Local variables var RequestPrimitive v_updateRequest; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_localRemoteCseIndex := -1; var template RequestPrimitive v_create := m_createAe(PX_TS_AE1.appId, omit, omit); //Test control //Test component configuration f_cf02Up(); vc_resetRequired := true; // Test adapter configuration // Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); v_localRemoteCseIndex := f_getLatestLocalResourceIndex(vc_cse1); //Preamble v_aeIndex := f_cse_preamble_registerAe(); // Test Body v_resourceIndex := f_cse_createResource(p_resourceType,p_requestCreatePrimitive, v_aeIndex); // Test Body vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc, int4000, -)); v_updateRequest := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_requestUpdatePrimitive); f_send(e_mcaPort, m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004, p_updateResponse))) -> 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"); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //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 group Delete{ function f_CSE_ANNC_DEL_001(ResourceType p_resourceType,template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on AeSimu system CseSystem { //Local variables var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; //Test control //Test component configuration f_cf02Up(); vc_resetRequired := true; //Register the CSE vc_cse1.start(f_cse_registerRemoteCse(m_createRemoteCSE_poa(-, -, -, -, -, {f_getLocalPoA()}))); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //Preamble v_aeIndex := f_cse_preamble_registerAe(); vc_cse1.start(f_cse_announcementProcedure_createHandler(p_createRequestAnnc)); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex); f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); vc_cse1.start(f_cse_announcementProcedure_deleteHandler()); v_request := valueof(m_delete(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); f_send(e_mcaPort, m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource deleted 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 deleting container resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); } } f_aeSimu_checkComponentDoneAndGetVerdict(vc_cse1); //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_cf02Down(); } //end f_CSE_ANNC_DEL_001 function f_CSE_ANNC_DEL_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestAnnc, in template RequestPrimitive p_requestCreatePrimitive := omit) runs on CseSimu system CseSystem { // Local variables var integer v_targetResourceIndex := -1; var integer v_aeIndex := -1; var integer v_latestResourceIndex := -1; var integer v_announcedResourceIndex := -1; // Test control // Test component configuration f_cf02UpCseSimuMaster(); vc_resetRequired := true; // Test adapter configuration // Register the CSE f_cse_registerRemoteCse(m_createRemoteCSE_poa(vc_cseSimuDesc.cseId, -, -, -, -, {f_getLocalPoA()})); //Preamble vc_ae1.start(f_cse_preamble_registerAe()); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex:= f_getLatestResourceIndex(vc_ae1); vc_ae1.start(f_cse_createResource(p_resourceType, p_requestCreatePrimitive, v_aeIndex)); v_announcedResourceIndex := f_cse_announcementProcedure_createHandler(p_createRequestAnnc); f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Test Body v_latestResourceIndex := f_getLatestResourceIndex(vc_ae1); vc_ae1.start(f_cse_deleteResource(v_latestResourceIndex)); tc_ac.start; alt { [] mccPortIn.receive(mw_request(mw_delete(?))) -> value vc_request { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Delete Request received successfully"); v_targetResourceIndex := f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive, -); if(v_targetResourceIndex == v_announcedResourceIndex) { setverdict(pass, __SCOPE__&":INFO: Expected Resource deleted successfuly"); } else { setverdict(fail, __SCOPE__&":INFO: Unexpected resource to be deleted"); } f_send(e_mccPortIn, m_response(vc_response.primitive.responsePrimitive)); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while waiting to receive Delete request"); } } f_cseSimu_checkComponentDoneAndGetVerdict(vc_ae1); // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf02DownCseSimuMaster(); }//end f_CSE_ANNC_DEL_002 }//end group Delete }// end group Announcement group PollingChannel { /** * @desc Check that the IUT rejects a <pollingChannel> OPERATION of the AE when AE-ID is not same as the AE-ID of the parent resource * */ function f_CSE_PCH_005(template RequestPrimitive p_requestPrimitive) runs on AeSimu system CseSystem { //Local variables var integer v_aeIndex1 := -1; var integer v_aeIndex2 := -1; var integer v_resourceIndex := -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 f_cse_createAccessControlPolicyAux(-, -, int63);//c_CUDNDi) v_aeIndex1 := f_cse_preamble_registerAe({f_getResourceAddress(vc_acpIndex)}, -);//c_CRDNDi); vc_ae2.start(f_cse_createResource(int2, m_createAe(PX_TS_AE2.appId, {f_getResourceAddress(vc_acpIndex)}, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, -), -1)); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_aeIndex2 := f_getResourceFromAeSimu(vc_ae2); v_resourceIndex := f_cse_createResource(int15, m_createPollingChannelBase, v_aeIndex1); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex2); f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) { tc_ac.stop; setverdict(pass, __SCOPE__&":INFO: Originator has no privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(?))) { tc_ac.stop; setverdict(fail, __SCOPE__&":INFO: Wrong response status code when originator has no privilege"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__&":INFO: No answer while creating polling resource type"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } //end group PollingChannel group Response_Type { group Blocking_Requests { function f_CSE_RT_BR_001(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; // Test control if(not(PICS_BLOCKING_REQUEST)){ setverdict(inconc, __SCOPE__ & ": It is required to support Blocking access resource to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType := {int3, omit}; //BlockingRequest // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(p_responseStatusCode))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Successful operation using Blocking Request"); } [] 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 blocking request operation"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing blocking request operation"); } } f_checkAeSimuStatus(); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_BR_001 } group Non_Blocking_Requests{ group Synchronous{ function f_CSE_RT_NBS_001(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; // Test control if(PICS_NON_BLOCKING_REQUEST_SYNCH){ setverdict(inconc, __SCOPE__ & ": It is required to not support Non-blocking access resource in synchronous mode to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType := {int1, omit}; //nonBlockingRequestSynch // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5206))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Operation rejected because Non-blocking access resource in synchronous mode is not supported"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> 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__ & ": Error operation have been accepted without supporting Non-Blocking Requests"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); } } f_checkAeSimuStatus(); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_NBS_001 function f_CSE_RT_NBS_002(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template PrimitiveContent v_contentResponse; // Test control if(not PICS_NON_BLOCKING_REQUEST_SYNCH){ setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_contentResponse.uRI := ?; v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType := {int1,omit}; //nonBlockingRequestSynch // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int1001, v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int1001))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address"); } [] 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__ & ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_NBS_002 function f_CSE_RT_NBS_003(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit, in Operation p_operation) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template PrimitiveContent v_contentResponseUri; var template PrimitiveContent v_contentResponseRequestResource; var RequestStatus v_requestStatus; var OneM2M_Types.URI v_requestResourceURI; var ResponseStatusCode v_statusCode; var RequestID v_requestIdentifier; var template PrimitiveContent v_primitiveContent; // Test control if(not PICS_NON_BLOCKING_REQUEST_SYNCH){ setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_contentResponseUri.uRI := ?; v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType := {int1, omit}; //nonBlockingRequestSynch // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); v_requestIdentifier := vc_request.primitive.requestPrimitive.requestIdentifier; tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int1001, v_contentResponseUri))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int1001))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address"); } [] 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__ & ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); } } f_checkAeSimuStatus(); //Check to see if the resource is present or not if (ischosen(v_response.primitive.responsePrimitive.primitiveContent.uRI)){ v_contentResponseRequestResource.request := mw_contentRequestBase; v_requestResourceURI := v_response.primitive.responsePrimitive.primitiveContent.uRI; v_contentResponseRequestResource.request.primitiveContent := p_requestPrimitive.primitiveContent; if (p_operation == int1){ //create v_statusCode := int2001; v_primitiveContent := f_getTemplateFromPrimitiveContent(p_requestPrimitive.primitiveContent); }else if (p_operation == int2){ //retrieve v_statusCode := int2000; v_primitiveContent.container := mw_contentContainer_rc1; }else if (p_operation == int3){ //update v_statusCode := int2004; v_primitiveContent := f_getTemplateFromPrimitiveContent(p_requestPrimitive.primitiveContent); }else if (p_operation == int4){ //delete v_statusCode := int2002; v_primitiveContent := omit; } f_send(e_mcaPort, m_request(m_retrieve(v_requestResourceURI, f_getOriginator(v_aeIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponseRequestResource))) -> value v_response{ setverdict(pass, testcasename() & ": Request resource has been received"); v_requestStatus := v_response.primitive.responsePrimitive.primitiveContent.request.requestStatus; if (v_requestStatus==int1){ //COMPLETED tc_ac.stop; if (valueof(v_requestIdentifier) == valueof(v_response.primitive.responsePrimitive.primitiveContent.request.operationResult.requestIdentifier) ){ setverdict(pass, testcasename() & ": RequestStatus: COMPLETED and requestIdentifier attribute correctly received"); }else{ setverdict(fail, testcasename() & ": RequestStatus: COMPLETED and requestIdentifier attribute not correctly received"); } if (valueof(v_statusCode) == valueof(v_response.primitive.responsePrimitive.primitiveContent.request.operationResult.responseStatusCode) ){ setverdict(pass, testcasename() & ": RequestStatus: COMPLETED and responseStatusCode attribute correctly received"); }else{ setverdict(fail, testcasename() & ": RequestStatus: COMPLETED and responseStatusCode attribute not correctly received"); } if (match(v_response.primitive.responsePrimitive.primitiveContent.request.operationResult.primitiveContent, v_primitiveContent) ){ setverdict(pass, testcasename() & ": RequestStatus: COMPLETED and primitiveContent template correctly received"); }else{ setverdict(fail, testcasename() & ": RequestStatus: COMPLETED and primitiveContent template not correctly received"); } }else if (v_requestStatus==int2){ //FAILED tc_ac.stop; setverdict(fail, testcasename() & ": RequestStatus: FAIL"); }else{ //PENDING, FORWARDING or PARTIALLY_COMPLETED f_sleep(PX_TAC/5.0); f_send(e_mcaPort, m_request(m_retrieve(v_requestResourceURI, f_getOriginator(v_aeIndex)))); repeat; } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) { tc_ac.stop; setverdict(fail, testcasename() & ": Request resource not found"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(?, -))) { tc_ac.stop; setverdict(fail, testcasename() & ": Wrong response status code in the response"); } [] tc_ac.timeout { setverdict(fail, testcasename() & ": No answer while retrieving resource"); } } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_NBS_003 }//end Group Synchronous group Asynchronous{ function f_CSE_RT_NBA_001(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; // Test control if(PICS_NON_BLOCKING_REQUEST_ASYNCH){ setverdict(inconc, __SCOPE__ & ": It is required to not support Non-blocking access resource in asynchronous mode to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType := {int2,omit}; //nonBlockingRequestAsynch // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, omit))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": No content provided with the right status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(omit))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": No content provided with a wrong status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Content provided"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in asynchronous mode operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_NBA_001 function f_CSE_RT_NBA_002(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template PrimitiveContent v_contentResponse; // Test control if(not PICS_NON_BLOCKING_REQUEST_SYNCH){ setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_contentResponse.uRI := ?; v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType := {int2,omit}; //nonBlockingRequestAsynch // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address"); } [] 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__ & ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_NBA_002 function f_CSE_RT_NBA_003(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template PrimitiveContent v_contentResponse; // Test control if(not PICS_NON_BLOCKING_REQUEST_SYNCH){ setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_contentResponse.uRI := ?; v_aeIndex := f_cse_preamble_registerAe(-, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn, "")});//c_CRUDNDi); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType := {int2, omit}; //nonBlockingRequestAsynch and no notification target list is provided" f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address"); } [] 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__ & ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); } } f_checkAeSimuStatus(); //Test Body //Check to see if the notification is received f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode)); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_NBA_003 function f_CSE_RT_NBA_004(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template PrimitiveContent v_contentResponse; // Test control if(not PICS_NON_BLOCKING_REQUEST_SYNCH){ setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_contentResponse.uRI := ?; v_aeIndex := f_cse_preamble_registerAe(-, {f_getLocalPoA(vc_aeSimuDesc.mcaPortIn, "")});//c_CRUDNDi); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType.responseTypeValue := int2; //nonBlockingRequestAsynch p_requestPrimitive.responseType.notificationURI := {}; //"...an empty notification target list is provided" // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address"); } [] 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__ & ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); } } f_checkAeSimuStatus(); //Check if Notification is sent or not f_cse_notifyProcedure_noNotificationHandler(); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_NBA_004 function f_CSE_RT_NBA_005(template RequestPrimitive p_requestPrimitive, in template (omit) RequestPrimitive p_parentRequestPrimitive := omit, in ResponseStatusCode p_responseStatusCode) runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex, v_ae2Index := -1; var integer v_resourceIndex := -1; var template PrimitiveContent v_contentResponse; // Test control if(not PICS_NON_BLOCKING_REQUEST_SYNCH){ setverdict(inconc, __SCOPE__ & ": It is required to support Non-blocking access resource in synchronous mode to run this test case"); stop; } // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_contentResponse.uRI := ?; v_aeIndex := f_cse_preamble_registerAe(-, {f_getLocalPoA(PX_TS_AE1.mcaPortIn, "")});//c_CRUDNDi); f_checkAeSimuStatus(); vc_ae2.start(f_cse_createAccessControlPolicyAux("PermissionForNotificationAcp",{"all"}, int63)); // Permissions for NOTIFY f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); vc_ae2.start(f_cse_createResource_withAcpAux(int2, m_createAe(PX_TS_AE2.appId, -, PX_TS_AE2.aeIdStem, c_defaultAe2ResourceName, {f_getLocalPoA(PX_TS_AE2.mcaPortIn, "")}))); // AE2 is registred f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); v_ae2Index := f_getResourceFromAeSimu(vc_ae2); if(ispresent(p_parentRequestPrimitive)) { v_resourceIndex := f_cse_createResource(valueof(p_parentRequestPrimitive.resourceType), p_parentRequestPrimitive, v_aeIndex); p_requestPrimitive.to_ := f_getResourceAddress(v_resourceIndex); }else{ p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); } p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); p_requestPrimitive.responseType.responseTypeValue := int2; //nonBlockingRequestAsynch p_requestPrimitive.responseType.notificationURI := {f_getResourceAddress(v_aeIndex), f_getResourceAddress(v_ae2Index)}; //"...an empty notification target list is provided" // Test Body f_send(e_mcaPort, m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002, v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": URI attribute is set to <request> resource address"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int1002))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": URI attribute is not set to <request> resource address"); } [] 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__ & ": Wrong response status code"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while executing a Non-blocking access resource in synchronous mode operation"); } } f_checkAeSimuStatus(); //Check if Notification is sent or not vc_ae2.start(f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode))); f_cse_notifyProcedure_responsePrimitiveHandler(mw_responsePrimitive(p_responseStatusCode)); f_aeSimu_checkComponentDoneAndGetVerdict(vc_ae2); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_RT_NBA_005 }//end Group Asynchronous }//end group Non_Blocking_Requests }//end of group Response_Type group Interworking_3GPP { group device_trigerring { function f_CSE_3GPP_TRIG_001(in TriggerPurpose p_triggerPurpose, in template (value) Bytes p_triggerPayload ) runs on ScefSimu system ScefSystem { var integer v_aeIndex := -1; var RequestPrimitive v_request; //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions")); var template T8Request v_requestPrimitive; var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, p_triggerPayload, "link"); var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := p_triggerPurpose; //TriggerPurpose TriggerPayload //int1 establishConnection ---> resource address of the <remoteCSE> or <AE> //int2 registrationRequest ---> the resource address (triggerInfoAddress) of the <MEFBase> //int3 executeCRUD ---> the resource address (triggerInfoAddress) of the <cseBase> //int4 enrolmentRequest ---> the type of CRUDN operation (triggerInfoOperation), the address of the resource that the operation should be performed on (triggerInfoAddress) and the resource type (targetedResourceType) // Test component configuration f_cf05Up(); // Test Body // Register AE1 vc_ae1.start(f_cse_preamble_registerAe()); f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // TriggerRequest under AE vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); tc_ac.start; alt{ [] mcnPortIn.receive(mw_t8Request(v_requestPrimitive)) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": 3GPP Device Triggering received."); } [] mcnPortIn.receive(mw_t8Request(?)){ tc_ac.stop; setverdict(fail, __SCOPE__ & ": Other operation received"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer"); } } // Postamble: NOTE This needs to be done. //f_cse_postamble_deleteResourcesCSE(); //Tear Down f_cf05Down(); } // end of function f_CSE_3GPP_TRIG_001 function f_CSE_3GPP_TRIG_004(in TriggerStatus p_triggerStatus, in template (value) DeliveryResult p_deliveryResult) runs on ScefSimu system ScefSystem{ var integer v_aeIndex := -1, v_triggerRequestIndex := -1; var PrimitiveContent v_contentTriggerRequest; var RequestPrimitive v_request; //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions")); var template T8Request v_requestPrimitive; var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "link"); var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(p_deliveryResult, "URI to the resource created by the SCEF",-,-,-,-,-,-); var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection // Test component configuration f_cf05Up(); //Preamble // Register AE1 vc_ae1.start(f_cse_preamble_registerAe()); f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // TriggerRequest under AE vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); //IUT sent a 3GPP Device Trigger Request v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); // Test Body // SCEF sends Device Triggering response mcnPort.send(m_t8Response(m_t8_response_201_created(-, m_response_body_individualDeviceTriggering(valueof(v_deviceTriggeringResponse))))); // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to p_triggerStatus vc_ae1.start(f_cse_retrieveResource(v_triggerRequestIndex)); f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_contentTriggerRequest := f_getPrimitiveContentRetrievedResource(vc_ae1); if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), p_triggerStatus))) { setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set correctly"); } else { setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); } // Postamble: NOTE This needs to be done. //f_cse_postamble_deleteResourcesCSE(); //Tear Down f_cf05Down(); } // end of function f_CSE_3GPP_TRIG_004 function f_CSE_3GPP_TRIG_005(in TriggerStatus p_triggerStatus, in template (value) DeliveryResult p_deliveryResult) runs on ScefSimu system ScefSystem{ var integer v_aeIndex := -1, v_triggerRequestIndex := -1; var PrimitiveContent v_contentTriggerRequest; var RequestPrimitive v_request; //{apiRoot}/3gpp-device-triggering/v1/{scsAsId}/transactions var OneM2M_Types_3GPP_T8.URI v_requestResourceURI := valueof(m_uri_3gpp_device_triggering(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.tsAddress & ":" & int2str(vc_scefSimuDesc.mcnPort.t8PortDesc.binding.httpBindingDesc.bindingDesc.remotePort), oct2char(unichar2oct(vc_scefSimuDesc.scefId)) & "/transactions")); var template T8Request v_requestPrimitive; var template DeviceTriggering v_deviceTriggering := m_deviceTriggering_externalId("externl_id", -, -, 30123, "This is Trigger payload- CAFEDECA", "notificationDestination"); var template RequestBodyT8 v_3GPPDeviceTriggeringRequest := {individualDeviceTriggeringTransaction := v_deviceTriggering}; var template DeviceTriggering v_deviceTriggeringResponse := m_deviceTriggering_response_delieveryResult(p_deliveryResult, "URI to the resource created by the SCEF",-,-,-,-,-,-); var template RequestPrimitive v_createTriggerRequestResource := m_createTriggerRequest; v_createTriggerRequestResource.primitiveContent.triggerRequest.triggerPurpose := int1; //int1 establishConnection // Test component configuration f_cf05Up(); //Preamble // Register AE1 vc_ae1.start(f_cse_preamble_registerAe()); f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_aeIndex := f_getLatestResourceIndex(vc_ae1); // TriggerRequest under AE vc_ae1.start(f_cse_createResource(int47, v_createTriggerRequestResource, v_aeIndex)); f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_triggerRequestIndex := f_getLatestResourceIndex(vc_ae1); //IUT sent a 3GPP Device Trigger Request v_requestPrimitive := mw_t8_request_post(v_requestResourceURI, -, v_3GPPDeviceTriggeringRequest); mcnPortIn.receive(mw_t8Request(v_requestPrimitive)); // Test Body // SCEF sends DeviceTriggeringDeliveryReportNotification mcnPort.send(m_t8Request(m_t8_request_post(m_uri_3gpp_device_triggering(-, "notificationDestination", omit), -, mw_request_body_deviceTriggeringDeliveryReportNotification(mw_deviceTriggeringDeliveryReportNotification(v_requestResourceURI.apiRoot & v_requestResourceURI.apiName & v_requestResourceURI.apiVersion & v_requestResourceURI.apiSpecificSuffixes & "/cf_001" , SUCCESS))))); // deliveryResult SUCCESS, cf_001: Uri of deviceTriggeringTransaction tc_ac.start; alt{ [] mcnPortIn.receive(mw_t8Response(mw_t8_response_204_no_content)) { //Check if 204 no content is received from IUT tc_ac.stop; setverdict(pass, __SCOPE__ & ": 204 no content is received."); } [] mcnPortIn.receive(mw_t8Request(?)){ tc_ac.stop; setverdict(fail, __SCOPE__ & ": Other operation received"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No Answer"); } } // Verifiy that the <triggerRequest> resource containing triggerStatus attribute set to p_triggerStatus vc_ae1.start(f_cse_retrieveResource(v_triggerRequestIndex)); f_scefSimu_checkComponentDoneAndGetVerdict(vc_ae1); v_contentTriggerRequest := f_getPrimitiveContentRetrievedResource(vc_ae1); if(not(match(valueof(v_contentTriggerRequest.triggerRequest.triggerStatus), p_triggerStatus))) { setverdict(fail, __SCOPE__&":INFO: <triggerRequest> resource doesn't contain triggerStatus attribute set correctly"); } else { setverdict(pass, __SCOPE__ & ": Retrived triggerRequest matched with updated content."); } // Postamble: NOTE This needs to be done. //f_cse_postamble_deleteResourcesCSE(); //Tear Down f_cf05Down(); } // end of function f_CSE_3GPP_TRIG_005 } // end group device_trigerring } //end group Interworking_3GPP }//end group CSE }