/** * 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 * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ * $Id: OneM2M_Testcases.ttcn 234 2017-03-20 16:37:29Z reinaortega $ * @desc Module containing test cases for oneM2M * */ //Test module OneM2M_Testcases { 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 OneM2M_Pics all; import from OneM2M_Functions all; import from LibCommon_Time all; import from XSD all; //Demos used for validation purposes group oneM2M_demos { group helpingTestCases {//These are not part of the test suite, just for verification purposes testcase TC_DELETE_AE() runs on CseTester system CseSystem { timer t_ac := 5.0; map(self:mcaPort, system:mcaPort); mcaPort.send(m_request(m_deleteRequest(PX_URI_CSE & PX_CSE_NAME & "/" & PX_RESOURCE_TO_BE_DELETED))); t_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { t_ac.stop; log("Postamble: Resource deleted"); setverdict(pass); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { t_ac.stop; log("Postamble: Error while deleting resource"); setverdict(fail); } [] mcaPort.receive { t_ac.stop; log("Postamble: Unexpected message received"); setverdict(inconc); } [] t_ac.timeout { log("Postamble: No answer while deleting resource"); setverdict(inconc); } } unmap(self:mcaPort, system:mcaPort); stop; } testcase TC_DELETE_RESOURCES() runs on CseTester system CseSystem { timer t_ac := 5.0; var integer i; var XSD.ID v_resourceAddress; var RequestPrimitive v_request; map(self:mcaPort, system:mcaPort); for (i:=0; i value v_response{ tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } testcase TC_CSE_REG_BV_002() runs on CseTester system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; // Test component configuration f_cf01Up(); //Preambule v_cseBaseIndex := f_cse_preamble_createServiceSubscribedAppRule({"C-AE-ID-STEM"});//c_CRUDNDi); //Test Body v_request := valueof(m_createAe(PX_APP_ID, omit, "C-AE-ID-STEM")); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, v_cseBaseIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) { tc_ac.stop; setverdict(pass, testcasename() & ": AE successfuly created."); } [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int2001))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } testcase TC_CSE_REG_BV_003() runs on CseTester system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; // Test component configuration f_cf01Up(); //Preambule v_cseBaseIndex := f_cse_preamble_createServiceSubscribedAppRule(omit);//c_CRUDNDi); // Test Body v_request := valueof(m_createAe(PX_APP_ID, omit, omit)); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, v_cseBaseIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation rejected."); } [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4005))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } testcase TC_CSE_REG_BV_004() runs on CseTester system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; // Test component configuration f_cf01Up(); //Preambule v_cseBaseIndex := f_cse_preamble_createServiceSubscribedAppRule(omit);//c_CRUDNDi); //Test Body v_request := valueof(m_createAe(PX_APP_ID, omit, "C-AE-ID-STEM")); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, v_cseBaseIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation rejected."); } [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4005))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } testcase TC_CSE_REG_BV_005() runs on CseTester system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; // Test component configuration f_cf02Up(); //Preambule v_cseBaseIndex := f_cse_preamble_createServiceSubscribedAppRule({"S"});//c_CRUDNDi); //Test Body v_request := valueof(m_createAe(PX_APP_ID, omit, "C-AE-ID-STEM")); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, v_cseBaseIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mccPort.receive(mw_request(mw_createAEAnnc(-, -, -, "APP_ID", -))) { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation redirected."); } [] mccPort.receive { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } testcase TC_CSE_REG_BV_006() runs on CseTester system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var ResourceType v_resourceType := int2; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAeWithId("C-AE-ID-STEM");//c_CRUDNDi); //Test Body v_request := valueof(m_createAe(PX_APP_ID, omit, "C-AE-ID-STEM")); v_request := f_getCreateRequestPrimitive(v_resourceType, v_request, v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4105))) { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation rejected."); } [] mcaPort.receive(mw_response(mw_responsePrimitiveInverse(int4105))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE with status code " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } testcase TC_CSE_REG_BV_007() runs on CseTester system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; // Test component configuration f_cf02Up(); //Preambule v_cseBaseIndex := f_cse_preamble_createServiceSubscribedAppRule({"S"});//c_CRUDNDi); //Test Body v_request := valueof(m_createAe(PX_APP_ID, omit, "S-AE-ID-STEM")); v_request := f_getUpdateRequestPrimitive(v_resourceType,v_cseBaseIndex, v_request); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mccPort.receive(mw_request(mw_createAEAnnc(omit, "CSE_ID", "/S", "APP_ID", "S-AE-ID-STEM"))) { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation redirected."); } [] mccPort.receive { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); } testcase TC_CSE_REG_BV_008() runs on CseTester system CseSystem { var MsgIn v_response; var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; // Test component configuration f_cf02Up(); //Preambule v_cseBaseIndex := f_cse_preamble_registerAe(); f_cse_postamble_deleteResources(); //to deregister the AE, I don't know if it's correct like this? //Test Body v_request := valueof(m_createAEAnnc(-, "CSE_ID", "/S", "APP_ID", "S-AE-ID-STEM")); //TODO to double check all parameters v_request := f_getUpdateRequestPrimitive(v_resourceType,v_cseBaseIndex, v_request); mccPort.send(m_request(v_request)); tc_ac.start; alt { [] mccPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation redirected."); //continue to test the content } [] mccPort.receive { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); } testcase TC_CSE_REG_BV_009() runs on CseTester system CseSystem { var MsgIn v_response; var ResponsePrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; // Test component configuration f_cf02Up(); //Preambule v_cseBaseIndex := f_cse_preamble_createServiceSubscribedAppRule({"S"});//c_CRUDNDi); //Test Body v_request := valueof(m_responsePrimitive(int2001, "To_be_defined", {any_1 := {{AEAnnc_optional := m_contentCreateAEAnnc({"Credential-ID:None"}, omit, PX_APP_ID, "/CSE_ID/S-AE-ID-STEM")}}})); mccPort.send(m_response(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": AE creation success."); //continue to test the content } [] mcaPort.receive { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating AE"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); } }//end Registration group Data_Management_and_Repository { group g_CSE_DMR_BV_001 { testcase TC_CSE_DMR_BV_001_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_BV_001(int3, m_createContainerBase, int0);//ResultContent = 0 (nothing) } testcase TC_CSE_DMR_BV_001_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_BV_001(int3, m_createContainerBase, int2);//ResultContent = 2 (hierarchical address) } testcase TC_CSE_DMR_BV_001_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_BV_001(int3, m_createContainerBase, int3);//ResultContent = 3 (attributes and hierarchichal address) } function f_CSE_DMR_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, ResultContent p_resultContent) runs on CseTester { // 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_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := p_resultContent; mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) { //BAD REQUEST tc_ac.stop; setverdict(pass, testcasename() & ": Request successfully rejected"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, Result content set to 0 is impossible for a retrieve request "); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_BV_001 } // end g_CSE_DMR_BV_001 group g_CSE_DMR_BV_002 { testcase TC_CSE_DMR_BV_002_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; f_CSE_DMR_BV_002(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_BV_002_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := mw_contentGroup_rc1; f_CSE_DMR_BV_002(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_BV_002_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc1; f_CSE_DMR_BV_002(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_BV_002_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := mw_contentSchedule_rc1; f_CSE_DMR_BV_002(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_BV_002_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].PollingChannel_optional := mw_contentPollingChannelBase;//FIXME f_CSE_DMR_BV_002(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_BV_002_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := mw_contentSubscription_rc1; f_CSE_DMR_BV_002(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_BV_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // 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_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": No child resources provided with RC set to 1"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Child resources provided with RC set to 1"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_BV_002 } // end g_CSE_DMR_BV_002 group g_CSE_DMR_BV_003 { testcase TC_CSE_DMR_BV_003_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc4; f_CSE_DMR_BV_003(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_BV_003_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := mw_contentGroup_rc4; f_CSE_DMR_BV_003(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_BV_003_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc4; f_CSE_DMR_BV_003(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_BV_003_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := mw_contentSchedule_rc4; f_CSE_DMR_BV_003(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_BV_003_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].PollingChannel_optional := mw_contentPollingChannelBase;//FIXME f_CSE_DMR_BV_003(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_BV_003_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := mw_contentSubscription_rc4; f_CSE_DMR_BV_003(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_BV_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // 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_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": No child resources provided with RC set to 1"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Child resources provided with RC set to 1"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_BV_003 } // end g_CSE_DMR_BV_003 group g_CSE_DMR_BV_004 { testcase TC_CSE_DMR_BV_004_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc5; f_CSE_DMR_BV_004(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_BV_004_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := mw_contentGroup_rc5; f_CSE_DMR_BV_004(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_BV_004_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc5; f_CSE_DMR_BV_004(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_BV_004_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := mw_contentSchedule_rc5; f_CSE_DMR_BV_004(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_BV_004_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].PollingChannel_optional := mw_contentPollingChannelBase;//FIXME f_CSE_DMR_BV_004(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_BV_004_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := mw_contentSubscription_rc5; f_CSE_DMR_BV_004(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_BV_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // 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_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": No child resources provided with RC set to 1"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Child resources provided with RC set to 1"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_BV_004 } // end g_CSE_DMR_BV_004 group g_CSE_DMR_BV_005 { testcase TC_CSE_DMR_BV_005_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc6; f_CSE_DMR_BV_005(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_BV_005_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := mw_contentGroup_rc6; f_CSE_DMR_BV_005(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_BV_005_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc6; f_CSE_DMR_BV_005(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_BV_005_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := mw_contentSchedule_rc6; f_CSE_DMR_BV_005(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_BV_005_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].PollingChannel_optional := mw_contentPollingChannelBase;//FIXME f_CSE_DMR_BV_005(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_BV_005_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := mw_contentSubscription_rc6; f_CSE_DMR_BV_005(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_BV_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // 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_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex))); v_request.resultContent := int1;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": No child resources provided with RC set to 1"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Child resources provided with RC set to 1"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_BV_005 } // end g_CSE_DMR_BV_005 group Create { group g_CSE_DMR_CRE_BV_001 { testcase TC_CSE_DMR_CRE_BV_001_01() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; var integer v_sizeResourceTypeList; var integer i; var RequestPrimitiveMatrix v_requestPrimitivematrix; var CseTester v_notifyHandler := CseTester.create("NotifyHandler") alive;//TODO useless but need to be initialized see if we can remove it v_requestPrimitivematrix := { {}, {valueof(m_createAeAux(omit,omit))}, {valueof(m_createContainerBase)} } v_sizeResourceTypeList := lengthof(v_requestPrimitivematrix); v_createRequest.primitiveContent.any_1[0].Container_optional.resourceName := omit; for (i := 0; i value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfuly"); v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, v_parentIndex); if (v_sizeResourceTypeList == 0){ vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_resourceIndex}; } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); vc_resourcesIndexToBeDeleted := {}; // Tear down //notifyHandler.stop; f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_CRE_BV_001 } // end g_CSE_DMR_CRE_BV_001 group g_CSE_DMR_CRE_BV_002 { testcase TC_CSE_DMR_CRE_BV_002_01() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int3, m_createContainerBase);//container if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } else { if(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.resourceName != c_defaultResourceName){ setverdict(fail, testcasename(), ": Error, resourceName attribute not correct"); } } } } testcase TC_CSE_DMR_CRE_BV_002_02() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int9, m_createGroupBase);//group if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Group_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } else { if(v_responsePrimitive.primitiveContent.any_1[0].Group_optional.resourceName != c_defaultResourceName){ setverdict(fail, testcasename(), ": Error, resourceName attribute not correct"); } } } } testcase TC_CSE_DMR_CRE_BV_002_03() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int1, m_createAcpBase );//accessControlPolicy if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } else { if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.resourceName != c_defaultResourceName){ setverdict(fail, testcasename(), ": Error, resourceName attribute not correct"); } } } } testcase TC_CSE_DMR_CRE_BV_002_04() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int18, m_createScheduleBase);//Schedule if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } else { if(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional.resourceName != c_defaultResourceName){ setverdict(fail, testcasename(), ": Error, resourceName attribute not correct"); } } } } testcase TC_CSE_DMR_CRE_BV_002_05() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int15, m_createPollingChannelBase);//Pollingchannel if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } else { if(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional.resourceName != c_defaultResourceName){ setverdict(fail, testcasename(), ": Error, resourceName attribute not correct"); } } } } testcase TC_CSE_DMR_CRE_BV_002_06() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_002(int23, m_createSubscriptionBase);//Subscription if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional.resourceName)){ setverdict(fail, testcasename(), ": Error, resourceName attribute not provided"); } else { if(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional.resourceName != c_defaultResourceName){ setverdict(fail, testcasename(), ": Error, resourceName attribute not correct"); } } } } function f_CSE_DMR_CRE_BV_002(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester return ResponsePrimitive{//system CseSystem { MRO system keyword not supported on functions in Titan // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource type " & int2str(enum2int(p_resourceType)) & " created successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_CRE_BV_002 }// end group g_CSE_DMR_CRE_BV_002 group g_CSE_DMR_CRE_BV_003 { testcase TC_CSE_DMR_CRE_BV_003_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_003(int3, m_createContainerBase);//container } testcase TC_CSE_DMR_CRE_BV_003_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_003(int9, m_createGroupBase);//group } testcase TC_CSE_DMR_CRE_BV_003_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_003(int1, m_createAcpBase);//accessControlPolicy } testcase TC_CSE_DMR_CRE_BV_003_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_003(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_CRE_BV_003_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_003(int15, m_createPollingChannelBase);//Pollingchannel } testcase TC_CSE_DMR_CRE_BV_003_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_003(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_CRE_BV_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester {//system CseSystem { MRO system keyword not supported on functions in Titan // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi) f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body v_request.requestIdentifier := "Existing resource"; mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4105))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource already exists"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating an already existing resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Creating a resource that already exists"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_BV_003 }// end group g_CSE_DMR_CRE_BV_003 group g_CSE_DMR_CRE_BV_004 { testcase TC_CSE_DMR_CRE_BV_004_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_004(int3, m_createContainerBase);//container } testcase TC_CSE_DMR_CRE_BV_004_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_004(int9, m_createGroupBase);//group } testcase TC_CSE_DMR_CRE_BV_004_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_004(int1, m_createAcpBase);//accessControlPolicy } testcase TC_CSE_DMR_CRE_BV_004_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_004(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_CRE_BV_004_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_004(int15, m_createPollingChannelBase);//Pollingchannel } testcase TC_CSE_DMR_CRE_BV_004_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_004(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_CRE_BV_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester {//system CseSystem { MRO system keyword not supported on functions in Titan // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_acpAuxIndex := -1; var integer v_aeIndex := -1; // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble if (p_resourceType != int23) { v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int62);//c_RUDNDi) } else { v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int60);//c_UDNDi); } v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -); // Test Body if(p_resourceType == int15) { v_request := valueof(m_createPollingChannel(f_getResourceAddress(v_aeIndex), PX_AE_ID_STEM)); } else { v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); } mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Access denied to create a resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating a resource without privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Resource created without creation privileges"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_BV_004 }// end group g_CSE_DMR_CRE_BV_004 group g_CSE_DMR_CRE_BV_005 { testcase TC_CSE_DMR_CRE_BV_005_01() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; var AttributeAux v_invalidAttribute; v_createRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances := 0; v_invalidAttribute := {name := "maxNrOfInstances", value_ := "-1"}; v_responsePrimitive := f_CSE_DMR_CRE_BV_005(int3, v_createRequest, v_invalidAttribute); } testcase TC_CSE_DMR_CRE_BV_005_02() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; var AttributeAux v_invalidAttribute; v_createRequest.primitiveContent.any_1[0].Container_optional.maxByteSize := 0; v_invalidAttribute := {name := "maxNrOfInstances", value_ := "-1"}; v_responsePrimitive := f_CSE_DMR_CRE_BV_005(int3, v_createRequest, v_invalidAttribute); } testcase TC_CSE_DMR_CRE_BV_005_03() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; var AttributeAux v_invalidAttribute; v_createRequest.primitiveContent.any_1[0].Container_optional.maxInstanceAge := 0; v_invalidAttribute := {name := "maxNrOfInstances", value_ := "-1"}; v_responsePrimitive := f_CSE_DMR_CRE_BV_005(int3, v_createRequest, v_invalidAttribute); } function f_CSE_DMR_CRE_BV_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in AttributeAux p_invalidAttribute) runs on CseTester return ResponsePrimitive { // 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); mcaPort.send(m_request(v_request, {valueof(p_invalidAttribute)})); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Creation rejected for resource type " & int2str(enum2int(p_resourceType)) & " containing an invalid value for attribute " & p_invalidAttribute.name); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Accepted creation of resource type " & int2str(enum2int(p_resourceType)) & " containing an invalid value for attribute" & p_invalidAttribute.name); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_CRE_BV_005 }// end group g_CSE_DMR_CRE_BV_005 group g_CSE_DMR_CRE_BV_006 { testcase TC_CSE_DMR_CRE_BV_006_01() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_006(int3, v_createRequest); if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.maxNrOfInstances)){ setverdict(fail, testcasename(), ": Error, maxNrOfInstances attribute not provided"); } } } testcase TC_CSE_DMR_CRE_BV_006_02() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_006(int3, v_createRequest); if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.maxByteSize)){ setverdict(fail, testcasename(), ": Error, maxByteSize attribute not provided"); } } } testcase TC_CSE_DMR_CRE_BV_006_03() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; v_responsePrimitive := f_CSE_DMR_CRE_BV_006(int3, v_createRequest); if(getverdict == pass){ if(not ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.maxInstanceAge)){ setverdict(fail, testcasename(), ": Error, maxInstanceAge attribute not provided"); } } } function f_CSE_DMR_CRE_BV_006(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester return ResponsePrimitive { // 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); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Accepted creation rejected for resource type " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Creation rejected of resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_CRE_BV_006 }// end group g_CSE_DMR_CRE_BV_006 group g_CSE_DMR_CRE_BV_007 { testcase TC_CSE_DMR_CRE_BV_007() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; const integer c_maxNumberOfInstances := 0; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances := c_maxNumberOfInstances; v_containerIndex := f_cse_createResource(int3, v_createRequest, v_aeIndex); // Test Body v_request := f_getCreateRequestPrimitive(int4, m_createContentInstance(f_getResourceAddress(v_containerIndex), "MyValue"), v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5207))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Maximun number of instances exceeded"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Accepted creation of contentInstance exceding maximum number of instances"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type 4"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_BV_007 }// end group g_CSE_DMR_CRE_BV_007 group g_CSE_DMR_CRE_BV_008 { testcase TC_CSE_DMR_CRE_BV_008() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; const integer c_maxByteSize := 0; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.any_1[0].Container_optional.maxByteSize := c_maxByteSize; v_containerIndex := f_cse_createResource(int3, v_createRequest, v_aeIndex); // Test Body v_request := f_getCreateRequestPrimitive(int4, m_createContentInstance(f_getResourceAddress(v_containerIndex), "MyValue"), v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5207))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Maximun byte size exceeded"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Accepted creation of contentInstance exceding maximum byte size"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type 4"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_BV_008 }// end group g_CSE_DMR_CRE_BV_008 group g_CSE_DMR_CRE_BV_009 { testcase TC_CSE_DMR_CRE_BV_009() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_contentInstanceIndex := -1; var template PrimitiveContent v_contentResponse; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_containerIndex := f_cse_createResource(int3, v_createRequest, v_aeIndex); v_contentInstanceIndex := f_cse_createResource(int4, m_createContentInstance(f_getResourceAddress(v_containerIndex), "MyValue"), v_containerIndex); // Test Body mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_containerIndex), f_getOriginator(v_containerIndex)))); v_contentResponse.any_1[0].Container_optional := mw_contentContainerBase; tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Response OK for retrieving"); if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Container_optional.stateTag == vc_resourcesList[v_containerIndex].resource.any_1[0].Container_optional.stateTag + 1) { setverdict(pass, testcasename() & ": stateTag attribute increased after creation of contentInstance resource"); } else { setverdict(fail, testcasename() & ": stateTag attribute not increased after creation of contentInstance resource"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_BV_009 }// end group g_CSE_DMR_CRE_BV_009 group g_CSE_DMR_CRE_BI_010 { testcase TC_CSE_DMR_CRE_BI_010() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContentInstanceBase; var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; const XSD.NCName c_contentInstanceName := "la"; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.resourceName := c_contentInstanceName; v_request := f_getCreateRequestPrimitive(int4, v_createRequest, v_containerIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Not allowed to create a contentInstance resource named 'la'"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Accepted creation of contentInstance named 'la'"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type 4"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_BI_010 }// end group g_CSE_DMR_CRE_BI_010 group g_CSE_DMR_CRE_BI_011 { testcase TC_CSE_DMR_CRE_BI_011() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContentInstanceBase; var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; const XSD.NCName c_contentInstanceName := "ol"; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body v_createRequest.primitiveContent.any_1[0].ContentInstance_optional.resourceName := c_contentInstanceName; v_request := f_getCreateRequestPrimitive(int4, v_createRequest, v_containerIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4005))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Not allowed to create a contentInstance resource named 'ol'"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Accepted creation of contentInstance named 'ol'"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type 4"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_BI_011 }// end group g_CSE_DMR_CRE_BI_011 group g_CSE_DMR_CRE_BV_012 { testcase TC_CSE_DMR_CRE_BV_012_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_012(int3, m_createContainerBase);//Container } testcase TC_CSE_DMR_CRE_BV_012_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_012(int9, m_createGroupBase);//Group } testcase TC_CSE_DMR_CRE_BV_012_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_012(int1, m_createAcpBase);//AccessControlPolicy } testcase TC_CSE_DMR_CRE_BV_012_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_012(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_CRE_BV_012_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_012(int15, m_createPollingChannelBase);//PollingChannel } testcase TC_CSE_DMR_CRE_BV_012_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_CRE_BV_012(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_CRE_BV_012(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester { // 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); v_request.resultContent := int0;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(omit))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": No content provided with RC set to 0"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Content provided with RC set to 0"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_BV_012 } // end g_CSE_DMR_CRE_BV_012 group g_CSE_DMR_CRE_BV_013 { testcase TC_CSE_DMR_CRE_BV_013_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].URI := mw_contentContainer_rc2; f_CSE_DMR_CRE_BV_013(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_CRE_BV_013_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].URI := mw_contentGroup_rc2; f_CSE_DMR_CRE_BV_013(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_CRE_BV_013_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].URI := mw_contentAcp_rc2; f_CSE_DMR_CRE_BV_013(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_CRE_BV_013_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].URI := mw_contentSchedule_rc2; f_CSE_DMR_CRE_BV_013(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_CRE_BV_013_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].URI := mw_contentPollingChannel_rc2; f_CSE_DMR_CRE_BV_013(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_CRE_BV_013_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].URI := mw_contentSubscription_rc2; f_CSE_DMR_CRE_BV_013(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_CRE_BV_013(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // 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); v_request.resultContent := int2;//Attributes mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": No content provided with RC set to 0"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Content provided with RC set to 0"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_BV_013 } // end g_CSE_DMR_CRE_BV_013 group g_CSE_DMR_CRE_BV_014 { testcase TC_CSE_DMR_CRE_BV_014_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Resource := mw_contentContainer_rc3; f_CSE_DMR_CRE_BV_013(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_CRE_BV_014_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Resource := mw_contentGroup_rc3; f_CSE_DMR_CRE_BV_014(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_CRE_BV_014_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Resource := mw_contentAcp_rc3; f_CSE_DMR_CRE_BV_014(int1, m_createAcpBase,v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_CRE_BV_014_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Resource := mw_contentSchedule_rc3; f_CSE_DMR_CRE_BV_014(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_CRE_BV_014_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Resource := mw_contentPollingChannel_rc3; f_CSE_DMR_CRE_BV_014(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_CRE_BV_014_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Resource := mw_contentSubscription_rc3; f_CSE_DMR_CRE_BV_014(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_CRE_BV_014(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // 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); v_request.resultContent := int3;//Attributes + Hierarchichal Address mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": No content provided with RC set to 0"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Content provided with RC set to 0"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_CRE_BV_014 } // end g_CSE_DMR_CRE_BV_014 group g_CSE_DMR_CRE_BV_015 { testcase TC_CSE_DMR_CRE_BV_015_01() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"accessControlPolicyIDs", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {"NotInitialized"}; v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_02() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"expirationTime", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.expirationTime := "20301231T012345"; v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_03() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"labels", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.labels := {"MyLabel"}; v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_04() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"maxNrOfInstances", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances := 0; v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_05() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"maxByteSize", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.maxByteSize := 0; v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_06() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"maxInstanceAge", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.maxInstanceAge := 0; v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } testcase TC_CSE_DMR_CRE_BV_015_07() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var ResponsePrimitive v_responsePrimitive; const AttributeAux c_optionalAttribute := {"ontologyRef", omit}; v_createRequest.primitiveContent.any_1[0].Container_optional.ontologyRef := "MyOntologyRef"; v_responsePrimitive := f_CSE_DMR_CRE_BV_015(int3, v_createRequest, c_optionalAttribute); } function f_CSE_DMR_CRE_BV_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, in AttributeAux p_optionalAttribute) runs on CseTester return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_acpAuxIndex := -1; const XSD.NCName c_accessControlPolicyIDs := "accessControlPolicyIDs"; // Test control if(match(c_accessControlPolicyIDs,p_optionalAttribute.name)) { if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case"); stop; } } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble if (match(c_accessControlPolicyIDs, p_optionalAttribute.name)) { v_acpAuxIndex := f_cse_preamble_createAcpAux();//c_CRUDNDi) } v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); // Test Body v_request := f_getCreateRequestPrimitive(p_resourceType, p_requestPrimitive, v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(f_getTemplateFromPrimitiveContent(v_request.primitiveContent)))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Accepted creation for resource type " & int2str(enum2int(p_resourceType)) & " containing attribute " & p_optionalAttribute.name); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Rejected creation of resource type " & int2str(enum2int(p_resourceType)) & " containing attribute" & p_optionalAttribute.name); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_CRE_BV_015 }// end group g_CSE_DMR_CRE_BV_015 }//end group Create group Retrieve { group g_CSE_DMR_RET_BV_001 { testcase TC_CSE_DMR_RET_BV_001_01() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_001(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_RET_BV_001_02() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := mw_contentGroup_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_001(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_RET_BV_001_03() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_001(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BV_001_04() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := mw_contentSchedule_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_001(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_RET_BV_001_05() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].PollingChannel_optional := mw_contentPollingChannelBase; v_responsePrimitive := f_CSE_DMR_RET_BV_001(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_RET_BV_001_06() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := mw_contentSubscription_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_001(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_RET_BV_001(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Response OK for retrieving"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_RET_BV_001 } // end g_CSE_DMR_RET_BV_001 group g_CSE_DMR_RET_BO_002 { testcase TC_CSE_DMR_RET_BO_002() runs on CseTester system CseSystem{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var XSD.ID v_resourceId := "nonexisting"; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); // Test Body if(PX_UNSTRUCTURED and (PX_ADDRESSING_FORMAT == e_cseRelative)) { mcaPort.send(m_request(m_retrieveResource(v_resourceId, f_getOriginator(v_aeIndex)))); } else { mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_aeIndex) & "/" & v_resourceId, f_getOriginator(v_aeIndex)))); } tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource not found"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BO_002 } // end g_CSE_DMR_RET_BO_002 group g_CSE_DMR_RET_BO_003 { testcase TC_CSE_DMR_RET_BO_003_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_003(int3, m_createContainerBase);//Container } testcase TC_CSE_DMR_RET_BO_003_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_003(int9, m_createGroupBase);//Group } testcase TC_CSE_DMR_RET_BO_003_03() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_requestPrimitive := m_createAcpBase; v_requestPrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list[0].accessControlOperations := int61; f_CSE_DMR_RET_BO_003(int1, v_requestPrimitive);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BO_003_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_003(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_RET_BO_003_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_003(int15, m_createPollingChannelBase);//PollingChannel } testcase TC_CSE_DMR_RET_BO_003_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_003(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_RET_BO_003(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var XSD.ID v_acpId; var integer v_aeIndex := -1; var integer v_acpAuxIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control if(not(PICS_ACP_SUPPORT)) { log(testcasename() & ":AccessControlPolicy support is required for executing this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpAuxIndex := f_cse_preamble_createAcpAux(-, -);//c_CRUDNDi) v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});//c_CRUDNDi; f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); f_cse_updateAcpAuxResource(int61); //c_CUDNDi // Test Body mcaPort.send(m_request(m_retrieveResource(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, testcasename() & ": 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, testcasename() & ": Error while retrieving attributes from resource without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Retrieving attributes from resource without having privileges"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BO_003 } // end g_CSE_DMR_RET_BO_003 group g_CSE_DMR_RET_BV_004 { testcase TC_CSE_DMR_RET_BV_004_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := m_contentContainer_allOmit; v_contentResponse.any_1[0].Container_optional.parentID := ?; f_CSE_DMR_RET_BV_004(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_RET_BV_004_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := m_contentGroup_allOmit; v_contentResponse.any_1[0].Group_optional.parentID := ?; f_CSE_DMR_RET_BV_004(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_RET_BV_004_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := m_contentAcp_allOmit; v_contentResponse.any_1[0].AccessControlPolicy_optional.parentID := ?; f_CSE_DMR_RET_BV_004(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BV_004_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := m_contentSchedule_allOmit; v_contentResponse.any_1[0].Schedule_optional.parentID := ?; f_CSE_DMR_RET_BV_004(int18, m_createScheduleBase,v_contentResponse);//Schedule } testcase TC_CSE_DMR_RET_BV_004_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].PollingChannel_optional := m_contentPollingChannel_allOmit; v_contentResponse.any_1[0].PollingChannel_optional.parentID := ?; f_CSE_DMR_RET_BV_004(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_RET_BV_004_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := m_contentSubscription_allOmit; v_contentResponse.any_1[0].Subscription_optional.parentID := ?; f_CSE_DMR_RET_BV_004(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_RET_BV_004(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var XSD.String v_attribute := "#pi";//Attribute parentId to be retrieved var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeToOption(f_getResourceAddress(v_resourceIndex) & v_attribute, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, not only requested attribute retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource attribute"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BV_004 } // end g_CSE_DMR_RET_BV_004 group g_CSE_DMR_RET_BV_005 { testcase TC_CSE_DMR_RET_BV_005_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := m_contentContainer_allOmit; v_contentResponse.any_1[0].Container_optional.parentID := ?; f_CSE_DMR_RET_BV_005(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_RET_BV_005_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := m_contentGroup_allOmit; v_contentResponse.any_1[0].Group_optional.parentID := ?; f_CSE_DMR_RET_BV_005(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_RET_BV_005_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := m_contentAcp_allOmit; v_contentResponse.any_1[0].AccessControlPolicy_optional.parentID := ?; f_CSE_DMR_RET_BV_005(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BV_005_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := m_contentSchedule_allOmit; v_contentResponse.any_1[0].Schedule_optional.parentID := ?; f_CSE_DMR_RET_BV_005(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_RET_BV_005_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].PollingChannel_optional := m_contentPollingChannel_allOmit; v_contentResponse.any_1[0].PollingChannel_optional.parentID := ?; f_CSE_DMR_RET_BV_005(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_RET_BV_005_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := m_contentSubscription_allOmit; v_contentResponse.any_1[0].Subscription_optional.parentID := ?; f_CSE_DMR_RET_BV_005(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_RET_BV_005(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi"}, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, not only requested attribute retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource attribute"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BV_005 } // end g_CSE_DMR_RET_BV_005 group g_CSE_DMR_RET_BV_006 { testcase TC_CSE_DMR_RET_BV_006_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := m_contentContainer_allOmit; v_contentResponse.any_1[0].Container_optional.parentID := ?; v_contentResponse.any_1[0].Container_optional.creationTime := ?; f_CSE_DMR_RET_BV_006(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_RET_BV_006_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := m_contentGroup_allOmit; v_contentResponse.any_1[0].Group_optional.parentID := ?; v_contentResponse.any_1[0].Group_optional.creationTime := ?; f_CSE_DMR_RET_BV_006(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_RET_BV_006_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := m_contentAcp_allOmit; v_contentResponse.any_1[0].AccessControlPolicy_optional.parentID := ?; v_contentResponse.any_1[0].AccessControlPolicy_optional.creationTime := ?; f_CSE_DMR_RET_BV_006(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BV_006_04() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := m_contentSchedule_allOmit; v_contentResponse.any_1[0].Schedule_optional.parentID := ?; v_contentResponse.any_1[0].Schedule_optional.creationTime := ?; f_CSE_DMR_RET_BV_006(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_RET_BV_006_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].PollingChannel_optional := m_contentPollingChannel_allOmit; v_contentResponse.any_1[0].PollingChannel_optional.parentID := ?; v_contentResponse.any_1[0].PollingChannel_optional.creationTime := ?; f_CSE_DMR_RET_BV_006(int15, m_createPollingChannelBase, v_contentResponse);//PollingChannel } testcase TC_CSE_DMR_RET_BV_006_06() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := m_contentSubscription_allOmit; v_contentResponse.any_1[0].Subscription_optional.parentID := ?; v_contentResponse.any_1[0].Subscription_optional.creationTime := ?; f_CSE_DMR_RET_BV_006(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_RET_BV_006(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi", "ct"}, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Requested attributes retrieved successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, not only requested attributes retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BV_006 } // end g_CSE_DMR_RET_BV_006 group g_CSE_DMR_RET_BO_007 { testcase TC_CSE_DMR_RET_BO_007_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_007(int3, m_createContainerBase);//Container } testcase TC_CSE_DMR_RET_BO_007_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_007(int9, m_createGroupBase);//Group } testcase TC_CSE_DMR_RET_BO_007_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_007(int1, m_createAcpBase);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BO_007_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_007(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_RET_BO_007_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_007(int15, m_createPollingChannelBase);//PollingChannel } testcase TC_CSE_DMR_RET_BO_007_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_007(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_RET_BO_007(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(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; } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving non existing resource attribute"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error : attribute was retrieved while it doesn't exist"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BO_007 } // end g_CSE_DMR_RET_BO_007 group g_CSE_DMR_RET_BO_008 { testcase TC_CSE_DMR_RET_BO_008_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_008(int3, m_createContainerBase);//Container } testcase TC_CSE_DMR_RET_BO_008_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_008(int9, m_createGroupBase);//Group } testcase TC_CSE_DMR_RET_BO_008_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_008(int1, m_createAcpBase);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BO_008_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_008(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_RET_BO_008_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_008(int15, m_createPollingChannelBase);//PollingChannel } testcase TC_CSE_DMR_RET_BO_008_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_008(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_RET_BO_008(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive, v_aeIndex); // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex), {"lbl", "at"}, f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving non existing resource attributes"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error : attribute was retrieved while it doesn't exist"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BO_008 } // end f_CSE_DMR_RET_BO_008 group g_CSE_DMR_RET_BV_013 { testcase TC_CSE_DMR_RET_BV_013_01() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_013(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BV_013_02() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; v_responsePrimitive := f_CSE_DMR_RET_BV_013(int2, m_createAe(PX_APP_ID), v_contentResponse);//AE } testcase TC_CSE_DMR_RET_BV_013_03() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_013(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_RET_BV_013_05() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := mw_contentGroup_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_013(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_RET_BV_013_11() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := mw_contentSchedule_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_013(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_RET_BV_013_14() runs on CseTester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := mw_contentSubscription_rc1; v_responsePrimitive := f_CSE_DMR_RET_BV_013(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_RET_BV_013(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource // Test Body mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Response OK for retrieving"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_RET_BV_013 } // end g_CSE_DMR_RET_BV_013 group g_CSE_DMR_RET_BO_014 { testcase TC_CSE_DMR_RET_BO_014_01() runs on CseTester system CseSystem { // Local variables var template RequestPrimitive v_requestPrimitive := m_createAcpBase; v_requestPrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list[0].accessControlOperations := int61; f_CSE_DMR_RET_BO_014(int1, v_requestPrimitive);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BO_014_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_014(int2, m_createPollingChannelBase);//AE } testcase TC_CSE_DMR_RET_BO_014_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_014(int3, m_createContainerBase);//Container } testcase TC_CSE_DMR_RET_BO_014_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_014(int9, m_createGroupBase);//Group } testcase TC_CSE_DMR_RET_BO_014_11() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_014(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_RET_BO_014_14() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_014(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_RET_BO_014(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var XSD.ID v_acpId; var integer v_aeIndex := -1; var integer v_acpAuxIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control if(not(PICS_ACP_SUPPORT)) { log(testcasename() & ":AccessControlPolicy support is required for executing this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpAuxIndex := f_cse_preamble_createAcpAux(-, -);//c_CRUDNDi) v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)});//c_CRUDNDi; f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource f_cse_updateAcpAuxResource(int61); //c_CUDNDi // Test Body mcaPort.send(m_request(m_retrieveResource(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, testcasename() & ": 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, testcasename() & ": Error while retrieving attributes from resource without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Retrieving attributes from resource without having privileges"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BO_014 } // end g_CSE_DMR_RET_BO_014 group g_CSE_DMR_RET_BV_015 { testcase TC_CSE_DMR_RET_BV_015_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := m_contentAcp_allOmit; v_contentResponse.any_1[0].AccessControlPolicy_optional.parentID := ?; f_CSE_DMR_RET_BV_015(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BV_015_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AE_optional := m_contentAe_allOmit; v_contentResponse.any_1[0].AE_optional.parentID := ?; f_CSE_DMR_RET_BV_015(int2, m_createAe(PX_APP_ID), v_contentResponse);//AE } testcase TC_CSE_DMR_RET_BV_015_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := m_contentContainer_allOmit; v_contentResponse.any_1[0].Container_optional.parentID := ?; f_CSE_DMR_RET_BV_015(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_RET_BV_015_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := m_contentGroup_allOmit; v_contentResponse.any_1[0].Group_optional.parentID := ?; f_CSE_DMR_RET_BV_015(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_RET_BV_015_11() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := m_contentSchedule_allOmit; v_contentResponse.any_1[0].Schedule_optional.parentID := ?; f_CSE_DMR_RET_BV_015(int18, m_createScheduleBase,v_contentResponse);//Schedule } testcase TC_CSE_DMR_RET_BV_015_14() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := m_contentSubscription_allOmit; v_contentResponse.any_1[0].Subscription_optional.parentID := ?; f_CSE_DMR_RET_BV_015(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_RET_BV_015(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var XSD.String v_attribute := "#pi";//Attribute parentId to be retrieved var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeToOption(f_getResourceAddress(v_resourceIndex) & v_attribute, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, not only requested attribute retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource attribute"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BV_015 } // end g_CSE_DMR_RET_BV_015 group g_CSE_DMR_RET_BV_016 { testcase TC_CSE_DMR_RET_BV_016_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := m_contentAcp_allOmit; v_contentResponse.any_1[0].AccessControlPolicy_optional.parentID := ?; f_CSE_DMR_RET_BV_016(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BV_016_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AE_optional := m_contentAe_allOmit; v_contentResponse.any_1[0].AE_optional.parentID := ?; f_CSE_DMR_RET_BV_016(int2, m_createAe(PX_APP_ID), v_contentResponse);//AE } testcase TC_CSE_DMR_RET_BV_016_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := m_contentContainer_allOmit; v_contentResponse.any_1[0].Container_optional.parentID := ?; f_CSE_DMR_RET_BV_016(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_RET_BV_016_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := m_contentGroup_allOmit; v_contentResponse.any_1[0].Group_optional.parentID := ?; f_CSE_DMR_RET_BV_016(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_RET_BV_016_11() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := m_contentSchedule_allOmit; v_contentResponse.any_1[0].Schedule_optional.parentID := ?; f_CSE_DMR_RET_BV_016(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_RET_BV_016_14() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := m_contentSubscription_allOmit; v_contentResponse.any_1[0].Subscription_optional.parentID := ?; f_CSE_DMR_RET_BV_016(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_RET_BV_016(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi"}, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Requested attribute retrieved successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, not only requested attribute retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource attribute"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BV_016 } // end g_CSE_DMR_RET_BV_016 group g_CSE_DMR_RET_BV_017 { testcase TC_CSE_DMR_RET_BV_017_01() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AccessControlPolicy_optional := m_contentAcp_allOmit; v_contentResponse.any_1[0].AccessControlPolicy_optional.parentID := ?; v_contentResponse.any_1[0].AccessControlPolicy_optional.creationTime := ?; f_CSE_DMR_RET_BV_017(int1, m_createAcpBase, v_contentResponse);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BV_017_02() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AE_optional := m_contentAe_allOmit; v_contentResponse.any_1[0].AE_optional.parentID := ?; v_contentResponse.any_1[0].AE_optional.creationTime := ?; f_CSE_DMR_RET_BV_017(int2, m_createAe(PX_APP_ID), v_contentResponse);//AE } testcase TC_CSE_DMR_RET_BV_017_03() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := m_contentContainer_allOmit; v_contentResponse.any_1[0].Container_optional.parentID := ?; v_contentResponse.any_1[0].Container_optional.creationTime := ?; f_CSE_DMR_RET_BV_017(int3, m_createContainerBase, v_contentResponse);//Container } testcase TC_CSE_DMR_RET_BV_017_05() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Group_optional := m_contentGroup_allOmit; v_contentResponse.any_1[0].Group_optional.parentID := ?; v_contentResponse.any_1[0].Group_optional.creationTime := ?; f_CSE_DMR_RET_BV_017(int9, m_createGroupBase, v_contentResponse);//Group } testcase TC_CSE_DMR_RET_BV_017_11() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Schedule_optional := m_contentSchedule_allOmit; v_contentResponse.any_1[0].Schedule_optional.parentID := ?; v_contentResponse.any_1[0].Schedule_optional.creationTime := ?; f_CSE_DMR_RET_BV_017(int18, m_createScheduleBase, v_contentResponse);//Schedule } testcase TC_CSE_DMR_RET_BV_017_14() runs on CseTester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Subscription_optional := m_contentSubscription_allOmit; v_contentResponse.any_1[0].Subscription_optional.parentID := ?; v_contentResponse.any_1[0].Subscription_optional.creationTime := ?; f_CSE_DMR_RET_BV_017(int23, m_createSubscriptionBase, v_contentResponse);//Subscription } function f_CSE_DMR_RET_BV_017(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(f_getResourceAddress(v_resourceIndex) , {"pi", "ct"}, f_getOriginator(v_aeIndex))));//from AE ID tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(p_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Requested attributes retrieved successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, not only requested attributes retrieved"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BV_017 } // end g_CSE_DMR_RET_BV_017 group g_CSE_DMR_RET_BO_018 { testcase TC_CSE_DMR_RET_BO_018_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_018(int1, m_createAcpBase);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BO_018_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_018(int2, m_createAe(PX_APP_ID));//AE } testcase TC_CSE_DMR_RET_BO_018_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_018(int3, m_createContainerBase);//Container } testcase TC_CSE_DMR_RET_BO_018_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_018(int9, m_createGroupBase);//Group } testcase TC_CSE_DMR_RET_BO_018_11() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_018(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_RET_BO_018_14() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_018(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_RET_BO_018(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(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; } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving non existing resource attribute"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error : attribute was retrieved while it doesn't exist"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attribute"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BO_018 } // end g_CSE_DMR_RET_BO_018 group g_CSE_DMR_RET_BO_019 { testcase TC_CSE_DMR_RET_BO_019_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_019(int1, m_createAcpBase);//AccessControlPolicy } testcase TC_CSE_DMR_RET_BO_019_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_019(int2, m_createAe(PX_APP_ID));//AE } testcase TC_CSE_DMR_RET_BO_019_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_019(int3, m_createContainerBase);//Container } testcase TC_CSE_DMR_RET_BO_019_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_019(int9, m_createGroupBase);//Group } testcase TC_CSE_DMR_RET_BO_019_11() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_019(int18, m_createScheduleBase);//Schedule } testcase TC_CSE_DMR_RET_BO_019_14() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_RET_BO_019(int23, m_createSubscriptionBase);//Subscription } function f_CSE_DMR_RET_BO_019(ResourceType p_resourceType, template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_requestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_requestPrimitive);//under the CSEBase resource // Test Body mcaPort.send(m_request(m_retrieveResourceAttributeContentOption(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; } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving non existing resource attributes"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error : attribute was retrieved while it doesn't exist"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_BO_019 } // end f_CSE_DMR_RET_BO_019 }//end group Retrieve group Update { group g_CSE_DMR_UPD_BV_001 { testcase TC_CSE_DMR_UPD_BV_001_01() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2:= {"VALUE_2"}; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; v_createRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_2; v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int3, v_createRequest, v_updateRequest);//Container if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.labels != v_labels_2){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_001_02() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"VALUE_2"}; var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_2; v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int9, v_createRequest, v_updateRequest);//Group if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].Group_optional.labels != v_labels_2){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_001_03() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"VALUE_2"}; var template RequestPrimitive v_createRequest := m_createAcpBase; var template RequestPrimitive v_updateRequest := m_updateAcpBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_2; v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int1, v_createRequest, v_updateRequest);//ACP if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy)) { if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.labels != v_labels_2){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_001_04() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"VALUE_2"}; var template RequestPrimitive v_createRequest := m_createScheduleBase; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_2; v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int18, v_createRequest, v_updateRequest);//Schedule if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional.labels != v_labels_2){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_001_05() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"VALUE_2"}; var template RequestPrimitive v_createRequest := m_createPollingChannelBase; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_2; v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int15, v_createRequest, v_updateRequest);//PollingChannel if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional.labels != v_labels_2){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_001_06() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"VALUE_2"}; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_2; v_responsePrimitive := f_CSE_DMR_UPD_BV_001(int23, v_createRequest, v_updateRequest);//Subscription if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional.labels != v_labels_2){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } function f_CSE_DMR_UPD_BV_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on CseTester return ResponsePrimitive{ // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_UPD_BV_001 } // end g_CSE_DMR_UPD_BV_001 group g_CSE_DMR_UPD_BV_002 { testcase TC_CSE_DMR_UPD_BV_002_01() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateContainerBase; var ResponsePrimitive v_responsePrimitive; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int3, m_createContainerBase, v_updateRequest);//Container if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.labels != v_labels_1){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_002_02() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var ResponsePrimitive v_responsePrimitive; v_updateRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_1; v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int9, m_createGroupBase, v_updateRequest);//Group if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].Group_optional.labels != v_labels_1){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_002_03() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateAcpBase; var ResponsePrimitive v_responsePrimitive; v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_1; v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int1, m_createAcpBase,v_updateRequest);//AccessControlPolicy if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.labels != v_labels_1){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_002_04() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; var ResponsePrimitive v_responsePrimitive; v_updateRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_1; v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int18, m_createScheduleBase,v_updateRequest);//Schedule if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional.labels != v_labels_1){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_002_05() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var ResponsePrimitive v_responsePrimitive; v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_1; v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int15, m_createPollingChannelBase,v_updateRequest);//PollingChannel if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional.labels != v_labels_1){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_002_06() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_updateRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_1; v_responsePrimitive := f_CSE_DMR_UPD_BV_002(int23, m_createSubscriptionBase,v_updateRequest);//Subscription if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional)) { if(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional.labels != v_labels_1){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } } } } function f_CSE_DMR_UPD_BV_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on CseTester return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_UPD_BV_002 } // end g_CSE_DMR_UPD_BV_002 group g_CSE_DMR_UPD_BV_003 { testcase TC_CSE_DMR_UPD_BV_003_01() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AttributeAux_list v_nullFields; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; v_createRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_2; v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int3, v_createRequest, v_updateRequest, v_nullFields);//Container if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container_optional)) { if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.labels)){ if(not(match(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.labels,{""}))) { setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly"); } } } } } } testcase TC_CSE_DMR_UPD_BV_003_02() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AttributeAux_list v_nullFields; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_updateRequest := m_updateGroupBase; v_createRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_2; v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int9, v_createRequest, v_updateRequest, v_nullFields);//Group if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group_optional)) { if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Group_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_003_03() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AttributeAux_list v_nullFields; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createAcpBase; var template RequestPrimitive v_updateRequest := m_updateAcpBase; v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_2; v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int1, v_createRequest, v_updateRequest, v_nullFields);//AccessControlPolicy if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional)) { if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_003_04() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AttributeAux_list v_nullFields; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createScheduleBase; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; v_createRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_2; v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int18, v_createRequest, v_updateRequest, v_nullFields);//Schedule if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional)) { if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_003_05() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AttributeAux_list v_nullFields; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createPollingChannelBase; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; v_createRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_2; v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int15, v_createRequest, v_updateRequest, v_nullFields);//PollingChannel if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional)) { if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_003_06() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AttributeAux_list v_nullFields; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; v_createRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_1; v_updateRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_2; v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_003(int23, v_createRequest, v_updateRequest, v_nullFields);//Subscription if(getverdict == pass){ //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional)) { if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } function f_CSE_DMR_UPD_BV_003(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseTester return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); //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); mcaPort.send(m_request(v_request, p_nullFields)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_UPD_BV_003 } // end g_CSE_DMR_UPD_BV_003 group g_CSE_DMR_UPD_BV_004 { testcase TC_CSE_DMR_UPD_BV_004_01() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; var ResponsePrimitive v_responsePrimitive; var AttributeAux_list v_nullFields; v_createRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1;//Attribute 3 v_updateRequest.primitiveContent.any_1[0].Container_optional.expirationTime := "20301231T012345";//Attribute 1 v_updateRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances := 5;//Attribute 2 v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_2;//Attribute 3 v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int3, v_createRequest, v_updateRequest, v_nullFields);//Container if(getverdict == pass){ if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Container_optional)) { //Check attribute 1 if(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.expirationTime != valueof(v_updateRequest.primitiveContent.any_1[0].Container_optional.expirationTime)){ setverdict(fail, testcasename() & ": Error: Expiration Time attribute not updated correctly") } //Check attribute 2 if(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.maxNrOfInstances != valueof(v_updateRequest.primitiveContent.any_1[0].Container_optional.maxNrOfInstances)){ setverdict(fail, testcasename() & ": Error: MaxNrOfInstances attribute not updated correctly") } //Check attribute 3 if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Container_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_004_02() runs on CseTester system CseSystem { // Local variables var XSD.String v_groupName_1 := "VALUE_1"; var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AttributeAux_list v_nullFields; var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_1;//Attribute 3 v_updateRequest.primitiveContent.any_1[0].Group_optional.expirationTime := "20301231T012345";//Attribute 1 v_updateRequest.primitiveContent.any_1[0].Group_optional.groupName:= v_groupName_1;//Attribute 2 v_updateRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_2;//Attribute 3 v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int9, v_createRequest, v_updateRequest, v_nullFields);//Group if(getverdict == pass){ if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Group_optional)) { //Check attribute 1 if(not match(v_responsePrimitive.primitiveContent.any_1[0].Group_optional.groupName, valueof(v_updateRequest.primitiveContent.any_1[0].Group_optional.groupName))){ setverdict(fail, testcasename() & ": Error: groupName attribute not updated correctly") } //Check attribute 2 if(not match(v_responsePrimitive.primitiveContent.any_1[0].Group_optional.expirationTime, valueof(v_updateRequest.primitiveContent.any_1[0].Group_optional.expirationTime))){ setverdict(fail, testcasename() & ": Error: expirationTime attribute not updated correctly") } //Check attribute 3 if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Group_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_004_03() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var SetOfAcrs v_privileges_2 := { // accessControlRule_list := { { accessControlOriginators := {PX_SUPER_USER}, accessControlOperations := int61, accessControlContexts_list := {}, accessControlAuthenticationFlag := omit, accessControlObjectDetails_list := {} } } } var AttributeAux_list v_nullFields; var template RequestPrimitive v_createRequest := m_createAcpBase;// privileges set by default to 63 for * var template RequestPrimitive v_updateRequest := m_updateAcpBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_1;//Attribute 3 v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges := v_privileges_2; //Attribute 1 v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo := {PX_URI_CSE};//Attribute 2 v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_2;//Attribute 3 v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int1, v_createRequest, v_updateRequest, v_nullFields);//AccessControlPolicy if(getverdict == pass){ if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional)) { //Check attribute 1 if(not match(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list[0].accessControlOperations, v_privileges_2.accessControlRule_list[0].accessControlOperations)){ setverdict(fail, testcasename() & ": Error: Privileges attribute not updated correctly") } //Check attribute 2 if(not match(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo, valueof(v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.announceTo))){ setverdict(fail, testcasename() & ": Error: Announce_to attribute not updated correctly") } //Check attribute 3 if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_004_04() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AttributeAux_list v_nullFields; var template RequestPrimitive v_createRequest := m_createScheduleBase; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].Schedule_optional.scheduleElement := {{"0,0,0 1 2,1,1,*"}};//Attribute 1 v_updateRequest.primitiveContent.any_1[0].Schedule_optional.scheduleElement := {{"1,1,1 1 2,1,1,*"}}; //Attribute 1 v_updateRequest.primitiveContent.any_1[0].Schedule_optional.announceTo := {PX_URI_CSE};//Attribute 2 v_updateRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_2;//Attribute 3 v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int18, v_createRequest, v_updateRequest, v_nullFields);//Schedule if(getverdict == pass){ if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional)) { //Check attribute 1 if(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional.scheduleElement != valueof(v_updateRequest.primitiveContent.any_1[0].Schedule_optional.scheduleElement)){ setverdict(fail, testcasename() & ": Error: Expiration Time attribute not updated correctly") } //Check attribute 2 if(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional.announceTo != valueof(v_updateRequest.primitiveContent.any_1[0].Schedule_optional.announceTo)){ setverdict(fail, testcasename() & ": Error: MaxNrOfInstances attribute not updated correctly") } //Check attribute 3 if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Schedule_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_004_05() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var Labels v_labels_2 := {"To be deleted"}; var AcpType v_acp := {"ACP_ID"}; var AttributeAux_list v_nullFields; var template RequestPrimitive v_createRequest := m_createPollingChannelBase; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_1;//Attribute 3 //No Attribute 1 //v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.accessControlPolicyIDs := v_acp;//Attribute 2 TODO Find another alternative for Attribute 2 v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_2;//Attribute 3 v_nullFields := {{"labels", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int15, v_createRequest, v_updateRequest, v_nullFields);//PollingChannel if(getverdict == pass){ if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional)) { //Check attribute 1 //Check attribute 2 TODO once another alternative is found, activate this checking /*if(not match(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional.accessControlPolicyIDs, valueof(v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.accessControlPolicyIDs))){ setverdict(fail, testcasename() & ": Error: ACPI attribute not added correctly") }*/ //Check attribute 3 if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].PollingChannel_optional.labels)){ setverdict(fail, testcasename() & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_BV_004_06() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var AttributeAux_list v_nullFields; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.any_1[0].Subscription_optional.expirationCounter := 10;//Attribute 3 v_updateRequest.primitiveContent.any_1[0].Subscription_optional.expirationTime := "20301231T012345";//Attribute 1 v_updateRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_1;//Attribute 2 v_updateRequest.primitiveContent.any_1[0].Subscription_optional.expirationCounter := 5;//Attribute 3 v_nullFields := {{"expirationCounter", omit}}; v_responsePrimitive := f_CSE_DMR_UPD_BV_004(int23, v_createRequest, v_updateRequest, v_nullFields);//Subscription if(getverdict == pass){ if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional)) { //Check attribute 1 if(not match(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional.labels, valueof(v_updateRequest.primitiveContent.any_1[0].Subscription_optional.labels))){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } //Check attribute 2 if(not match(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional.expirationTime, valueof(v_updateRequest.primitiveContent.any_1[0].Subscription_optional.expirationTime))){ setverdict(fail, testcasename() & ": Error: expirationTime attribute not updated correctly") } //Check attribute 3 if(ispresent(v_responsePrimitive.primitiveContent.any_1[0].Subscription_optional.expirationCounter)){ setverdict(fail, testcasename() & ": Error: expirationCounter attribute not deleted correctly") } } } } } function f_CSE_DMR_UPD_BV_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseTester return ResponsePrimitive { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request, p_nullFields)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); return v_response.primitive.responsePrimitive; }//end f_CSE_DMR_UPD_BV_004 } // end g_CSE_DMR_UPD_BV_004 group g_CSE_DMR_UPD_BI_005{ testcase TC_CSE_DMR_UPD_BI_005_01() runs on CseTester system CseSystem { // Local variables var XSD.PositiveInteger v_expirationCounter := 1; var template RequestPrimitive v_updateRequest := m_updateContainerBase; v_updateRequest.primitiveContent.any_1 := {{Container_update_invalid := m_contentUpdateContainer_invalid}}; v_updateRequest.primitiveContent.any_1[0].Container_update_invalid.expirationCounter := v_expirationCounter; f_CSE_DMR_UPD_BI_005(int3, m_createContainerBase, v_updateRequest);//Container } testcase TC_CSE_DMR_UPD_BI_005_02() runs on CseTester system CseSystem { // Local variables var XSD.PositiveInteger v_expirationCounter := 1; var template RequestPrimitive v_updateRequest := m_updateGroupBase; v_updateRequest.primitiveContent.any_1 := {{Group_update_invalid := m_contentUpdateGroup_invalid}}; v_updateRequest.primitiveContent.any_1[0].Group_update_invalid.expirationCounter := v_expirationCounter; f_CSE_DMR_UPD_BI_005(int9, m_createGroupBase, v_updateRequest);//Group } testcase TC_CSE_DMR_UPD_BI_005_03() runs on CseTester system CseSystem { // Local variables var XSD.PositiveInteger v_expirationCounter := 1; var template RequestPrimitive v_updateRequest := m_updateAcpBase; v_updateRequest.primitiveContent.any_1 := {{ACP_update_invalid := m_contentUpdateAcp_invalid}}; v_updateRequest.primitiveContent.any_1[0].ACP_update_invalid.expirationCounter := v_expirationCounter; f_CSE_DMR_UPD_BI_005(int1, m_createAcpBase, v_updateRequest);//AccessControlPolicy } testcase TC_CSE_DMR_UPD_BI_005_04() runs on CseTester system CseSystem { // Local variables var XSD.PositiveInteger v_expirationCounter := 1; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; v_updateRequest.primitiveContent.any_1 := {{Schedule_update_invalid := m_contentUpdateSchedule_invalid}}; v_updateRequest.primitiveContent.any_1[0].Schedule_update_invalid.expirationCounter := v_expirationCounter; f_CSE_DMR_UPD_BI_005(int18, m_createScheduleBase, v_updateRequest);//Schedule } testcase TC_CSE_DMR_UPD_BI_005_05() runs on CseTester system CseSystem { // Local variables var XSD.PositiveInteger v_expirationCounter := 1; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; v_updateRequest.primitiveContent.any_1 := {{PollingChannel_update_invalid := m_contentUpdatePollingChannel_invalid}}; v_updateRequest.primitiveContent.any_1[0].PollingChannel_update_invalid.expirationCounter := v_expirationCounter; f_CSE_DMR_UPD_BI_005(int15, m_createPollingChannelBase, v_updateRequest);//PollingChannel } testcase TC_CSE_DMR_UPD_BI_005_06() runs on CseTester system CseSystem { // Local variables var XSD.NonNegativeInteger v_maxNrOfInstances := 5; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; v_updateRequest.primitiveContent.any_1 := {{Subscription_update_invalid := m_contentUpdateSubscription_invalid}}; v_updateRequest.primitiveContent.any_1[0].Subscription_update_invalid.maxNrOfInstances := v_maxNrOfInstances; f_CSE_DMR_UPD_BI_005(int23, m_createSubscriptionBase, v_updateRequest);//Subscription } function f_CSE_DMR_UPD_BI_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on CseTester { // 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_getUpdateRequestPrimitive(p_resourceType, v_aeIndex, p_updateRequestPrimitive); v_request.to_ := v_request.to_ & "/" & c_defaultResourceName; mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource " & c_defaultResourceName & " of type " & int2str(enum2int(p_resourceType)) & " not found"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating an unexisting resource type " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating an unexisting resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_BI_005 } // end g_CSE_DMR_UPD_BI_005 group g_CSE_DMR_UPD_BO_006{ testcase TC_CSE_DMR_UPD_BO_006_01() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateContainerBase; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; f_CSE_DMR_UPD_BO_006(int3, m_createContainerBase, v_updateRequest);//Container } testcase TC_CSE_DMR_UPD_BO_006_02() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateGroupBase; v_updateRequest.primitiveContent.any_1[0].Group_optional.labels := v_labels_1; f_CSE_DMR_UPD_BO_006(int9, m_createGroupBase, v_updateRequest);//Group } testcase TC_CSE_DMR_UPD_BO_006_03() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateAcpBase; var template RequestPrimitive v_requestPrimitive := m_createAcpBase; v_requestPrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list[0].accessControlOperations := int59; v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.labels := v_labels_1; f_CSE_DMR_UPD_BO_006(int1, v_requestPrimitive, v_updateRequest);//AccessControlPolicy } testcase TC_CSE_DMR_UPD_BO_006_04() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; v_updateRequest.primitiveContent.any_1[0].Schedule_optional.labels := v_labels_1; f_CSE_DMR_UPD_BO_006(int18, m_createScheduleBase, v_updateRequest);//Schedule } testcase TC_CSE_DMR_UPD_BO_006_05() runs on CseTester system CseSystem { // Local variable var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.labels := v_labels_1; f_CSE_DMR_UPD_BO_006(int15, m_createPollingChannelBase, v_updateRequest);//PollingChannel } testcase TC_CSE_DMR_UPD_BO_006_06() runs on CseTester system CseSystem { // Local variables var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; v_updateRequest.primitiveContent.any_1[0].Subscription_optional.labels := v_labels_1; f_CSE_DMR_UPD_BO_006(int23, m_createSubscriptionBase, v_updateRequest);//Subscription } function f_CSE_DMR_UPD_BO_006(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_acpAuxIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int59);//c_CRDNDi) v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": 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, testcasename() & ": Error while updating attributes from resource without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Updating attributes from resource without having privileges"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_BO_006 } // end g_CSE_DMR_UPD_BO_006 group g_CSE_DMR_UPD_BO_007{ testcase TC_CSE_DMR_UPD_BO_007_01() runs on CseTester system CseSystem { // Local variables var Timestamp v_creationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateContainerBase; v_updateRequest.primitiveContent.any_1 := {{Container_update_invalid := m_contentUpdateContainer_invalid}}; v_updateRequest.primitiveContent.any_1[0].Container_update_invalid.creationTime := v_creationTime; f_CSE_DMR_UPD_BO_007(int3, m_createContainerBase, v_updateRequest);//Container } testcase TC_CSE_DMR_UPD_BO_007_02() runs on CseTester system CseSystem { // Local variables var Timestamp v_creationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateGroupBase; v_updateRequest.primitiveContent.any_1 := {{Group_update_invalid := m_contentUpdateGroup_invalid}}; v_updateRequest.primitiveContent.any_1[0].Group_update_invalid.creationTime := v_creationTime; f_CSE_DMR_UPD_BO_007(int9, m_createGroupBase, v_updateRequest);//Group } testcase TC_CSE_DMR_UPD_BO_007_03() runs on CseTester system CseSystem { // Local variables var Timestamp v_creationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateAcpBase; v_updateRequest.primitiveContent.any_1 := {{ACP_update_invalid := m_contentUpdateAcp_invalid}}; v_updateRequest.primitiveContent.any_1[0].ACP_update_invalid.creationTime := v_creationTime; f_CSE_DMR_UPD_BO_007(int1, m_createAcpBase, v_updateRequest);//AccessControlPolicy } testcase TC_CSE_DMR_UPD_BO_007_04() runs on CseTester system CseSystem { // Local variables var Timestamp v_creationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; v_updateRequest.primitiveContent.any_1 := {{Schedule_update_invalid := m_contentUpdateSchedule_invalid}}; v_updateRequest.primitiveContent.any_1[0].Schedule_update_invalid.creationTime := v_creationTime; f_CSE_DMR_UPD_BO_007(int18, m_createScheduleBase, v_updateRequest);//Schedule } testcase TC_CSE_DMR_UPD_BO_007_05() runs on CseTester system CseSystem { // Local variables var Timestamp v_creationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; v_updateRequest.primitiveContent.any_1 := {{PollingChannel_update_invalid := m_contentUpdatePollingChannel_invalid}}; v_updateRequest.primitiveContent.any_1[0].PollingChannel_update_invalid.creationTime := v_creationTime; f_CSE_DMR_UPD_BO_007(int15, m_createPollingChannelBase, v_updateRequest);//PollingChannel } testcase TC_CSE_DMR_UPD_BO_007_06() runs on CseTester system CseSystem { // Local variables var Timestamp v_creationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; v_updateRequest.primitiveContent.any_1 := {{Subscription_update_invalid := m_contentUpdateSubscription_invalid}}; v_updateRequest.primitiveContent.any_1[0].Subscription_update_invalid.creationTime := v_creationTime; f_CSE_DMR_UPD_BO_007(int23, m_createSubscriptionBase, v_updateRequest);//Subscription } function f_CSE_DMR_UPD_BO_007(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": 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, testcasename() & ": Error while updating RO attribute"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Updating RO attribute from resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_BO_007 } // end g_CSE_DMR_UPD_BO_007 group g_CSE_DMR_UPD_BO_008{ testcase TC_CSE_DMR_UPD_BO_008_01() runs on CseTester system CseSystem { // Local variables var Timestamp v_expirationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateContainerBase; var AttributeAux_list v_nullFields; v_nullFields := {{"expirationTime", omit}}; v_updateRequest.primitiveContent.any_1[0].Container_optional.expirationTime := v_expirationTime; f_CSE_DMR_UPD_BO_008(int3, m_createContainerBase, v_updateRequest, v_nullFields);//Container } testcase TC_CSE_DMR_UPD_BO_008_02() runs on CseTester system CseSystem { // Local variables var Timestamp v_expirationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var AttributeAux_list v_nullFields; v_nullFields := {{"expirationTime", omit}}; v_updateRequest.primitiveContent.any_1[0].Group_optional.expirationTime := v_expirationTime; f_CSE_DMR_UPD_BO_008(int9, m_createGroupBase, v_updateRequest, v_nullFields);//Group } testcase TC_CSE_DMR_UPD_BO_008_03() runs on CseTester system CseSystem { // Local variables var Timestamp v_expirationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateAcpBase; var AttributeAux_list v_nullFields; v_nullFields := {{"expirationTime", omit}}; v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.expirationTime := v_expirationTime; f_CSE_DMR_UPD_BO_008(int1, m_createAcpBase, v_updateRequest, v_nullFields);//AccessControlPolicy } testcase TC_CSE_DMR_UPD_BO_008_04() runs on CseTester system CseSystem { // Local variables var Timestamp v_expirationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; var AttributeAux_list v_nullFields; v_nullFields := {{"expirationTime", omit}}; v_updateRequest.primitiveContent.any_1[0].Schedule_optional.expirationTime := v_expirationTime; f_CSE_DMR_UPD_BO_008(int18, m_createScheduleBase, v_updateRequest, v_nullFields);//Schedule } testcase TC_CSE_DMR_UPD_BO_008_05() runs on CseTester system CseSystem { // Local variables var Timestamp v_expirationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var AttributeAux_list v_nullFields; v_nullFields := {{"expirationTime", omit}}; v_updateRequest.primitiveContent.any_1[0].PollingChannel_optional.expirationTime := v_expirationTime; f_CSE_DMR_UPD_BO_008(int15, m_createPollingChannelBase, v_updateRequest, v_nullFields);//PollingChannel } testcase TC_CSE_DMR_UPD_BO_008_06() runs on CseTester system CseSystem { // Local variables var Timestamp v_expirationTime := "20001231T012345"; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var AttributeAux_list v_nullFields; v_nullFields := {{"expirationTime", omit}}; v_updateRequest.primitiveContent.any_1[0].Subscription_optional.expirationTime := v_expirationTime; f_CSE_DMR_UPD_BO_008(int23, m_createSubscriptionBase, v_updateRequest, v_nullFields);//Subscription } function f_CSE_DMR_UPD_BO_008(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, template RequestPrimitive p_updateRequestPrimitive, template (omit) AttributeAux_list p_nullFields := omit) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body v_request := f_getUpdateRequestPrimitive(p_resourceType, v_resourceIndex, p_updateRequestPrimitive); mcaPort.send(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, testcasename() & ": 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, testcasename() & ": Error while deleting mandatory RW attribute"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Deleting a mandatory RW attribute from resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_UPD_BO_008 } // end g_CSE_DMR_UPD_BO_008 group g_CSE_DMR_UPD_BV_010{ testcase TC_CSE_DMR_UPD_BV_010() runs on CseTester system CseSystem { var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var RequestPrimitive v_updateRequest := valueof(m_updateContainerBase); var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // Test Body if(ispresent(vc_resourcesList[v_containerIndex].resource.any_1[0].Container_optional.stateTag)) { v_updateRequest := f_getUpdateRequestPrimitive(int3, v_containerIndex, v_updateRequest); f_cse_updateResource(v_updateRequest); mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_containerIndex), f_getOriginator(v_containerIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Container_optional.stateTag == 1) { //(Create and Delete) setverdict(pass, testcasename() & ": The stateTag attribute is incremented"); } else{ setverdict(fail, testcasename() & ": Error the stateTag attribute is not incremented"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes"); } } }//end if else{ setverdict(fail, testcasename() & ": Error the stateTag attribute is empty"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_UPD_BV_009 } // end group g_CSE_DMR_UPD_BV_009 }//end group Update group Delete { group g_CSE_DMR_DEL_BV_001{ testcase TC_CSE_DMR_DEL_BV_001_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_001(int3, m_createContainerBase);//Container if(getverdict == pass){ //check if "MyRessource" container resource isn't present in the IUT (for exemple attempt to update the resource) }; }; testcase TC_CSE_DMR_DEL_BV_001_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_001(int9, m_createGroupBase);//Group }; testcase TC_CSE_DMR_DEL_BV_001_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_001(int1, m_createAcpBase);//AccessControlPolicy }; testcase TC_CSE_DMR_DEL_BV_001_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_001(int18, m_createScheduleBase);//Schedule }; testcase TC_CSE_DMR_DEL_BV_001_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_001(int15, m_createPollingChannelBase);//PollingChannel }; testcase TC_CSE_DMR_DEL_BV_001_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_001(int23, m_createSubscriptionBase);//Subscription }; function f_CSE_DMR_DEL_BV_001(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi) f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex))); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource" & int2str(enum2int(p_resourceType)) & " deleted successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); };//end f_CSE_DMR_DEL_BV_001 };//end of group g_CSE_DMR_DEL_BV_001 group g_CSE_DMR_DEL_BV_002{ testcase TC_CSE_DMR_DEL_BV_002_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_002(int3, m_createContainerBase);//Container }; testcase TC_CSE_DMR_DEL_BV_002_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_002(int9, m_createGroupBase);//Group }; testcase TC_CSE_DMR_DEL_BV_002_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_002(int1, m_createAcpBase);//AccessControlPolicy }; testcase TC_CSE_DMR_DEL_BV_002_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_002(int18, m_createScheduleBase);//Schedule }; testcase TC_CSE_DMR_DEL_BV_002_05() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_002(int15, m_createPollingChannelBase);//PollingChannel }; testcase TC_CSE_DMR_DEL_BV_002_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_002(int23, m_createSubscriptionBase);//Subscription }; function f_CSE_DMR_DEL_BV_002(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var RequestPrimitive v_updateRequest; var integer v_acpAuxIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63)); var AccessControlRule v_accessControlRule_2; var SetOfAcrs v_setOfArcs; // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpAuxIndex := f_cse_preamble_createAcpAux(-,-);//c_CRDNDi); v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRUNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); //Update ACP Aux to remove DELETE operation rights to AE, keeping rights of SUPER USER to run postamble v_accessControlRule_2 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int55)); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); v_updateRequest := f_getUpdateRequestPrimitive(int1, vc_acpAuxIndex, v_updateRequest); mcaPort.send(m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type int1 (Acp) updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type int1 (Acp)"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type int1 (Acp)"); } } //Adjustments for ACP resource type if(p_resourceType == int1) { p_createRequestPrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2}; } else { f_setAcpId(p_createRequestPrimitive, {f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}); v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs, -)); v_updateRequest := f_getUpdateRequestPrimitive(int1, vc_acpAuxIndex, v_updateRequest); f_cse_updateResource(v_updateRequest); } //Creation of resource v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); // Test Body v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex))); v_request.from_ := f_getOriginator(v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Access denied to delete the resource " & int2str(enum2int(p_resourceType))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error resource deleted without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting a resource "); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType))); } } // 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 f_cse_deleteResource(valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex)))); //Update vc_resourcesIndexToBeDeleted f_removeElementFromList (vc_resourcesIndexToBeDeleted, v_aeIndex); f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); };//end f_CSE_DMR_DEL_BV_002 };//end of group g_CSE_DMR_DEL_BV_002 group g_CSE_DMR_DEL_BV_003{ testcase TC_CSE_DMR_DEL_BV_003_01() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var charstring c_falseAdressResource := "NoExistingResource"; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); // Test Body v_request := valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex) & "/" & c_falseAdressResource)); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Unexisting resource cannot be deleted"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting non existing resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting non existing resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while deleting resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); };//end f_CSE_DMR_DEL_BV_003 };//end of group g_CSE_DMR_DEL_BV_003 group g_CSE_DMR_DEL_BV_004{ testcase TC_CSE_DMR_DEL_BV_004_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_004(int3, m_createContainerBase, int3, m_createContainerBase);//Container }; testcase TC_CSE_DMR_DEL_BV_004_02() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_004(int9, m_createGroupBase, int23, m_createSubscriptionBase);//Group }; testcase TC_CSE_DMR_DEL_BV_004_03() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_004(int1, m_createAcpBase, int23, m_createSubscriptionBase);//AccessControlPolicy }; testcase TC_CSE_DMR_DEL_BV_004_04() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_004(int18, m_createScheduleBase, int23, m_createSubscriptionBase);//Schedule }; testcase TC_CSE_DMR_DEL_BV_004_05() runs on CseTester system CseSystem { // Local variables // don't exist pollingChannel's child resource //f_CSE_DMR_DEL_BV_004(int15, m_createPollingChannelBase, int23, m_createSubscriptionBase);//PollingChannel TODO ResourceType needed is PollingChannelURI }; testcase TC_CSE_DMR_DEL_BV_004_06() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_004(int23, m_createSubscriptionBase, int18, m_createScheduleBase);//Subscription }; function f_CSE_DMR_DEL_BV_004(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, ResourceType p_childResourceType, template RequestPrimitive p_createRequestPrimitiveChildResource) runs on CseTester { // 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; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); v_resourceIndex := f_cse_createResource(p_resourceType, p_createRequestPrimitive, v_aeIndex); v_childResourceIndex := f_cse_createResource(p_childResourceType, p_createRequestPrimitiveChildResource, v_resourceIndex); // Test Body v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex))); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ":Resource type " & int2str(enum2int(p_resourceType)) & " delete successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType))); } } mcaPort.send(m_request(m_retrieveResource(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, testcasename() & ": Error while retrieving non existing resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving non existing resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving non existing resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); };//end f_CSE_DMR_DEL_BV_004 };//end of group g_CSE_DMR_DEL_BV_004 group g_CSE_DMR_DEL_BV_005{ testcase TC_CSE_DMR_DEL_BV_005_01() runs on CseTester system CseSystem { // Local variables f_CSE_DMR_DEL_BV_005(int3, m_createContainerBase, int3, m_createContainerBase);//Container } function f_CSE_DMR_DEL_BV_005(ResourceType p_resourceType, template RequestPrimitive p_createRequestPrimitive, ResourceType p_childResourceType, template RequestPrimitive p_createRequestPrimitiveChildResource) runs on CseTester { // 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_resourceType, p_createRequestPrimitive, v_aeIndex); if(ispresent(vc_resourcesList[v_resourceIndex].resource.any_1[0].Container_optional.stateTag)) { v_childResourceIndex := f_cse_createResource(p_childResourceType, p_createRequestPrimitiveChildResource, v_resourceIndex); // Test Body v_request := valueof(m_deleteRequest(f_getResourceAddress(v_childResourceIndex))); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource type " & int2str(enum2int(p_resourceType)) & " delete successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting resource type " & int2str(enum2int(p_resourceType))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while deleting resource type " & int2str(enum2int(p_resourceType))); } } mcaPort.send(m_request(m_retrieveResource(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(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Container_optional.stateTag == 2) { //(Create and Delete) setverdict(pass, testcasename() & ": The stateTag attribute is incremented"); } else{ setverdict(fail, testcasename() & ": Error the stateTag attribute is not incremented"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes"); } } }//end if else{ setverdict(fail, testcasename() & ": Error the stateTag attribute is empty"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_DEL_BV_005 } // end group g_CSE_DMR_DEL_BV_005 }//end group Delete }//end group Data_Management_and_Repository //@Martin group Location { group g_CSE_LOC_BV_001{ testcase TC_CSE_LOC_BV_001() runs on CseTester system CseSystem { var integer v_aeAuxIndex := -1; var RequestPrimitive v_request; var MsgIn v_response; var LocationSource v_locationSource := int1;//Network-based //Test component configuration f_cf01Up(); //Preamble v_aeAuxIndex := f_cse_preamble_registerAe(); //Set requestPrimitive v_request := f_getCreateRequestPrimitive(int10, m_createLocationPolicy(v_locationSource, omit, omit, omit, omit), v_aeAuxIndex); //Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt{ [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { //BAD REQUEST tc_ac.stop; setverdict(pass, testcasename() & "Resource create request is rejected due to invalid request body message!!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while handling an invalid locationPolicy resource create request with response status code:" & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Created a locationPolicy resource for an invalid create request with response status code:" & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": Timeout due to no response received from requested server!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }// end testcase TC_CSE_LOC_BV_001 }//end group g_CSE_LOC_BV_001 group g_CSE_LOC_BV_002{ testcase TC_CSE_LOC_BV_002() runs on CseTester system CseSystem { var integer v_aeAuxIndex := -1; var LocationSource v_locationSource := int1;//Network-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_request; var MsgIn v_response; //Test component configuration f_cf01Up(); //Preamble v_aeAuxIndex := f_cse_preamble_registerAe(); //Set requestPrimitive v_request := f_getCreateRequestPrimitive(int10, m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, locationTargetID, locationServerAddress), v_aeAuxIndex); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource locationPolicy is created successfuly with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))&"!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error occurrs with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "while handling a valid locationPolicy resource create request!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": Timeout due to no response from requested server!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }// end testcase TC_CSE_LOC_BV_002 }//end group g_CSE_LOC_BV_002 group g_CSE_LOC_BO_001{ testcase TC_CSE_LOC_BO_001() runs on CseTester system CseSystem {//the originator has no privileges to create a locationPolicy resource!! var integer v_aeAuxIndex := -1; var integer v_acpAuxIndex := -1; var LocationSource v_locationSource := int1;//Network-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_request; var MsgIn v_response; // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case"); stop; } //Test component configuration f_cf01Up(); //Preamble v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int62);//c_RUDNDi) //No resource creation privilege v_aeAuxIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -); //Set requestPrimitive v_request := f_getCreateRequestPrimitive(int10, m_createLocationPolicy(v_locationSource,omit, locationUpdatePeriod, locationTargetID, locationServerAddress), v_aeAuxIndex); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Access denied to create a resource including locationPolicy!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error occurrs with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "due to IUT failed to check the access privilege of originator!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": Timeout due to no response from requested server!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end testcase TC_CSE_LOC_BO_001 }//end group g_CSE_LOC_BO_001 group g_CSE_LOC_BO_002{ testcase TC_CSE_LOC_BO_002() runs on CseTester system CseSystem { var integer v_aeAuxIndex := -1; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_request; var MsgIn v_response; //Test component configuration f_cf01Up(); //Preamble v_aeAuxIndex := f_cse_preamble_registerAe(); //Set requestPrimitive v_request := f_getCreateRequestPrimitive(int10, m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, locationTargetID, locationServerAddress), v_aeAuxIndex); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": The targeted resource is not found!!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error occurrs with response status code: "& int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "due to IUT created a locationPolicy resource under a non-existed parent resource!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": Timeout due to no response from requested server!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }// end testcase TC_CSE_LOC_BO_002 }//end group g_CSE_LOC_BO_002 group g_CSE_LOC_BI_001{ testcase TC_CSE_LOC_BI_001() runs on CseTester system CseSystem {//reject an invalid update request with invalid attribtue locationUpdatePeriod var integer v_aeAuxIndex := -1; var integer v_locPolicyResourceIndex := -1; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Duration locationUpdatePeriod_invalid := c_invalid_location_update_period; var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_request; var RequestPrimitive v_locpolicy_request_preamble; var MsgIn v_response; //Test component configuration f_cf01Up(); //Preamble - register AE v_aeAuxIndex := f_cse_preamble_registerAe(); //Preamble - create a valid locationPolicy resource for later update use v_locpolicy_request_preamble:= valueof(m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, locationTargetID, locationServerAddress)); v_locPolicyResourceIndex := f_cse_createResource(int10, v_locpolicy_request_preamble, v_aeAuxIndex); //Set requestPrimitive v_request := f_getUpdateRequestPrimitive(int10, v_locPolicyResourceIndex, m_updateLocationPolicy(f_getResourceAddress(v_locPolicyResourceIndex), omit, locationUpdatePeriod_invalid)); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4000))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Update locationPolicy resource is rejected!!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error occurrs with response status code: "& int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "due to IUT failed to handle an invalid locationPolicy update request"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": Timeout due to no response from requested server!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BI_001 }//end group g_CSE_LOC_BI_001 group g_CSE_LOC_BV_003 { testcase TC_CSE_LOC_BV_003() runs on CseTester system CseSystem{ //TO RETRIEVE a resource that has created in cse and linked with a resource (network-based case) var integer v_aeAuxIndex := -1; var integer v_locPolicyResourceIndex := -1; var integer v_locContainerResourceIndex := -1; var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_loc_request_preamble; var RequestPrimitive v_container_request_preamble; var MsgIn v_response; var LocationSource v_locationSource := int1;//Network-based //Test component configuration f_cf01Up(); //Preamble - register AE v_aeAuxIndex := f_cse_preamble_registerAe(); //Preamble - create a valid locationPolicy resource for later container resource creation v_loc_request_preamble := valueof(m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, locationTargetID, locationServerAddress)); v_container_request_preamble := valueof(m_createContainer(f_getResourceAddress(v_aeAuxIndex), omit));//no location-container name provided? v_locPolicyResourceIndex := f_cse_createResource(int10, v_loc_request_preamble, v_aeAuxIndex);//created locationpolicy index v_locContainerResourceIndex := f_cse_createResource(int3, v_container_request_preamble, v_locPolicyResourceIndex);//created container index //Test Body - retrieve the created container resource mcaPort.send(m_request(valueof(m_retrieveResource(f_getResourceAddress(v_locContainerResourceIndex), f_getOriginator(v_locContainerResourceIndex))))); tc_ac.start; alt{ [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response{ tc_ac.stop; if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Container_optional.locationID)){ setverdict(fail, testcasename() & "No locationID is included in the response!"); }else{ setverdict(pass, testcasename() & "Container resource associated with locationPolicy resource is successfully retrieved with locationID included in the response!"); } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & "Requested container resource is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_003 }//end group g_CSE_LOC_BV_003 group g_CSE_LOC_BV_004 { testcase TC_CSE_LOC_BV_004() runs on CseTester system CseSystem{ //TO create a resource with locationSource set to Device-based var integer v_aeAuxIndex := -1; var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var RequestPrimitive v_request; var MsgIn v_response; var LocationSource v_locationSource := int2;//Device-based //Test component configuration f_cf01Up(); if(PX_IUT_IS_ASN_CSE){ //Preamble v_aeAuxIndex := f_cse_preamble_registerAe(); //Set requestPrimitive v_request := f_getCreateRequestPrimitive(int10, m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, omit, omit), v_aeAuxIndex); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource locationPolicy is created successfuly with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))&"!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error occurrs with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "while handling a valid locationPolicy resource create request!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": Timeout due to no response from requested server!"); } } // Postamble f_cse_postamble_deleteResources(); } // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_004 }//end group g_CSE_LOC_BV_004 group g_CSE_LOC_BV_005 { testcase TC_CSE_LOC_BV_005() runs on CseTester system CseSystem{ //TO create a resource with locationSource set to Share-based var integer v_aeAuxIndex := -1; var LocationSource v_locationSource := int3;//Share-based var RequestPrimitive v_request; var MsgIn v_response; //Test component configuration f_cf01Up(); if(PX_IUT_IS_MN_CSE){ //Preamble v_aeAuxIndex := f_cse_preamble_registerAe(); //Set requestPrimitive v_request := f_getCreateRequestPrimitive(int10, m_createLocationPolicy(v_locationSource, omit, omit, omit, omit), v_aeAuxIndex); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource locationPolicy is created successfuly with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))&"!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error occurrs with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "while handling a valid locationPolicy resource create request!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": Timeout due to no response from requested server!"); } } // Postamble f_cse_postamble_deleteResources(); } // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_005 }//end group g_CSE_LOC_BV_005 group g_CSE_LOC_BV_006 { testcase TC_CSE_LOC_BV_006_01() runs on CseTester system CseSystem{ //TO NOTIFY a location information var integer v_aeAuxIndex := -1; var integer v_locPolicyResourceIndex := -1; var integer v_locContainerResourceIndex := -1; var integer v_subscriptionResourceIndex := -1; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_locpolicy_request_preamble; var RequestPrimitive v_container_request_preamble; var RequestPrimitive v_subscription_request_preamble; var MsgIn v_response; //Test component configuration f_cf01Up(); //Preamble - register AE v_aeAuxIndex := f_cse_preamble_registerAe(); //Preamble - create a valid locationPolicy resource v_locpolicy_request_preamble := valueof(m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, locationTargetID, locationServerAddress)); v_container_request_preamble := valueof(m_createContainer(f_getResourceAddress(v_aeAuxIndex), omit));//no location-container name provided? v_locPolicyResourceIndex := f_cse_createResource(int10, v_locpolicy_request_preamble, v_aeAuxIndex);//created locationpolicy index v_locContainerResourceIndex := f_cse_createResource(int3, v_container_request_preamble, v_locPolicyResourceIndex);//created container index v_subscription_request_preamble := valueof(m_createSubscription(f_getResourceAddress(v_locContainerResourceIndex), c_defaultResourceName, -)); v_subscriptionResourceIndex := f_cse_createResource(int23, v_subscription_request_preamble, v_locContainerResourceIndex); //Test Body - retrieve the resource of the created container resource linked with the locationPolicy resource mcaPort.send(m_request(valueof(m_retrieveResource(f_getResourceAddress(v_locContainerResourceIndex) & "/" & "latest", f_getOriginator(v_locContainerResourceIndex))))); tc_ac.start; alt{ [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response{ tc_ac.stop; if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Notification.notificationEvent)){ setverdict(fail, testcasename() & "No NotificationEvent is included in the response!"); }else{ setverdict(pass, testcasename() & "Location information is successfully sent!"); } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & "Requested container resource is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_006_01 testcase TC_CSE_LOC_BV_006_02() runs on CseTester system CseSystem{ //TO NOTIFY a location information var integer v_aeAuxIndex := -1; var integer v_locPolicyResourceIndex := -1; var integer v_locContainerResourceIndex := -1; var integer v_subscriptionResourceIndex := -1; var LocationSource v_locationSource := int2;//Device-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var RequestPrimitive v_locpolicy_request_preamble; var RequestPrimitive v_container_request_preamble; var RequestPrimitive v_subscription_request_preamble; var MsgIn v_response; //Test component configuration f_cf01Up(); //Preamble - register AE v_aeAuxIndex := f_cse_preamble_registerAe(); //Preamble - create a valid locationPolicy resource v_locpolicy_request_preamble := valueof(m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, omit, omit)); v_container_request_preamble := valueof(m_createContainer(f_getResourceAddress(v_aeAuxIndex), omit));//no location-container name provided? v_locPolicyResourceIndex := f_cse_createResource(int10, v_locpolicy_request_preamble, v_aeAuxIndex);//created locationpolicy index v_locContainerResourceIndex := f_cse_createResource(int3, v_container_request_preamble, v_locPolicyResourceIndex);//created container index v_subscription_request_preamble := valueof(m_createSubscription(f_getResourceAddress(v_locContainerResourceIndex), c_defaultResourceName, -)); v_subscriptionResourceIndex := f_cse_createResource(int23, v_subscription_request_preamble, v_locContainerResourceIndex); //Test Body - retrieve the resource of the created container resource linked with the locationPolicy resource mcaPort.send(m_request(valueof(m_retrieveResource(f_getResourceAddress(v_locContainerResourceIndex) & "/" & "latest", f_getOriginator(v_locContainerResourceIndex))))); tc_ac.start; alt{ [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response{ tc_ac.stop; if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Notification.notificationEvent)){ setverdict(fail, testcasename() & "No NotificationEvent is included in the response!"); }else{ setverdict(pass, testcasename() & "Location information is successfully sent!"); } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & "Requested container resource is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_006_02 testcase TC_CSE_LOC_BV_006_03() runs on CseTester system CseSystem{ //TO NOTIFY a location information var integer v_aeAuxIndex := -1; var integer v_locPolicyResourceIndex := -1; var integer v_locContainerResourceIndex := -1; var integer v_subscriptionResourceIndex := -1; var LocationSource v_locationSource := int3;//Sharing-based var RequestPrimitive v_locpolicy_request_preamble; var RequestPrimitive v_container_request_preamble; var RequestPrimitive v_subscription_request_preamble; var MsgIn v_response; //Test component configuration f_cf01Up(); //Preamble - register AE v_aeAuxIndex := f_cse_preamble_registerAe(); //Preamble - create a valid locationPolicy resource v_locpolicy_request_preamble := valueof(m_createLocationPolicy(v_locationSource, omit, omit, omit, omit)); v_container_request_preamble := valueof(m_createContainer(f_getResourceAddress(v_aeAuxIndex), omit));//no location-container name provided? v_locPolicyResourceIndex := f_cse_createResource(int10, v_locpolicy_request_preamble, v_aeAuxIndex);//created locationpolicy index v_locContainerResourceIndex := f_cse_createResource(int3, v_container_request_preamble, v_locPolicyResourceIndex);//created container index v_subscription_request_preamble := valueof(m_createSubscription(f_getResourceAddress(v_locContainerResourceIndex), c_defaultResourceName, -)); v_subscriptionResourceIndex := f_cse_createResource(int23, v_subscription_request_preamble, v_locContainerResourceIndex); //Test Body - retrieve the resource of the created container resource linked with the locationPolicy resource mcaPort.send(m_request(valueof(m_retrieveResource(f_getResourceAddress(v_locContainerResourceIndex) & "/" & "latest", f_getOriginator(v_locContainerResourceIndex))))); tc_ac.start; alt{ [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response{ tc_ac.stop; if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Notification.notificationEvent)){ setverdict(fail, testcasename() & "No NotificationEvent is included in the response!"); }else{ setverdict(pass, testcasename() & "Location information is successfully sent!"); } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & "Requested container resource is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_006_03 }//end group g_CSE_LOC_BV_006 /*group g_CSE_LOC_BV_007 { testcase TC_CSE_LOC_BV_007() runs on CseTester system CseSystem{ //TODO }//end testcase TC_CSE_LOC_BV_007 }//end group g_CSE_LOC_BV_007 group g_CSE_LOC_BV_008 { testcase TC_CSE_LOC_BV_008() runs on CseTester system CseSystem{ //TODO }//end testcase TC_CSE_LOC_BV_008 }//end group g_CSE_LOC_BV_008 */ group g_CSE_LOC_BV_009 { testcase TC_CSE_LOC_BV_009() runs on CseTester system CseSystem{ //To CREATE a resource as a child resource of the created var integer v_aeAuxIndex := -1; var integer v_locPolicyResourceIndex := -1; var integer v_locContainerResourceIndex := -1; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; var RequestPrimitive v_locpolicy_request_preamble; var RequestPrimitive v_container_request_preamble; var RequestPrimitive v_subscription_request_preamble; var MsgIn v_response; //Test component configuration f_cf01Up(); //Preamble - register AE v_aeAuxIndex := f_cse_preamble_registerAe(); //Preamble - create a valid locationPolicy resource v_locpolicy_request_preamble := valueof(m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, locationTargetID, locationServerAddress)); v_container_request_preamble := valueof(m_createContainer(f_getResourceAddress(v_aeAuxIndex), omit));//no location-container name provided? v_locPolicyResourceIndex := f_cse_createResource(int10, v_locpolicy_request_preamble, v_aeAuxIndex);//created locationpolicy index v_locContainerResourceIndex := f_cse_createResource(int3, v_container_request_preamble, v_locPolicyResourceIndex);//created container index v_subscription_request_preamble := valueof(m_createSubscription(f_getResourceAddress(v_locContainerResourceIndex), c_defaultResourceName, -)); //Test Body mcaPort.send(m_request(valueof(f_getCreateRequestPrimitive(int23, v_subscription_request_preamble, v_locContainerResourceIndex)))); tc_ac.start; alt{ [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response{ tc_ac.stop; setverdict(pass, testcasename() & "Subscription resource is successfully!"); } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & "Requested container resource is not found!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating subscription resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_009 }//end group g_CSE_LOC_BV_009 group g_CSE_LOC_BV_010 { testcase TC_CSE_LOC_BV_010() runs on CseTester system CseSystem{ //TO RETRIEVE a resource that has created in cse var integer v_aeAuxIndex := -1; var integer v_locPolicyResourceIndex := -1; var RequestPrimitive v_locpolicy_request_preamble; var MsgIn v_response; var LocationSource v_locationSource := int1;//Netwok-based var XSD.Duration locationUpdatePeriod := PX_LOCATION_UPDATE_PERIOD; var XSD.Token locationTargetID := PX_LOCATION_TARGET_ID; var XSD.AnyURI locationServerAddress := PX_LOCATION_SERVER_ADDRESS; //Test component configuration f_cf01Up(); //Preamble - register AE v_aeAuxIndex := f_cse_preamble_registerAe(); //Preamble - create a valid locationPolicy resource for later container resource creation v_locpolicy_request_preamble := valueof(m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, locationTargetID, locationServerAddress)); v_locPolicyResourceIndex := f_cse_createResource(int10, v_locpolicy_request_preamble, v_aeAuxIndex);//created locationpolicy index //Test Body - retrieve the created locationpolicy resource mcaPort.send(m_request(valueof(m_retrieveResource(f_getResourceAddress(v_locPolicyResourceIndex), f_getOriginator(v_locPolicyResourceIndex))))); tc_ac.start; alt{ [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response{ tc_ac.stop; if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].LocationPolicy_optional.locationContainerID)){ setverdict(fail, testcasename() & "No locationContainerID is included in the response!"); }else{ setverdict(pass, testcasename() & "LocationPolicy resource is successfully retrieved with locationContainerID included in the response!"); } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, testcasename() & "Requested locationPolicy is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_010 }//end group g_CSE_LOC_BV_010 }//end group Location group Group_Managment { // Test objective: // Check that the IUT rejects the creation of the group resource when member ID exceed max number // of members. group g_CSE_GMG_BV_001 { testcase TC_CSE_GMG_BV_001() runs on CseTester system CseSystem { // Local constants const XSD.NonNegativeInteger c_maxNrOfMembers := 1; // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex_1, v_containerIndex_2 := -1; var RequestPrimitive v_request; var ListOfURIs v_memberIDs; var template RequestPrimitive v_createRequest; var ResponsePrimitive v_responsePrimitive; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_containerIndex_1 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_createRequest := valueof(m_createGroup(c_maxNrOfMembers, v_memberIDs, omit, int3)); // Test Body v_request := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int6010))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Creation failed because member ID exceed max number of member"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error resource created while member ID exceed max number of member"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_001 // Test objective: // Check that the IUT rejects the creation of the group resource when the memberType cannot // be retrieved due to lack of privilege. group g_CSE_GMG_BV_002 { testcase TC_CSE_GMG_BV_002() runs on CseTester 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 template RequestPrimitive v_containerCreateRequest := m_createContainerBase; var template RequestPrimitive v_createRequest; var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, int61); //c_CUDNDi // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": 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_containerCreateRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; v_containerIndex := f_cse_createResource(int3, v_containerCreateRequest, v_aeIndex); // AE child resource v_createRequest := m_createGroup(1, {f_getResourceId(vc_resourcesList[v_containerIndex].resource)}, omit, int3); v_request := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex); // creating group // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5105))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": creation failed due to lack of privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error creation successful while doesn't have privileges for retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_002 // Test objective: // Check that the IUT rejects the update of the group resource when the // memberType cannot be retrieved due to lack of privilege. group g_CSE_GMG_BV_003 { testcase TC_CSE_GMG_BV_003() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex_1 := -1; var integer v_containerIndex_2 := -1; var integer v_acpIndex := -1; var integer v_groupIndex := -1; var RequestPrimitive v_request; var template RequestPrimitive v_containerCreateRequest := m_createContainer("NotInitialized", "MyContainer2"); var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, int61); //c_CUDNDi // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": 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_containerCreateRequest.primitiveContent.any_1[0].Container_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, v_containerCreateRequest, v_aeIndex); // AE child resource v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource)}, omit, int3), v_aeIndex); v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_request := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); // creating group // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5105))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Update failed due to lack of privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error update successful while doesn't have privileges for retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_003 // Test objective: // Check that the IUT detects the presence of duplicate member IDs during the creation of the // group resource and removes the duplicate member IDs prior to creation of the group resource. group g_CSE_GMG_BV_004 { testcase TC_CSE_GMG_BV_004() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var RequestPrimitive v_createRequest; var XSD.AnyURI v_memberID; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi. v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource v_memberID := f_getResourceId(vc_resourcesList[v_containerIndex].resource); v_createRequest := valueof(m_createGroup(2, {v_memberID, v_memberID}, omit, int3)); v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex); // Test Body mcaPort.send(m_request(v_createRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource created successfuly"); if(not match({v_memberID}, v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){ setverdict(fail, testcasename(), ": Error, presence of duplicate member IDs "); } if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 1) { setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_004 // Test objective: // Check that the IUT validates the resource type during the creation of the // group resource when memberType attribute is not ‘mixed’. group g_CSE_GMG_BV_005 { testcase TC_CSE_GMG_BV_005() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_createRequest; 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(); //c_CRUDNDi v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource v_createRequest := valueof(m_createGroup(2, {f_getResourceId(vc_resourcesList[v_containerIndex].resource)}, omit, int3)); //Member type is set to Container v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex); // Test Body mcaPort.send(m_request(v_createRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource created successfuly"); if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)){ setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated == false){ setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not correct"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource" ); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_005 // Test objective: // Check that the IUT handles unsuccessful validation of the resource type during the creation of the // group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED. group g_CSE_GMG_BV_006 { testcase TC_CSE_GMG_BV_006() runs on CseTester system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_createRequest; 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(); //c_CRUDNDi v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource v_createRequest := valueof(m_createGroup(2, {f_getResourceId(vc_resourcesList[v_containerIndex].resource)}, omit, int2, int3)); //Member type is set to AE and consistencyStrategy is set to MIXED v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex); // Test Body mcaPort.send(m_request(v_createRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource created successfuly"); // check for memberTypeValidated if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)){ setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated != false){ setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not correct"); } } // check for memberType (MIXED) if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType)){ setverdict(fail, testcasename(), ": Error, memberType attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType != int0){ //Mixed is int0 in release 2 and int24 in release 1 setverdict(fail, testcasename(), ": Error, memberType attribute not correct"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_006 // Test objective: // Check that the IUT handles unsuccessful validation of the resource type during the creation of the // group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is // ABANDON_MEMBER,. group g_CSE_GMG_BV_007 { testcase TC_CSE_GMG_BV_007() runs on CseTester system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_createRequest; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_groupIndex := -1; var ListOfURIs v_memberIDs; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex); v_groupIndex := f_cse_createResource(int9, m_createGroupBase, v_aeIndex); v_memberIDs := {f_getResourceId(vc_resourcesList[v_groupIndex].resource), f_getResourceId(vc_resourcesList[v_containerIndex].resource)}; v_createRequest := valueof(m_createGroup(2, v_memberIDs, omit, int3, omit)); //Member type is set to container and consistencyStrategy is set to ABANDON MEMBER (default value) v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex); // Test Body mcaPort.send(m_request(v_createRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource created successfuly"); // check for memberTypeValidated if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)){ setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated == false){ setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not correct"); } } // check for membersId if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){ setverdict(fail, testcasename(), ": Error, memberIDs attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != f_getResourceAddress(v_containerIndex)){ setverdict(fail, testcasename(), ": Error, memberIDs attribute not correct"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_007 // Test objective: // Check that the IUT handles unsuccessful validation of the resource type during the creation of the // group resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is // ABANDON_GROUP. group g_CSE_GMG_BV_008 { testcase TC_CSE_GMG_BV_008() runs on CseTester system CseSystem { //Local variables var MsgIn v_response; var RequestPrimitive v_createRequest; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_groupIndex := -1; var ListOfURIs v_memberIDs; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex); v_groupIndex := f_cse_createResource(int9, m_createGroupBase, v_aeIndex); v_memberIDs := {f_getResourceId(vc_resourcesList[v_groupIndex].resource), f_getResourceId(vc_resourcesList[v_containerIndex].resource)}; v_createRequest := valueof(m_createGroup(2, v_memberIDs, omit, int3, int2)); //Member type is set to container and consistencyStrategy is set to ABANDON GROUP v_createRequest := f_getCreateRequestPrimitive(int9, v_createRequest, v_aeIndex); // Test Body mcaPort.send(m_request(v_createRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int6011))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": unsuccessful validation of the resource type during the creation of the group"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error create succesfull while the operation should be aborted"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_008 // Test objective: // Check that the IUT detects the presence of duplicate member IDs during the update of the // group resource and removes the duplicate member IDs prior to updating of the group resource. group g_CSE_GMG_BV_009 { testcase TC_CSE_GMG_BV_009() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex_1 := -1; var integer v_containerIndex_2 := -1; var integer v_groupIndex := -1; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); var XSD.AnyURI v_memberId_1; var XSD.AnyURI v_memberId_2; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource v_memberId_1 := f_getResourceId(vc_resourcesList[v_containerIndex_1].resource); v_memberId_2 := f_getResourceId(vc_resourcesList[v_containerIndex_2].resource); v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberId_1, v_memberId_2}, omit, int3), v_aeIndex); // AE child resource v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {v_memberId_2, v_memberId_2}; v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); //Test Body mcaPort.send(m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": update successful"); // check for membersId if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){ setverdict(fail, testcasename(), ": Error, memberIDs attribute not provided"); } else { if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 1) { setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute"); } if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != v_memberId_2){ setverdict(fail, testcasename(), ": Error, memberIDs attribute not correct"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_009 //Test objective: //Check that the IUT validates the resource type during an UPDATE of the resource when memberType attribute is not ‘mixed’. group g_CSE_GMG_BV_010 { testcase TC_CSE_GMG_BV_010() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex_1 := -1; var integer v_containerIndex_2 := -1; var integer v_groupIndex := -1; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource)}, omit, int3), v_aeIndex); v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); // Test Body mcaPort.send(m_request(v_updateRequest));// TODO see if the memberTypeValidated is present in the update response tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": update successful"); if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) { setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated == false) { setverdict(fail, testcasename(), ": Error, memberTypeValidated wrong value"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_010 //Test objective: //Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is SET_MIXED. group g_CSE_GMG_BV_011 { testcase TC_CSE_GMG_BV_011() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_groupIndex := -1; var integer v_subGroupIndex := -1; var XSD.AnyURI v_memberId_1; var XSD.AnyURI v_memberId_2; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex); v_subGroupIndex := f_cse_createResource(int9, m_createGroupBase, v_aeIndex); v_memberId_1 := f_getResourceId(vc_resourcesList[v_containerIndex].resource); v_memberId_2 := f_getResourceId(vc_resourcesList[v_subGroupIndex].resource); v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberId_1}, omit, int3, int3), v_aeIndex); //Member type is set to Container (int3) and consistencyStrategy is set to MIXED (int3) v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {v_memberId_1, v_memberId_2}; v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); // Test Body mcaPort.send(m_request(v_updateRequest));// TODO see if the memberTypeValidated is present in the update response tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": update successful"); //memberTypeValidated attribute set to FALSE if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) { setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated != false) { setverdict(fail, testcasename(), ": Error, memberTypeValidated must be FALSE"); } } //memberType attribute set to MIXED if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType)) { setverdict(fail, testcasename(), ": Error, memberType attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberType != int0) { //Mixed is int0 in release 2 and int24 in release 1 setverdict(fail, testcasename(), ": Error, memberType was not set to MIXED"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_011 //Test objective: Check that the IUT handles unsuccessful validation of the resource type during an UPDATE of the resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_MEMBER. group g_CSE_GMG_BV_012 { testcase TC_CSE_GMG_BV_012() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_groupIndex := -1; var integer v_subGroupIndex := -1; var XSD.AnyURI v_memberId_1; var XSD.AnyURI v_memberId_2; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex); v_subGroupIndex := f_cse_createResource(int9, m_createGroupBase, v_aeIndex); v_memberId_1 := f_getResourceId(vc_resourcesList[v_containerIndex].resource); v_memberId_2 := f_getResourceId(vc_resourcesList[v_subGroupIndex].resource); v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberId_1}, omit, int3, omit), v_aeIndex); //Member type is set to Container (int3) and consistencyStrategy is set to ABANDON MEMBER (default value) v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {v_memberId_2, v_memberId_1}; v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); //Test Body mcaPort.send(m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": update successful"); //memberTypeValidated attribute set to TRUE if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) { setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated != true) { setverdict(fail, testcasename(), ": Error, memberTypeValidated must be TRUE"); } } //memberIDs attribute set to v_memberID1 if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs)){ setverdict(fail, testcasename(), ": Error, memberIDs attribute not provided"); } else { if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 1) { setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute"); } if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] != v_memberId_1){ setverdict(fail, testcasename(), ": Error, memberIDs attribute not correct"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_012 //Test objective: Check that the IUT handles unsuccessful validation of the resource type during an update of the resource when memberType attribute is not ‘mixed’ and the consistencyStrategy attribute is ABANDON_GROUP. group g_CSE_GMG_BV_013 { testcase TC_CSE_GMG_BV_013() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_groupIndex := -1; var integer v_subGroupIndex := -1; var XSD.AnyURI v_memberId_1; var XSD.AnyURI v_memberId_2; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi v_containerIndex := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer"), v_aeIndex); v_subGroupIndex := f_cse_createResource(int9, m_createGroupBase, v_aeIndex); v_memberId_1 := f_getResourceId(vc_resourcesList[v_containerIndex].resource); v_memberId_2 := f_getResourceId(vc_resourcesList[v_subGroupIndex].resource); v_groupIndex := f_cse_createResource(int9, m_createGroup(2, {v_memberId_1}, omit, int3, int2), v_aeIndex); //Member type is set to Container(int3) and consistencyStrategy is set to ABANDON GROUP (default value) v_updateRequest.primitiveContent.any_1[0].Group_optional.memberIDs := {v_memberId_2, v_memberId_1}; v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); //Test Body mcaPort.send(m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int6011))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": unsuccessful validation of the resource type during the creation of the group"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error create succesfull while the operation should be aborted"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_013 group g_CSE_GMG_BV_014 { // Test objective: Check that the IUT detects when the number of memberIDs exceeds the limitation of maxNrOfMembers. testcase TC_CSE_GMG_BV_014() runs on CseTester system CseSystem { //Local constants const integer c_maxNrOfMembers := 2; // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_groupIndex, v_containerIndex_1, v_containerIndex_2, v_containerIndex_3 := -1; var ListOfURIs v_memberIDs; var template RequestPrimitive v_createRequest; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_createMember; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_containerIndex_1 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource v_containerIndex_3 := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_createRequest := valueof(m_createGroup(c_maxNrOfMembers, v_memberIDs, omit, int3)); v_groupIndex := f_cse_createResource(int9, v_createRequest, v_aeIndex); //Test Body v_request := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); v_memberIDs := v_memberIDs & {f_getResourceId(vc_resourcesList[v_containerIndex_3].resource)}; v_request.primitiveContent.any_1[0].Group_optional.memberIDs := v_memberIDs; mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int6010))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": operation is not allowed"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_014 // Test objective: Check that the IUT detects when the value provided for maxNrOfMembers attribute is less than the value of the currentNrOfMembers attribute. group g_CSE_GMG_BV_015 { testcase TC_CSE_GMG_BV_015() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_updateRequest := valueof(m_updateGroupBase); var integer v_aeIndex := -1; var integer v_containerIndex_1 := -1; var integer v_containerIndex_2 := -1; var integer v_groupIndex := -1; var ListOfURIs v_memberIDs; var XSD.PositiveInteger v_maxNrOfMembers:= 1; v_updateRequest.primitiveContent.any_1[0].Group_optional.maxNrOfMembers := v_maxNrOfMembers; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_containerIndex_1 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int3), v_aeIndex); v_updateRequest := f_getUpdateRequestPrimitive(int9, v_groupIndex, v_updateRequest); //Test Body mcaPort.send(m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int6010))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": max number of member exceeded"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error update successful while operation is not allowed"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_015 group g_CSE_GMG_BV_016 { // Test objective: Check that the IUT handles validation of the resource type during an UPDATE of the resource when memberIDs contains a sub-group on a temporarily unreachable Hosting CSE. testcase TC_CSE_GMG_BV_016() runs on CseTester system CseSystem { //Local constants const ResourceType c_ResourceTypeGroup := int9; const ResourceType c_ResourceType1 := int4; const MemberType c_memberType1 := int4; // should be set same type as c_ResourceType1 const XSD.String c_primitiveContent := "primitive_contet"; const ConsistencyStrategy c_consistentcyStrategy := int1; // ABANDOND_MEMBER // const XSD.AnyURI c_targetResourceAddress := "TARGET_RESOURCE_ADDRESS"; const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1"; const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2"; // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_groupIndex := -1; var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_createMember; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi // TODO: -> register IUT to the remoteCSE v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex); v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(1, {c_memberResourceAddress1}, omit); v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_memberType1; v_createRequest.primitiveContent.any_1[0].Group_optional.memberTypeValidated := true; v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := c_consistentcyStrategy; v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex); // TODO: -> do the resources actually need to be created? // TODO: choose the right template for member resource v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1"); f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex); // TODO: create resource of type at c_memberResourceAddress2 on remoteCSE // TODO: set onlineStatus to false on remoteCSE //Test Body v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest); // v_request.to_ := c_targetResourceAddress; v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, omit); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated)) { setverdict(fail, testcasename(), ": Error, memberTypeValidated attribute not provided"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberTypeValidated == false) { if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs) != 2) { setverdict(fail, testcasename() & ": Error, wrong number of memberIDs attribute"); } else { if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[0] == c_memberResourceAddress1 and v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Group_optional.memberIDs[1] == c_memberResourceAddress2) { setverdict(pass, testcasename() & ": update successful"); } else { setverdict(fail, testcasename(), ": Error, wrong memberIDs"); } } } else { setverdict(fail, testcasename(), ": Error, memberTypeValidated must be set to FALSE"); } } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_016 group g_CSE_GMG_BV_017 { // Test objective: Check that the IUT handles validation of the resource type during an UPDATE of the resource when memberIDs contains a sub-group on a a previously unreachable Hosting CSE that has become reachable testcase TC_CSE_GMG_BV_017() runs on CseTester system CseSystem { //Local constants const ResourceType c_ResourceTypeGroup := int9; const ResourceType c_ResourceType1 := int4; const MemberType c_memberType1 := int4; // should be set same type as c_ResourceType1 const XSD.String c_primitiveContent := "primitive_contet"; const ConsistencyStrategy c_consistentcyStrategy := int1; // ABANDOND_MEMBER // const XSD.AnyURI c_targetResourceAddress := "TARGET_RESOURCE_ADDRESS"; const XSD.AnyURI c_memberResourceAddress1 := "MEMBER_RESSOURCE_ADDRESS_1"; const XSD.AnyURI c_memberResourceAddress2 := "MEMBER_RESSOURCE_ADDRESS_2"; // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_remoteCSEIndex := -1; var integer v_groupIndex := -1; var template RequestPrimitive v_createRequest := m_createGroupBase; var template RequestPrimitive v_updateRequest := m_updateGroupBase; var template RequestPrimitive v_createMember; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(); //c_CRUDNDi // TODO: -> register IUT to the remoteCSE //v_remoteCSEIndex := ... v_createRequest := f_getCreateRequestPrimitive(c_ResourceTypeGroup, v_createRequest, v_aeIndex); v_createRequest.primitiveContent.any_1[0].Group_optional := m_contentCreateGroup(2, {c_memberResourceAddress1, c_memberResourceAddress2}, omit); v_createRequest.primitiveContent.any_1[0].Group_optional.memberType := c_memberType1; v_createRequest.primitiveContent.any_1[0].Group_optional.memberTypeValidated := false; v_createRequest.primitiveContent.any_1[0].Group_optional.consistencyStrategy := c_consistentcyStrategy; v_groupIndex := f_cse_createResource(c_ResourceTypeGroup, v_createRequest, v_aeIndex); // TODO: -> the AE having a subscription to c_targetResourceAddress // TODO: -> do the resources actually need to be created? // TODO: choose the right template for member resource v_createMember := m_createContentInstance(f_getResourceAddress(v_aeIndex), c_primitiveContent & "_1"); f_cse_createResource(c_ResourceType1, v_createMember, v_aeIndex); // TODO: create resource of type at c_memberResourceAddress2 on remoteCSE // TODO: set onlineStatus to false on remoteCSE //Test Body v_request := f_getUpdateRequestPrimitive(c_ResourceTypeGroup, v_groupIndex, v_updateRequest); //v_request.from_ := CSE-ID v_request.to_ := f_getResourceAddress(v_remoteCSEIndex); //Content set to resource containing onlineStatus := false; mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } //Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } } // end group g_CSE_GMG_BV_017 group g_CSE_GMG_BV_018 { testcase TC_CSE_GMG_BV_018_01() runs on CseTester system CseSystem { //Create f_CSE_GMG_BV_018(m_createContainerBase); }//end TC_CSE_GMG_BV_018_01 testcase TC_CSE_GMG_BV_018_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; f_CSE_GMG_BV_018(v_updateRequest); }//end TC_CSE_GMG_BV_018_02 testcase TC_CSE_GMG_BV_018_03() runs on CseTester system CseSystem { //Retrieve f_CSE_GMG_BV_018(m_retrieveResource("Temporary", "Temporary")); }//end TC_CSE_GMG_BV_018_03 testcase TC_CSE_GMG_BV_018_04() runs on CseTester system CseSystem { //Delete f_CSE_GMG_BV_018(m_deleteRequest("Temporary")); }//end TC_CSE_GMG_BV_018_04 function f_CSE_GMG_BV_018(template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; 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_membersAcpIds; var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, -); // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": 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("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_membersAcpIds := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; 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 mcaPort.send(m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource"); if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){ setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided"); } else { for(i:=0; i value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Update failed due to lack of privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error operation successful while doesn't have privileges"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_GMG_BO_019 } // end group g_CSE_GMG_BO_019 group g_CSE_GMG_BV_020 { testcase TC_CSE_GMG_BV_020_01() runs on CseTester system CseSystem { //Create f_CSE_GMG_BV_020(m_createContainerBase); }//end TC_CSE_GMG_BV_020_01 testcase TC_CSE_GMG_BV_020_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; f_CSE_GMG_BV_020(v_updateRequest); }//end TC_CSE_GMG_BV_020_02 testcase TC_CSE_GMG_BV_020_03() runs on CseTester system CseSystem { //Retrieve f_CSE_GMG_BV_020(m_retrieveResource("Temporary", "Temporary")); }//end TC_CSE_GMG_BV_020_03 testcase TC_CSE_GMG_BV_020_04() runs on CseTester system CseSystem { //Delete f_CSE_GMG_BV_020(m_deleteRequest("Temporary")); }//end TC_CSE_GMG_BV_020_04 function f_CSE_GMG_BV_020(template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; 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_acpIDs; var template RequestPrimitive v_createAcp := m_createAcp("NotInitialized", "MyACP", -, -); // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": 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("NotInitialized", "MyContainer1"), v_aeIndex); // AE child resource v_containerIndex_2 := f_cse_createResource(int3, m_createContainer("NotInitialized", "MyContainer2"), v_aeIndex); // AE child resource v_memberIDs := {f_getResourceId(vc_resourcesList[v_containerIndex_1].resource), f_getResourceId(vc_resourcesList[v_containerIndex_2].resource)}; v_acpIDs := {f_getResourceId(vc_resourcesList[v_acpIndex].resource)}; 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 mcaPort.send(m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource"); if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){ setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided"); } else { for(i:=0; i value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Update failed due to lack of privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error operation successful while doesn't have privileges"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end f_CSE_GMG_BO_021 } // end group g_CSE_GMG_BO_021 group g_CSE_GMG_BV_022 { testcase TC_CSE_GMG_BV_022_01() runs on CseTester system CseSystem { //Create var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; f_CSE_GMG_BV_022(m_createContainerBase, v_contentResponse); }//end TC_CSE_GMG_BV_022_01 testcase TC_CSE_GMG_BV_022_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateAeBase; var template PrimitiveContent v_contentResponse; var Labels v_labels_1:= {"VALUE_1"}; v_contentResponse.any_1[0].AE_optional := m_contentAe_allOmit; v_contentResponse.any_1[0].AE_optional.labels := ?; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; f_CSE_GMG_BV_022(v_updateRequest, v_contentResponse); }//end TC_CSE_GMG_BV_022_02 testcase TC_CSE_GMG_BV_022_03() runs on CseTester system CseSystem { //Retrieve var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; f_CSE_GMG_BV_022(m_retrieveResource("Temporary", "Temporary"), v_contentResponse); }//end TC_CSE_GMG_BV_022_03 testcase TC_CSE_GMG_BV_022_04() runs on CseTester system CseSystem { //Delete var template PrimitiveContent v_contentResponse; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase;// TODO see with wath should it be matched f_CSE_GMG_BV_022(m_deleteRequest("Temporary"), v_contentResponse); }//end TC_CSE_GMG_BV_022_04 function f_CSE_GMG_BV_022(template RequestPrimitive p_requestPrimitive, template PrimitiveContent p_contentResponse) runs on CseTester { //Local constants const integer c_numberOfResponsePrimitive := 2; // Local variables var MsgIn v_response; var integer v_aeIndex_1 := -1; var integer v_aeIndex_2 := -1; var integer v_groupIndex := -1; var ListOfURIs v_memberIDs; var integer i; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex_1 := f_cse_preamble_registerAe(-, -); //c_CRUDNDi v_aeIndex_2 := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", omit), -1); // AE2 is registred v_memberIDs := {f_getResourceId(vc_resourcesList[v_aeIndex_1].resource), f_getResourceId(vc_resourcesList[v_aeIndex_2].resource)}; v_groupIndex := f_cse_createResource(int9, m_createGroup(2, v_memberIDs, omit, int2), -1); p_requestPrimitive.to_ := f_getResourceAddress(v_groupIndex) & "/fopt"; p_requestPrimitive.from_ := f_getOriginator(v_aeIndex_1); //TODO see if it is correct or if we have to use PX_SUPER_ADMIN // Test Body mcaPort.send(m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource"); if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){ setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided"); } else{ if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list) != c_numberOfResponsePrimitive){ setverdict(fail, testcasename(), ": Error, length of aggregatedResponse is not valid"); } else{ for(i:=0; i value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource"); if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){ setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided"); } else{ if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list) != c_numberOfResponsePrimitive){ setverdict(fail, testcasename(), ": Error, length of aggregatedResponse is not valid"); } else{ for(i:=0; i value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": creation successfull by using fanOutPoint in group resource"); if(not ispresent(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list)){ setverdict(fail, testcasename(), ": Error, aggregatedResponse attribute not provided"); } else{ if(lengthof(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].AggregatedResponse.responsePrimitive_list) != c_numberOfResponsePrimitive){ setverdict(fail, testcasename(), ": Error, length of aggregatedResponse is not valid"); } else{ for(i:=0; i value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource not subscribable"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while subscribing a ressource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Subsciption successful whereas resource is not subscribable"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_001_01 testcase TC_CSE_SUB_BV_001_02() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerResourceIndex := -1; var integer v_contentInstanceResourceIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; v_createRequest.primitiveContent.any_1[0].Subscription_optional.resourceName := omit; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_containerResourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);//Container v_contentInstanceResourceIndex := f_cse_createResource(int4, m_createContentInstance(f_getResourceAddress(v_aeIndex), "Random Value"), v_containerResourceIndex);//ContentInstance v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_contentInstanceResourceIndex); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5203))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource not subscribable"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while subscribing a ressource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Subsciption successful whereas resource is not subscribable"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_001_02 }//end group g_CSE_SUB_BV_001 group g_CSE_SUB_BV_002 { testcase TC_CSE_SUB_BV_002() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpAuxIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; // Test control if(not(PICS_ACP_SUPPORT)) { setverdict(inconc, testcasename() & ": AccessControlPolicy support is required to run this test case"); stop; } // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpAuxIndex := f_cse_preamble_createAcpAux(-, int61);//c_CUDNDi) v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRDNDi); v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5105))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": No privilege for subscribing to the resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while subscribing a ressource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Subsciption successful whereas it doesn't have privilege"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_002 }//end group g_CSE_SUB_BV_002 group g_CSE_SUB_BV_003 { testcase TC_CSE_SUB_BV_003() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; 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_CUDNDi); v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription //v_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {"Not Initialized"}; // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5204))) -> value v_response { //SUBSCRIPTION_VERIFICATION_INITIATION_FAILED tc_ac.stop; setverdict(pass, testcasename() & ": OK : Subscription verification initiation failed"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while subscribing a ressource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Subsciption successful whereas subsciption verification failed"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_003 }//end group g_CSE_SUB_BV_003 group g_CSE_SUB_BV_004 { testcase TC_CSE_SUB_BV_004() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; var CseTester notifyHandler := CseTester.create("NotifyHandler"); var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi); v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", {"http://" & PX_TESTER_ADDRESS & "/"}), -1); v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription v_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(v_ae2Index)}; notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(v_aeIndex), int4101)); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4101))) -> value v_response { //SUBSCRIPTION_CREATOR_HAS_NO_PRIVILEGE tc_ac.stop; setverdict(pass, testcasename() & ": OK : Subscription creator has no privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while subscribing a ressource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Subsciption successful whereas subsciption creator has no privilege"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_004 }//end group g_CSE_SUB_BV_004 group g_CSE_SUB_BV_005 { testcase TC_CSE_SUB_BV_005() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var RequestPrimitive v_request; var CseTester notifyHandler := CseTester.create("NotifyHandler"); var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi); // set poa to MTC adress v_ae2Index := f_cse_createResource(int2, m_createAe(PX_APP_ID, -, PX_AE_ID_STEM, "MyAe2", {"http://" & PX_TESTER_ADDRESS & "/"}), -1); v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription v_request.primitiveContent.any_1[0].Subscription_optional.notificationURI := {f_getResourceAddress(v_ae2Index)}; notifyHandler.start(f_subscriptionVerificationHandler(f_getResourceAddress(v_aeIndex), int5205)); // Test Body mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int5205))) -> value v_response { //SUBSCRIPTION_CREATOR_HAS_NO_PRIVILEGE tc_ac.stop; setverdict(pass, testcasename() & ": OK : Subscription creator has no privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while subscribing a ressource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Subsciption successful whereas subsciption creator has no privilege"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_005 }//end group g_CSE_SUB_BV_005 group g_CSE_SUB_BV_006 { testcase TC_CSE_SUB_BV_006() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type int2 (Ae) updated successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type int2 (Ae)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type int2 (Ae)"); } }; f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_006 }//end group g_CSE_SUB_BV_006 group g_CSE_SUB_BV_007{ testcase TC_CSE_SUB_BV_007() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var template PrimitiveContent v_contentResponse; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; // all attributes expected // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int3}, -)); // TODO this field is initialised 2 time with parent adress resource (here and in f_cse_createResource) v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription v_request:= f_getCreateRequestPrimitive(int3, m_createContainerBase, v_aeIndex); if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Resource type int3 (Container) created successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while creating resource type int3 (Container)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while creating resource type int3 (Container)"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_007 }//end group g_CSE_SUB_BV_007 group g_CSE_SUB_BV_008 { testcase TC_CSE_SUB_BV_008() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_subscriptionResourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var template PrimitiveContent v_contentResponse; var RequestPrimitive v_deleteRequest; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int2}, -)); v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex );//Subscription v_deleteRequest:= valueof(m_deleteRequest(f_getResourceAddress(v_aeIndex))); // Ae delete request if(v_notifyHandler.running) { v_notifyHandler.stop; }; //Test Body v_notifyHandler.start(f_CSE_SUB_BV_008(v_contentResponse)); // check if the notification is well received and if its content matchs mcaPort.send(m_request(v_deleteRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": resource type int2 (AE) deleted successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting resource type int2 (AE)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while deleting resource type int2 (AE)"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_008 function f_CSE_SUB_BV_008( template PrimitiveContent p_primitiveContent) runs on CseTester { var MsgIn v_response; map(self:mcaPort, system:mcaPort); map(self:acPort, system:acPort); tc_ac.start; alt { [] mcaPort.receive(mw_request(mw_notify(mw_contentNotification(?)))) -> value v_response { tc_ac.stop; if(not(match(v_response.primitive.requestPrimitive.primitiveContent.any_1[0].Notification.subscriptionDeletion, true))) { setverdict(fail, testcasename() & ": subscriptionDeletion attribute have to be set to TRUE"); } if(f_check_notificationContent(v_response.primitive.requestPrimitive, p_primitiveContent)){ setverdict(pass, testcasename() & ": Notification received"); } else{ setverdict(fail, testcasename() & ": Notification received but the content doesn't match"); } } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No notification received"); } } mcaPort.send(m_response(valueof(m_responseNotification(int2001)))); unmap(self:mcaPort, system:mcaPort); unmap(self:acPort, system:acPort); } //end f_CSE_SUB_BV_008 }//end group g_CSE_SUB_BV_008 group g_CSE_SUB_BV_009 { testcase TC_CSE_SUB_BV_009() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_subscriptionResourceIndex := -1; var integer v_containerResourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var RequestPrimitive v_deleteRequest; var template PrimitiveContent v_contentResponse; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_contentResponse.any_1[0].Container_optional := mw_contentContainer_rc1; // all attributes expected in notification // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi; v_containerResourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);//Container f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int4}, -)); v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription (with name attribute omitted) v_deleteRequest := valueof(m_deleteRequest(f_getResourceAddress(v_containerResourceIndex)));// Container deletion request if(v_notifyHandler.running) { v_notifyHandler.stop; }; //Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs mcaPort.send(m_request(v_deleteRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Container resource deleted successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting resource type int3 (Container)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while deleting resource type int3 (Container)"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_009 }//end group g_CSE_SUB_BV_009 group g_CSE_SUB_BV_010 { testcase TC_CSE_SUB_BV_010() runs on CseTester system CseSystem { } // end TC_CSE_SUB_BV_010 }//end group g_CSE_SUB_BV_010 group g_CSE_SUB_BV_011 { testcase TC_CSE_SUB_BV_011() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var Labels v_labels_1:= {"VALUE_1"}; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_createRequest := omit; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_contentResponse.any_1[0].AE_optional := m_contentAe_allOmit; // only modified attribute expected v_contentResponse.any_1[0].AE_optional.labels := ?; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int2); //notificationContentType ="modified attributes" v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); //Subscription v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type int2 (Ae) updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type int2 (Ae)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type int2 (Ae)"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_011 }//end group g_CSE_SUB_BV_011 group g_CSE_SUB_BV_012 { testcase TC_CSE_SUB_BV_012() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var Labels v_labels_1:= {"VALUE_1"}; var template RequestPrimitive v_createRequest := omit; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_contentResponse.any_1[0].AE_optional := m_contentAe_allOmit; // only modified attribute expected v_contentResponse.any_1[0].AE_optional.resourceID := ?; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int3); // notificationContentType ="ResourceID" v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); f_is_component_done(v_notifyHandler); // Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type int2 (Ae) updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type int2 (Ae)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type int2 (Ae) or None notification received"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_012 }//end group g_CSE_SUB_BV_012 group g_CSE_SUB_BV_013 { testcase TC_CSE_SUB_BV_013() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var Labels v_labels_1:= {"VALUE_1"}; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_createRequest := omit; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var template PrimitiveContent v_retrieveContentResponse; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected v_retrieveContentResponse.any_1[0].Subscription_optional := mw_contentSubscription_rc1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, 3); //expirationCounter set to 3 v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); // Subscription if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // AE update request f_cse_updateResource(v_request); // AE update //TODO See if we keep this f_is_component_done, it assure that the retrieve operation is executed after having sent and received the Notification f_is_component_done(v_notifyHandler); mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_retrieveContentResponse))) -> value v_response { tc_ac.stop; if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Subscription_optional.expirationCounter == 2 ){ setverdict(pass, testcasename() & ": expirationCounter has been successfully decreased by one"); } else{ setverdict(fail, testcasename() & ": Error expirationCounter hasn't been decreased by one"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_013 }//end group g_CSE_SUB_BV_013 group g_CSE_SUB_BV_014 { testcase TC_CSE_SUB_BV_014() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var Labels v_labels_1:= {"VALUE_1"}; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_createRequest := omit; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, 1); //expirationCounter set to 1 v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);// Subscription if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // AE update request f_cse_updateResource(v_request); // AE update //TODO See if we keep this f_is_component_done, it assure that the retrieve operation is executed after having sent and received the Notification f_is_component_done(v_notifyHandler); mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Subscription Resource have been successfully deleted"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving Subscription Resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, testcasename() & ": Error Subscription Resource has not been deleted"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving Subscription Resource"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_014 }//end of group g_CSE_SUB_BV_014 group g_CSE_SUB_BV_015 { testcase TC_CSE_SUB_BV_015() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; var AttributeList_1 v_attributeList := {"labels"}; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int1}, v_attributeList)); v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type int2 (Ae) updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type int2 (Ae)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type int2 (Ae) or None notification received"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_015 }//end group g_CSE_SUB_BV_015 group g_CSE_SUB_BV_016 { testcase TC_CSE_SUB_BV_016() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; var AttributeList_1 v_attributeList := {"appName"}; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int1}, v_attributeList)); v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_CSE_SUB_BV_016()); // check that no notification is received mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Attribute of resource type int2 (Ae) updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while updating resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while updating resource type int2 (Ae) or None notification received"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_016 function f_CSE_SUB_BV_016() runs on CseTester { // Local variables var MsgIn v_response; map(self:mcaPort, system:mcaPort); map(self:acPort, system:acPort); tc_ac.start(10.0); alt { [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, Notification isn't expected "); } [] tc_ac.timeout { setverdict(pass, testcasename() & ": No notification received"); } } unmap(self:mcaPort, system:mcaPort); unmap(self:acPort, system:acPort); } //end f_CSE_SUB_BV_016 }//end group g_CSE_SUB_BV_016 group g_CSE_SUB_BV_017{ testcase TC_CSE_SUB_BV_017() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit,f_getResourceAddress(v_ae2Index)); // SubscriberURI ="ResourceID" v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); // Subsciption v_request := valueof(m_deleteRequest(f_getResourceAddress(v_resourceIndex))); // Subscription resource deletion request if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_CSE_SUB_BV_017(f_getResourceAddress(v_resourceIndex))); // check that no notification is received mcaPort.send(m_request(v_request)); alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Subscription resource deleted successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while deleting resource type int23 (Subscription)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while deleting resource type int23 (Subscription)"); } } f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_017 function f_CSE_SUB_BV_017(in XSD.AnyURI p_subscriptionReference) runs on CseTester { // Local variables var MsgIn v_response; var template Notification v_notificationRequest := mw_contentNotificationBase; v_notificationRequest.subscriptionDeletion := true; v_notificationRequest.subscriptionReference := p_subscriptionReference; map(self:mcaPort, system:mcaPort); map(self:acPort, system:acPort); tc_ac.start; alt { [] mcaPort.receive(mw_request(mw_notify(v_notificationRequest))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Notification received"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No notification received"); } } unmap(self:mcaPort, system:mcaPort); unmap(self:acPort, system:acPort); } //end f_CSE_SUB_BV_017 }//end group g_CSE_SUB_BV_017 group g_CSE_SUB_BV_018 { testcase TC_CSE_SUB_BV_018() runs on CseTester system CseSystem { // Local variables const integer numberOfAggregatedNotification := 3; var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; var Labels v_labels_2:= {"VALUE_2"}; var Labels v_labels_3:= {"VALUE_3"}; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotifyNumber3Duration1(numberOfAggregatedNotification));// TODO fix the duration v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_CSE_SUB_BV_018(v_contentResponse, numberOfAggregatedNotification)); // check that no notification is received v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_2; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_3; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3 f_cse_updateResource(v_request); f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_018 function f_CSE_SUB_BV_018(template PrimitiveContent p_primitiveContent,in integer p_numberOfAggregatedNotification) runs on CseTester { // Local variables var MsgIn v_response; map(self:mcaPort, system:mcaPort); map(self:acPort, system:acPort); tc_ac.start; alt { [] mcaPort.receive(mw_request(mw_aggregatedNotifyBase)) -> value v_response { tc_ac.stop; if(p_numberOfAggregatedNotification == lengthof(v_response.primitive.requestPrimitive.primitiveContent.any_1[0].AggregatedNotification.notification_list)){ if(f_check_notificationContent(v_response.primitive.requestPrimitive, p_primitiveContent)){ setverdict(pass, testcasename() & ": Notification received"); } else{ setverdict(fail, testcasename() & ": Notification received but the content doesn't match"); } } else { setverdict(fail, testcasename() & ": Number of Notification in Aggregatednotification isn't right"); } } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No notification received"); } } unmap(self:mcaPort, system:mcaPort); unmap(self:acPort, system:acPort); } //end f_CSE_SUB_BV_018 }//end group g_CSE_SUB_BV_018 group g_CSE_SUB_BV_019 { testcase TC_CSE_SUB_BV_019() runs on CseTester system CseSystem { // Local variables const integer numberOfAggregatedNotification := 3; var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; var Labels v_labels_2:= {"VALUE_2"}; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotifyNumber3Duration1(numberOfAggregatedNotification));// TODO fix the duration v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_CSE_SUB_BV_018(v_contentResponse, 2)); // check that no notification is received v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_2; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 f_cse_updateResource(v_request); f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_019 }//end group g_CSE_SUB_BV_019 group g_CSE_SUB_BV_020 { testcase TC_CSE_SUB_BV_020() runs on CseTester system CseSystem { // Local variables const integer numberOfAggregatedNotification := 3; var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; var Labels v_labels_2:= {"VALUE_2"}; var Labels v_labels_3:= {"VALUE_3"}; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var template RequestPrimitive v_createRequest := omit; var template PrimitiveContent v_contentResponse; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var CseTester v_notifyHandler; var integer v_ae2Index := -1; v_contentResponse.any_1[0].AE_optional := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotifyNumber3Duration1(numberOfAggregatedNotification), true);// TODO fix the duration //TODO We Need to check if the IUT send a notification only for the latest update operation // like we match a Notification we have to verify if it is the first (unvalid behavior) or the last (valid behavior) // maybe we need to synchronise our components v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription if(v_notifyHandler.running) { v_notifyHandler.stop; }; // Test Body v_notifyHandler.start(f_cse_notifyProcedure(v_contentResponse)); // check if the notification is well received and if its content matchs v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_2; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_3; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3 f_cse_updateResource(v_request); f_is_component_done(v_notifyHandler); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_BV_020 }//end group g_CSE_SUB_BV_020 }//end group Subscription_And_Notification group Security { group Access_Control_Policy { group g_CSE_SEC_ACP_BV_001 { testcase TC_CSE_SEC_ACP_BV_001() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpIndex := -1; var template PrimitiveContent v_contentResponse; var RequestPrimitive v_createRequest := valueof(m_createAcpBase); var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63)); var AccessControlRule v_accessControlRule_2 := valueof(m_createAcr({"wait"}, int55)); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); // Only use for setting the ACR_2's accessControlOriginators attribute to AE_ID v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2}; v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc1; v_contentResponse.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2};// TODO To handle reverse order of acrs v_contentResponse.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; // Test Body v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_acpIndex), f_getOriginator(v_acpIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Response OK for retrieving"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end TC_CSE_SEC_ACP_BV_001 }//end g_CSE_SEC_ACP_BV_001 group g_CSE_SEC_ACP_BV_002 { testcase TC_CSE_SEC_ACP_BV_002() runs on CseTester system CseSystem { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpIndex := -1; var template PrimitiveContent v_contentResponse; var RequestPrimitive v_createRequest := valueof(m_createAcpBase); var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63)); var AccessControlRule v_accessControlRule_2 := valueof(m_createAcr({"wait"}, int55)); // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(-, -); // Only use for setting the ACR_2's accessControlOriginators attribute to AE_ID v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2}; v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc1; v_contentResponse.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2};//TODO To handle reverse order of acrs v_contentResponse.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; // Test Body v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_acpIndex), f_getOriginator(v_acpIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Response OK for retrieving"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while retrieving resource"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end TC_CSE_SEC_ACP_BV_002 }//end g_CSE_SEC_ACP_BV_002 group g_CSE_SEC_ACP_BV_003 { testcase TC_CSE_SEC_ACP_BV_003_01() runs on CseTester system CseSystem { //Create f_CSE_SEC_ACP_BV_003(m_createContainerBase); }//end TC_CSE_SEC_ACP_BV_003_01 testcase TC_CSE_SEC_ACP_BV_003_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateAeBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; f_CSE_SEC_ACP_BV_003(v_updateRequest); }//end TC_CSE_SEC_ACP_BV_003_02 testcase TC_CSE_SEC_ACP_BV_003_03() runs on CseTester system CseSystem { //Retrieve f_CSE_SEC_ACP_BV_003(m_retrieveResource("Temporary", "Temporary")); }//end TC_CSE_SEC_ACP_BV_003_03 testcase TC_CSE_SEC_ACP_BV_003_04() runs on CseTester system CseSystem { //Delete f_CSE_SEC_ACP_BV_003(m_deleteRequest("Temporary")); }//end TC_CSE_SEC_ACP_BV_003_04 function f_CSE_SEC_ACP_BV_003(template RequestPrimitive p_requestPrimitive) runs on CseTester{ // 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(f_getResourceAddress(), c_defaultResourceName, {"testDomain"})); v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := "testDomain"; mcaPort.send(m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Successful operation on resource type int2 (Ae)"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation on resource type int2 (Ae)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble v_accessControlRule_1 := valueof(m_createAcr({"*"}, 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"; mcaPort.send(m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; log(testcasename() & ": Attribute of resource type ACP updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; log(testcasename() & ": Error while updating resource type ACP"); } [] tc_ac.timeout { log(testcasename() & ": No answer while updating resource type ACP"); } } f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_BV_003 }//end g_CSE_SEC_ACP_BV_003 group g_CSE_SEC_ACP_BV_004 { testcase TC_CSE_SEC_ACP_BV_004_01() runs on CseTester system CseSystem { //Create f_CSE_SEC_ACP_BV_004(m_createContainerBase); }//end TC_CSE_SEC_ACP_BV_004_01 testcase TC_CSE_SEC_ACP_BV_004_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateAeBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; f_CSE_SEC_ACP_BV_004(v_updateRequest); }//end TC_CSE_SEC_ACP_BV_004_02 testcase TC_CSE_SEC_ACP_BV_004_03() runs on CseTester system CseSystem { //Retrieve f_CSE_SEC_ACP_BV_004(m_retrieveResource("Temporary", "Temporary")); }//end TC_CSE_SEC_ACP_BV_004_03 testcase TC_CSE_SEC_ACP_BV_004_04() runs on CseTester system CseSystem { //Delete f_CSE_SEC_ACP_BV_004(m_deleteRequest("Temporary")); }//end TC_CSE_SEC_ACP_BV_004_04 function f_CSE_SEC_ACP_BV_004(template RequestPrimitive p_requestPrimitive) runs on CseTester{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpIndex := -1; var RequestPrimitive v_createRequest; // Test control // Test component configuration f_cf01Up(); // 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_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := "UnknowOriginator"; mcaPort.send(m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Successful operation on resource type int2 (Ae)"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation on resource type int2 (Ae)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end f_CSE_SEC_ACP_BV_004 }//end g_CSE_SEC_ACP_BV_004 group g_CSE_SEC_ACP_BV_011 { testcase TC_CSE_SEC_ACP_BV_011_01() runs on CseTester system CseSystem { //Create f_CSE_SEC_ACP_BV_011(m_createContainerBase); }//end TC_CSE_SEC_ACP_BV_011_01 testcase TC_CSE_SEC_ACP_BV_011_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; f_CSE_SEC_ACP_BV_011(v_updateRequest); }//end TC_CSE_SEC_ACP_BV_011_02 testcase TC_CSE_SEC_ACP_BV_011_03() runs on CseTester system CseSystem { //Retrieve f_CSE_SEC_ACP_BV_011(m_retrieveResource("Temporary", "Temporary")); }//end TC_CSE_SEC_ACP_BV_011_03 testcase TC_CSE_SEC_ACP_BV_011_04() runs on CseTester system CseSystem { //Delete f_CSE_SEC_ACP_BV_011(m_deleteRequest("Temporary")); }//end TC_CSE_SEC_ACP_BV_011_04 function f_CSE_SEC_ACP_BV_011(template RequestPrimitive p_requestPrimitive) runs on CseTester { // 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); mcaPort.send(m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Successful operation on resource type int3 (Container)"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation on resource type int3 (Container)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int3 (Container)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_BV_011 } //end g_CSE_SEC_ACP_BV_011 group g_CSE_SEC_ACP_BO_012 { testcase TC_CSE_SEC_ACP_BO_012_01() runs on CseTester system CseSystem { //Create f_CSE_SEC_ACP_BO_012(m_createContainerBase, int62); }//end TC_CSE_SEC_ACP_BO_012_01 testcase TC_CSE_SEC_ACP_BO_012_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateContainerBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; f_CSE_SEC_ACP_BO_012(v_updateRequest, int62); //TODO Fix p_acor }//end TC_CSE_SEC_ACP_BO_012_02 testcase TC_CSE_SEC_ACP_BO_012_03() runs on CseTester system CseSystem { //Retrieve f_CSE_SEC_ACP_BO_012(m_retrieveResource("Temporary", "Temporary"), int62); //TODO Fix p_acor }//end TC_CSE_SEC_ACP_BO_012_03 testcase TC_CSE_SEC_ACP_BO_012_04() runs on CseTester system CseSystem { //Delete f_CSE_SEC_ACP_BO_012(m_deleteRequest("Temporary"), int62); //TODO Fix p_acor }//end TC_CSE_SEC_ACP_BO_012_04 function f_CSE_SEC_ACP_BO_012(template RequestPrimitive p_requestPrimitive, in AccessControlOperations p_acor) runs on CseTester { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_resourceIndex := -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_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -); v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, 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, -)); v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); f_cse_updateResource(v_updateRequest); // Test Body v_request := f_getCreateRequestPrimitive(int3, p_requestPrimitive, v_containerIndex); mcaPort.send(m_request(valueof(v_request))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Operation denied because of lack of right on Container"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error operation have been accpeted without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation on resource type int3 (Container)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int3 (Container)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_BO_012 } //end g_CSE_SEC_ACP_BO_012 group g_CSE_SEC_ACP_BO_013{ testcase TC_CSE_SEC_ACP_BO_013_01() runs on CseTester system CseSystem { //Create f_CSE_SEC_ACP_BO_013(m_createContainerBase); }//end TC_CSE_SEC_ACP_BO_013_01 testcase TC_CSE_SEC_ACP_BO_013_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateAeBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; f_CSE_SEC_ACP_BO_013(v_updateRequest); }//end TC_CSE_SEC_ACP_BO_013_02 testcase TC_CSE_SEC_ACP_BO_013_03() runs on CseTester system CseSystem { //Retrieve f_CSE_SEC_ACP_BO_013(m_retrieveResource("Temporary", "Temporary")); }//end TC_CSE_SEC_ACP_BO_013_03 testcase TC_CSE_SEC_ACP_BO_013_04() runs on CseTester system CseSystem { //Delete f_CSE_SEC_ACP_BO_013(m_deleteRequest("Temporary")); }//end TC_CSE_SEC_ACP_BO_013_04 function f_CSE_SEC_ACP_BO_013(template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var integer v_aeIndex := -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(); // Test adapter configuration // Preamble v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -); v_accessControlRule_1 := valueof(m_createAcr({ f_getOriginator(v_aeIndex), PX_SUPER_USER}, 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); f_cse_updateResource(v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := "UnknowOriginator"; mcaPort.send(m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Operation denied because of lack of right on Container"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error operation have been accpeted without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation on resource type int3 (Container)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int3 (Container)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_BO_013 } //end g_CSE_SEC_ACP_BO_013 group g_CSE_SEC_ACP_BV_014{ testcase TC_CSE_SEC_ACP_BV_014_01() runs on CseTester system CseSystem { //Create f_CSE_SEC_ACP_BV_014(m_createContainerBase); }//end TC_CSE_SEC_ACP_BV_014_01 testcase TC_CSE_SEC_ACP_BV_014_02() runs on CseTester system CseSystem { //Update var template RequestPrimitive v_updateRequest := m_updateAeBase; var Labels v_labels_1:= {"VALUE_1"}; v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; f_CSE_SEC_ACP_BV_014(v_updateRequest); }//end TC_CSE_SEC_ACP_BV_014_02 testcase TC_CSE_SEC_ACP_BV_014_03() runs on CseTester system CseSystem { //Retrieve f_CSE_SEC_ACP_BV_014(m_retrieveResource("Temporary", "Temporary")); }//end TC_CSE_SEC_ACP_BV_014_03 testcase TC_CSE_SEC_ACP_BV_014_04() runs on CseTester system CseSystem { //Delete f_CSE_SEC_ACP_BV_014(m_deleteRequest("Temporary")); }//end TC_CSE_SEC_ACP_BV_014_04 function f_CSE_SEC_ACP_BV_014(template RequestPrimitive p_requestPrimitive) runs on CseTester { // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var integer v_acpIndex1 := -1; var integer v_acpIndex2 := -1; var RequestPrimitive v_createRequest := valueof(m_createAcp(f_getResourceAddress(-1), omit)); 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, v_createRequest); // CSE child resource v_acpIndex2 := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource), f_getResourceId(vc_resourcesList[v_acpIndex2].resource)}, -); 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, -)); v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); f_cse_updateResource(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, -)); v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex2, v_updateRequest); f_cse_updateResource(v_updateRequest); // Test Body p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); mcaPort.send(m_request(valueof(p_requestPrimitive))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Successful operation on resource type int2 (Ae)"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation on resource type int2 (Ae)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int2 (Ae)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } //end f_CSE_SEC_ACP_BV_014 } //end g_CSE_SEC_ACP_BV_014 group g_CSE_SEC_ACP_BV_015{ testcase TC_CSE_SEC_ACP_BV_015() runs on CseTester 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_createRequest := valueof(m_createAcp(f_getResourceAddress(-1), omit)); var RequestPrimitive v_updateRequest := valueof(m_updateAeBase); var AccessControlRule v_accessControlRule_1; var AccessControlRule v_accessControlRule_2; var SetOfAcrs v_setOfArcs_1; var SetOfAcrs v_setOfArcs_2; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpIndex1 := f_cse_createResource(int1, v_createRequest); // CSE child resource v_acpIndex2 := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource)}, -); v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int59)); // c_CRUDNDi v_accessControlRule_2 := valueof(m_createAcr({PX_SUPER_USER, f_getOriginator(v_aeIndex)}, int63)); // c_CRDNDi v_setOfArcs_1.accessControlRule_list := {v_accessControlRule_1}; v_setOfArcs_2.accessControlRule_list := {v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs_1, v_setOfArcs_2)); v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); f_cse_updateResource(v_updateRequest); // Test Body v_updateRequest.primitiveContent.any_1[0].AE_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex2].resource)}; v_updateRequest := f_getUpdateRequestPrimitive(int1, v_aeIndex, v_updateRequest); mcaPort.send(m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Successful Update operation on resource type int2 (Ae)"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while Update operation on resource type int2 (Ae)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing update operation on resource type int2 (Ae)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end TC_CSE_SEC_ACP_BV_015 } //end g_CSE_SEC_ACP_BV_015 group g_CSE_SEC_ACP_BV_016{ testcase TC_CSE_SEC_ACP_BV_016() runs on CseTester 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_createRequest := valueof(m_createAcp(f_getResourceAddress(-1), omit)); var RequestPrimitive v_updateRequest := valueof(m_updateAeBase); var AccessControlRule v_accessControlRule_1; var AccessControlRule v_accessControlRule_2; var SetOfAcrs v_setOfArcs_1; var SetOfAcrs v_setOfArcs_2; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_acpIndex1 := f_cse_createResource(int1, v_createRequest); // CSE child resource v_acpIndex2 := f_cse_createResource(int1, v_createRequest); // CSE child resource v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource)}, -); v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int63)); // c_CRDNDi v_accessControlRule_2 := valueof(m_createAcr({PX_SUPER_USER, f_getOriginator(v_aeIndex)}, int59)); // c_CRUDNDi v_setOfArcs_1.accessControlRule_list := {v_accessControlRule_1}; v_setOfArcs_2.accessControlRule_list := {v_accessControlRule_2}; v_updateRequest := valueof(m_updateAcpPrivileges(v_setOfArcs_1, v_setOfArcs_2)); v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); f_cse_updateResource(v_updateRequest); // Test Body v_updateRequest.primitiveContent.any_1[0].AE_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex2].resource)}; v_updateRequest := f_getUpdateRequestPrimitive(int1, v_aeIndex, v_updateRequest); mcaPort.send(m_request(v_updateRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { tc_ac.stop; setverdict(pass, testcasename() & ": Operation denied because of lack of right on Container"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error operation have been accpeted without having privileges"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, testcasename() & ": Error while operation on resource type int3 (Container)"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int3 (Container)"); } } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); }//end TC_CSE_SEC_ACP_BV_016 } //end g_CSE_SEC_ACP_BV_016 }//end group AccessControlPolicy }//end group Security }//end group CSE }