/** * 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 ETSI * @version $URL: https://oldforge.etsi.org/svn/oneM2M/branches/Release1/ttcn/OneM2M_Testcases.ttcn $ * $Id: OneM2M_Testcases.ttcn 347 2017-08-11 08:48:20Z reinaortega $ * @desc Module containing test cases for oneM2M * */ module OneM2M_Testcases_CSE_Release_2 { import from OneM2M_TestSystem all; import from OneM2M_Templates all; import from OneM2M_Types all;//{type XSD.ID}; import from OneM2M_TypesAndValues all; import from OneM2M_Pixits all; import from LibCommon_Time all; import from OneM2M_Pics all; import from OneM2M_Functions all; import from OneM2M_PermutationFunctions 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_RESOURCES() runs on AeSimu 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(pass, __SCOPE__ & ": Resource type remoteCSE created successfully"); } [] mccPort.receive { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating resource type remoteCSE"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type remoteCSE"); } } // Postamble f_cse_postamble_deleteResourcesCSE(); // Tear down f_cf04Down(); }*/ /** * @desc Check that the IUT rejects the create request of resource. * testcase TC_CSE_REG_CRE_027() runs on AeSimu system CseSystem { // Local variables var RequestPrimitive v_request; var integer v_cseBaseIndex := -1; var ResourceType v_resourceType := int2; // Test control // Test component configuration f_cf02Up(); // Test adapter configuration // Preamble vc_cse1.start(f_cse_registrationRemoteCse(mw_createRemoteCSE)); // Test Body f_cse_createResource(int2, m_createAe(PX_APP_ID, omit, omit)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) { tc_ac.stop; setverdict(pass, __SCOPE__ & ": AE creation successful."); } [] mcaPort.receive { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while creating AE"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating AE"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf02Down(); }end TC_CSE_REG_CRE_027*/ /** * @desc Check that IUT accepts a CSE registration request with OPTIONAL_ATTRIBUTE attribute * */ group g_CSE_REG_CRE_028 { testcase TC_CSE_REG_CRE_028_RN() runs on Tester system CseSystem { //Local variables var CseSimu v_cse1 := CseSimu.create("CSE1") alive; var RequestPrimitive v_request; var template PrimitiveContent v_contentResponse; v_request := valueof(m_createRemoteCSEBase); v_request.primitiveContent.remoteCSE.cseType := int2; //MN_CSE v_request.primitiveContent.remoteCSE.resourceName := c_defaultRemoteCSEResourceName; v_contentResponse.remoteCSE := mw_contentRemoteCSEBase; v_contentResponse.remoteCSE.cseType := int2; //MN_CSE v_contentResponse.remoteCSE.resourceName := c_defaultRemoteCSEResourceName; v_cse1.start(f_CSE_REG_CRE_028(v_request, v_contentResponse)); v_cse1.done; } testcase TC_CSE_REG_CRE_028_ET() runs on Tester system CseSystem { //Local variables var CseSimu v_cse1 := CseSimu.create("CSE1") alive; var RequestPrimitive v_request; var template PrimitiveContent v_contentResponse; v_request := valueof(m_createRemoteCSEBase); v_request.primitiveContent.remoteCSE.cseType := int2; //MN_CSE v_request.primitiveContent.remoteCSE.expirationTime := "20301231T012345"; v_contentResponse.remoteCSE := mw_contentRemoteCSEBase; v_contentResponse.remoteCSE.cseType := int2; //MN_CSE v_contentResponse.remoteCSE.expirationTime := "20301231T012345"; v_cse1.start(f_CSE_REG_CRE_028(v_request, v_contentResponse)); v_cse1.done; } }//end g_CSE_REG_CRE_028 } //end group Create group Retrieve{ /** * @desc Check that the IUT accepts a retrieval request of resource with optional ATTRIBUTE * */ group g_CSE_REG_RET_004 { testcase TC_CSE_REG_RET_004_NL() runs on Tester system CseSystem { //Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createAe(PX_APP_ID); var template PrimitiveContent v_contentResponse; v_createRequest.primitiveContent.aE.nodeLink := "http://127.0.0.1/"; v_contentResponse.aE := mw_contentAeBase; v_contentResponse.aE.nodeLink := ?; v_ae1.start(f_CSE_REG_RET_004(v_createRequest,v_contentResponse)); v_ae1.done; } testcase TC_CSE_REG_RET_004_CSZ() runs on Tester system CseSystem { //Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createAe(PX_APP_ID); var template PrimitiveContent v_contentResponse; v_createRequest.primitiveContent.aE.contentSerialization := {applicationxml}; v_contentResponse.aE := mw_contentAeBase; v_contentResponse.aE.contentSerialization := ?; v_ae1.start(f_CSE_REG_RET_004(v_createRequest,v_contentResponse)); v_ae1.done; } } //end g_CSE_REG_RET_004 }//end group Retrieve group Update{ /** * @desc Check that the IUT accepts an update request of resource with OPTIONAL_ATTRIBUTE. * */ group g_CSE_REG_UPD_002 { testcase TC_CSE_REG_UPD_002_ET() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase; var CseSimu v_cse1 := CseSimu.create("CSE1") alive; v_updateRequest.primitiveContent.remoteCSE.expirationTime := "20301231T012345"; v_cse1.start(f_CSE_REG_UPD_002(v_updateRequest)); v_cse1.done; } testcase TC_CSE_REG_UPD_002_RR() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_updateRequest := m_updateRemoteCSEBase; var CseSimu v_cse1 := CseSimu.create("CSE1") alive; v_updateRequest.primitiveContent.remoteCSE.requestReachability := true; v_cse1.start(f_CSE_REG_UPD_002(v_updateRequest)); v_cse1.done; } } //end g_CSE_REG_UPD_002 }// end group Update group Delete{ }// end group Delete }//end Registration group Data_Management_and_Repository { group Create { group g_CSE_DMR_CRE_001 { /** * @desc Check that the IUT accepts the creation of a RESOURCE_TYPE resource on the TARGET_RESOURCE_ADDRESS of type PARENT_RESOURCE_TYPE with resource name not provided * */ testcase TC_CSE_DMR_CRE_001_SCH_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createScheduleBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.schedule.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int18, v_createRequest, -));//Schedule v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.schedule.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_SCH_AE() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createScheduleBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.schedule.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int18, v_createRequest, m_createAeAux(omit,omit)));//Schedule v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.schedule.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_SCH_SUB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createScheduleBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.schedule.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int18, v_createRequest, m_createSubscriptionBase));//Schedule v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.schedule.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_PCH_AE() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createPollingChannelBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.pollingChannel.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int15, v_createRequest, m_createAeAux(omit,omit)));//PollingChannel v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.pollingChannel.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_SUB_SCH() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.subscription.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int23, v_createRequest, m_createScheduleBase));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_SUB_GRP() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.subscription.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int23, v_createRequest, m_createGroupBase));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.subscription.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_NOD_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createNodeBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.node.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int14, v_createRequest, -));//Node v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.node.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_MGC_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createMgmtCmdBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.mgmtCmd.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int12, v_createRequest, -));//Management Command v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.mgmtCmd.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_LCP_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createLocationPolicyBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.locationPolicy.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int10, v_createRequest, -));//Location Policy v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.locationPolicy.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_STCG_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createStatsConfigBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.statsConfig.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int22, v_createRequest, -));//Stats Config v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.statsConfig.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_STCL_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createStatsCollectBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.statsCollect.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int21, v_createRequest, -));//Stats Collect v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.statsCollect.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_MSSP_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createM2mServiceSubscriptionProfileBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.m2mServiceSubscriptionProfile.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int11, v_createRequest, -));//Subscription Profile v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.m2mServiceSubscriptionProfile.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } testcase TC_CSE_DMR_CRE_001_ASAR_CB() runs on Tester system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createServiceSubscribedAppRuleBase; var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_createRequest.primitiveContent.serviceSubscribedAppRule.resourceName := omit; v_ae1.start(f_CSE_DMR_CRE_001(int19, v_createRequest, -));//Service Subscribed App v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.serviceSubscribedAppRule.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } } } } // end g_CSE_DMR_CRE_001 group g_CSE_DMR_CRE_002 { /** * @desc Check that the IUT accepts the creation of a RESOURCE_TYPE resource with a non-existing resource name provided by AE * */ testcase TC_CSE_DMR_CRE_002_SCH() runs on Tester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_002(int18, m_createScheduleBase));//Schedule v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.schedule.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } else { if(v_responsePrimitive.primitiveContent.schedule.resourceName != c_defaultScheduleResourceName){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not correct"); } } } } testcase TC_CSE_DMR_CRE_002_PCH() runs on Tester system CseSystem { // Local variables var ResponsePrimitive v_responsePrimitive; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_002(int15, m_createPollingChannelBase));//Pollingchannel v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(not ispresent(v_responsePrimitive.primitiveContent.pollingChannel.resourceName)){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not provided"); } else { if(v_responsePrimitive.primitiveContent.pollingChannel.resourceName != c_defaultPollingChannelResourceName){ setverdict(fail, __SCOPE__, ": Error, resourceName attribute not correct"); } } } } }// end group g_CSE_DMR_CRE_002 group g_CSE_DMR_CRE_003 { /** * @desc Check that the IUT rejects the creation of a RESOURCE_TYPE resource with an existing resource name provided by AE * */ testcase TC_CSE_DMR_CRE_003_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_003(int18, m_createScheduleBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_CRE_003_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_003(int15, m_createPollingChannelBase));//Pollingchannel v_ae1.done; } }// end group g_CSE_DMR_CRE_003 group g_CSE_DMR_CRE_004 { /** * @desc Check that the IUT rejects the creation of a RESOURCE_TYPE resource when AE has no privileges * */ testcase TC_CSE_DMR_CRE_004_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_004(int18, m_createScheduleBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_CRE_004_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_004(int15, m_createPollingChannelBase));//Pollingchannel v_ae1.done; } }// end group g_CSE_DMR_CRE_004 group g_CSE_DMR_CRE_009 { /** * @desc Check that the IUT increaments and then copies the field value of attribute stateTag in parent container resource when contentInstance resource is created as the direct child of the parent container * */ testcase TC_CSE_DMR_CRE_009() runs on AeSimu system CseSystem { // Local variables var template RequestPrimitive v_createRequest := m_createContainerBase; var MsgIn v_response; 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_createContentInstanceBase, v_containerIndex); // Test Body mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_containerIndex), f_getOriginator(v_containerIndex)))); v_contentResponse.container := mw_contentContainerBase; tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2000, v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Response OK for retrieving"); if(v_response.primitive.responsePrimitive.primitiveContent.container.stateTag == vc_resourcesList[v_containerIndex].resource.container.stateTag + 1) { setverdict(pass, __SCOPE__ & ": stateTag attribute increased after creation of contentInstance resource"); } else { setverdict(fail, __SCOPE__ & ": stateTag attribute not incremented correctly after creation of contentInstance resource"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_009 }// end group g_CSE_DMR_CRE_009 group g_CSE_DMR_CRE_010 { /** * @desc Check that the IUT rejects the CREATE Request of a container resource named “la” as a direct child of a container resource * */ testcase TC_CSE_DMR_CRE_010() runs on AeSimu 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; // 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.container.resourceName := c_resourceShortNameLatest; v_request := f_getCreateRequestPrimitive(int3, 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, __SCOPE__ & ": Not allowed to create a contentInstance resource named 'la'"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Rejected creation of contentInstance named 'la' with wrong ResponseStatusCode"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Accepted creation of contentInstance named 'la'"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type 4"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_isResourceNotPresent(v_containerIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_010 }// end group g_CSE_DMR_CRE_010 group g_CSE_DMR_CRE_011 { /** * @desc Check that the IUT rejects the CREATE Request of a container resource named “ol” as a direct child of a container resource * */ testcase TC_CSE_DMR_CRE_011() runs on AeSimu 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; // 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.container.resourceName := c_resourceShortNameOldest; v_request := f_getCreateRequestPrimitive(int3, 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, __SCOPE__ & ": Not allowed to create a contentInstance resource named 'ol'"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Rejected creation of contentInstance named 'ol' with wrong ResponseStatusCode"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Accepted creation of contentInstance named 'ol'"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type 4"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_isResourceNotPresent(v_containerIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_011 }// end group g_CSE_DMR_CRE_011 group g_CSE_DMR_CRE_012 { /** * @desc Check that the IUT accepts the creation of a RESOURCE_TYPE resource with the optional attribute OPTIONAL_ATTRIBUTE provided * */ testcase TC_CSE_DMR_CRE_012_CNT_ET() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContainerBase; const AttributeList c_optionalAttribute := {"expirationTime"}; v_createRequest.primitiveContent.container.expirationTime := "20301231T012345"; v_ae1.start(f_CSE_DMR_CRE_012(int3, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_CIN_ET() runs on Tester system CseSystem {//TODO // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContentInstanceBase; const AttributeList c_optionalAttribute := {"expirationTime"}; v_createRequest.primitiveContent.contentInstance.expirationTime := "20301231T012345"; v_ae1.start(f_CSE_DMR_CRE_012(int4, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_CIN_OR() runs on Tester system CseSystem {//TODO // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContentInstanceBase; const AttributeList c_optionalAttribute := {"ontologyRef"}; v_createRequest.primitiveContent.contentInstance.ontologyRef := "MyOntologyRef"; v_ae1.start(f_CSE_DMR_CRE_012(int4, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_ACP_ET() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createAcpBase; const AttributeList c_optionalAttribute := {"expirationTime"}; v_createRequest.primitiveContent.accessControlPolicy.expirationTime := "20301231T012345"; v_ae1.start(f_CSE_DMR_CRE_012(int1, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_ET() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"expirationTime"}; v_createRequest.primitiveContent.subscription.expirationTime := "20301231T012345"; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_ENC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"eventNotificationCriteria"}; v_createRequest.primitiveContent.subscription.eventNotificationCriteria := valueof(m_eventNotificationCriteria({int1}, -)); v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_EXC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"expirationCounter"}; v_createRequest.primitiveContent.subscription.expirationCounter := 1; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_GPI() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"groupID"}; v_createRequest.primitiveContent.subscription.groupID := "MyGroupID"; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_NFU() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"notificationForwardingURI"}; v_createRequest.primitiveContent.subscription.notificationForwardingURI := "MyForwardingURI"; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_BN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"batchNotify"}; v_createRequest.primitiveContent.subscription.batchNotify := {0, "PT1S"}; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_RL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"rateLimit"}; v_createRequest.primitiveContent.subscription.rateLimit := {0, omit}; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_PSN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"preSubscriptionNotify"}; v_createRequest.primitiveContent.subscription.preSubscriptionNotify := 1; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_PN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"pendingNotification"}; v_createRequest.primitiveContent.subscription.pendingNotification := int1; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_NSP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"notificationStoragePriority"}; v_createRequest.primitiveContent.subscription.notificationStoragePriority := 1; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_LN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"latestNotify"}; v_createRequest.primitiveContent.subscription.latestNotify := true; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_NCT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"notificationContentType"}; v_createRequest.primitiveContent.subscription.notificationContentType := int1; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_NEC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"notificationEventCat"}; v_createRequest.primitiveContent.subscription.notificationEventCat := {alt_1 := 100}; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } testcase TC_CSE_DMR_CRE_012_SUB_SU() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; const AttributeList c_optionalAttribute := {"subscriberURI"}; v_createRequest.primitiveContent.subscription.subscriberURI := "NotInitialized"; v_ae1.start(f_CSE_DMR_CRE_012(int23, v_createRequest, c_optionalAttribute)); v_ae1.done; } }// end group g_CSE_DMR_CRE_012 group g_CSE_DMR_CRE_014{ /** * @desc Check that the IUT updates the currentByteSize attribute in a parent resource when a new resource is created. * */ testcase TC_CSE_DMR_CRE_014() runs on AeSimu system CseSystem { // Local variables var template RequestPrimitive v_createRequest; var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; var integer v_contentInstanceIndex := -1; const integer c_maxByteSize := 512; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest.primitiveContent.container.maxByteSize := c_maxByteSize; v_createRequest := m_createContainerBase; v_containerIndex := f_cse_createResource(int3, v_createRequest, v_aeIndex); v_contentInstanceIndex := f_cse_createResource(int4, v_createRequest, v_containerIndex); // Test Body v_request := f_getCreateRequestPrimitive(int4, m_createContentInstanceBase, v_containerIndex); //Default content: "AnyValue" (8 bytes length) mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": ContentInstance resource created"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error when creating contentInstance resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource type 4"); } } //Check currentByteSize mcaPort.send(m_request(m_retrieve(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.container.currentByteSize == 8) { //Default content: "AnyValue" (8 bytes length) setverdict(pass, __SCOPE__ & ": CurrentByteSize attribute in content resource is incremented successfully"); } else{ setverdict(fail, __SCOPE__ & ": CurrentByteSize attribute in content resource not incremented successfully"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_CRE_014 }// end group g_CSE_DMR_CRE_014 group g_CSE_DMR_CRE_015 { /** * @desc Check that the IUT returns successfully after a CREATE request an empty content of created resource when the ResultContent set to 0 (Nothing) * */ testcase TC_CSE_DMR_CRE_015_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_015(int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_CRE_015_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_015(int9, m_createGroupBase));//Group v_ae1.done; } testcase TC_CSE_DMR_CRE_015_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_015(int1, m_createAcpBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_CRE_015_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_015(int18, m_createScheduleBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_CRE_015_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_015(int15, m_createPollingChannelBase));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_CRE_015_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_CRE_015(int23, m_createSubscriptionBase));//Subscription v_ae1.done; } } // end g_CSE_DMR_CRE_015 group g_CSE_DMR_CRE_016 { /** * @desc Check that the IUT returns successfully after a CREATE request only hierarchichal address of the created resource when the Result Content is set to 2 (hierarchical address) * */ testcase TC_CSE_DMR_CRE_016_CNT() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.uRI := mw_contentContainer_rc2; v_ae1.start(f_CSE_DMR_CRE_016(int3, m_createContainerBase, v_contentResponse));//Container v_ae1.done; } testcase TC_CSE_DMR_CRE_016_GRP() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.uRI := mw_contentGroup_rc2; v_ae1.start(f_CSE_DMR_CRE_016(int9, m_createGroupBase, v_contentResponse));//Group v_ae1.done; } testcase TC_CSE_DMR_CRE_016_ACP() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.uRI := mw_contentAcp_rc2; v_ae1.start(f_CSE_DMR_CRE_016(int1, m_createAcpBase,v_contentResponse));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_CRE_016_SCH() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.uRI := mw_contentSchedule_rc2; v_ae1.start(f_CSE_DMR_CRE_016(int18, m_createScheduleBase, v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_CRE_016_PCH() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.uRI := mw_contentPollingChannel_rc2; v_ae1.start(f_CSE_DMR_CRE_016(int15, m_createPollingChannelBase, v_contentResponse));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_CRE_016_SUB() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.uRI := mw_contentSubscription_rc2; v_ae1.start(f_CSE_DMR_CRE_016(int23, m_createSubscriptionBase, v_contentResponse));//Subscription v_ae1.done; } } // end g_CSE_DMR_CRE_016 group g_CSE_DMR_CRE_017 { /** * @desc Check that the IUT returns successfully after a CREATE request only attributes and hierarchichal address of the created resource when Result Content is set 3 (attributes and hierarchichal address) * */ testcase TC_CSE_DMR_CRE_017_CNT() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.resource := mw_contentContainer_rc3; v_ae1.start(f_CSE_DMR_CRE_017(int3, m_createContainerBase, v_contentResponse));//Container v_ae1.done; } testcase TC_CSE_DMR_CRE_017_GRP() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.resource := mw_contentGroup_rc3; v_ae1.start(f_CSE_DMR_CRE_017(int9, m_createGroupBase, v_contentResponse));//Group v_ae1.done; } testcase TC_CSE_DMR_CRE_017_ACP() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.resource := mw_contentAcp_rc3; v_ae1.start(f_CSE_DMR_CRE_017(int1, m_createAcpBase,v_contentResponse));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_CRE_017_SCH() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.resource := mw_contentSchedule_rc3; v_ae1.start(f_CSE_DMR_CRE_017(int18, m_createScheduleBase, v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_CRE_017_PCH() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.resource := mw_contentPollingChannel_rc3; v_ae1.start(f_CSE_DMR_CRE_017(int15, m_createPollingChannelBase, v_contentResponse));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_CRE_017_SUB() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.resource := mw_contentSubscription_rc3; v_ae1.start(f_CSE_DMR_CRE_017(int23, m_createSubscriptionBase, v_contentResponse));//Subscription v_ae1.done; } } // end g_CSE_DMR_CRE_017 group g_CSE_DMR_CRE_020 { /** * @desc Check that the IUT accepts the creation of a RESOURCE_TYPE resource with the optional attribute announceTo provided * */ testcase TC_CSE_DMR_CRE_020_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createAcpBase; v_createRequest.primitiveContent.accessControlPolicy.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_DMR_CRE_020(int1, v_createRequest, mw_createAccessControlPolicyAnnc));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_CRE_020_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContainerBase; v_createRequest.primitiveContent.container.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_DMR_CRE_020(int3, v_createRequest, mw_createContainerAnncBase));//Container v_ae1.done; } testcase TC_CSE_DMR_CRE_020_CIN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContentInstanceBase; v_createRequest.primitiveContent.contentInstance.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_DMR_CRE_020(int4, v_createRequest, mw_createContentInstanceAnncBase));//ContentInstance v_ae1.done; } testcase TC_CSE_DMR_CRE_020_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createGroupBase; v_createRequest.primitiveContent.group_.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_DMR_CRE_020(int9, v_createRequest, mw_createGroupAnncBase));//Group v_ae1.done; } testcase TC_CSE_DMR_CRE_020_LCP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createLocationPolicy(int1, omit, omit, omit, omit); v_createRequest.primitiveContent.locationPolicy.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_DMR_CRE_020(int10, v_createRequest, mw_createLocationPolicyAnncBase));//LocationPolicy v_ae1.done; } testcase TC_CSE_DMR_CRE_020_MGO() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createMgmtObjBase; v_createRequest.primitiveContent.mgmtResource.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_DMR_CRE_020(int13, v_createRequest, mw_createMgmtObjAnncBase));//MgmtObj v_ae1.done; } testcase TC_CSE_DMR_CRE_020_NOD() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createNodeBase; v_createRequest.primitiveContent.node.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_DMR_CRE_020(int14, v_createRequest, mw_createNodeAnnc));//Node v_ae1.done; } testcase TC_CSE_DMR_CRE_020_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createScheduleBase; v_createRequest.primitiveContent.schedule.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_DMR_CRE_020(int18, v_createRequest, mw_createScheduleAnncBase));//Schedule v_ae1.done; } } // end g_CSE_DMR_CRE_020 group g_CSE_DMR_CRE_021 { /** * @desc Check that the IUT accepts the creation of a RESOURCE_TYPE resource with the optional attribute announcedAttribute provided * */ testcase TC_CSE_DMR_CRE_021_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContainerBase; var RequestPrimitive v_requestPrimitive; var XSD.NonNegativeInteger maxByteSize := 512; //Correct value? Shall be indicated in TP? //v_createRequest.primitiveContent.container.announceTo := {f_getAnnouncementTargetPoA()}; v_createRequest.primitiveContent.container.announceTo := {PX_CSE1_ID}; v_createRequest.primitiveContent.container.maxByteSize := maxByteSize; v_createRequest.primitiveContent.container.announcedAttribute := {"maxByteSize"}; //Correct value? Shall be indicated in TP? v_ae1.start(f_CSE_DMR_CRE_021(int3, v_createRequest, mw_createContainerAnncBase()));//Container v_ae1.done; if(getverdict == pass){ //Check if maxByteSize attribute has been announced v_requestPrimitive := f_getRequestPrimitive(v_ae1); if (ispresent(v_requestPrimitive.primitiveContent.containerAnnc.maxByteSize)){ if(v_requestPrimitive.primitiveContent.containerAnnc.maxByteSize != maxByteSize){ setverdict(fail, __SCOPE__ & ": Error: Value of maxByteSize has not been announced successfully"); }else{ setverdict(pass, __SCOPE__ & ": Value of maxByteSize has been announced successfully"); } }else{ setverdict(fail, __SCOPE__ & ": Error: maxByteSize has not been announced"); } } } testcase TC_CSE_DMR_CRE_021_CIN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createContentInstanceBase; var RequestPrimitive v_requestPrimitive; var XSD.NonNegativeInteger v_contentSize := 512; //Correct value? Shall be indicated in TP? //v_createRequest.primitiveContent.contentInstance.announceTo := {f_getAnnouncementTargetPoA()}; v_createRequest.primitiveContent.contentInstance.announceTo := {PX_CSE1_ID}; v_createRequest.primitiveContent.contentInstance.contentSize := v_contentSize; v_createRequest.primitiveContent.contentInstance.announcedAttribute := {"contentSize"}; //Correct value? Shall be indicated in TP? v_ae1.start(f_CSE_DMR_CRE_021(int4, v_createRequest, mw_createContentInstanceAnncBase()));//ContentInstance v_ae1.done; if(getverdict == pass){ //Check if contentSize attribute has been announced v_requestPrimitive := f_getRequestPrimitive(v_ae1); if (ispresent(v_requestPrimitive.primitiveContent.contentInstanceAnnc.contentSize)){ if(v_requestPrimitive.primitiveContent.contentInstanceAnnc.contentSize != v_contentSize){ setverdict(fail, __SCOPE__ & ": Error: Value of contentSize has not been announced successfully"); }else{ setverdict(pass, __SCOPE__ & ": Value of contentSize has been announced successfully"); } }else{ setverdict(fail, __SCOPE__ & ": Error: contentSize has not been announced"); } } } testcase TC_CSE_DMR_CRE_021_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createGroupBase; var RequestPrimitive v_requestPrimitive; var XSD.PositiveInteger maxNrOfMembers := 10; //Correct value? Shall be indicated in TP? v_createRequest.primitiveContent.group_.announceTo := {f_getAnnouncementTargetPoA()}; v_createRequest.primitiveContent.group_.maxNrOfMembers := maxNrOfMembers; v_createRequest.primitiveContent.group_.announcedAttribute := {"maxNrOfMembers"}; //Correct value? Shall be indicated in TP? v_ae1.start(f_CSE_DMR_CRE_021(int9, v_createRequest, mw_createGroupAnncBase()));//Group v_ae1.done; if(getverdict == pass){ //Check if maxNrOfMembers attribute has been announced v_requestPrimitive := f_getRequestPrimitive(v_ae1); if (ispresent(v_requestPrimitive.primitiveContent.groupAnnc.maxNrOfMembers)){ if(v_requestPrimitive.primitiveContent.groupAnnc.maxNrOfMembers != maxNrOfMembers){ setverdict(fail, __SCOPE__ & ": Error: Value of maxNrOfMembers has not been announced successfully"); }else{ setverdict(pass, __SCOPE__ & ": Value of maxNrOfMembers has been announced successfully"); } }else{ setverdict(fail, __SCOPE__ & ": Error: maxNrOfMembers has not been announced"); } } } testcase TC_CSE_DMR_CRE_021_LCP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createLocationPolicy(int1, omit, omit, omit, omit); var RequestPrimitive v_requestPrimitive; var LocationSource locationSource := int1;//Network-based //Correct value? Shall be indicated in TP? v_createRequest.primitiveContent.locationPolicy.announceTo := {f_getAnnouncementTargetPoA()}; v_createRequest.primitiveContent.locationPolicy.locationSource := locationSource; v_createRequest.primitiveContent.locationPolicy.announcedAttribute := {"locationSource"}; //Correct value? Shall be indicated in TP? v_ae1.start(f_CSE_DMR_CRE_021(int10, v_createRequest, mw_createLocationPolicyAnncBase()));//LocationPolicy v_ae1.done; if(getverdict == pass){ //Check if locationSource attribute has been announced v_requestPrimitive := f_getRequestPrimitive(v_ae1); if (ispresent(v_requestPrimitive.primitiveContent.locationPolicyAnnc.locationSource)){ if(v_requestPrimitive.primitiveContent.locationPolicyAnnc.locationSource != locationSource){ setverdict(fail, __SCOPE__ & ": Error: Value of locationSource has not been announced successfully"); }else{ setverdict(pass, __SCOPE__ & ": Value of locationSource has been announced successfully"); } }else{ setverdict(fail, __SCOPE__ & ": Error: locationSource has not been announced"); } } } testcase TC_CSE_DMR_CRE_021_MGO() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createMgmtObjBase; var RequestPrimitive v_requestPrimitive; var XSD.String description := "Description of mgmtObj"; //Correct value? Shall be indicated in TP? v_createRequest.primitiveContent.mgmtResource.announceTo := {f_getAnnouncementTargetPoA()}; v_createRequest.primitiveContent.mgmtResource.description := description; v_createRequest.primitiveContent.mgmtResource.announcedAttribute := {"description"}; //Correct value? Shall be indicated in TP? v_ae1.start(f_CSE_DMR_CRE_021(int13, v_createRequest, mw_createMgmtObjAnncBase()));//MgmtObj v_ae1.done; if(getverdict == pass){ //Check if description attribute has been announced v_requestPrimitive := f_getRequestPrimitive(v_ae1); if (ispresent(v_requestPrimitive.primitiveContent.announcedMgmtResource.description)){ if(v_requestPrimitive.primitiveContent.announcedMgmtResource.description != description){ setverdict(fail, __SCOPE__ & ": Error: Value of description has not been announced successfully"); }else{ setverdict(pass, __SCOPE__ & ": Value of description has been announced successfully"); } }else{ setverdict(fail, __SCOPE__ & ": Error: description has not been announced"); } } } testcase TC_CSE_DMR_CRE_021_NOD() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createNodeBase; var RequestPrimitive v_requestPrimitive; v_createRequest.primitiveContent.node.announceTo := {f_getAnnouncementTargetPoA()}; //TODO node to be done. hostedCSELink attribute (OA) to be added!!! v_ae1.start(f_CSE_DMR_CRE_021(int14, v_createRequest, mw_createNodeAnnc));//Node v_ae1.done; } testcase TC_CSE_DMR_CRE_021_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createScheduleBase; var RequestPrimitive v_requestPrimitive; var ScheduleEntries scheduleElement := {{"0,0,0 1 2,1,1,*"}}; v_createRequest.primitiveContent.schedule.announceTo := {f_getAnnouncementTargetPoA()}; v_createRequest.primitiveContent.schedule.scheduleElement := scheduleElement; //Correct value? Shall be indicated in TP? v_createRequest.primitiveContent.schedule.announcedAttribute := {"scheduleElement"}; //Correct value? Shall be indicated in TP? v_ae1.start(f_CSE_DMR_CRE_021(int18, v_createRequest, mw_createScheduleAnncBase()));//Schedule v_ae1.done; if(getverdict == pass){ //Check if scheduleElement attribute has been announced v_requestPrimitive := f_getRequestPrimitive(v_ae1); if (ispresent(v_requestPrimitive.primitiveContent.scheduleAnnc.scheduleElement)){ if(v_requestPrimitive.primitiveContent.scheduleAnnc.scheduleElement != scheduleElement){ setverdict(fail, __SCOPE__ & ": Error: Value of scheduleElement has not been announced successfully"); }else{ setverdict(pass, __SCOPE__ & ": Value of scheduleElement has been announced successfully"); } }else{ setverdict(fail, __SCOPE__ & ": Error: scheduleElement has not been announced"); } } } } // end g_CSE_DMR_CRE_021 }//end group Create group Retrieve { group g_CSE_DMR_RET_001 { /** * @desc Check that the IUT returns successfully the TARGET_RESOURCE_ADDRESS resource * */ testcase TC_CSE_DMR_RET_001_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := mw_contentSchedule_rc1; v_ae1.start(f_CSE_DMR_RET_001(int18, m_createScheduleBase, v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_001_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var ResponsePrimitive v_responsePrimitive; var template PrimitiveContent v_contentResponse; v_contentResponse.pollingChannel := mw_contentPollingChannelBase; v_ae1.start(f_CSE_DMR_RET_001(int15, m_createPollingChannelBase, v_contentResponse));//PollingChannel v_ae1.done; } } // end g_CSE_DMR_RET_001 group g_CSE_DMR_RET_002 { /** * @desc Check that the IUT responds with an error when the AE tries to retrieve the resource TARGET_RESOURCE_ADDRESS which does not exist * */ testcase TC_CSE_DMR_RET_002() runs on AeSimu system CseSystem{ // Local variables var MsgIn v_response; var integer v_aeIndex := -1; var XSD.ID v_resourceId := "nonExistingId"; var XSD.ID v_resourceName := "nonExistingName"; var XSD.ID v_targetResourceAddress; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); // Test Body if((PX_ADDRESSING_METHOD == e_nonHierarchical) and (PX_PRIMITIVE_SCOPE == e_cseRelative)) { v_targetResourceAddress := v_resourceId; } else if (PX_ADDRESSING_METHOD == e_nonHierarchical) { v_targetResourceAddress := f_getResourceAddress() & "/" & v_resourceId; } else { v_targetResourceAddress := f_getResourceAddress(v_aeIndex) & "/" & v_resourceName; } mcaPort.send(m_request(m_retrieve(v_targetResourceAddress, f_getOriginator(v_aeIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource not found"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_RET_002 } // end g_CSE_DMR_RET_002 group g_CSE_DMR_RET_003 { /** * @desc Check that the IUT responds with an error when the AE tries to retrieve a resource TARGET_RESOURCE_ADDRESS under AE without having privileges for the RETRIEVE operation * */ testcase TC_CSE_DMR_RET_003_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_003(int18, m_createScheduleBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_003_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_003(int15, m_createPollingChannelBase));//PollingChannel v_ae1.done; } } // end g_CSE_DMR_RET_003 group g_CSE_DMR_RET_004 { /** * @desc Check that the IUT returns successfully the ATTRIBUTE of TARGET_RESOURCE_ADDRESS resource (“To” option) * */ testcase TC_CSE_DMR_RET_004_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := m_contentContainer_allOmit; v_contentResponse.container.parentID := ?; v_ae1.start(f_CSE_DMR_RET_004(int3, m_createContainerBase, v_contentResponse));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_004_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := m_contentGroup_allOmit; v_contentResponse.group_.parentID := ?; v_ae1.start(f_CSE_DMR_RET_004(int9, m_createGroupBase, v_contentResponse));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_004_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := m_contentAcp_allOmit; v_contentResponse.accessControlPolicy.parentID := ?; v_ae1.start(f_CSE_DMR_RET_004(int1, m_createAcpBase, v_contentResponse));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_004_SCH() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.schedule := m_contentSchedule_allOmit; v_contentResponse.schedule.parentID := ?; v_ae1.start(f_CSE_DMR_RET_004(int18, m_createScheduleBase,v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_004_PCH() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.pollingChannel := m_contentPollingChannel_allOmit; v_contentResponse.pollingChannel.parentID := ?; v_ae1.start(f_CSE_DMR_RET_004(int15, m_createPollingChannelBase, v_contentResponse));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_004_SUB() runs on Tester system CseSystem { // Local variables var template PrimitiveContent v_contentResponse; var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_contentResponse.subscription := m_contentSubscription_allOmit; v_contentResponse.subscription.parentID := ?; v_ae1.start(f_CSE_DMR_RET_004(int23, m_createSubscriptionBase, v_contentResponse));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_004 group g_CSE_DMR_RET_005 { /** * @desc Check that the IUT returns successfully the ATTRIBUTE of TARGET_RESOURCE_ADDRESS resource (“Content” option) * */ testcase TC_CSE_DMR_RET_005_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := m_contentContainer_allOmit; v_contentResponse.container.parentID := ?; v_ae1.start(f_CSE_DMR_RET_005(int3, m_createContainerBase, v_contentResponse));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_005_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := m_contentGroup_allOmit; v_contentResponse.group_.parentID := ?; v_ae1.start(f_CSE_DMR_RET_005(int9, m_createGroupBase, v_contentResponse));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_005_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := m_contentAcp_allOmit; v_contentResponse.accessControlPolicy.parentID := ?; v_ae1.start(f_CSE_DMR_RET_005(int1, m_createAcpBase, v_contentResponse));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_005_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := m_contentSchedule_allOmit; v_contentResponse.schedule.parentID := ?; v_ae1.start(f_CSE_DMR_RET_005(int18, m_createScheduleBase, v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_005_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.pollingChannel := m_contentPollingChannel_allOmit; v_contentResponse.pollingChannel.parentID := ?; v_ae1.start(f_CSE_DMR_RET_005(int15, m_createPollingChannelBase, v_contentResponse));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_005_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := m_contentSubscription_allOmit; v_contentResponse.subscription.parentID := ?; v_ae1.start(f_CSE_DMR_RET_005(int23, m_createSubscriptionBase, v_contentResponse));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_005 group g_CSE_DMR_RET_006 { /** * @desc Check that the IUT returns successfully multiple attributes of TARGET_RESOURCE_ADDRESS resource * */ testcase TC_CSE_DMR_RET_006_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := m_contentContainer_allOmit; v_contentResponse.container.parentID := ?; v_contentResponse.container.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_006(int3, m_createContainerBase, v_contentResponse));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_006_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := m_contentGroup_allOmit; v_contentResponse.group_.parentID := ?; v_contentResponse.group_.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_006(int9, m_createGroupBase, v_contentResponse));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_006_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := m_contentAcp_allOmit; v_contentResponse.accessControlPolicy.parentID := ?; v_contentResponse.accessControlPolicy.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_006(int1, m_createAcpBase, v_contentResponse));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_006_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := m_contentSchedule_allOmit; v_contentResponse.schedule.parentID := ?; v_contentResponse.schedule.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_006(int18, m_createScheduleBase, v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_006_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.pollingChannel := m_contentPollingChannel_allOmit; v_contentResponse.pollingChannel.parentID := ?; v_contentResponse.pollingChannel.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_006(int15, m_createPollingChannelBase, v_contentResponse));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_006_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := m_contentSubscription_allOmit; v_contentResponse.subscription.parentID := ?; v_contentResponse.subscription.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_006(int23, m_createSubscriptionBase, v_contentResponse));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_006 group g_CSE_DMR_RET_007 { /** * @desc Check that the IUT responds with an error when the AE tries to retrieve a non-existing attribute of the TARGET_RESOURCE_ADDRESS resource (“single” attribute case) * */ testcase TC_CSE_DMR_RET_007_CNT_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_007(int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_007_GRP_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_007(int9, m_createGroupBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_007_ACP_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_007(int1, m_createAcpBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_007_SCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_007(int18, m_createScheduleBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_007_PCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_007(int15, m_createPollingChannelBase));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_007_SUB_LBL() runs on AeSimu system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_007(int23, m_createSubscriptionBase));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_007 group g_CSE_DMR_RET_008 { /** * @desc Check that the IUT responds with an error when the AE tries to retrieve a non-existing attributes of the TARGET_RESOURCE_ADDRESS resource (“multiple” attributes case) * */ testcase TC_CSE_DMR_RET_008_CNT_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_008(int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_008_GRP_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_008(int9, m_createGroupBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_008_ACP_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_008(int1, m_createAcpBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_008_SCH_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_008(int18, m_createScheduleBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_008_PCH_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_008(int15, m_createPollingChannelBase));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_008_SUB_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_008(int23, m_createSubscriptionBase));//Subscription v_ae1.done; } } // end f_CSE_DMR_RET_008 group g_CSE_DMR_RET_009{ /** * @desc Check that the IUT rejects the RETRIEVE Request of a latest resource target to a container resource that has no direct child contentInstance resources. * */ testcase TC_CSE_DMR_RET_009() runs on AeSimu system CseSystem { // Local variables 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); // Test Body mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameLatest, f_getOriginator(v_containerIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))){ tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource not found"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_RET_009 } // end group g_CSE_DMR_RET_009 group g_CSE_DMR_RET_011{ /** * @desc Check that the IUT rejects the RETRIEVE Request of a oldest resource target to a container resource that has no direct child contentInstance resources. * */ testcase TC_CSE_DMR_RET_011() runs on AeSimu system CseSystem { // Local variables 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); // Test Body mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameOldest, f_getOriginator(v_containerIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))){ tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource not found"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_RET_011 } // end group g_CSE_DMR_RET_011 group g_CSE_DMR_RET_013 { /** * @desc Check that the IUT returns successfully the TARGET_RESOURCE_ADDRESS resource under CSEBase * */ testcase TC_CSE_DMR_RET_013_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := mw_contentSchedule_rc1; v_ae1.start(f_CSE_DMR_RET_013(int18, m_createScheduleBase, v_contentResponse));//Schedule v_ae1.done; } } // end g_CSE_DMR_RET_013 group g_CSE_DMR_RET_014 { /** * @desc Check that the IUT responds with an error when the AE tries to retrieve a resource TARGET_RESOURCE_ADDRESS under CSEBase without having privileges for the RETRIEVE operation * */ testcase TC_CSE_DMR_RET_014_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_014(int18, m_createScheduleBase));//Schedule v_ae1.done; } } // end g_CSE_DMR_RET_014 group g_CSE_DMR_RET_015 { /** * @desc Check that the IUT returns successfully the ATTRIBUTE of TARGET_RESOURCE_ADDRESS resource (“To” option) under CSEBase * */ testcase TC_CSE_DMR_RET_015_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := m_contentAcp_allOmit; v_contentResponse.accessControlPolicy.parentID := ?; v_ae1.start(f_CSE_DMR_RET_015(int1, m_createAcpBase, v_contentResponse));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_015_AE() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.aE := m_contentAe_allOmit; v_contentResponse.aE.parentID := ?; v_ae1.start(f_CSE_DMR_RET_015(int2, m_createAe(PX_APP_ID), v_contentResponse));//AE v_ae1.done; } testcase TC_CSE_DMR_RET_015_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := m_contentContainer_allOmit; v_contentResponse.container.parentID := ?; v_ae1.start(f_CSE_DMR_RET_015(int3, m_createContainerBase, v_contentResponse));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_015_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := m_contentGroup_allOmit; v_contentResponse.group_.parentID := ?; v_ae1.start(f_CSE_DMR_RET_015(int9, m_createGroupBase, v_contentResponse));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_015_CSR() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.remoteCSE := m_contentRemoteCSE_allOmit; v_contentResponse.remoteCSE.parentID := ?; v_ae1.start(f_CSE_DMR_RET_015(int16, m_createRemoteCSEBase, v_contentResponse));//RemoteCSE v_ae1.done; } testcase TC_CSE_DMR_RET_015_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := m_contentSchedule_allOmit; v_contentResponse.schedule.parentID := ?; v_ae1.start(f_CSE_DMR_RET_015(int18, m_createScheduleBase,v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_015_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := m_contentSubscription_allOmit; v_contentResponse.subscription.parentID := ?; v_ae1.start(f_CSE_DMR_RET_015(int23, m_createSubscriptionBase, v_contentResponse));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_015 group g_CSE_DMR_RET_016 { /** * @desc Check that the IUT returns successfully the ATTRIBUTE of TARGET_RESOURCE_ADDRESS resource (“Content” option) under CSEBase * */ testcase TC_CSE_DMR_RET_016_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := m_contentAcp_allOmit; v_contentResponse.accessControlPolicy.parentID := ?; v_ae1.start(f_CSE_DMR_RET_016(int1, m_createAcpBase, v_contentResponse));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_016_AE() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.aE := m_contentAe_allOmit; v_contentResponse.aE.parentID := ?; v_ae1.start(f_CSE_DMR_RET_016(int2, m_createAe(PX_APP_ID), v_contentResponse));//AE v_ae1.done; } testcase TC_CSE_DMR_RET_016_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := m_contentContainer_allOmit; v_contentResponse.container.parentID := ?; v_ae1.start(f_CSE_DMR_RET_016(int3, m_createContainerBase, v_contentResponse));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_016_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := m_contentGroup_allOmit; v_contentResponse.group_.parentID := ?; v_ae1.start(f_CSE_DMR_RET_016(int9, m_createGroupBase, v_contentResponse));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_016_CSR() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.remoteCSE := m_contentRemoteCSE_allOmit; v_contentResponse.remoteCSE.parentID := ?; v_ae1.start(f_CSE_DMR_RET_016(int16, m_createRemoteCSEBase, v_contentResponse));//RemoteCSE v_ae1.done; } testcase TC_CSE_DMR_RET_016_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := m_contentSchedule_allOmit; v_contentResponse.schedule.parentID := ?; v_ae1.start(f_CSE_DMR_RET_016(int18, m_createScheduleBase, v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_016_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := m_contentSubscription_allOmit; v_contentResponse.subscription.parentID := ?; v_ae1.start(f_CSE_DMR_RET_016(int23, m_createSubscriptionBase, v_contentResponse));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_016 group g_CSE_DMR_RET_017 { /** * @desc Check that the IUT returns successfully multiple attributes of TARGET_RESOURCE_ADDRESS resource under CSEBase * */ testcase TC_CSE_DMR_RET_017_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := m_contentAcp_allOmit; v_contentResponse.accessControlPolicy.parentID := ?; v_contentResponse.accessControlPolicy.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int1, m_createAcpBase, v_contentResponse));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_017_AE() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.aE := m_contentAe_allOmit; v_contentResponse.aE.parentID := ?; v_contentResponse.aE.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int2, m_createAe(PX_APP_ID), v_contentResponse));//AE v_ae1.done; } testcase TC_CSE_DMR_RET_017_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := m_contentContainer_allOmit; v_contentResponse.container.parentID := ?; v_contentResponse.container.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int3, m_createContainerBase, v_contentResponse));//Container v_ae1.done; } /*testcase TC_CSE_DMR_RET_017_DLV() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.delivery := m_contentDelivery_allOmit; v_contentResponse.delivery.parentID := ?; v_contentResponse.delivery.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int6, m_createDeliveryBase, v_contentResponse));//Delivery v_ae1.done; }*/ testcase TC_CSE_DMR_RET_017_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := m_contentGroup_allOmit; v_contentResponse.group_.parentID := ?; v_contentResponse.group_.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int9, m_createGroupBase, v_contentResponse));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_017_LCP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.locationPolicy := m_contentLocationPolicy_allOmit; v_contentResponse.locationPolicy.parentID := ?; v_contentResponse.locationPolicy.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int10, m_createLocationPolicyBase, v_contentResponse));//LocationPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_017_MGC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.mgmtCmd := m_contentMgmtCmd_allOmit; v_contentResponse.mgmtCmd.parentID := ?; v_contentResponse.mgmtCmd.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int12, m_createMgmtCmdBase, v_contentResponse));//MgmtCmd v_ae1.done; } testcase TC_CSE_DMR_RET_017_NOD() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.node := m_contentNode_allOmit; v_contentResponse.node.parentID := ?; v_contentResponse.node.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int14, m_createNodeBase, v_contentResponse));//Node v_ae1.done; } testcase TC_CSE_DMR_RET_017_CSR() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.remoteCSE := m_contentRemoteCSE_allOmit; v_contentResponse.remoteCSE.parentID := ?; v_contentResponse.remoteCSE.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int16, m_createRemoteCSEBase, v_contentResponse));//RemoteCSE v_ae1.done; } testcase TC_CSE_DMR_RET_017_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := m_contentSchedule_allOmit; v_contentResponse.schedule.parentID := ?; v_contentResponse.schedule.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int18, m_createScheduleBase, v_contentResponse));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_017_STCL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.statsCollect := m_contentStatsCollect_allOmit; v_contentResponse.statsCollect.parentID := ?; v_contentResponse.statsCollect.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int21, m_createStatsCollectBase, v_contentResponse));//StatsCollect v_ae1.done; } testcase TC_CSE_DMR_RET_017_STCG() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.statsConfig := m_contentStatsConfig_allOmit; v_contentResponse.statsConfig.parentID := ?; v_contentResponse.statsConfig.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int22, m_createStatsConfigBase, v_contentResponse));//StatsConfig v_ae1.done; } testcase TC_CSE_DMR_RET_017_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := m_contentSubscription_allOmit; v_contentResponse.subscription.parentID := ?; v_contentResponse.subscription.creationTime := ?; v_ae1.start(f_CSE_DMR_RET_017(int23, m_createSubscriptionBase, v_contentResponse));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_017 group g_CSE_DMR_RET_018 { /** * @desc Check that the IUT responds with an error when the AE tries to retrieve a non-existing attribute of the TARGET_RESOURCE_ADDRESS resource (“single” attribute case) under CSEBase * */ testcase TC_CSE_DMR_RET_018_ACP_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_018(int1, m_createAcpBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_018_AE_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_018(int2, m_createAe(PX_APP_ID)));//AE v_ae1.done; } testcase TC_CSE_DMR_RET_018_CNT_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_018(int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_018_GRP_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_018(int9, m_createGroupBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_018_CSR_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_018(int16, m_createRemoteCSEBase));//RemoteCSE v_ae1.done; } testcase TC_CSE_DMR_RET_018_SCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_018(int18, m_createScheduleBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_018_SUB_LBL() runs on AeSimu system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_018(int23, m_createSubscriptionBase));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_018 group g_CSE_DMR_RET_019 { /** * @desc Check that the IUT responds with an error when the AE tries to retrieve a non-existing attribute of the TARGET_RESOURCE_ADDRESS resource (“multiple” attributes case) under CSEBase * */ testcase TC_CSE_DMR_RET_019_ACP_LBL_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_019(int1, m_createAcpBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_019_AE_LBL_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_019(int2, m_createAe(PX_APP_ID)));//AE v_ae1.done; } testcase TC_CSE_DMR_RET_019_CNT_LBL_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_019(int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_019_GRP_LBL_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_019(int9, m_createGroupBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_019_CSR_LBL_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_019(int16, m_createRemoteCSEBase));//RemoteCSE v_ae1.done; } testcase TC_CSE_DMR_RET_019_SCH_LBL_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_019(int18, m_createScheduleBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_019_SUB_LBL_AT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_019(int23, m_createSubscriptionBase));//Subscription v_ae1.done; } } // end f_CSE_DMR_RET_019 group g_CSE_DMR_RET_020 { /** * @desc Check that the IUT rejects a RETRIEVE Request target to TARGET_RESOURCE_ADDRESS resource when the Result Content set to RESULT_CONTENT * */ testcase TC_CSE_DMR_RET_020_RCN_0() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_020(int3, m_createContainerBase, int0));//ResultContent = 0 (nothing) v_ae1.done; } testcase TC_CSE_DMR_RET_020_RCN_2() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_020(int3, m_createContainerBase, int2));//ResultContent = 2 (hierarchical address) v_ae1.done; } testcase TC_CSE_DMR_RET_020_RCN_3() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_RET_020(int3, m_createContainerBase, int3));//ResultContent = 3 (attributes and hierarchichal address) v_ae1.done; } } // end g_CSE_DMR_RET_020 group g_CSE_DMR_RET_021 { /** * @desc Check that the IUT returns successfully only attributes of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 1 (attributes) * */ testcase TC_CSE_DMR_RET_021_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := mw_contentContainer_rc1; v_ae1.start(f_CSE_DMR_RET_021(int3, m_createContainerBase, v_contentResponse, int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_021_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := mw_contentGroup_rc1; v_ae1.start(f_CSE_DMR_RET_021(int9, m_createGroupBase, v_contentResponse, int23, m_createSubscriptionBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_021_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := mw_contentAcp_rc1; v_ae1.start(f_CSE_DMR_RET_021(int1, m_createAcpBase,v_contentResponse, int23, m_createSubscriptionBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_021_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := mw_contentSchedule_rc1; v_ae1.start(f_CSE_DMR_RET_021(int18, m_createScheduleBase, v_contentResponse, int23, m_createSubscriptionBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_021_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.pollingChannel := mw_contentPollingChannelBase; v_ae1.start(f_CSE_DMR_RET_021(int15, m_createPollingChannelBase, v_contentResponse, omit, omit));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_021_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := mw_contentSubscription_rc1; v_ae1.start(f_CSE_DMR_RET_021(int23, m_createSubscriptionBase, v_contentResponse, int18, m_createScheduleBase));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_021 group g_CSE_DMR_RET_022 { /** * @desc Check that the IUT returns successfully only attributes and child resources of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 4 (attributes and child resources) * */ testcase TC_CSE_DMR_RET_022_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := mw_contentContainer_rc4; v_ae1.start(f_CSE_DMR_RET_022(int3, m_createContainerBase, v_contentResponse, int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_022_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := mw_contentGroup_rc4; v_ae1.start(f_CSE_DMR_RET_022(int9, m_createGroupBase, v_contentResponse, int23, m_createSubscriptionBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_022_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := mw_contentAcp_rc4; v_ae1.start(f_CSE_DMR_RET_022(int1, m_createAcpBase,v_contentResponse, int23, m_createSubscriptionBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_022_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := mw_contentSchedule_rc4; v_ae1.start(f_CSE_DMR_RET_022(int18, m_createScheduleBase, v_contentResponse, int23, m_createSubscriptionBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_022_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.pollingChannel := mw_contentPollingChannelBase; v_ae1.start(f_CSE_DMR_RET_022(int15, m_createPollingChannelBase, v_contentResponse, omit, omit));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_022_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := mw_contentSubscription_rc4; v_ae1.start(f_CSE_DMR_RET_022(int23, m_createSubscriptionBase, v_contentResponse, int18, m_createScheduleBase));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_022 group g_CSE_DMR_RET_023 { /** * @desc Check that the IUT returns successfully only attributes and child resource references of TARGET_RESOURCE_ADDRESS resource when the Result Content is set to 5 (attributes and child resource references) * */ testcase TC_CSE_DMR_RET_023_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := mw_contentContainer_rc5; v_ae1.start(f_CSE_DMR_RET_023(int3, m_createContainerBase, v_contentResponse, int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_023_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := mw_contentGroup_rc5; v_ae1.start(f_CSE_DMR_RET_023(int9, m_createGroupBase, v_contentResponse, int23, m_createSubscriptionBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_023_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := mw_contentAcp_rc5; v_ae1.start(f_CSE_DMR_RET_023(int1, m_createAcpBase,v_contentResponse, int23, m_createSubscriptionBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_023_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := mw_contentSchedule_rc5; v_ae1.start(f_CSE_DMR_RET_023(int18, m_createScheduleBase, v_contentResponse, int23, m_createSubscriptionBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_023_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.pollingChannel := mw_contentPollingChannelBase; v_ae1.start(f_CSE_DMR_RET_023(int15, m_createPollingChannelBase, v_contentResponse, omit, omit));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_023_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := mw_contentSubscription_rc5; v_ae1.start(f_CSE_DMR_RET_023(int23, m_createSubscriptionBase, v_contentResponse, int18, m_createScheduleBase));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_023 group g_CSE_DMR_RET_024 { /** * @desc Check that the IUT returns successfully only child resource references of TARGET_RESOURCE_ADDRESS resource when Result Content is set to 6 (child resource references) * */ testcase TC_CSE_DMR_RET_024_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := mw_contentContainer_rc6; v_ae1.start(f_CSE_DMR_RET_024(int3, m_createContainerBase, v_contentResponse, int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_024_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := mw_contentGroup_rc6; v_ae1.start(f_CSE_DMR_RET_024(int9, m_createGroupBase, v_contentResponse, int23, m_createSubscriptionBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_024_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := mw_contentAcp_rc6; v_ae1.start(f_CSE_DMR_RET_024(int1, m_createAcpBase,v_contentResponse, int23, m_createSubscriptionBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_024_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := mw_contentSchedule_rc6; v_ae1.start(f_CSE_DMR_RET_024(int18, m_createScheduleBase, v_contentResponse, int23, m_createSubscriptionBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_024_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.pollingChannel := mw_contentPollingChannelBase; v_ae1.start(f_CSE_DMR_RET_024(int15, m_createPollingChannelBase, v_contentResponse, omit, omit));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_024_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := mw_contentSubscription_rc6; v_ae1.start(f_CSE_DMR_RET_024(int23, m_createSubscriptionBase, v_contentResponse, int18, m_createScheduleBase));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_024 group g_CSE_DMR_RET_025 { /** * @desc Check that the IUT returns successfully only child resources of TARGET_RESOURCE_ADDRESS resource when Result Content is set to 8 (child resources) * */ testcase TC_CSE_DMR_RET_025_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.container := mw_contentContainer_rc8; v_ae1.start(f_CSE_DMR_RET_025(int3, m_createContainerBase, v_contentResponse, int3, m_createContainerBase));//Container v_ae1.done; } testcase TC_CSE_DMR_RET_025_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.group_ := mw_contentGroup_rc8; v_ae1.start(f_CSE_DMR_RET_025(int9, m_createGroupBase, v_contentResponse, int23, m_createSubscriptionBase));//Group v_ae1.done; } testcase TC_CSE_DMR_RET_025_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.accessControlPolicy := mw_contentAcp_rc8; v_ae1.start(f_CSE_DMR_RET_025(int1, m_createAcpBase,v_contentResponse, int23, m_createSubscriptionBase));//AccessControlPolicy v_ae1.done; } testcase TC_CSE_DMR_RET_025_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.schedule := mw_contentSchedule_rc8; v_ae1.start(f_CSE_DMR_RET_025(int18, m_createScheduleBase, v_contentResponse, int23, m_createSubscriptionBase));//Schedule v_ae1.done; } testcase TC_CSE_DMR_RET_025_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.pollingChannel := mw_contentPollingChannelBase; v_ae1.start(f_CSE_DMR_RET_025(int15, m_createPollingChannelBase, v_contentResponse, omit, omit));//PollingChannel v_ae1.done; } testcase TC_CSE_DMR_RET_025_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template PrimitiveContent v_contentResponse; v_contentResponse.subscription := mw_contentSubscription_rc8; v_ae1.start(f_CSE_DMR_RET_025(int23, m_createSubscriptionBase, v_contentResponse, int18, m_createScheduleBase));//Subscription v_ae1.done; } } // end g_CSE_DMR_RET_025 }//end group Retrieve group Update { group g_CSE_DMR_UPD_001 { /** * @desc Check that the IUT updates successfully the value of the attribute ATTRIBUTE_NAME of the TARGET_RESOURCE_ADDRESS resource * */ testcase TC_CSE_DMR_UPD_001_SCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; 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; var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.schedule.labels := v_labels_1; v_updateRequest.primitiveContent.schedule.labels := v_labels_2; v_ae1.start(f_CSE_DMR_UPD_001(int18, v_createRequest, v_updateRequest));//Schedule v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.schedule)) { if(v_responsePrimitive.primitiveContent.schedule.labels != v_labels_2){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.schedule)) { if(v_primitiveContentRetrieveResource.schedule.labels != v_labels_2){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_001_PCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; 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; var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.pollingChannel.labels := v_labels_1; v_updateRequest.primitiveContent.pollingChannel.labels := v_labels_2; v_ae1.start(f_CSE_DMR_UPD_001(int15, v_createRequest, v_updateRequest));//PollingChannel v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.pollingChannel)) { if(v_responsePrimitive.primitiveContent.pollingChannel.labels != v_labels_2){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.pollingChannel)) { if(v_primitiveContentRetrieveResource.pollingChannel.labels != v_labels_2){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } } } // end g_CSE_DMR_UPD_001 group g_CSE_DMR_UPD_002 { /** * @desc Check that the IUT adds successfully the attribute ATTRIBUTE_NAME to the TARGET_RESOURCE_ADDRESS resource * */ testcase TC_CSE_DMR_UPD_002_SCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.schedule.labels := v_labels_1; v_ae1.start(f_CSE_DMR_UPD_002(int18, m_createScheduleBase,v_updateRequest));//Schedule v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.schedule)) { if(v_responsePrimitive.primitiveContent.schedule.labels != v_labels_1){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.schedule)) { if(v_primitiveContentRetrieveResource.schedule.labels != v_labels_1){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_002_PCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.pollingChannel.labels := v_labels_1; v_ae1.start(f_CSE_DMR_UPD_002(int15, m_createPollingChannelBase,v_updateRequest));//PollingChannel v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.pollingChannel)) { if(v_responsePrimitive.primitiveContent.pollingChannel.labels != v_labels_1){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.pollingChannel)) { if(v_primitiveContentRetrieveResource.pollingChannel.labels != v_labels_1){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } } } // end g_CSE_DMR_UPD_002 group g_CSE_DMR_UPD_003 { /** * @desc Check that the IUT deletes successfully the attribute ATTRIBUTE_NAME from the TARGET_RESOURCE_ADDRESS resource * */ testcase TC_CSE_DMR_UPD_003_SCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; 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; var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.schedule.labels := v_labels_1; v_updateRequest.primitiveContent.schedule.labels := v_labels_2; v_nullFields := {{"labels", omit}}; v_ae1.start(f_CSE_DMR_UPD_003(int18, v_createRequest, v_updateRequest, v_nullFields));//Schedule v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.schedule)) { if(ispresent(v_responsePrimitive.primitiveContent.schedule.labels)){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not deleted correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.schedule)) { if(ispresent(v_primitiveContentRetrieveResource.schedule.labels)) { if(not(match(v_primitiveContentRetrieveResource.schedule.labels,{""}))){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not deleted correctly") } } } } } testcase TC_CSE_DMR_UPD_003_PCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; 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; var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.pollingChannel.labels := v_labels_1; v_updateRequest.primitiveContent.pollingChannel.labels := v_labels_2; v_nullFields := {{"labels", omit}}; v_ae1.start(f_CSE_DMR_UPD_003(int15, v_createRequest, v_updateRequest, v_nullFields));//PollingChannel v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.pollingChannel)) { if(ispresent(v_responsePrimitive.primitiveContent.pollingChannel.labels)){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not deleted correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.pollingChannel)) { if(ispresent(v_primitiveContentRetrieveResource.pollingChannel.labels)) { if(not(match(v_primitiveContentRetrieveResource.pollingChannel.labels,{""}))){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not deleted correctly") } } } } } } // end g_CSE_DMR_UPD_003 group g_CSE_DMR_UPD_004 { /** * @desc Check that the IUT updates the value of the attribute ATTRIBUTE_NAME_1, and creates the ATTRIBUTE_NAME_2 and deletes the ATTRIBUTE_NAME_3 of the TARGET_RESOURCE_ADDRESS resource * */ testcase TC_CSE_DMR_UPD_004_SCH_SE_AT_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Labels v_labels_1 := {"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; var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.schedule.scheduleElement := {{"0,0,0 1 2,1,1,*"}};//Attribute 1 v_updateRequest.primitiveContent.schedule.scheduleElement := {{"1,1,1 1 2,1,1,*"}}; //Attribute 1 v_updateRequest.primitiveContent.schedule.announceTo := {f_getAnnouncementTargetPoA()};//Attribute 2 v_updateRequest.primitiveContent.schedule.labels := v_labels_1;//Attribute 3 v_nullFields := {{"labels", omit}}; v_ae1.start(f_CSE_DMR_UPD_004(int18, v_createRequest, v_updateRequest, v_nullFields));//Schedule v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.schedule)) { //Check attribute 1 if(v_responsePrimitive.primitiveContent.schedule.scheduleElement != valueof(v_updateRequest.primitiveContent.schedule.scheduleElement)){ setverdict(fail, __SCOPE__ & ": Error: Schedule Element attribute not updated correctly") } //Check attribute 2 if(v_responsePrimitive.primitiveContent.schedule.announceTo != valueof(v_updateRequest.primitiveContent.schedule.announceTo)){ setverdict(fail, __SCOPE__ & ": Error: Announce_To attribute not updated correctly") } //Check attribute 3 if(ispresent(v_responsePrimitive.primitiveContent.schedule.labels)){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not deleted correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.schedule)) { //Check attribute 1 if(v_primitiveContentRetrieveResource.schedule.scheduleElement != valueof(v_updateRequest.primitiveContent.schedule.scheduleElement)){ setverdict(fail, __SCOPE__ & ": Error: Schedule Element attribute not updated correctly") } //Check attribute 2 if(v_primitiveContentRetrieveResource.schedule.announceTo != valueof(v_updateRequest.primitiveContent.schedule.announceTo)){ setverdict(fail, __SCOPE__ & ": Error: Announce_To attribute not updated correctly") } //Check attribute 3 if(ispresent(v_primitiveContentRetrieveResource.schedule.labels)){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not deleted correctly") } } } } testcase TC_CSE_DMR_UPD_004_PCH_LBL_ACP_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; 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_createPollingChannelBase; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_createRequest.primitiveContent.pollingChannel.labels := v_labels_1;//Attribute 3 //No Attribute 1 //v_updateRequest.primitiveContent.pollingChannel.accessControlPolicyIDs := v_acp;//Attribute 2 TODO Find another alternative for Attribute 2 v_updateRequest.primitiveContent.pollingChannel.labels := v_labels_2;//Attribute 3 v_nullFields := {{"labels", omit}}; v_ae1.start(f_CSE_DMR_UPD_004(int15, v_createRequest, v_updateRequest, v_nullFields));//PollingChannel v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.pollingChannel)) { //Check attribute 1 //Check attribute 2 TODO once another alternative is found, activate this checking /*if(not match(v_responsePrimitive.primitiveContent.pollingChannel.accessControlPolicyIDs, valueof(v_updateRequest.primitiveContent.pollingChannel.accessControlPolicyIDs))){ setverdict(fail, __SCOPE__ & ": Error: ACPI attribute not added correctly") }*/ //Check attribute 3 if(ispresent(v_responsePrimitive.primitiveContent.pollingChannel.labels)){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not deleted correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.pollingChannel)) { if(ispresent (v_primitiveContentRetrieveResource.pollingChannel.labels)){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not deleted correctly") } } } } } // end g_CSE_DMR_UPD_004 group g_CSE_DMR_UPD_005{ /** * @desc Check that the IUT responds with an error when the AE tries to update an attribute of a TARGET_RESOURCE_ADDRESS resource which does not exist * */ testcase TC_CSE_DMR_UPD_005_SCH_EXC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.PositiveInteger v_expirationCounter := 1; var template RequestPrimitive v_createRequest := m_createScheduleBase; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; v_updateRequest.primitiveContent := {schedule_update_invalid := m_contentUpdateSchedule_invalid}; v_updateRequest.primitiveContent.schedule_update_invalid.expirationCounter := v_expirationCounter; v_ae1.start(f_CSE_DMR_UPD_005(int18, v_createRequest, v_updateRequest));//Schedule v_ae1.done; } testcase TC_CSE_DMR_UPD_005_PCH_EXC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.PositiveInteger v_expirationCounter := 1; var template RequestPrimitive v_createRequest := m_createPollingChannelBase; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; v_updateRequest.primitiveContent := {pollingChannel_update_invalid := m_contentUpdatePollingChannel_invalid}; v_updateRequest.primitiveContent.pollingChannel_update_invalid.expirationCounter := v_expirationCounter; v_ae1.start(f_CSE_DMR_UPD_005(int15, v_createRequest, v_updateRequest));//PollingChannel v_ae1.done; } } // end g_CSE_DMR_UPD_005 group g_CSE_DMR_UPD_006{ /** * @desc Check that the IUT responds with an error when the AE tries to update the attribute ATTRIBUTE_NAME of a TARGET_RESOURCE_ADDRESS resource without having privileges for the UPDATE operation * */ testcase TC_CSE_DMR_UPD_006_SCH_LBL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.schedule.labels := v_labels_1; v_ae1.start(f_CSE_DMR_UPD_006(int18, m_createScheduleBase, v_updateRequest));//Schedule v_ae1.done; if(getverdict == pass){ v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has NOT been udpated if(ischosen(v_primitiveContentRetrieveResource.schedule)) { if(v_primitiveContentRetrieveResource.schedule.labels == v_labels_1){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute updated") } } } } testcase TC_CSE_DMR_UPD_006_PCH_LBL() runs on Tester system CseSystem { // Local variable var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Labels v_labels_1 := {"VALUE_1"}; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.pollingChannel.labels := v_labels_1; v_ae1.start(f_CSE_DMR_UPD_006(int15, m_createPollingChannelBase, v_updateRequest));//PollingChannel v_ae1.done; if(getverdict == pass){ v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has NOT been udpated if(ischosen(v_primitiveContentRetrieveResource.pollingChannel)) { if(v_primitiveContentRetrieveResource.pollingChannel.labels == v_labels_1){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute updated") } } } } } // end g_CSE_DMR_UPD_006 group g_CSE_DMR_UPD_007{ /** * @desc Check that the IUT responds with an error when the AE tries to update a non-RW attribute ATTRIBUTE_NAME of a TARGET_RESOURCE_ADDRESS resource * */ testcase TC_CSE_DMR_UPD_007_SCH_CT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Timestamp v_creationTime := "21001231T012345"; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent := {schedule_update_invalid := m_contentUpdateSchedule_invalid}; v_updateRequest.primitiveContent.schedule_update_invalid.creationTime := v_creationTime; v_ae1.start(f_CSE_DMR_UPD_007(int18, m_createScheduleBase, v_updateRequest));//Schedule v_ae1.done; if(getverdict == pass){ v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has NOT been udpated if(ischosen(v_primitiveContentRetrieveResource.schedule_update_invalid)) { if(v_primitiveContentRetrieveResource.schedule_update_invalid.creationTime == v_creationTime){ setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated") } } } } testcase TC_CSE_DMR_UPD_007_PCH_CT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Timestamp v_creationTime := "21001231T012345"; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent := {pollingChannel_update_invalid := m_contentUpdatePollingChannel_invalid}; v_updateRequest.primitiveContent.pollingChannel_update_invalid.creationTime := v_creationTime; v_ae1.start(f_CSE_DMR_UPD_007(int15, m_createPollingChannelBase, v_updateRequest));//PollingChannel v_ae1.done; if(getverdict == pass){ v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has NOT been udpated if(ischosen(v_primitiveContentRetrieveResource.pollingChannel_update_invalid)) { if(v_primitiveContentRetrieveResource.pollingChannel_update_invalid.creationTime == v_creationTime){ setverdict(fail, __SCOPE__ & ": Error: Creation Time attribute updated") } } } } } // end g_CSE_DMR_UPD_007 group g_CSE_DMR_UPD_008{ /** * @desc Check that the IUT responds with an error when the AE tries to delete a mandatory RW attribute ATTRIBUTE_NAME of a TARGET_RESOURCE_ADDRESS resource * */ testcase TC_CSE_DMR_UPD_008_SCH_ET() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Timestamp v_expirationTime := "21001231T012345"; var template RequestPrimitive v_updateRequest := m_updateScheduleBase; var AttributeAux_list v_nullFields; var PrimitiveContent v_primitiveContentRetrieveResource; v_nullFields := {{"expirationTime", omit}}; v_updateRequest.primitiveContent.schedule.expirationTime := v_expirationTime; v_ae1.start(f_CSE_DMR_UPD_008(int18, m_createScheduleBase, v_updateRequest, v_nullFields));//Schedule v_ae1.done; if(getverdict == pass){ v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has NOT been udpated if(ischosen(v_primitiveContentRetrieveResource.schedule)) { if(v_primitiveContentRetrieveResource.schedule.expirationTime == v_expirationTime){ setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated") } } } } testcase TC_CSE_DMR_UPD_008_PCH_ET() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Timestamp v_expirationTime := "21001231T012345"; var template RequestPrimitive v_updateRequest := m_updatePollingChannelBase; var AttributeAux_list v_nullFields; var PrimitiveContent v_primitiveContentRetrieveResource; v_nullFields := {{"expirationTime", omit}}; v_updateRequest.primitiveContent.pollingChannel.expirationTime := v_expirationTime; v_ae1.start(f_CSE_DMR_UPD_008(int15, m_createPollingChannelBase, v_updateRequest, v_nullFields));//PollingChannel v_ae1.done; if(getverdict == pass){ v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has NOT been udpated if(ischosen(v_primitiveContentRetrieveResource.pollingChannel)) { if(v_primitiveContentRetrieveResource.pollingChannel.expirationTime == v_expirationTime){ setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute updated") } } } } } // end g_CSE_DMR_UPD_008 group g_CSE_DMR_UPD_010{ /** * @desc Check that the stateTag attribute of a container resource is increased when an update operation has been performed on its child resource * */ testcase TC_CSE_DMR_UPD_010() runs on AeSimu 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.container.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.container.stateTag)) { v_updateRequest := f_getUpdateRequestPrimitive(int3, v_containerIndex, v_updateRequest); f_cse_updateResource(v_updateRequest); mcaPort.send(m_request(m_retrieve(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.container.stateTag == 1) { //(Create and Delete) setverdict(pass, __SCOPE__ & ": The stateTag attribute is incremented"); } else{ setverdict(fail, __SCOPE__ & ": Error the stateTag attribute is not incremented"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attributes"); } } }//end if else{ setverdict(fail, __SCOPE__ & ": Error the stateTag attribute is empty"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end TC_CSE_DMR_UPD_010 } // end group g_CSE_DMR_UPD_010 group g_CSE_DMR_UPD_014 { /** * @desc Check that the IUT updates successfully the value of the optional attribute OPTIONAL_ATTRIBUTE of the RESOURCE_TYPE resource. * */ testcase TC_CSE_DMR_UPD_014_ACP_ET() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Timestamp v_expirationTime_1 := "20301231T012345"; var Timestamp v_expirationTime_2 := "20401020T012345"; var template RequestPrimitive v_createRequest := m_createAcpBase; var template RequestPrimitive v_updateRequest := m_updateAcpBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_1; v_updateRequest.primitiveContent.accessControlPolicy.expirationTime := v_expirationTime_2; v_ae1.start(f_CSE_DMR_UPD_014(int1, v_createRequest, v_updateRequest));//ACP v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.accessControlPolicy)) { if(v_responsePrimitive.primitiveContent.accessControlPolicy.expirationTime != v_expirationTime_2){ setverdict(fail, __SCOPE__ & ": Error: ExpirationTime attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_CNT_ET() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Timestamp v_expirationTime_1 := "20301231T012345"; var Timestamp v_expirationTime_2 := "20401020T012345"; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; v_createRequest.primitiveContent.container.expirationTime := v_expirationTime_1; v_updateRequest.primitiveContent.container.expirationTime := v_expirationTime_2; v_ae1.start(f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest));//Container v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.container)) { if(v_responsePrimitive.primitiveContent.container.expirationTime != v_expirationTime_2){ setverdict(fail, __SCOPE__ & ": Error: ExpirationTime attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_CNT_OR() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.AnyURI v_ontologyRef_1 := "MyOntologyRef_1"; var XSD.AnyURI v_ontologyRef_2 := "MyOntologyRef_2"; var ResponsePrimitive v_responsePrimitive; var template RequestPrimitive v_createRequest := m_createContainerBase; var template RequestPrimitive v_updateRequest := m_updateContainerBase; v_createRequest.primitiveContent.container.ontologyRef := v_ontologyRef_1; v_updateRequest.primitiveContent.container.ontologyRef := v_ontologyRef_2; v_ae1.start(f_CSE_DMR_UPD_014(int3, v_createRequest, v_updateRequest));//Container v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.container)) { if(v_responsePrimitive.primitiveContent.container.ontologyRef != v_ontologyRef_2){ setverdict(fail, __SCOPE__ & ": Error: OntologyRef attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_ACPI() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var AcpType v_accessControlPolicyIDs_1 := {"NotInitialized_1"}; var AcpType v_accessControlPolicyIDs_2 := {"NotInitialized_2"}; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_1; v_updateRequest.primitiveContent.subscription.accessControlPolicyIDs := v_accessControlPolicyIDs_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.accessControlPolicyIDs != v_accessControlPolicyIDs_2){ setverdict(fail, __SCOPE__ & ": Error: AccessControlPolicyIDs attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_BN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var BatchNotify v_batchNotify_1 := {1, "PT1S"}; var BatchNotify v_batchNotify_2 := {2, "PT1S"}; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.batchNotify := v_batchNotify_1; v_updateRequest.primitiveContent.subscription.batchNotify := v_batchNotify_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.batchNotify != v_batchNotify_2){ setverdict(fail, __SCOPE__ & ": Error: EventNotificationCriteria attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_ENC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var EventNotificationCriteria v_eventNotificationCriteria_1 := valueof(m_eventNotificationCriteria({int1}, -)); var EventNotificationCriteria v_eventNotificationCriteria_2 := valueof(m_eventNotificationCriteria({int2}, -)); var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.eventNotificationCriteria := v_eventNotificationCriteria_1; v_updateRequest.primitiveContent.subscription.eventNotificationCriteria := v_eventNotificationCriteria_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.eventNotificationCriteria != v_eventNotificationCriteria_2){ setverdict(fail, __SCOPE__ & ": Error: EventNotificationCriteria attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_ET() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Timestamp v_expirationTime_1 := "20301231T012345"; var Timestamp v_expirationTime_2 := "20401020T012345"; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.expirationTime := v_expirationTime_1; v_updateRequest.primitiveContent.subscription.expirationTime := v_expirationTime_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.expirationTime != v_expirationTime_2){ setverdict(fail, __SCOPE__ & ": Error: ExpirationTime attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_EXC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.PositiveInteger v_expirationCounter_1 := 10; var XSD.PositiveInteger v_expirationCounter_2 := 20; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.expirationCounter := v_expirationCounter_1; v_updateRequest.primitiveContent.subscription.expirationCounter := v_expirationCounter_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.expirationCounter != v_expirationCounter_2){ setverdict(fail, __SCOPE__ & ": Error: ExpirationCounter attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_GPI() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.AnyURI v_groupID_1 := "MyGroupID_1"; var XSD.AnyURI v_groupID_2 := "MyGroupID_2"; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.groupID := v_groupID_1; v_updateRequest.primitiveContent.subscription.groupID := v_groupID_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.groupID != v_groupID_2){ setverdict(fail, __SCOPE__ & ": Error: GroupID attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_LN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.Boolean v_latestNotify_1 := true; var XSD.Boolean v_latestNotify_2 := false; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.latestNotify := v_latestNotify_1; v_updateRequest.primitiveContent.subscription.latestNotify := v_latestNotify_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.latestNotify != v_latestNotify_2){ setverdict(fail, __SCOPE__ & ": Error: LatestNotify attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_NCT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var NotificationContentType v_notificationContentType_1 := int1; var NotificationContentType v_notificationContentType_2 := int2; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.notificationContentType := v_notificationContentType_1; v_updateRequest.primitiveContent.subscription.notificationContentType := v_notificationContentType_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.notificationContentType != v_notificationContentType_2){ setverdict(fail, __SCOPE__ & ": Error: NotificationContentType attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_NEC() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var EventCat v_notificationEventCat_1 := {alt_1 := 100}; var EventCat v_notificationEventCat_2 := {alt_1 := 101}; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.notificationEventCat := v_notificationEventCat_1; v_updateRequest.primitiveContent.subscription.notificationEventCat := v_notificationEventCat_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.notificationEventCat != v_notificationEventCat_2){ setverdict(fail, __SCOPE__ & ": Error: NotificationEventCat attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_NFU() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.AnyURI v_notificationForwardingURI_1 := "MyForwardingURI_1"; var XSD.AnyURI v_notificationForwardingURI_2 := "MyForwardingURI_2"; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.notificationForwardingURI := v_notificationForwardingURI_1; v_updateRequest.primitiveContent.subscription.notificationForwardingURI := v_notificationForwardingURI_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.notificationForwardingURI != v_notificationForwardingURI_2){ setverdict(fail, __SCOPE__ & ": Error: NotificationForwardingURI attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_NSP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.PositiveInteger v_notificationStoragePriority_1 := 1; var XSD.PositiveInteger v_notificationStoragePriority_2 := 2; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.notificationStoragePriority := v_notificationStoragePriority_1; v_updateRequest.primitiveContent.subscription.notificationStoragePriority := v_notificationStoragePriority_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.notificationStoragePriority != v_notificationStoragePriority_2){ setverdict(fail, __SCOPE__ & ": Error: NotificationStoragePriority attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_PN() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var PendingNotification v_pendingNotification_1 := int1; var PendingNotification v_pendingNotification_2 := int2; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.pendingNotification := v_pendingNotification_1; v_updateRequest.primitiveContent.subscription.pendingNotification := v_pendingNotification_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.pendingNotification != v_pendingNotification_2){ setverdict(fail, __SCOPE__ & ": Error: PendingNotification attribute not updated correctly") } } } } } testcase TC_CSE_DMR_UPD_014_SUB_RL() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var RateLimit v_rateLimit_1 := {0, omit}; var RateLimit v_rateLimit_2 := {1, omit}; var template RequestPrimitive v_createRequest := m_createSubscriptionBase; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; v_createRequest.primitiveContent.subscription.rateLimit := v_rateLimit_1; v_updateRequest.primitiveContent.subscription.rateLimit := v_rateLimit_2; v_ae1.start(f_CSE_DMR_UPD_014(int23, v_createRequest, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.rateLimit != v_rateLimit_2){ setverdict(fail, __SCOPE__ & ": Error: RateLimit attribute not updated correctly") } } } } } } // end g_CSE_DMR_UPD_014 group g_CSE_DMR_UPD_015{ /** * @desc Check that the IUT updates successfully the value of the optional attribute OPTIONAL_ATTRIBUTE of the RESOURCE_TYPE resource under CSEBase */ testcase TC_CSE_DMR_UPD_015_NOD_LBL() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Labels v_labels := {"MyLabel"}; var template RequestPrimitive v_updateRequest := m_updateNodeBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.node.labels := v_labels; v_ae1.start(f_CSE_DMR_UPD_015(int9, m_createNodeBase, v_updateRequest));//Node v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.node)) { if(v_responsePrimitive.primitiveContent.node.labels != v_labels){ setverdict(fail, __SCOPE__, ": Error: Labels attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.node)) { if(v_primitiveContentRetrieveResource.node.labels != v_labels){ setverdict(fail, __SCOPE__ & ": Error: Labels attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_NOD_ACPI() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_updateRequest := m_updateNodeBase; var RequestPrimitive v_updateRequestPrimitive; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_ae1.start(f_CSE_DMR_UPD_015(int9, m_createNodeBase, v_updateRequest, true));//Node v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); v_updateRequestPrimitive := f_getRequestPrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.node)) { if(v_responsePrimitive.primitiveContent.node.accessControlPolicyIDs != valueof(v_updateRequestPrimitive.primitiveContent.node.accessControlPolicyIDs)){ setverdict(fail, __SCOPE__, ": Error: Access Control Policy attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.node)) { if(v_primitiveContentRetrieveResource.node.accessControlPolicyIDs != valueof(v_updateRequestPrimitive.primitiveContent.node.accessControlPolicyIDs)){ setverdict(fail, __SCOPE__ & ": Error: Access Control Policy attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_NOD_HCL() runs on Tester system CseSystem { /* TO BE DONE */ } testcase TC_CSE_DMR_UPD_015_AE_OR() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.AnyURI v_ontoLogyRef := "MyOntologyRef"; var template RequestPrimitive v_updateRequest := m_updateAE; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.aE.ontologyRef := v_ontoLogyRef; v_ae1.start(f_CSE_DMR_UPD_015(int2, m_createAe(PX_APP_ID, -, PX_AE1_ID_STEM), v_updateRequest));//AE v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.aE)) { if(v_responsePrimitive.primitiveContent.aE.ontologyRef != v_ontoLogyRef){ setverdict(fail, __SCOPE__, ": Error: Ontology Ref attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.aE)) { if(v_primitiveContentRetrieveResource.aE.ontologyRef != v_ontoLogyRef){ setverdict(fail, __SCOPE__ & ": Error: Ontology Ref attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_CNT_OR() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.AnyURI v_ontoLogyRef := "MyOntologyRef"; var template RequestPrimitive v_updateRequest := m_updateContainerBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.container.ontologyRef := v_ontoLogyRef; v_ae1.start(f_CSE_DMR_UPD_015(int3, m_createContainerBase, v_updateRequest));//Container v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.container)) { if(v_responsePrimitive.primitiveContent.container.ontologyRef != v_ontoLogyRef){ setverdict(fail, __SCOPE__, ": Error: Ontology Ref attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.container)) { if(v_primitiveContentRetrieveResource.container.ontologyRef != v_ontoLogyRef){ setverdict(fail, __SCOPE__ & ": Error: Ontology Ref attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_CNT_LI() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.AnyURI v_locationID := "MyLocationID"; var template RequestPrimitive v_updateRequest := m_updateContainerBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.container.locationID := v_locationID; v_ae1.start(f_CSE_DMR_UPD_015(int3, m_createContainerBase, v_updateRequest));//Container v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.container)) { if(v_responsePrimitive.primitiveContent.container.locationID != v_locationID){ setverdict(fail, __SCOPE__, ": Error: Location ID attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.container)) { if(v_primitiveContentRetrieveResource.container.locationID != v_locationID){ setverdict(fail, __SCOPE__ & ": Error: Location ID attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_ENC() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var EventNotificationCriteria v_eventNotificationCriteria:= valueof(m_eventNotificationCriteria({int3}, -)); var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.eventNotificationCriteria:=v_eventNotificationCriteria ; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.eventNotificationCriteria != v_eventNotificationCriteria){ setverdict(fail, __SCOPE__, ": Error: Event Notification Criteria attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.eventNotificationCriteria != v_eventNotificationCriteria){ setverdict(fail, __SCOPE__ & ": Error: Event Notofication Criteria attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_EXC() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.PositiveInteger v_expirationCounter:=10; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.expirationCounter:=v_expirationCounter; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.expirationCounter != v_expirationCounter){ setverdict(fail, __SCOPE__, ": Error: Expiration Counter attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.expirationCounter != v_expirationCounter){ setverdict(fail, __SCOPE__ & ": Error: Expiration Counter attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_GPI() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.AnyURI v_groupID := "MyGroupID"; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.groupID:=v_groupID; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.groupID != v_groupID){ setverdict(fail, __SCOPE__, ": Error: Group ID attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.groupID != v_groupID){ setverdict(fail, __SCOPE__ & ": Error: Group ID attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_NFU() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.AnyURI v_notificationForwardingURI:= "MyNotificationForwardingURI"; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.notificationForwardingURI:=v_notificationForwardingURI; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.notificationForwardingURI != v_notificationForwardingURI){ setverdict(fail, __SCOPE__, ": Error: Notification Forwarding URI attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.notificationForwardingURI != v_notificationForwardingURI){ setverdict(fail, __SCOPE__ & ": Error: Notification Forwarding URI attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_BN() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var BatchNotify v_batchNotify:= {1, "PT1S"}; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.batchNotify:=v_batchNotify; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.batchNotify != v_batchNotify){ setverdict(fail, __SCOPE__, ": Error: Batch Notify attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.batchNotify != v_batchNotify){ setverdict(fail, __SCOPE__ & ": Error: Batch Notify attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_RL() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var RateLimit v_rateLimit:= {2, "PT1S"}; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.rateLimit:=v_rateLimit; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.rateLimit != v_rateLimit){ setverdict(fail, __SCOPE__, ": Error: Rate Limit attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.rateLimit != v_rateLimit){ setverdict(fail, __SCOPE__ & ": Error: Rate Limit attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_PN() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var PendingNotification v_pendingNotification:=int2; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.pendingNotification:=v_pendingNotification; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.pendingNotification != v_pendingNotification){ setverdict(fail, __SCOPE__, ": Error: Pending Notification attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.pendingNotification != v_pendingNotification){ setverdict(fail, __SCOPE__ & ": Error: Pending Notification attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_NSP() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.PositiveInteger v_notificationStoragePriority:=10; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.notificationStoragePriority:=v_notificationStoragePriority; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.notificationStoragePriority != v_notificationStoragePriority){ setverdict(fail, __SCOPE__, ": Error: Notification Storage priority attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.notificationStoragePriority != v_notificationStoragePriority){ setverdict(fail, __SCOPE__ & ": Error: Notification Storage priority attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_LN() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var XSD.Boolean v_latestNotify:=true; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.latestNotify:=v_latestNotify; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.latestNotify != v_latestNotify){ setverdict(fail, __SCOPE__, ": Error: Latest Notify priority attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.latestNotify != v_latestNotify){ setverdict(fail, __SCOPE__ & ": Error: Latest Notify attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_015_SUB_NEC() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var EventCat v_eventCat:= {alt_1:= 300}; var template RequestPrimitive v_updateRequest := m_updateSubscriptionBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.subscription.notificationEventCat:=v_eventCat; v_ae1.start(f_CSE_DMR_UPD_015(int23, m_createSubscriptionBase, v_updateRequest));//Subscription v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.subscription)) { if(v_responsePrimitive.primitiveContent.subscription.notificationEventCat != v_eventCat){ setverdict(fail, __SCOPE__, ": Error: Notification Event Cat attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.subscription)) { if(v_primitiveContentRetrieveResource.subscription.notificationEventCat != v_eventCat){ setverdict(fail, __SCOPE__ & ": Error: Notification Event Cat attribute not updated correctly") } } } } } // end group g_CSE_DMR_UPD_017 group g_CSE_DMR_UPD_016 { /** * @desc Check that the IUT updates successfully the value of the attribute MANDATORY_ATTRIBUTE of the RESOURCE_TYPE resource under CSEBase */ testcase TC_CSE_DMR_UPD_016_NOD_ET() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var Timestamp v_expirationTime := "21001231T012345"; var template RequestPrimitive v_updateRequest := m_updateNodeBase; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.node.expirationTime := v_expirationTime; v_ae1.start(f_CSE_DMR_UPD_016(int9, m_createNodeBase, v_updateRequest));//Node v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.node)) { if(v_responsePrimitive.primitiveContent.node.expirationTime != v_expirationTime){ setverdict(fail, __SCOPE__, ": Error: Expiration time attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.node)) { if(v_primitiveContentRetrieveResource.node.expirationTime != v_expirationTime){ setverdict(fail, __SCOPE__ & ": Error: Expiration time attribute not updated correctly") } } } } testcase TC_CSE_DMR_UPD_016_NOD_NI() runs on Tester system CseSystem { var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_updateRequest := m_updateNodeBase; var XSD.Token v_targetId := "TARGET-ID"; var ResponsePrimitive v_responsePrimitive; var PrimitiveContent v_primitiveContentRetrieveResource; v_updateRequest.primitiveContent.node.nodeID := v_targetId; v_ae1.start(f_CSE_DMR_UPD_016(int9, m_createNodeBase, v_updateRequest));//Node v_ae1.done; if(getverdict == pass){ v_responsePrimitive := f_getResponsePrimitive(v_ae1); //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.node)) { if(v_responsePrimitive.primitiveContent.node.nodeID != v_targetId){ setverdict(fail, __SCOPE__, ": Error: NodeID attribute not updated correctly") } } } v_primitiveContentRetrieveResource := f_getPrimitiveContentRetrievedResource(v_ae1); //Check that the resource has been udpated correctly if(ischosen(v_primitiveContentRetrieveResource.node)) { if(v_primitiveContentRetrieveResource.node.nodeID != v_targetId){ setverdict(fail, __SCOPE__ & ": Error: NodeID attribute not updated correctly") } } } } } // end group g_CSE_DMR_UPD_016 }//end group Update group Delete { group g_CSE_DMR_DEL_001{ /** * @desc Check that the IUT accepts the deletion of a RESOURCE_TYPE resource * */ testcase TC_CSE_DMR_DEL_001_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_001(int18, m_createScheduleBase));//Schedule v_ae1.done; }; testcase TC_CSE_DMR_DEL_001_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_001(int15, m_createPollingChannelBase));//PollingChannel v_ae1.done; }; };//end of group g_CSE_DMR_DEL_001 group g_CSE_DMR_DEL_002{ /** * @desc Check that the IUT responds with an error when the AE tries to delete the resource TARGET_RESOURCE_ADDRESS without having privileges for the DELETE operation * */ testcase TC_CSE_DMR_DEL_002_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_002(int18, m_createScheduleBase));//Schedule v_ae1.done; }; testcase TC_CSE_DMR_DEL_002_PCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_002(int15, m_createPollingChannelBase));//PollingChannel v_ae1.done; }; };//end of group g_CSE_DMR_DEL_002 group g_CSE_DMR_DEL_003{ /** * @desc Check that the IUT responds with an error when the AE tries to delete the resource TARGET_RESOURCE_ADDRESS which does not exist * */ testcase TC_CSE_DMR_DEL_003() runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var charstring v_resourceIdOrName := "NotExistingResource"; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); // Test Body if(PX_ADDRESSING_METHOD == e_nonHierarchical and (PX_PRIMITIVE_SCOPE == e_cseRelative)) { v_request := valueof(m_delete(v_resourceIdOrName, f_getOriginator(v_aeIndex))); } else { v_request := valueof(m_delete(f_getResourceAddress(v_aeIndex) & "/" & v_resourceIdOrName, f_getOriginator(v_aeIndex))); } 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, __SCOPE__ & ": Unexisting resource cannot be deleted"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while deleting non existing resource"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while deleting non existing resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); };//end f_CSE_DMR_DEL003 };//end of group g_CSE_DMR_DEL_003 group g_CSE_DMR_DEL_004{ /** * @desc Check that the IUT responds with an error when AE tries to delete a child resource of a RESOURCE_TYPE resource when this resource has been already deleted * */ testcase TC_CSE_DMR_DEL_004_CNT() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_004(int3, m_createContainerBase, int3, m_createContainerBase));//Container v_ae1.done; }; testcase TC_CSE_DMR_DEL_004_GRP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_004(int9, m_createGroupBase, int23, m_createSubscriptionBase));//Group v_ae1.done; }; testcase TC_CSE_DMR_DEL_004_ACP() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_004(int1, m_createAcpBase, int23, m_createSubscriptionBase));//AccessControlPolicy v_ae1.done; }; testcase TC_CSE_DMR_DEL_004_SCH() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_004(int18, m_createScheduleBase, int23, m_createSubscriptionBase));//Schedule v_ae1.done; }; testcase TC_CSE_DMR_DEL_004_PCH() runs on Tester system CseSystem { // Local variables // don't exist pollingChannel's child resource //v_ae1.start(f_CSE_DMR_DEL_004(int15, m_createPollingChannelBase, int23, m_createSubscriptionBase);//PollingChannel TODO ResourceType needed is PollingChannelURI // v_ae1.done; }; testcase TC_CSE_DMR_DEL_004_SUB() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; v_ae1.start(f_CSE_DMR_DEL_004(int23, m_createSubscriptionBase, int18, m_createScheduleBase));//Subscription v_ae1.done; }; };//end of group g_CSE_DMR_DEL_004 group g_CSE_DMR_DEL_005{ /** * @desc Check that the stateTag attribute of a container resource is increased when a child resource is deleted * */ testcase TC_CSE_DMR_DEL_005() runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var integer v_childResourceIndex := -1; const ResourceType c_containerResourceType := int3; // Test control // Test component configuration f_cf01Up(); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_resourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_aeIndex); if(ispresent(vc_resourcesList[v_resourceIndex].resource.container.stateTag)) { v_childResourceIndex := f_cse_createResource(c_containerResourceType, m_createContainerBase, v_resourceIndex); // Test Body mcaPort.send(m_request(m_delete(f_getResourceAddress(v_childResourceIndex), f_getOriginator(v_childResourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource type " & int2str(enum2int(c_containerResourceType)) & " delete successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while deleting resource type " & int2str(enum2int(c_containerResourceType))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(c_containerResourceType))); } } mcaPort.send(m_request(m_retrieve(f_getResourceAddress(v_resourceIndex), f_getOriginator(v_resourceIndex)))); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; if(v_response.primitive.responsePrimitive.primitiveContent.container.stateTag == 2) { //(Create and Delete) setverdict(pass, __SCOPE__ & ": The stateTag attribute is incremented"); } else{ setverdict(fail, __SCOPE__ & ": Error the stateTag attribute is not incremented"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource attributes"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource attributes"); } } }//end if else{ setverdict(fail, __SCOPE__ & ": Error the stateTag attribute is empty"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_DEL_005 } // end group g_CSE_DMR_DEL_005 group g_CSE_DMR_DEL_008{ /** * @desc Check that the IUT rejects the DELETE request of a latest resource in a container resource that has no direct child contentInstance resources. * */ testcase TC_CSE_DMR_DEL_008() runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; const ResourceType c_containerResourceType := int4; // 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_request := valueof(m_delete(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameLatest, f_getOriginator(v_containerIndex))); 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, __SCOPE__ & ": Resource type " & int2str(enum2int(c_containerResourceType)) & " NOT FOUND"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Resource type " & int2str(enum2int(c_containerResourceType)) & " has not been created"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(c_containerResourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_DEL_008 } // end group g_CSE_DMR_DEL_008 group g_CSE_DMR_DEL_010{ /** * @desc Check that the IUT rejects the DELETE request of a oldest resource in a container resource that has no direct child contentInstance resources. * */ testcase TC_CSE_DMR_DEL_010() runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var RequestPrimitive v_request; var integer v_aeIndex := -1; var integer v_containerIndex := -1; const ResourceType c_containerResourceType := int4; // 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_request := valueof(m_delete(f_getResourceAddress(v_containerIndex) & "/" & c_resourceShortNameOldest, f_getOriginator(v_containerIndex))); 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, __SCOPE__ & ": Resource type" & int2str(enum2int(c_containerResourceType)) & " NOT FOUND"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Resource type" & int2str(enum2int(c_containerResourceType)) & " has not been created"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource type " & int2str(enum2int(c_containerResourceType))); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end f_CSE_DMR_DEL_010 } // end group g_CSE_DMR_DEL_010 }//end group Delete }//end group Data_Management_and_Repository group Location { group g_CSE_LOC_BV_001{ testcase TC_CSE_LOC_BV_001() runs on AeSimu system CseSystem { var integer v_aeIndex := -1; var RequestPrimitive v_request; var MsgIn v_response; var LocationSource v_locationSource := int1;//Network-based //Test component configuration f_cf01Up(); //Preamble v_aeIndex := f_cse_preamble_registerAe(); //Set requestPrimitive v_request := f_getCreateRequestPrimitive(int10, m_createLocationPolicy(v_locationSource, omit, omit, omit, omit), v_aeIndex); //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, __SCOPE__ & "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, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Created a locationPolicy resource for an invalid create request with response status code:" & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": Timeout due to no response received from requested server!"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }// end 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 AeSimu 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; var integer v_resourceIndex := -1; //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(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource locationPolicy is created successfully with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))&"!"); f_checkAttributesToBeSaved(int10, v_request, v_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int10, v_aeAuxIndex); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error occurrs with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "while handling a valid locationPolicy resource create request!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": Timeout due to no response from requested server!"); } } f_checkAeSimuStatus(); //Check to see if the resource is present or not if(f_isResourcePresent(v_resourceIndex)) { setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }// end testcase TC_CSE_LOC_BV_002 }//end group g_CSE_LOC_BV_002 group g_CSE_LOC_BO_003{ testcase TC_CSE_LOC_BO_003() runs on AeSimu system CseSystem {//the originator has no privileges to create a locationPolicy resource!! var integer v_aeIndex := -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, __SCOPE__ & ": 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_aeIndex := 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_aeIndex); // 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, __SCOPE__ & ": Access denied to create a resource including locationPolicy!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error 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(fail, __SCOPE__ & ": Timeout due to no response from requested server!"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); } // end testcase TC_CSE_LOC_BO_003 }//end group g_CSE_LOC_BO_003 group g_CSE_LOC_BO_004{ testcase TC_CSE_LOC_BO_004() runs on AeSimu system CseSystem { var integer v_aeIndex := -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_aeIndex := f_cse_preamble_registerAe(); //Set requestPrimitive v_request := f_getCreateRequestPrimitive(int10, m_createLocationPolicy(v_locationSource, omit, locationUpdatePeriod, locationTargetID, locationServerAddress), v_aeIndex); // 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, __SCOPE__ & ": The targeted resource is not found!!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error 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(fail, __SCOPE__ & ": Timeout due to no response from requested server!"); } } f_checkAeSimuStatus(); //Check to see if the resource is NOT present if(f_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }// end testcase TC_CSE_LOC_BO_004 }//end group g_CSE_LOC_BO_004 group g_CSE_LOC_BI_005{ testcase TC_CSE_LOC_BI_005() runs on AeSimu 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, __SCOPE__ & ": Update locationPolicy resource is rejected!!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error 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(fail, __SCOPE__ & ": Timeout due to no response from requested server!"); } } f_checkAeSimuStatus(); //TODO: Check to see if the resource has been updated or not // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BI_005 }//end group g_CSE_LOC_BI_005 group g_CSE_LOC_BV_006 { testcase TC_CSE_LOC_BV_006() runs on AeSimu 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_retrieve(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.container.locationID)){ setverdict(fail, __SCOPE__ & "No locationID is included in the response!"); }else{ setverdict(pass, __SCOPE__ & "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, __SCOPE__ & "Requested container resource is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource!"); } } f_checkAeSimuStatus(); // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_006 }//end group g_CSE_LOC_BV_006 group g_CSE_LOC_BV_007 { testcase TC_CSE_LOC_BV_007() runs on AeSimu 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 var integer v_resourceIndex := -1; //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_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource locationPolicy is created successfully with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))&"!"); f_checkAttributesToBeSaved(int10, v_request, v_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int10, v_aeAuxIndex); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error occurrs with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "while handling a valid locationPolicy resource create request!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": Timeout due to no response from requested server!"); } } f_checkAeSimuStatus(); //Check to see if the resource is present or not if(f_isResourcePresent(v_resourceIndex)) { setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResources(); } // Tear down f_cf01Down(); }//end 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 AeSimu 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; var integer v_resourceIndex := -1; //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_responsePrimitive(int2001))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Resource locationPolicy is created successfully with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode))&"!"); f_checkAttributesToBeSaved(int10, v_request, v_response.primitive.responsePrimitive); v_resourceIndex := f_setResource(v_response.primitive.responsePrimitive.primitiveContent, int10, v_aeAuxIndex); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error occurrs with response status code: " & int2str(enum2int(v_response.primitive.responsePrimitive.responseStatusCode)) & "while handling a valid locationPolicy resource create request!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": Timeout due to no response from requested server!"); } } f_checkAeSimuStatus(); //Check to see if the resource is present or not if(f_isResourcePresent(v_resourceIndex)) { setverdict(pass, __SCOPE__ & ":INFO: Resource created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource not created"); } // Postamble f_cse_postamble_deleteResources(); } // Tear down f_cf01Down(); }//end 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_01() runs on AeSimu 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_retrieve(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.notification.notificationEvent)){ setverdict(fail, __SCOPE__ & "No NotificationEvent is included in the response!"); }else{ setverdict(pass, __SCOPE__ & "Location information is successfully sent!"); } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & "Requested container resource is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_009_01 testcase TC_CSE_LOC_BV_009_02() runs on AeSimu 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_retrieve(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.notification.notificationEvent)){ setverdict(fail, __SCOPE__ & "No NotificationEvent is included in the response!"); }else{ setverdict(pass, __SCOPE__ & "Location information is successfully sent!"); } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & "Requested container resource is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_009_02 testcase TC_CSE_LOC_BV_009_03() runs on AeSimu 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_retrieve(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.notification.notificationEvent)){ setverdict(fail, __SCOPE__ & "No NotificationEvent is included in the response!"); }else{ setverdict(pass, __SCOPE__ & "Location information is successfully sent!"); } } [] mcaPort.receive(mw_response(mw_responsePrimitive(int4004))) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & "Requested container resource is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_009_03 }//end group g_CSE_LOC_BV_009 /*group g_CSE_LOC_BV_007 { testcase TC_CSE_LOC_BV_007() runs on AeSimu 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 AeSimu system CseSystem{ //TODO }//end testcase TC_CSE_LOC_BV_008 }//end group g_CSE_LOC_BV_008 */ group g_CSE_LOC_BV_012 { testcase TC_CSE_LOC_BV_012() runs on AeSimu 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_responsePrimitive(int2001))) -> value v_response{ tc_ac.stop; setverdict(pass, __SCOPE__ & "Subscription resource is successfully!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response{ tc_ac.stop; setverdict(fail, __SCOPE__ & "Requested container resource is not found!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating subscription resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_012 }//end group g_CSE_LOC_BV_012 group g_CSE_LOC_BV_013 { testcase TC_CSE_LOC_BV_013() runs on AeSimu 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_retrieve(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.locationPolicy.locationContainerID)){ setverdict(fail, __SCOPE__ & "No locationContainerID is included in the response!"); }else{ setverdict(pass, __SCOPE__ & "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, __SCOPE__ & "Requested locationPolicy is not found!"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource!"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource!"); } } // Postamble f_cse_postamble_deleteResources(); // Tear down f_cf01Down(); }//end testcase TC_CSE_LOC_BV_013 }//end group g_CSE_LOC_BV_013 }//end group Location group Subscription_And_Notification { group Create { }//end group Create group Notify{ /** * @desc Check that the IUT rejects the creation of the resource when the notificationURI is not the originator and the IUT have received the Notify response containing Response Status Code indicating SUBSCRIPTION_CREATOR_HAS_NO_PRIVILEGE * */ testcase TC_CSE_SUB_NTF_001() runs on AeSimu 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 integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23, int4101); // Test Body v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription 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, __SCOPE__ & ": OK : Subscription creator has no privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Subscription successful whereas Subscription creator has no privilege"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Check to see if the resource is NOT present if(f_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_NTF_001 /** * @desc Check that the IUT rejects the creation of the resource when the notificationURI is not the originator and the IUT have received the Notify response containing Response Status Code indicating SUBSCRIPTION_HOST_HAS_NO_PRIVILEGE * */ testcase TC_CSE_SUB_NTF_002() runs on AeSimu 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 integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe(omit,omit);//c_CUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23, int5205); // Test Body v_request := f_getCreateRequestPrimitive(int23, v_createRequest, v_aeIndex);//Subscription 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, __SCOPE__ & ": OK : Subscription creator has no privilege"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Subscription successful whereas Subscription creator has no privilege"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while creating resource"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Check to see if the resource is NOT present if(f_isResourceNotPresent(v_aeIndex, f_getResourceName(v_request.primitiveContent))){ setverdict(pass, __SCOPE__ & ":INFO: Resource not created"); } else { setverdict(fail, __SCOPE__ & ":ERROR: Resource created"); } //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_NTF_002 /** * @desc Check that the IUT sends aggregated notification to the subscriber resource when the duration value of the batchNotify attribute is set to TIME_LIMIT and when this timer expires * */ testcase TC_CSE_SUB_NTF_003() runs on AeSimu system CseSystem { // Local variables timer t_batchNotificationTimer := PX_TAC * 2.0; var float v_elapsedTime; const integer c_numberOfAggregatedNotification := 2; 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 integer v_ae2Index := -1; v_contentResponse.aE := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotify(c_numberOfAggregatedNotification + 1, "PT10S" ), omit, omit, -, int2);//batchNotify/number greater than number of notifications to be sent so that batchNotify/duration expires before v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription if(vc_ae2.running) { vc_ae2.stop; }; // Test Body vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, c_numberOfAggregatedNotification)); v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 f_cse_updateResource(v_request); t_batchNotificationTimer.start; v_updateRequest := m_updateAeBase; v_updateRequest.primitiveContent.aE.appName := "MyAppName2"; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 f_cse_updateResource(v_request); vc_ae2.done; v_elapsedTime := t_batchNotificationTimer.read; t_batchNotificationTimer.stop; if(v_elapsedTime < 10.0) { setverdict(fail, __SCOPE__ & ": Notifications sent before bathNotify/duration expired"); } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_NTF_003 }//end group Notify group Update { /** * @desc Check that the IUT sends a Notify request to the subscriber resource when the notificationContentType attribute is set to “modified attributes” and an update operation has been performed on the subscribed-to resource * */ testcase TC_CSE_SUB_UPD_002() runs on AeSimu 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 := {aE := m_contentAe_allOmit}; var template RequestPrimitive v_createRequest := omit; var template RequestPrimitive v_updateRequest := m_updateAeBase; var RequestPrimitive v_request; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int2, omit); //notificationContentType ="modified attributes" f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); //Subscription if(vc_ae2.running) { vc_ae2.stop; }; // Test Body //TODO Use f_getTemplateFromPrimitiveContent() which needs to be modified to receive the template in which the output template will be built upon v_contentResponse.aE.labels := ?;// only modified attribute expected v_contentResponse.aE.lastModifiedTime := ?;// only modified attribute expected //TODO Get it automatically into the expected content template vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type int2 (Ae) updated successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while updating resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type int2 (Ae)"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_UPD_002 /** * @desc Check that the IUT sends a Notify request to the subscriber resource when the notificationContentType attribute is set to “ResourceID” and an update operation has been performed on the subscribed-to resource * */ testcase TC_CSE_SUB_UPD_003() runs on AeSimu 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 integer v_ae2Index := -1; v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_contentResponse.uRI := ?; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, omit, omit, omit, omit, int3, omit); // notificationContentType ="ResourceID" v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription f_checkComponentDoneAndGetVerdict(vc_ae2); // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type int2 (Ae) updated successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while updating resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type int2 (Ae) or None notification received"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_UPD_003 /** * @desc Check that the IUT decreases the expirationCounter attribute of a subscription resource when the Hosting CSE of the subscribed-to resource successfully sends the notification request to subscriber resource(s) * */ testcase TC_CSE_SUB_UPD_004() runs on AeSimu 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 integer v_ae2Index := -1; v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_contentResponse.aE := mw_contentAeBase; // all attributes expected v_retrieveContentResponse.subscription := mw_contentSubscription_rc1; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, 3, omit, omit, omit, -, omit); //expirationCounter set to 3 v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex); // Subscription if(vc_ae2.running) { vc_ae2.stop; }; // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(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 f_checkComponentDoneAndGetVerdict(vc_ae2); mcaPort.send(m_request(m_retrieve(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.subscription.expirationCounter == 2 ){ setverdict(pass, __SCOPE__ & ": expirationCounter has been successfully decreased by one"); } else{ setverdict(fail, __SCOPE__ & ": Error expirationCounter hasn't been decreased by one"); } } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error, resource elements provided not matching expected resource elements"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while retrieving resource"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving resource"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_UPD_004 /** * @desc Check that the IUT deletes the subscription resource when the the expirationCounter meets zero * */ testcase TC_CSE_SUB_UPD_005() runs on AeSimu 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 integer v_ae2Index := -1; v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_contentResponse.aE := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, omit, 1, omit, omit, omit, -, omit); //expirationCounter set to 1 v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);// Subscription if(vc_ae2.running) { vc_ae2.stop; }; // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(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 f_checkComponentDoneAndGetVerdict(vc_ae2); mcaPort.send(m_request(m_retrieve(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, __SCOPE__ & ": Subscription Resource have been successfully deleted"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error Subscription Resource has not been deleted"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while retrieving Subscription Resource"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_UPD_005 /** * @desc Check that the IUT doesn’t send a Notify request to the subscriber resource when the “attribute” condition tag of eventNotificationCriteria attribute is set to LIST_OF_ATTRIBUTE and doesn’t contain the ATTRIBUTE_NAME attribute updated. * */ testcase TC_CSE_SUB_UPD_006() runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; var AttributeList_1 v_attributeList := {"apn"}; 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 integer v_ae2Index := -1; v_updateRequest.primitiveContent.aE.labels := v_labels_1; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int1}, v_attributeList), omit, omit, omit, omit, -, omit); v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request if(vc_ae2.running) { vc_ae2.stop; }; // Test Body vc_ae2.start(f_cse_notifyProcedure_noNotificationHandler()); // check that no notification is received mcaPort.send(m_request(v_request)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type int2 (Ae) updated successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while updating resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type int2 (Ae) or None notification received"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_UPD_006 /** * @desc Check that the IUT sends aggregated notification to the subscriber resource when the number value of the batchNotify attribute is set to GROUP_LIMIT and when this number have been reached * */ testcase TC_CSE_SUB_UPD_007() runs on AeSimu system CseSystem { // Local variables const integer numberOfAggregatedNotification := 3; 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 integer v_ae2Index := -1; v_contentResponse.aE := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotify(numberOfAggregatedNotification), omit, omit, -, omit ); v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription if(vc_ae2.running) { vc_ae2.stop; }; // Test Body vc_ae2.start(f_cse_notifyProcedure_aggregatedNoficationHandler(v_contentResponse, numberOfAggregatedNotification)); // check that no notification is received v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.aE.labels := v_labels_2; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.aE.labels := v_labels_3; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3 f_cse_updateResource(v_request); f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_UPD_007 /** * @desc Check that the IUT sends the latest notification to the subscriber resource when latestNotify is set to TRUE, the number value of the batchNotify attribute is set to GROUP_LIMIT and when this number have been reached * */ testcase TC_CSE_SUB_UPD_008() runs on AeSimu system CseSystem { // Local variables const integer numberOfAggregatedNotification := 3; 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 integer v_ae2Index := -1; v_contentResponse.aE := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)},omit,omit,m_batchNotify(numberOfAggregatedNotification), true, omit, -, omit); //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(vc_ae2.running) { vc_ae2.stop; }; // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_contentResponse)); // check if the notification is well received and if its content matchs v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 1 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.aE.labels := v_labels_2; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 2 f_cse_updateResource(v_request); v_updateRequest.primitiveContent.aE.labels := v_labels_3; v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request 3 f_cse_updateResource(v_request); f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_UPD_008 /** * @desc Check that the IUT sends a Notify request to the subscriber resource when the “attribute” condition tag of eventNotificationCriteria attribute is set to ATTRIBUTE_NAME and an update operation has been performed on the subscribed-to resource * */ testcase TC_CSE_SUB_UPD_009() runs on AeSimu system CseSystem { // Local variables var MsgIn v_response; var Labels v_labels_1:= {"VALUE_1"}; var AttributeList_1 v_attributeList := {"lbl"}; 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 integer v_ae2Index := -1; v_updateRequest.primitiveContent.aE.labels := v_labels_1; v_contentResponse.aE := mw_contentAeBase; // all attributes expected // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int1}, v_attributeList), omit, omit, omit, omit, -, omit); v_resourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription v_request:= f_getUpdateRequestPrimitive(int2, v_aeIndex, v_updateRequest); // Update request if(vc_ae2.running) { vc_ae2.stop; }; // Test Body vc_ae2.start(f_cse_notifyProcedure_representationHandler(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_responsePrimitive(int2004))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Attribute of resource type int2 (Ae) updated successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while updating resource type int2 (Ae)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while updating resource type int2 (Ae) or None notification received"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_UPD_009 }//end group Update group Delete { /** * @desc Check that the IUT sends a Notify request to the subscriber resource when eventType attribute is set to "Delete_of_Resource" and an delete operation has been performed the subscribed-to resource * */ testcase TC_CSE_SUB_DEL_002() runs on AeSimu 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_notificationContent; var RequestPrimitive v_deleteRequest; var integer v_ae2Index := -1; // Test control // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int2}, -), omit, omit, omit, omit, -, omit); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex );//Subscription if(vc_ae2.running) { vc_ae2.stop; }; //Test Body v_notificationContent := {aE:= mw_contentAeBase}; // all attributes expected; vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_notificationContent)); // check if the notification is well received and if its content matchs v_deleteRequest:= valueof(m_delete(f_getResourceAddress(v_aeIndex), f_getOriginator(v_aeIndex))); // Ae delete request mcaPort.send(m_request(v_deleteRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response { tc_ac.stop; //Update vc_resourcesIndexToBeDeleted f_removeElementFromList (vc_resourcesIndexToBeDeleted, v_aeIndex); setverdict(pass, __SCOPE__ & ": resource type int2 (AE) deleted successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while deleting resource type int2 (AE)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource type int2 (AE)"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_DEL_002 /** * @desc Check that the IUT sends a Notify request to the subscriber resource when eventType attribute is set to "Delete_of_Direct_Child_Resource" and an delete operation has been performed on a child resource of the subscribed-to resource * */ testcase TC_CSE_SUB_DEL_003() runs on AeSimu 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_notificationContent; var integer v_ae2Index := -1; // Test component configuration f_cf01Up(true); // Test adapter configuration // Preamble v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi; v_containerResourceIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex);//Container v_createRequest := m_createSubscriptionAdvanced(f_getResourceAddress(v_aeIndex), -, {f_getResourceAddress(v_ae2Index)}, m_eventNotificationCriteria({int4}, -), omit, omit, omit, omit, -, omit); f_cse_preamble_subscriptionVerification(v_ae2Index, v_createRequest, int23); v_subscriptionResourceIndex := f_cse_createResource(int23, v_createRequest, v_aeIndex);//Subscription (with name attribute omitted) if(vc_ae2.running) { vc_ae2.stop; }; //Test Body v_notificationContent := {container := mw_contentContainer_rc1}; // all attributes expected; vc_ae2.start(f_cse_notifyProcedure_representationHandler(v_notificationContent)); // check if the notification is well received and if its content matchs v_deleteRequest := valueof(m_delete(f_getResourceAddress(v_containerResourceIndex), f_getOriginator(v_containerResourceIndex)));// Container deletion request mcaPort.send(m_request(v_deleteRequest)); tc_ac.start; alt { [] mcaPort.receive(mw_response(mw_responsePrimitive(int2002))) -> value v_response { tc_ac.stop; setverdict(pass, __SCOPE__ & ": Container resource deleted successfully"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Wrong response status code"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; setverdict(fail, __SCOPE__ & ": Error while deleting resource type int3 (Container)"); } [] tc_ac.timeout { setverdict(fail, __SCOPE__ & ": No answer while deleting resource type int3 (Container)"); } } f_checkComponentDoneAndGetVerdict(vc_ae2); //Postamble f_cse_postamble_deleteResources(); //Tear down f_cf01Down(); } // end TC_CSE_SUB_DEL_003 }//end group Delete }//end group Subscription_And_Notification group Security { group Access_Control_Policy { group Create { }// end of group Create group Update { }// end of group Update group Basic_Operations { }// end of Basic_Operations }//end group AccessControlPolicy }//end group Security group Announcement { group Basic { group g_CSE_ANNC_001 { testcase TC_CSE_ANNC_001_ACP_UPD() runs on Tester system CseSystem { // Local variables var AeSimu v_ae1 := AeSimu.create("AE1") alive; var template RequestPrimitive v_createRequest := m_createAcpBase; var template RequestPrimitive v_updateRequest := m_updateAcpBase; v_createRequest.primitiveContent.accessControlPolicy.announceTo := {f_getAnnouncementTargetPoA()}; v_ae1.start(f_CSE_ANNC_001(int1, v_createRequest, mw_createAccessControlPolicyAnnc, v_updateRequest));//AccessControlPolicy v_ae1.done; } }// end group g_CSE_ANNC_001 } } }//end group CSE }