/** * @author ETSI / STF569 * @version $URL:$ * $ID:$ * @desc This module provides the MEC test cases. * @copyright ETSI Copyright Notification * No part may be reproduced except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * All rights reserved. * @see ETSI GS MEC 003, Draft ETSI GS MEC 012 V2.0.3 (2018-10) */ module AtsMec_RnisAPI_TestCases { // Libcommon import from LibCommon_Time all; import from LibCommon_VerdictControl all; import from LibCommon_Sync all; // LibHttp import from LibItsHttp_TypesAndValues all; import from LibItsHttp_JsonMessageBodyTypes all; import from LibItsHttp_Functions all; import from LibItsHttp_Templates all; import from LibItsHttp_JsonTemplates all; import from LibItsHttp_TestSystem all; // LibMec/RnisAPI import from RnisAPI_TypesAndValues all; import from RnisAPI_Templates all; import from RnisAPI_Pics all; import from RnisAPI_Pixits all; // LibMec import from LibMec_Functions all; import from LibMec_Pics all; import from LibMec_Pixits all; group all_subscriptions { /** * @desc Check that the RNIS service sends the list of links to the relevant RNIS subscriptions when requested. * Acceptable SUBSCRIPTION_TYPE are the following: * - CellChangeSubscription * - RabEstSubscription * - RabModSubscription * - RabRelSubscription * - MeasRepUeSubscription * - MeasTaSubscription * - CaReconfSubscription * - S1BearerSubscription * - NrMeasRepUeSubscription" * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BV.tplan2 */ testcase TC_MEC_SRV_RNIS_011_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_ALL_SUBSCRIPTIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_ALL_SUBSCRIPTIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_SUBSCRITIONS_URI & "?subscription_type=" & oct2char(unichar2oct(PX_SUBSCRIPTION_HREF_VALUE, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_ok( mw_http_message_body_json( mw_body_json_subscriptions_list( mw_subscriptions_list( PX_LINKS_SELF, { *, mw_subscription(-, PX_SUBSCRIPTION_TYPE), * } )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a cell subscription ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_011_OK /** * @desc Check that the RNIS service creates a new RNIS subscription. * Acceptable SUBSCRIPTION_TYPE are the following: * - CellChangeSubscription * - RabEstSubscription * - RabModSubscription * - RabRelSubscription * - MeasRepUeSubscription * - MeasTaSubscription * - CaReconfSubscription * - S1BearerSubscription * - NrMeasRepUeSubscription" * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BV.tplan2 */ testcase TC_MEC_SRV_RNIS_012_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_ALL_SUBSCRIPTIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_ALL_SUBSCRIPTIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_post( "/" & PICS_ROOT_API & PX_RNIS_SUBSCRITIONS_URI, v_headers, m_http_message_body_json( m_body_json_cell_change_subscription( m_cell_change_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, m_filter_criteria_ho( "01", { m_associate_id(UE_IPV4_ADDRESS, PX_ASSOCIATE_ID_VALUE) }, m_plmn("01", "001"), PX_CELL_ID, COMPLETED ), m_time_stamp(1577836800) ) ) ) ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_201_created( mw_http_message_body_json( mw_body_json_cell_change_subscription( mw_cell_change_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a cell subscription ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_012_OK } // End of group all_subscriptions group allSubscription_bo_bi { /** * @desc Check that the RNIS service responds with an error when it receives a request to get all RNIS subscriptions with a wrong subscription type * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BO_BI.tplan2 */ testcase TC_MEC_SRV_RNIS_011_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_ALL_SUBSCRIPTIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_ALL_SUBSCRIPTIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_SUBSCRITIONS_URI & "?subscription_type=wrongSubscriptionType", v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 400 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_011_BR /** * @desc Check that the RNIS service responds with an error when it receives a request to create a new RNIS subscription with a wrong format * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisSpecificSubscription_BV.tplan2 */ testcase TC_MEC_SRV_RNIS_012_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_ALL_SUBSCRIPTIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_ALL_SUBSCRIPTIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_post( "/" & PICS_ROOT_API & PX_RNIS_SUBSCRITIONS_URI, v_headers, m_http_message_body_json( m_body_json_cell_change_subscription( m_cell_change_subscription_wrong_subscription_type( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, m_filter_criteria_ho( "01", { m_associate_id(UE_IPV4_ADDRESS, PX_ASSOCIATE_ID_VALUE) }, m_plmn("01", "001"), PX_CELL_ID, COMPLETED ), m_time_stamp(1577836800) ) ) ) ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 400 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a cell subscription ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_012_BR } // End of group allSubscription_bo_bi group rnis_query { /** * @desc Check that the RNIS service returns the RAB information when requested. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BV.tplan2 */ testcase TC_MEC_SRV_RNIS_016_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/rab_info?cell_id=" & oct2char(unichar2oct(PX_CELL_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_ok( mw_http_message_body_json( mw_body_json_rab_info( mw_rab_info( mw_time_stamp, PX_APP_INS_ID, -, { mw_cell_user_info( { *, mw_ecgi(mw_plmn, PX_CELL_ID), * } ) } )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a RAB information ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_016_OK /** * @desc Check that the RNIS service returns the PLMN information when requested. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BV.tplan2 */ testcase TC_MEC_SRV_RNIS_017_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/plmn_info?app_ins_id=" & oct2char(unichar2oct(PX_APP_INS_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_ok( mw_http_message_body_json( mw_body_json_plmn_info( mw_plmn_info( mw_time_stamp, PX_APP_INS_ID, { mw_plmn } )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a PLMN information ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_017_OK /** * @desc Check that the RNIS service returns the S1 bearer information. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BV.tplan2 */ testcase TC_MEC_SRV_RNIS_018_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/s1_bearer_info?cell_id=" & oct2char(unichar2oct(PX_CELL_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_ok( mw_http_message_body_json( mw_body_json_s1_bearer_info( mw_s1_bearer_info( mw_time_stamp, { mw_s1_ue_info( { mw_temp_ue_id }, -, // TODO use superset instead of { mw_associate_id }, { *, mw_ecgi(mw_plmn, PX_CELL_ID), * }, { mw_s1_bearer_info_detailed // TODO To be refined }) })))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a S1BearerInfo information ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_018_OK /** * @desc Check that the RNIS service returns the L2 measurements information. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BV.tplan2 */ testcase TC_MEC_SRV_RNIS_019_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble // Test Body log("*** " & testcasename() & ": INCONC: Too many changes in JSON data description, not implemented ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_019_OK } // End of group rnis_query group rnis_query_bi_bo { /** * @desc Check that the RNIS service returns an error when the RAB information is requested with a malformatted message. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2 */ testcase TC_MEC_SRV_RNIS_016_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/rab_info?c_id=" & oct2char(unichar2oct(PX_CELL_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 400 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_016_BR /** * @desc Check that the RNIS service returns an error when the RAB information is requested with a malformatted message. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2 */ testcase TC_MEC_SRV_RNIS_016_NF() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/rab_info?cell_id=" & oct2char(unichar2oct(PX_NOT_EXISTENT_CELL_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 404 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_016_NF /** * @desc Check that the RNIS service returns an error when the PLMN information is requested with a malformatted message. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2 */ testcase TC_MEC_SRV_RNIS_017_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/plmn_info?app_id=" & oct2char(unichar2oct(PX_APP_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 400 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_017_BR /** * @desc Check that the RNIS service returns an error when the PLMN information for a not existing element is requested. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2 */ testcase TC_MEC_SRV_RNIS_017_NF() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/plmn_info?app_ins_id=" & oct2char(unichar2oct(PX_NOT_EXISTENT_APP_INS_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 404 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_017_NF /** * @desc Check that the RNIS service returns an error when the S1 bearer information is requested with a malformatted message. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2 */ testcase TC_MEC_SRV_RNIS_018_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/s1_bearer_info?c_id=" & oct2char(unichar2oct(PX_C_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 400 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_018_BR /** * @desc Check that the RNIS service returns an error when the S1 bearer information for a not existing element is requested. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2 */ testcase TC_MEC_SRV_RNIS_018_NF() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/s1_bearer_info?cell_id=" & oct2char(unichar2oct(PX_NOT_EXISTENT_CELL_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 404 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_018_NF /** * @desc Check that the RNIS service returns an error when the L2 measurements information is requested with a malformatted message. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2 */ testcase TC_MEC_SRV_RNIS_019_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/layer2_meas?c_id=" & oct2char(unichar2oct(PX_C_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 400 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_019_BR /** * @desc Check that the RNIS service returns an error when the L2 measurements information for a not existing element is requested. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisQuery_BI_BO.tplan2 */ testcase TC_MEC_SRV_RNIS_019_NF() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_QUERY required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( m_http_request_get( "/" & PICS_ROOT_API & PX_RNIS_QUERIES_URI & "/layer2_meas?cell_id=" & oct2char(unichar2oct(PX_NOT_EXISTENT_CELL_ID, "UTF-8")), v_headers ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] httpPort.receive( mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( mw_body_json_rni_problem_details( mw_problem_details( -, -, 404 )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_down(); } // End of testcase TC_MEC_SRV_RNIS_019_NF } // End of group rnis_query_bi_bo group rnis_notifications { /** * @desc Check that the RNIS service sends an RNIS notification about cell change if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; var integer v_result; var JsonBody v_json_body; var charstring v_subscription_id; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); v_result := f_register_for_notification( "/" & PICS_ROOT_API & PX_RNIS_SUBSCRITIONS_URI, v_headers, m_body_json_cell_change_subscription( m_cell_change_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, m_filter_criteria_ho( "01", { m_associate_id(UE_IPV4_ADDRESS, PX_ASSOCIATE_ID_VALUE) }, m_plmn("01", "001"), PX_CELL_ID, COMPLETED ) ) ), v_json_body ); if (v_result == 0) { // Extract subscription ID for de-registration if (ispresent(v_json_body.cellChangeSubscription)) { v_subscription_id := oct2char(unichar2oct(v_json_body.cellChangeSubscription.links.self_, "UTF-8")); } else { log("*** " & testcasename() & ": INCONC: Unexpected JSON message ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); // Fail with incoclusive verdict, testcase execution will terminate here } } else { log("*** " & testcasename() & ": INCONC: Failed to register subsciption ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); // Fail with incoclusive verdict, testcase execution will terminate here } action("Trigger a cell change event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_cell_change_subscription( mw_cell_change_subscription( PX_CALLBACK_REFERENCE )))))) { tc_wait.stop; log("*** " & testcasename() & ": INFO: IUT successfully sends cell-change notification ***"); // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends cell-change notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_unregister_for_notification( "/" & PICS_ROOT_API & PX_RNIS_SUBSCRITIONS_URI & "/cell_change/" & v_subscription_id, v_headers ); f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_001_OK /** * @desc Check that the RNIS service sends an RNIS notification about RAB establishment if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); action("Trigger a RabEstSubscription event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_rab_est_subscription( mw_rab_est_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, mw_filter_criteria_qci( PX_APP_INS_ID, PX_E_RAB_ID, -, PX_QCI ))))))) { tc_wait.stop; // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends RAB establishment notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_002_OK /** * @desc Check that the RNIS service sends an RNIS notification about RAB modification if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); action("Trigger a RabEstSubscription event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_rab_mod_subscription( mw_rab_mod_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, mw_filter_criteria_qci( PX_APP_INS_ID, PX_E_RAB_ID, -, PX_QCI ))))))) { tc_wait.stop; // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends RAB modification notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_003_OK /** * @desc Check that the RNIS service sends an RNIS notification about RAB release if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); action("Trigger a RabEstSubscription event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_rab_rel_subscription( mw_rab_rel_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, mw_filter_criteria_qci( PX_APP_INS_ID, PX_E_RAB_ID, -, PX_QCI ))))))) { tc_wait.stop; // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_004_OK /** * @desc Check that the RNIS service sends an RNIS notification about UE measurement report if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_005_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); action("Trigger a MeasTaSubscription event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_meas_rep_ue_subscription( mw_meas_rep_ue_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, mw_filter_criteria_tri( PX_APP_INS_ID, -//TODO PX_E_RAB_ID ))))))) { tc_wait.stop; // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_005_OK /** * @desc Check that the RNIS service sends an RNIS notification about UE timing advance if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_006_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); action("Trigger a MeasTaSubscription event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_meas_ta_subscription( mw_meas_ta_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, mw_filter_criteria_ho( PX_APP_INS_ID, -//TODO PX_E_RAB_ID ))))))) { tc_wait.stop; // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_006_OK /** * @desc Check that the RNIS service sends an RNIS notification about UE carrier aggregation reconfiguration if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_007_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); action("Trigger a MeasTaSubscription event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_ca_reconf_subscription( mw_ca_reconfig_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, mw_filter_criteria( PX_APP_INS_ID, -//TODO PX_E_RAB_ID ))))))) { tc_wait.stop; // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_007_OK /** * @desc Check that the RNIS service sends an RNIS notification about S1-U bearer if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_008_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); action("Trigger a MeasTaSubscription event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_s1_bearer_subscription( mw_s1_bearer_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, -//mw_filter_criteria )))))) { tc_wait.stop; // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_008_OK /** * @desc Check that the RNIS service sends an RNIS notification about 5G NR UE measurement report if the RNIS service has an associated subscription and the event is generated. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/RNIS/RnisNotifications.tplan2 */ testcase TC_MEC_SRV_RNIS_009_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { log("*** " & testcasename() & ": PICS_RNIS and PICS_RNIS_NOTIFICATIONS required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf_01_http_notif_up(); // Test adapter configuration // Preamble f_init_default_headers_list(-, -, v_headers); action("Trigger a MeasRepUeNotification event"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_wait.start; alt { [] httpPort_notif.receive( mw_http_request( mw_http_request_post( PX_CALLBACK_URI, -, mw_http_message_body_json( mw_body_json_s1_bearer_subscription( mw_s1_bearer_subscription( PX_CALLBACK_REFERENCE, PX_LINKS_SELF, -//mw_filter_criteria )))))) { tc_wait.stop; // Send 204 No Content httpPort_notif.send(m_http_response(m_http_response_204_no_content(v_headers))); log("*** " & testcasename() & ": PASS: IUT successfully sends RAB release notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement // Postamble f_cf_01_http_notif_down(); } // End of testcase TC_MEC_SRV_RNIS_009_OK } // End of group rnis_notifications } // End of module AtsMec_RnisAPI_TestCases