Commit 207a72db authored by Yann Garcia's avatar Yann Garcia
Browse files

Validation VIS ATS against MEC Sanbox

parent 1b3a7c70
Loading
Loading
Loading
Loading
+18 −9
Original line number Original line Diff line number Diff line
@@ -67,33 +67,42 @@ int json_codec::encode (const LibHttp__JsonMessageBodyTypes::JsonBody& msg, OCTE
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_trafficRule)) {
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_trafficRule)) {
    const EdgePlatformApplicationEnablementAPI__TypesAndValues::TrafficRule& traffic_rule = msg.trafficRule();
    const EdgePlatformApplicationEnablementAPI__TypesAndValues::TrafficRule& traffic_rule = msg.trafficRule();
    traffic_rule.encode(EdgePlatformApplicationEnablementAPI__TypesAndValues::TrafficRule_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    traffic_rule.encode(EdgePlatformApplicationEnablementAPI__TypesAndValues::TrafficRule_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = /*char2oct(CHARSTRING("{\"TrafficRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_bwInfo)) {
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_bwInfo)) {
    const TrafficManagementAPI__TypesAndValues::BwInfo& bw_info = msg.bwInfo();
    const TrafficManagementAPI__TypesAndValues::BwInfo& bw_info = msg.bwInfo();
    bw_info.encode(TrafficManagementAPI__TypesAndValues::BwInfo_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    bw_info.encode(TrafficManagementAPI__TypesAndValues::BwInfo_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = /*char2oct(CHARSTRING("{\"TrafficRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_mtsSessionInfo)) {
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_mtsSessionInfo)) {
    const TrafficManagementAPI__TypesAndValues::MtsSessionInfo& mts_session_info = msg.mtsSessionInfo();
    const TrafficManagementAPI__TypesAndValues::MtsSessionInfo& mts_session_info = msg.mtsSessionInfo();
    mts_session_info.encode(TrafficManagementAPI__TypesAndValues::MtsSessionInfo_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    mts_session_info.encode(TrafficManagementAPI__TypesAndValues::MtsSessionInfo_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = /*char2oct(CHARSTRING("{\"TrafficRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_predictedQos)) {
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_predictedQos)) {
    const V2XInformationServiceAPI__TypesAndValues::PredictedQos& predicted_qos = msg.predictedQos();
    const V2XInformationServiceAPI__TypesAndValues::PredictedQos& predicted_qos = msg.predictedQos();
    predicted_qos.encode(V2XInformationServiceAPI__TypesAndValues::PredictedQos_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    predicted_qos.encode(V2XInformationServiceAPI__TypesAndValues::PredictedQos_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = /*char2oct(CHARSTRING("{\"TrafficRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;

  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_v2xMsgDistributionServerInfo)) {
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_v2xMsgDistributionServerInfo)) {
    const V2XInformationServiceAPI__TypesAndValues::V2xMsgDistributionServerInfo& v2x_msg_distribution_server_info = msg.v2xMsgDistributionServerInfo();
    const V2XInformationServiceAPI__TypesAndValues::V2xMsgDistributionServerInfo& v2x_msg_distribution_server_info = msg.v2xMsgDistributionServerInfo();
    v2x_msg_distribution_server_info.encode(V2XInformationServiceAPI__TypesAndValues::V2xMsgDistributionServerInfo_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    v2x_msg_distribution_server_info.encode(V2XInformationServiceAPI__TypesAndValues::V2xMsgDistributionServerInfo_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = /*char2oct(CHARSTRING("{\"TrafficRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_provChgUuUniSubscription)) {
    const V2XInformationServiceAPI__TypesAndValues::ProvChgUuUniSubscription& prov_chg_uu_uni_subscription = msg.provChgUuUniSubscription();
    prov_chg_uu_uni_subscription.encode(V2XInformationServiceAPI__TypesAndValues::ProvChgUuUniSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_provChgUuMbmsSubscription)) {
    const V2XInformationServiceAPI__TypesAndValues::ProvChgUuMbmsSubscription& prov_chg_uu_mbms_subscription = msg.provChgUuMbmsSubscription();
    prov_chg_uu_mbms_subscription.encode(V2XInformationServiceAPI__TypesAndValues::ProvChgUuMbmsSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;




  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_assocStaSubscription)) {
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_assocStaSubscription)) {
    const WlanInformationAPI__TypesAndValues::AssocStaSubscription& assoc_sta_subscription = msg.assocStaSubscription();
    const WlanInformationAPI__TypesAndValues::AssocStaSubscription& assoc_sta_subscription = msg.assocStaSubscription();
    assoc_sta_subscription.encode(WlanInformationAPI__TypesAndValues::AssocStaSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    assoc_sta_subscription.encode(WlanInformationAPI__TypesAndValues::AssocStaSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = /*char2oct(CHARSTRING("{\"TrafficRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_staDataRateSubscription)) {
  } else if (msg.ischosen(LibHttp__JsonMessageBodyTypes::JsonBody::ALT_staDataRateSubscription)) {
    const WlanInformationAPI__TypesAndValues::StaDataRateSubscription& sta_data_rate_subscription = msg.staDataRateSubscription();
    const WlanInformationAPI__TypesAndValues::StaDataRateSubscription& sta_data_rate_subscription = msg.staDataRateSubscription();
    sta_data_rate_subscription.encode(WlanInformationAPI__TypesAndValues::StaDataRateSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    sta_data_rate_subscription.encode(WlanInformationAPI__TypesAndValues::StaDataRateSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON);
    data = /*char2oct(CHARSTRING("{\"TrafficRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
    data = OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/;
  } else {
  } else {
    loggers::get_instance().error("json_codec::encode: Not supported");
    loggers::get_instance().error("json_codec::encode: Not supported");
  }
  }
@@ -335,7 +344,7 @@ int json_codec::decode (const OCTETSTRING& p_data, LibHttp__JsonMessageBodyTypes
    RnisAPI__TypesAndValues::RabRelSubscription rab_rel_subscription;
    RnisAPI__TypesAndValues::RabRelSubscription rab_rel_subscription;
    rab_rel_subscription.decode(RnisAPI__TypesAndValues::RabRelSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    rab_rel_subscription.decode(RnisAPI__TypesAndValues::RabRelSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    msg.rabRelSubscription() = rab_rel_subscription;
    msg.rabRelSubscription() = rab_rel_subscription;
  } else if ((it->second.find("\"_links\"") != std::string::npos) && (it->second.find("subscriptions") != std::string::npos)) { // SubscriptionLinkList
  } else if ((it->second.find("\"_links\"") != std::string::npos) && (it->second.find("subscriptions\"") != std::string::npos)) { // SubscriptionLinkList
    // FIXME Conflict with MEC-028 SubscriptionLinkList data type
    // FIXME Conflict with MEC-028 SubscriptionLinkList data type
    RnisAPI__TypesAndValues::SubscriptionLinkList subscription_link_list;
    RnisAPI__TypesAndValues::SubscriptionLinkList subscription_link_list;
    subscription_link_list.decode(RnisAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
    subscription_link_list.decode(RnisAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON);
+17 −3
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@ V2XInformationServiceAPI_Pixits.PX_V2X_ECGI := "268804901557"
V2XInformationServiceAPI_Pixits.PX_V2X_CELL_ID   := "101010101"
V2XInformationServiceAPI_Pixits.PX_V2X_CELL_ID   := "101010101"
V2XInformationServiceAPI_Pixits.PX_V2X_ECGI_LAT  := 43.730846
V2XInformationServiceAPI_Pixits.PX_V2X_ECGI_LAT  := 43.730846
V2XInformationServiceAPI_Pixits.PX_V2X_ECGI_LONG := 7.415385
V2XInformationServiceAPI_Pixits.PX_V2X_ECGI_LONG := 7.415385
V2XInformationServiceAPI_Pixits.PX_PROV_UU_UNI_SUB_CALLBACK := "https://yanngarcia.ddns.net:36001/vis/v2/"


[LOGGING]
[LOGGING]
# In this section you can specify the name of the log file and the classes of events
# In this section you can specify the name of the log file and the classes of events
@@ -89,7 +90,7 @@ system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_003_NF
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_003_NF


# Check that the IUT processes properly a request to information of V2X Message Distribution servers
# Check that the IUT processes properly a request to information of V2X Message Distribution servers
AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_004_OK
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_004_OK
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_004_BR
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_004_BR
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
@@ -109,19 +110,32 @@ AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_004_OK
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_007_OK_05
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_007_OK_05
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_007_BR
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_007_BR


# Check that the IUT responds with the requested to create a subscription - ProvChgUuUniSubscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_01
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_01
# Check that the IUT responds with the requested to create a subscription - ProvChgUuMbmsSubscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_02
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_02
# Check that the IUT responds with the requested to create a subscription - ProvChgPc5Subscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_03
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_03
# Check that the IUT responds with the requested to create a subscription - V2xMsgSubscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_04
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_04
# Check that the IUT responds with the requested to create a subscription - PredQosSubscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_05
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_OK_05
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_BR
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - Wrong SubscriptionType
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_BR_01
# Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - No Callback neitheir WebSocket
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_008_BR_02


# Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ProvChgUuUniSubscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_01
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_01
# Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ProvChgUuMbmsSubscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_02
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_02
# Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ProvChgPc5Subscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_03
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_03
# Check that the IUT responds with the requested of subscription information when queried by a MEC Application - PredQosSubscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_04
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_04
# Check that the IUT responds with the requested of subscription information when queried by a MEC Application - PredQosSubscription
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_05
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_OK_05
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_BR
AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_BR
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_NF
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_009_NF


#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_010_OK_01
#AtsMec_V2XInformationServiceAPI_TestCases.TC_MEC_MEC030_SRV_V2X_010_OK_01
+79 −8
Original line number Original line Diff line number Diff line
@@ -758,7 +758,7 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
                                                                                                                                                                                                             m_info_protocol,
                                                                                                                                                                                                             m_info_protocol,
                                                                                                                                                                                                             mw_info_connection(
                                                                                                                                                                                                             mw_info_connection(
                                                                                                                                                                                                                                PX_V2X_MC_SERVER, 
                                                                                                                                                                                                                                PX_V2X_MC_SERVER, 
                                                                                                                                                                                                                                oct2int(str2oct(PX_V2X_MC_PORT))
                                                                                                                                                                                                                                str2int(PX_V2X_MC_PORT)
                                                                                                                                                                                                             ))
                                                                                                                                                                                                             ))
                                                                                                                                                                             }
                                                                                                                                                                             }
                            )))))) {
                            )))))) {
@@ -870,7 +870,7 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
                                                                                                                             m_v2x_msg_distribution_server_info(
                                                                                                                             m_v2x_msg_distribution_server_info(
                                                                                                                                                                {
                                                                                                                                                                {
                                                                                                                                                                  m_v2x_msg_distribution_server(
                                                                                                                                                                  m_v2x_msg_distribution_server(
                                                                                                                                                                                                m_info_protocol
                                                                                                                                                                                                m_info_protocol({ AMQP_1_0 })
                                                                                                                                                                                                )
                                                                                                                                                                                                )
                                                                                                                                                                }
                                                                                                                                                                }
                    ))))));
                    ))))));
@@ -1706,12 +1706,12 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
                                                                                                                                                                              -,
                                                                                                                                                                              -,
                                                                                                                                                                              PX_PROV_UU_UNI_SUB_CALLBACK,
                                                                                                                                                                              PX_PROV_UU_UNI_SUB_CALLBACK,
                                                                                                                                                                              ?
                                                                                                                                                                              ?
                            )))))) {
                            )))))) -> value v_response{
          tc_ac.stop;
          tc_ac.stop;
          
          
          // Check HTTP Location header
          // Check HTTP Location header
          if (f_check_headers(v_response.response.header) == false) {
          if (f_check_headers(v_response.response.header) == false) {
            log("*** " & testcasename() & ": FAIL: IUT failed in Area subscription  ***");
            log("*** " & testcasename() & ": FAIL: IUT failed in ProvChgUuUniSubscription subscription  ***");
            f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
            f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
          } else {
          } else {
            var charstring_list v_header_location;
            var charstring_list v_header_location;
@@ -1723,6 +1723,7 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
                                        );
                                        );


            log("*** " & testcasename() & ": PASS: IUT successfully responds with a provChgUuUniSubscription, SubscriptionId: ", v_subscription_id," ***");
            log("*** " & testcasename() & ": PASS: IUT successfully responds with a provChgUuUniSubscription, SubscriptionId: ", v_subscription_id," ***");
            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
          }
          }
        }
        }
        [] tc_ac.timeout {
        [] tc_ac.timeout {
@@ -1820,6 +1821,7 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
                                        );
                                        );


            log("*** " & testcasename() & ": PASS: IUT successfully responds with a provChgUuMbmsSubscription, SubscriptionId: ", v_subscription_id," ***");
            log("*** " & testcasename() & ": PASS: IUT successfully responds with a provChgUuMbmsSubscription, SubscriptionId: ", v_subscription_id," ***");
            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
          }
          }
        }
        }
        [] tc_ac.timeout {
        [] tc_ac.timeout {
@@ -1907,6 +1909,7 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
                                        );
                                        );


            log("*** " & testcasename() & ": PASS: IUT successfully responds with a provChgPc5Subscription, SubscriptionId: ", v_subscription_id," ***");
            log("*** " & testcasename() & ": PASS: IUT successfully responds with a provChgPc5Subscription, SubscriptionId: ", v_subscription_id," ***");
            f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
          }
          }
        }
        }
        [] tc_ac.timeout {
        [] tc_ac.timeout {
@@ -2077,9 +2080,9 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
    } // End of testcase TC_MEC_MEC030_SRV_V2X_008_OK_05
    } // End of testcase TC_MEC_MEC030_SRV_V2X_008_OK_05


    /**
    /**
     * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
     * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - Wrong SubscriptionType
     */
     */
    testcase TC_MEC_MEC030_SRV_V2X_008_BR() runs on HttpComponent system HttpTestAdapter {
    testcase TC_MEC_MEC030_SRV_V2X_008_BR_01() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      // Local variables
      var Headers v_headers;
      var Headers v_headers;
      
      
@@ -2131,7 +2134,75 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
                            )) {
                            )) {
          tc_ac.stop;
          tc_ac.stop;
          
          
          log("*** " & testcasename() & ": PASS: IUT successfully registers subscription ***");
          log("*** " & testcasename() & ": PASS: IUT successfully responds with the correct error code ***");
          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_MEC030_SRV_V2X_008_BR_01

    /**
     * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - No Callback neitheir WebSocket
     */
    testcase TC_MEC_MEC030_SRV_V2X_008_BR_02() runs on HttpComponent system HttpTestAdapter {
      // Local variables
      var Headers v_headers;
      
      // Test control
      if (not(PICS_MEC_PLAT) or not(PICS_V2X_INFORMATION_SERVICE_API_SUPPORTED)) {
        log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_V2X_INFORMATION_SERVICE_API_SUPPORTED 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_ME_V2X_URI_SUB,
                                                       v_headers,
                                                       m_http_message_body_json(
                                                                                m_body_json_prov_chg_uu_uni_subscription(
                                                                                                                         m_prov_chg_uu_uni_subscription(
                                                                                                                                                        m_prov_chg_uu_uni_filter_criteria(
                                                                                                                                                                                          m_location_info(
                                                                                                                                                                                                          m_ecgi(
                                                                                                                                                                                                                PX_V2X_CELL_ID,m_plmn(PX_MCC, PX_MNC)
                                                                                                                                                                                                                ),
                                                                                                                                                                                                          m_location_info_geo_area(
                                                                                                                                                                                                                                  43.72,
                                                                                                                                                                                                                                  10.41
                                                                                                                                                                                                                                  )),
                                                                                                                                                                                          m_v2x_application_server(
                                                                                                                                                                                                                  oct2char(unichar2oct(PX_V2X_SERVER_IP_ADDRESS, "UTF-8")),
                                                                                                                                                                                                                  oct2char(unichar2oct(PX_V2X_SERVER_UDP_PORT, "UTF-8"))
                                                                                                                                                                                                                  )),
                                                                                                                                                                                          ""
                                                                                                                                                                                          ))))));
      f_selfOrClientSyncAndVerdict(c_prDone, e_success);

      // Test Body
      tc_ac.start;
      alt {
        [] httpPort.receive(
                            mw_http_response(
                                              mw_http_response_400_bad_request
                            )) {
          tc_ac.stop;
          
          log("*** " & testcasename() & ": PASS: IUT successfully responds with the correct error code ***");
          f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
          f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
        }
        }
        [] tc_ac.timeout {
        [] tc_ac.timeout {
@@ -2142,7 +2213,7 @@ module AtsMec_V2XInformationServiceAPI_TestCases {
      
      
      // postamble
      // postamble
      f_cf_01_http_down();
      f_cf_01_http_down();
    } // End of testcase TC_MEC_MEC030_SRV_V2X_008_BR
    } // End of testcase TC_MEC_MEC030_SRV_V2X_008_BR_02


    /**
    /**
     * @desc Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ProvChgUuUniSubscription
     * @desc Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ProvChgUuUniSubscription
+2 −1
Original line number Original line Diff line number Diff line
@@ -50,7 +50,8 @@ module AtsMec_V2XInformationServiceAPI_TestControl {
      execute(TC_MEC_MEC030_SRV_V2X_008_OK_03());
      execute(TC_MEC_MEC030_SRV_V2X_008_OK_03());
      execute(TC_MEC_MEC030_SRV_V2X_008_OK_04());
      execute(TC_MEC_MEC030_SRV_V2X_008_OK_04());
      execute(TC_MEC_MEC030_SRV_V2X_008_OK_05());
      execute(TC_MEC_MEC030_SRV_V2X_008_OK_05());
      execute(TC_MEC_MEC030_SRV_V2X_008_BR());
      execute(TC_MEC_MEC030_SRV_V2X_008_BR_01());
      execute(TC_MEC_MEC030_SRV_V2X_008_BR_02());


      execute(TC_MEC_MEC030_SRV_V2X_009_OK_01());
      execute(TC_MEC_MEC030_SRV_V2X_009_OK_01());
      execute(TC_MEC_MEC030_SRV_V2X_009_OK_02());
      execute(TC_MEC_MEC030_SRV_V2X_009_OK_02());