Skip to content
AtsMec_ApplicationMobiltyServiceAPI_TestCases.ttcn 91.9 KiB
Newer Older
/**
*    @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 021 V2.1.1
*/
  module AtsMec_ApplicationMobiltyServiceAPI_TestCases {
  
  // JSON
  import from Json all;

 // Libcommon
  import from LibCommon_BasicTypesAndValues all;
  import from LibCommon_Sync all;
  
  // LibHttp
  import from LibHttp_TypesAndValues all;
  import from LibHttp_Functions all;
  import from LibHttp_Templates all;
  import from LibHttp_JsonTemplates all;
  import from LibHttp_TestSystem all;
  
  // LibMec_ApplicationMobiltyServiceAPI
  import from ApplicationMobilityServiceAPI_TypesAndValues all;
  import from ApplicationMobilityServiceAPI_Templates all;
  import from ApplicationMobilityServiceAPI_Functions all;
  import from ApplicationMobilityServiceAPI_Pics all;
  import from ApplicationMobilityServiceAPI_Pixits all;
  
  // LibMec
  import from LibMec_TypesAndValues all;
  import from LibMec_Templates all;
  import from LibMec_Functions all;
  import from LibMec_Pics all;
  import from LibMec_Pixits all;
  
  group appMobilityServices {
  
    /**
     * @desc Check that the AMS service returns information about the registered application mobility services when requested
     */
    testcase TC_MEC_MEC021_SRV_AMS_001_OK_01() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      var Headers v_headers;
      var RegistrationInfo v_registration_info_1;
      var RegistrationInfo v_registration_info_2;

      // Test control
      if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***");
        setverdict(inconc);
        stop;
      }

      // Test component configuration
      f_cf_01_http_up();

      // Preamble
      f_create_application_mobility_services(-, v_registration_info_1);
      f_create_application_mobility_services(PX_APP_INS_ID_2, v_registration_info_2);
      f_init_default_headers_list(-, -, v_headers);
      httpPort.send(
                    m_http_request(
                                   m_http_request_get(
                                                      PICS_ROOT_API & PX_ME_APP_AMS_URI,
                                                      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_ams_registration_info_list(
                                                                                                                                   {
                                                                                                                                     *,
                                                                                                                                     v_registration_info_1,
                                                                                                                                     v_registration_info_2,
                                                                                                                                     *
                                                                                                                                   }
                            ))))) {
          
          log("*** " & testcasename() & ": PASS: IUT successfully responds with a list of RegistrationInfo ***");
          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_delete_application_mobility_services(v_registration_info_1.appMobilityServiceId);
      f_delete_application_mobility_services(v_registration_info_2.appMobilityServiceId);
      f_cf_01_http_down();
    } // End of testcase TC_MEC_MEC021_SRV_AMS_001_OK_01

    /**
     * @desc Check that the AMS service returns information about the a specific registered application mobility service when requested - filter
     */
    testcase TC_MEC_MEC021_SRV_AMS_001_OK_02() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      var Headers v_headers;
      var RegistrationInfo v_registration_info_1;
      var RegistrationInfo v_registration_info_2;

      // Test control
      if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***");
        setverdict(inconc);
        stop;
      }

      // Test component configuration
      f_cf_01_http_up();

      // Preamble
      f_create_application_mobility_services(-, v_registration_info_1);
      f_create_application_mobility_services(PX_APP_INS_ID_2, v_registration_info_2);
      f_init_default_headers_list(-, -, v_headers);
      httpPort.send(
                    m_http_request(
                                   m_http_request_get(
                                                      PICS_ROOT_API & PX_ME_APP_AMS_URI & "?filter=(eq,appMobilityServiceId," & v_registration_info_1.appMobilityServiceId & ")",
                                                      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_ams_registration_info_list(
                                                                                                                                   {
                                                                                                                                     *,
                                                                                                                                     v_registration_info_1,
                                                                                                                                     *
                                                                                                                                   }
                            ))))) {
          tc_ac.stop;
          
          log("*** " & testcasename() & ": PASS: IUT successfully responds with a list of RegistrationInfo ***");
          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_delete_application_mobility_services(v_registration_info_1.appMobilityServiceId);
      f_delete_application_mobility_services(v_registration_info_2.appMobilityServiceId);
      f_cf_01_http_down();
    } // End of testcase TC_MEC_MEC021_SRV_AMS_001_OK_02

    /**
     * @desc Check that the AMS service returns information about the a specific registered application mobility service when requested - filter
     */
    testcase TC_MEC_MEC021_SRV_AMS_001_OK_03() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      var Headers v_headers;
      var RegistrationInfo v_registration_info_1;
      var RegistrationInfo v_registration_info_2;

      // Test control
      if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***");
        setverdict(inconc);
        stop;
      }

      // Test component configuration
      f_cf_01_http_up();

      // Preamble
      f_create_application_mobility_services(-, v_registration_info_1);
      f_create_application_mobility_services(PX_APP_INS_ID_2, v_registration_info_2);
      f_init_default_headers_list(-, -, v_headers);
      httpPort.send(
                    m_http_request(
                                   m_http_request_get(
                                                      PICS_ROOT_API & PX_ME_APP_AMS_URI & "?filter=(eq,serviceConsumerId[appInstanceId]," & PX_APP_INS_ID_2 & ")",
                                                      v_headers
                    )));
      f_selfOrClientSyncAndVerdict(c_prDone, e_success);

      // Test Body
Loading full blame...