diff --git a/.jenkins.sh b/.jenkins.sh index 5a6298e36dac0f56ec1085a26a9a46c502600525..1ebaacfb5675eedd53271520e158156afb1cbd32 100755 --- a/.jenkins.sh +++ b/.jenkins.sh @@ -7,7 +7,13 @@ cd "$(dirname "$0")" +cd ./docker run_dir="$(pwd)" -./docker/build-container.sh -./docker/run-container.sh "${run_dir}" +./build.sh +#./run.sh + +cd - + +exit 0 + diff --git a/README.md b/README.md index 6ce7b6fb66136394763337bc0318cbc37c7ad74d..10623022c7381b36f66a2894c98c44ab1c56f321 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,22 @@ -# MEC Testing Framework in TTCN-3 +# MEC Testing Framework in TTCN-3 - - GS 032-3 ## Introduction -This repositories contains the test specifications and test adapter code for MEC Testing project in TTCN-3. +This repositories contains the test specifications and test adapter code for MEC API Conformance Testing in TTCN-3, GS 032-3. + +Latest publicly available drafts are available at https://docbox.etsi.org/isg/mec/open. + +**{- Disclaimer: The content of this repository is related to a DRAFT, i.e. a working document, of ETSI ISG MEC. -}** +{-The content of the repository is provided for information only and is still under development. It may be updated, replaced, or removed at any time. Do not use as reference material. -} + +For more information on ETSI ISG Multi-access Edge Computing (MEC), visit https://www.etsi.org/technologies/multi-access-edge-computing. ## Contact information -Email at cti_support at etsi dot org +Email at `cti_support` at `etsi` dot `org`. ## License Unless specified otherwise, the content of this repository and the files contained are released under the BSD-3-Clause license. See the attached LICENSE file or visit https://forge.etsi.org/legal-matters. - ## Standard links - Multi-access Edge Computating standards, accessible [here](https://www.etsi.org/standards#page=1&search=MEC&title=1&etsiNumber=1&content=1&version=0&onApproval=1&published=1&historical=1&startDate=1988-01-15&endDate=2019-05-06&harmonized=0&keyword=&TB=&stdType=&frequency=&mandate=&collection=&sort=1). diff --git a/ccsrc/Protocols/Http/http_codec.cc b/ccsrc/Protocols/Http/http_codec.cc index 6a580a6080bebc939e75d24b6b642ead009d5fbe..c2c36271bb7572ee2e222e9c73b5aeb5bbede912 100644 --- a/ccsrc/Protocols/Http/http_codec.cc +++ b/ccsrc/Protocols/Http/http_codec.cc @@ -8,8 +8,6 @@ #include "loggers.hh" -#include "converter.hh" - #include "LibItsHttp_TypesAndValues.hh" #include "LibItsHttp_MessageBodyTypes.hh" #include "LibItsHttp_XmlMessageBodyTypes.hh" @@ -80,7 +78,7 @@ int http_codec::decode (const OCTETSTRING& data, LibItsHttp__TypesAndValues::Htt response.version__minor() = std::stoi(m[2].str().c_str()); response.statuscode() = std::stoi(m[3].str().c_str()); response.statustext() = CHARSTRING(m[4].str().c_str()); - LibItsHttp__TypesAndValues::HeaderLines headers; + LibItsHttp__TypesAndValues::Headers headers; std::string content_type; decode_headers(decoding_buffer, headers, content_type); response.header() = headers; @@ -105,7 +103,7 @@ int http_codec::decode (const OCTETSTRING& data, LibItsHttp__TypesAndValues::Htt request.uri() = CHARSTRING(m[2].str().c_str()); request.version__major() = std::stoi(m[3].str().c_str()); request.version__minor() = std::stoi(m[4].str().c_str()); - LibItsHttp__TypesAndValues::HeaderLines headers; + LibItsHttp__TypesAndValues::Headers headers; std::string content_type; decode_headers(decoding_buffer, headers, content_type); request.header() = headers; @@ -142,10 +140,10 @@ int http_codec::encode_request(const LibItsHttp__TypesAndValues::Request& p_requ p_encoding_buffer.put_cs("\r\n"); // Encode headers excepeted the Content-Length - const LibItsHttp__TypesAndValues::HeaderLines& headers = p_request.header(); + const LibItsHttp__TypesAndValues::Headers& headers = p_request.header(); std::string content_type; for (int i = 0; i < headers.size_of(); i++) { - const LibItsHttp__TypesAndValues::HeaderLine& header = headers[i]; + const LibItsHttp__TypesAndValues::Header& header = headers[i]; loggers::get_instance().log_msg("http_codec::encode_request: Processing header ", header.header__name()); if (std::string(static_cast(header.header__name())).compare("Content-Length") == 0) { // Skip it, processed later loggers::get_instance().log("http_codec::encode_request: Skip it"); @@ -203,12 +201,13 @@ int http_codec::encode_request(const LibItsHttp__TypesAndValues::Request& p_requ p_encoding_buffer.put_cs("Content-Length: "); if (_ec.length != 0) { loggers::get_instance().log("http_codec::encode_request: Content-Length: %s", static_cast(int2str(_ec.length + 2/*Stand for the last CRLF*/))); - p_encoding_buffer.put_cs(static_cast(int2str(_ec.length + 2/*Stand for the last CRLF*/))); + p_encoding_buffer.put_cs(static_cast(int2str(_ec.length))); _ec.is_content_length_present = 0x01; } else { p_encoding_buffer.put_cs("0"); _ec.is_content_length_present = 0x00; } + loggers::get_instance().log("http_codec::encode_request: Content-Length: %d - %x", _ec.length, _ec.is_content_length_present); p_encoding_buffer.put_cs("\r\n"); // Add message body @@ -216,7 +215,7 @@ int http_codec::encode_request(const LibItsHttp__TypesAndValues::Request& p_requ if (_ec.is_content_length_present == 0x01) { loggers::get_instance().log_msg("http_codec::encode_request: Add body ", os); p_encoding_buffer.put_os(os); - p_encoding_buffer.put_cs("\r\n"); + //p_encoding_buffer.put_cs("\r\n"); } loggers::get_instance().log_to_hexa("<<< http_codec::encode_request: ", p_encoding_buffer); @@ -239,11 +238,11 @@ int http_codec::encode_response (const LibItsHttp__TypesAndValues::Response& p_r } p_encoding_buffer.put_cs("\r\n"); - // Encode headers excepted the Content-Length - const LibItsHttp__TypesAndValues::HeaderLines& headers = p_response.header(); + // Encode headers excepeted the Content-Length + const LibItsHttp__TypesAndValues::Headers& headers = p_response.header(); std::string content_type; for (int i = 0; i < headers.size_of(); i++) { - const LibItsHttp__TypesAndValues::HeaderLine& header = headers[i]; + const LibItsHttp__TypesAndValues::Header& header = headers[i]; loggers::get_instance().log_msg("http_codec::encode_response: Processing header ", header.header__name()); p_encoding_buffer.put_cs(header.header__name()); p_encoding_buffer.put_cs(": "); @@ -256,7 +255,8 @@ int http_codec::encode_response (const LibItsHttp__TypesAndValues::Response& p_r if (v.size_of() > 0) { loggers::get_instance().log_msg("http_codec::encode_response: Processing value ", v[0]); if (std::string(static_cast(header.header__name())).compare("Content-Type") == 0) { // Store it for HTTP body payload encoding - int j = 1; + loggers::get_instance().log("http_codec::encode_response: Storing Content-Type"); + int j = 0; while (j < v.size_of()) { content_type += v[j++]; } // End of 'while' statement @@ -266,7 +266,7 @@ int http_codec::encode_response (const LibItsHttp__TypesAndValues::Response& p_r while (j < v.size_of()) { p_encoding_buffer.put_cs(", "); loggers::get_instance().log_msg("http_codec::encode_response: Processing value ", v[j]); - p_encoding_buffer.put_cs(v[j]); + p_encoding_buffer.put_cs(v[j++]); j += 1; } // End of 'while' statement } @@ -288,34 +288,39 @@ int http_codec::encode_response (const LibItsHttp__TypesAndValues::Response& p_r _ec.length = os.lengthof(); _ec.is_content_length_present = 0x01; } - loggers::get_instance().log("http_codec::encode_request: length=%d", _ec.length); + loggers::get_instance().log("http_codec::encode_response: length=%d", _ec.length); } else { - loggers::get_instance().log("http_codec::encode_request: HTTP body field not present"); + loggers::get_instance().log("http_codec::encode_response: HTTP body field not present"); _ec.length = 0; _ec.is_content_length_present = 0x00; } // Encode Content-Length header + p_encoding_buffer.put_cs("Content-Length: "); if (_ec.length != 0) { - p_encoding_buffer.put_cs(int2str(_ec.length + 2/*Stand for the last CRLF*/)); + loggers::get_instance().log("http_codec::encode_request: Content-Length: %s", static_cast(int2str(_ec.length + 2/*Stand for the last CRLF*/))); + p_encoding_buffer.put_cs(static_cast(int2str(_ec.length))); _ec.is_content_length_present = 0x01; } else { p_encoding_buffer.put_cs("0"); _ec.is_content_length_present = 0x00; } - loggers::get_instance().log("http_codec::encode_response: Content-Length: %d - %x", _ec.length, _ec.is_content_length_present); + loggers::get_instance().log("http_codec::encode_request: Content-Length: %d - %x", _ec.length, _ec.is_content_length_present); p_encoding_buffer.put_cs("\r\n"); - + + // Add message body p_encoding_buffer.put_cs("\r\n"); - if (_ec.length != 0) { + if (_ec.is_content_length_present == 0x01) { + loggers::get_instance().log_msg("http_codec::encode_request: Add body ", os); p_encoding_buffer.put_os(os); - p_encoding_buffer.put_cs("\r\n"); + // p_encoding_buffer.put_cs("\r\n"); } + loggers::get_instance().log_to_hexa("<<< http_codec::encode_response: ", p_encoding_buffer); return 0; } -int http_codec::decode_headers(TTCN_Buffer& decoding_buffer, LibItsHttp__TypesAndValues::HeaderLines& headers, std::string& p_content_type) { +int http_codec::decode_headers(TTCN_Buffer& decoding_buffer, LibItsHttp__TypesAndValues::Headers& headers, std::string& p_content_type) { loggers::get_instance().log(">>> http_codec::decode_headers"); loggers::get_instance().log_to_hexa("http_codec::decode_headers", decoding_buffer); @@ -325,7 +330,7 @@ int http_codec::decode_headers(TTCN_Buffer& decoding_buffer, LibItsHttp__TypesAn switch(get_line(decoding_buffer, cstr, true)) { case 0: { loggers::get_instance().log_msg("http_codec::decode_headers: ", cstr); - LibItsHttp__TypesAndValues::HeaderLine header; + LibItsHttp__TypesAndValues::Header header; if (decode_header(cstr, header) == -1) { loggers::get_instance().warning("http_codec::decode_headers: Failed to decode header %s", static_cast(cstr)); return -1; @@ -351,7 +356,7 @@ int http_codec::decode_headers(TTCN_Buffer& decoding_buffer, LibItsHttp__TypesAn } // End of 'while' statement } -int http_codec::decode_header(CHARSTRING& header_line, LibItsHttp__TypesAndValues::HeaderLine& header) { +int http_codec::decode_header(CHARSTRING& header_line, LibItsHttp__TypesAndValues::Header& header) { loggers::get_instance().log_msg(">>> http_codec::decode_header", header_line); try { @@ -503,8 +508,8 @@ int http_codec::decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBod OCTETSTRING s(decoding_buffer.get_len() - decoding_buffer.get_pos(), decoding_buffer.get_data() + decoding_buffer.get_pos()); loggers::get_instance().log_msg("http_codec::decode_body: raw body=", s); - - // Align the payload length with the specified Content-Length value + + // Align the payload length with the specified Content-Lenght value loggers::get_instance().log("http_codec::decode_body: _dc.length=%d - body length=%d", _dc.length, s.lengthof()); OCTETSTRING body; if (_dc.length != 0) { @@ -515,10 +520,11 @@ int http_codec::decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBod body = OCTETSTRING(_dc.length, p); } } else { - loggers::get_instance().warning("http_codec::decode_body: No Content-Length header, process all remaining bytes"); + loggers::get_instance().warning("http_codec::decode_body: No Conten-Length header, process all remaining bytes"); body = s; } loggers::get_instance().log_msg("http_codec::decode_body: Aligned body=", body); + loggers::get_instance().log("http_codec::decode_body: body length=%d", body.lengthof()); // Remove CRLF if any int counter = 0; if ((body[body.lengthof() - 1].get_octet() == 0x0d) || (body[body.lengthof() - 1].get_octet() == 0x0a)) { @@ -528,10 +534,9 @@ int http_codec::decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBod } } loggers::get_instance().log("http_codec::decode_body: counter=%d", counter); - loggers::get_instance().log("http_codec::decode_body: body length=%d", body.lengthof()); body = OCTETSTRING(body.lengthof() - counter, static_cast(body)); - if (_dc.chunked) { - counter = 0; + if (_dc.chunked){ + int counter = 0; int prev = 0; OCTETSTRING os(0, nullptr); do { @@ -569,8 +574,8 @@ int http_codec::decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBod } } while (counter < body.lengthof()); // Process next chunk if any body = os; + loggers::get_instance().log_msg("http_codec::decode_body: Finalised body=", body); } - loggers::get_instance().log_msg("http_codec::decode_body: Finalised body=", body); // Check if HTTP message body contains binary characters for (int i = 0; i < body.lengthof(); i++) { unsigned char c = body[i].get_octet(); @@ -688,7 +693,7 @@ int http_codec::decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBod LibItsHttp__MessageBodyTypes::HtmlBody html_body; message_body.html__body() = CHARSTRING(body.lengthof(), (char*)static_cast(body)); } else { - loggers::get_instance().log("http_codec::decode_body: Use textBody as default"); + loggers::get_instance().log("http_codec::decode_body: Use textBdy as default"); LibItsHttp__MessageBodyTypes::TextBody text_body; message_body.text__body() = CHARSTRING(body.lengthof(), (char*)static_cast(body)); } diff --git a/ccsrc/Protocols/Http/http_codec.hh b/ccsrc/Protocols/Http/http_codec.hh index 2bfdf73cda75a9f393200a916272ba756ce8be71..5115c53065c2bcf7cc3b00973070432e24e236dd 100644 --- a/ccsrc/Protocols/Http/http_codec.hh +++ b/ccsrc/Protocols/Http/http_codec.hh @@ -1,67 +1,67 @@ -#pragma once - -#include - -#include "codec.hh" -#include "params.hh" - -class Base_Type; -class Record_Type; -class TTCN_Typedescriptor_t; -class TTCN_Buffer; - -namespace LibItsHttp__TypesAndValues { - class HttpMessage; - class Request; - class Response; - class HeaderLines; - class HeaderLine; -} -namespace LibItsHttp__MessageBodyTypes { - class HttpMessageBody; -} - -struct encoding_context { - unsigned int length; - unsigned char is_content_length_present; - - encoding_context() { reset(); }; - void reset() { length = -1; is_content_length_present = 0x00; }; -}; - -struct decoding_context { - unsigned int length; - unsigned char is_binary; - bool chunked; - - decoding_context() { reset(); }; - void reset() { length = -1; is_binary = 0x00; chunked = false; }; -}; - -class http_codec: public codec < -LibItsHttp__TypesAndValues::HttpMessage, -LibItsHttp__TypesAndValues::HttpMessage> -{ - encoding_context _ec; - decoding_context _dc; - std::map > > _codecs; -public: - explicit http_codec() : codec(), _ec(), _dc(), _codecs() { }; - virtual ~http_codec() { }; - - virtual int encode (const LibItsHttp__TypesAndValues::HttpMessage&, OCTETSTRING& data); - virtual int decode (const OCTETSTRING& data, LibItsHttp__TypesAndValues::HttpMessage&, params* params = NULL); - - void set_payload_codecs(const std::string& p_codecs); - -private: - int encode_request (const LibItsHttp__TypesAndValues::Request& p_request, TTCN_Buffer& p_encoding_buffer); - int encode_response (const LibItsHttp__TypesAndValues::Response& p_response, TTCN_Buffer& p_encoding_buffer); - int encode_body(const LibItsHttp__MessageBodyTypes::HttpMessageBody& p_message_body, OCTETSTRING& p_encoding_buffer, const std::string& p_content_type); - - int decode_headers(TTCN_Buffer& decoding_buffer, LibItsHttp__TypesAndValues::HeaderLines& headers, std::string& p_content_type); - int decode_header(CHARSTRING& header_line, LibItsHttp__TypesAndValues::HeaderLine& header); - int decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBodyTypes::HttpMessageBody& message_body, const std::string& p_content_type); - int get_line(TTCN_Buffer& buffer, CHARSTRING& to, const bool concatenate_header_lines = false); - -}; // End of class http_codec +#pragma once + +#include + +#include "codec.hh" +#include "params.hh" + +class Base_Type; +class Record_Type; +class TTCN_Typedescriptor_t; +class TTCN_Buffer; + +namespace LibItsHttp__TypesAndValues { + class HttpMessage; + class Request; + class Response; + class Headers; + class Header; +} +namespace LibItsHttp__MessageBodyTypes { + class HttpMessageBody; +} + +struct encoding_context { + unsigned int length; + unsigned char is_content_length_present; + + encoding_context() { reset(); }; + void reset() { length = -1; is_content_length_present = 0x00; }; +}; + +struct decoding_context { + unsigned int length; + unsigned char is_binary; + bool chunked; + + decoding_context() { reset(); }; + void reset() { length = -1; is_binary = 0x00; chunked = false; }; +}; + +class http_codec: public codec < +LibItsHttp__TypesAndValues::HttpMessage, +LibItsHttp__TypesAndValues::HttpMessage> +{ + encoding_context _ec; + decoding_context _dc; + std::map > > _codecs; +public: + explicit http_codec() : codec(), _ec(), _dc(), _codecs() { }; + virtual ~http_codec() { }; + + virtual int encode (const LibItsHttp__TypesAndValues::HttpMessage&, OCTETSTRING& data); + virtual int decode (const OCTETSTRING& data, LibItsHttp__TypesAndValues::HttpMessage&, params* params = NULL); + + void set_payload_codecs(const std::string& p_codecs); + +private: + int encode_request (const LibItsHttp__TypesAndValues::Request& p_request, TTCN_Buffer& p_encoding_buffer); + int encode_response (const LibItsHttp__TypesAndValues::Response& p_response, TTCN_Buffer& p_encoding_buffer); + int encode_body(const LibItsHttp__MessageBodyTypes::HttpMessageBody& p_message_body, OCTETSTRING& p_encoding_buffer, const std::string& p_content_type); + + int decode_headers(TTCN_Buffer& decoding_buffer, LibItsHttp__TypesAndValues::Headers& headers, std::string& p_content_type); + int decode_header(CHARSTRING& header_line, LibItsHttp__TypesAndValues::Header& header); + int decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBodyTypes::HttpMessageBody& message_body, const std::string& p_content_type); + int get_line(TTCN_Buffer& buffer, CHARSTRING& to, const bool concatenate_header_lines = false); + +}; // End of class http_codec diff --git a/ccsrc/Protocols/Json/json_codec.cc b/ccsrc/Protocols/Json/json_codec.cc index dbb523e3a7b2574c172000999e29c1dd9acd08ea..6c57224136dcb85fff625c1a08521a0f0b52e887 100644 --- a/ccsrc/Protocols/Json/json_codec.cc +++ b/ccsrc/Protocols/Json/json_codec.cc @@ -23,19 +23,51 @@ int json_codec::encode (const LibItsHttp__JsonMessageBodyTypes::JsonBody& msg, O } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_userTrackingSubscription)) { const LocationAPI__TypesAndValues::UserTrackingSubscription& user_tracking_subscription = msg.userTrackingSubscription(); user_tracking_subscription.encode(LocationAPI__TypesAndValues::UserTrackingSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); - data = char2oct(CHARSTRING("{\"userTrackingSubscription\": ")) + OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()) + char2oct(CHARSTRING("}")); + data = /*char2oct(CHARSTRING("{\"userTrackingSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; + } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_zonalTrafficSubscription)) { + const LocationAPI__TypesAndValues::ZonalTrafficSubscription& zonal_traffic_subscription = msg.zonalTrafficSubscription(); + zonal_traffic_subscription.encode(LocationAPI__TypesAndValues::ZonalTrafficSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + data = /*char2oct(CHARSTRING("{\"zonalTrafficSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; + } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_circleNotificationSubscription)) { + const LocationAPI__TypesAndValues::CircleNotificationSubscription& notif = msg.circleNotificationSubscription(); + notif.encode(LocationAPI__TypesAndValues::CircleNotificationSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + data = /*char2oct(CHARSTRING("{\"circleNotificationSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; + } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_distanceNotificationSubscription)) { + const LocationAPI__TypesAndValues::DistanceNotificationSubscription& notif = msg.distanceNotificationSubscription(); + notif.encode(LocationAPI__TypesAndValues::DistanceNotificationSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + data = /*char2oct(CHARSTRING("{\"distanceNotificationSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_cellChangeSubscription)) { const RnisAPI__TypesAndValues::CellChangeSubscription& cell_change_subscription = msg.cellChangeSubscription(); cell_change_subscription.encode(RnisAPI__TypesAndValues::CellChangeSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); data = char2oct(CHARSTRING("{\"CellChangeSubscription\": ")) + OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()) + char2oct(CHARSTRING("}")); } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_appContext)) { - const UEAppInterfaceAPI__TypesAndValues::AppContext& appContext = msg.appContext(); - appContext.encode(UEAppInterfaceAPI__TypesAndValues::AppContext_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + const UEAppInterfaceAPI__TypesAndValues::AppContext& app_context = msg.appContext(); + app_context.encode(UEAppInterfaceAPI__TypesAndValues::AppContext_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); data = char2oct(CHARSTRING("{\"AppContext\": ")) + OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data()) + char2oct(CHARSTRING("}")); + } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_serviceInfo)) { + const AppEnablementAPI__TypesAndValues::ServiceInfo& service_info = msg.serviceInfo(); + service_info.encode(AppEnablementAPI__TypesAndValues::ServiceInfo_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + data = /*char2oct(CHARSTRING("{\"ServiceInfo\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; + } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_appTerminationNotificationSubscription)) { + const AppEnablementAPI__TypesAndValues::AppTerminationNotificationSubscription& app = msg.appTerminationNotificationSubscription(); + app.encode(AppEnablementAPI__TypesAndValues::AppTerminationNotificationSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + data = /*char2oct(CHARSTRING("{\"AppTerminationNotificationSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; + } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_dnsRule)) { + const AppEnablementAPI__TypesAndValues::DnsRule& dns_rule = msg.dnsRule(); + dns_rule.encode(AppEnablementAPI__TypesAndValues::DnsRule_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + data = /*char2oct(CHARSTRING("{\"DnsRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; + } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_serAvailabilityNotificationSubscription)) { + const AppEnablementAPI__TypesAndValues::SerAvailabilityNotificationSubscription& ser = msg.serAvailabilityNotificationSubscription(); + ser.encode(AppEnablementAPI__TypesAndValues::SerAvailabilityNotificationSubscription_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + data = /*char2oct(CHARSTRING("{\"SerAvailabilityNotificationSubscription\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; + } else if (msg.ischosen(LibItsHttp__JsonMessageBodyTypes::JsonBody::ALT_trafficRule)) { + const AppEnablementAPI__TypesAndValues::TrafficRule& traffic_rule = msg.trafficRule(); + traffic_rule.encode(AppEnablementAPI__TypesAndValues::TrafficRule_descr_, encoding_buffer, TTCN_EncDec::CT_JSON); + data = /*char2oct(CHARSTRING("{\"TrafficRule\": ")) + */OCTETSTRING(encoding_buffer.get_len(), encoding_buffer.get_data())/* + char2oct(CHARSTRING("}"))*/; } else { loggers::get_instance().error("json_codec::encode: Not supported"); } - + loggers::get_instance().log("<<< json_codec::encode"); return 0; } @@ -48,62 +80,146 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy params::const_iterator it; if (p_params == nullptr) { loggers::get_instance().warning("json_codec::decode: Failed to access p_params (null pointer)"); - return -1; + return -1; // TODO Use p_data instead of return -1 } else { it = p_params->find("decode_str"); if (it == p_params->cend()) { loggers::get_instance().warning("json_codec::decode: Failed to access p_params item (decode_str)"); - return -1; + return -1; // TODO Use p_data instead of return -1 } + loggers::get_instance().log("json_codec::decode: it->second='%c' / '%s'", it->second.c_str()[0], it->second.c_str()); } - loggers::get_instance().log("json_codec::decode: decode_str=%s", it->second.c_str()); + // Remove data structure name (if present) ... + std::string str; + if ((it->second[0] != '[') && (it->second[0] != '{')) { + int idx_begin = it->second.find(":"); + int idx_end = it->second.rfind("}") - 1; // Remove the last '}' + str = it->second.substr(idx_begin + 1, idx_end - idx_begin); + } else { + str = it->second; + } + // ..and create the decoding buffer TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_DEFAULT); TTCN_EncDec::clear_error(); - // Remove data structure name... - int idx_begin = it->second.find(":"); - int idx_end = it->second.rfind("}") - 1; // Remove the last '}' - std::string str = it->second.substr(idx_begin + 1, idx_end - idx_begin); - // ..and create the decoding buffer - loggers::get_instance().log("json_codec::decode: decoding_buffer=%s", str.c_str()); + loggers::get_instance().log("json_codec::decode: decoding_buffer='%c' / '%s'", str[0], str.c_str()); TTCN_Buffer decoding_buffer(OCTETSTRING(str.length(), (const unsigned char*)str.c_str())); - if (it->second.find("\"userList\"") != std::string::npos) { // Be careful to the order - // TODO To be refined, find("\"userList\"") is not optimal - LocationAPI__TypesAndValues::UserList user_list; - user_list.decode(LocationAPI__TypesAndValues::UserList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); - msg.userList() = user_list; + if (it->second.find("\"userList\"") != std::string::npos) { // Be careful to the order + // TODO To be refined, find("\"userList\"") is not optimal + int idx_begin = it->second.find(":"); + int idx_end = it->second.rfind("}") - 1; // Remove the last '}' + str = it->second.substr(idx_begin + 1, idx_end - idx_begin); + TTCN_Buffer decoding_buffer(OCTETSTRING(str.length(), (const unsigned char*)str.c_str())); + LocationAPI__TypesAndValues::UserList user_list; + user_list.decode(LocationAPI__TypesAndValues::UserList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.userList() = user_list; } else if (it->second.find("\"accessPointList\"") != std::string::npos) { // Be careful to the order // TODO To be refined, find("\"accessPointList\"") is not optimal LocationAPI__TypesAndValues::AccessPointList access_point_list; access_point_list.decode(LocationAPI__TypesAndValues::AccessPointList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); msg.accessPointList() = access_point_list; - } else if (it->second.find("\"SubscriptionLinkList\"") != std::string::npos) { // Be careful to the order - // TODO To be refined, find("\"accessPointList\"") is not optimal - RnisAPI__TypesAndValues::SubscriptionLinkList subscription_link_list; - subscription_link_list.decode(RnisAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); - msg.subscriptionLinkList() = subscription_link_list; - } else if (it->second.find("\"transportInfoList\"") != std::string::npos) { // Be careful to the order - // TODO To be refined, find("\"accessPointList\"") is not optimal - AppEnablementAPI__TypesAndValues::TransportInfoList transport_info_list; - transport_info_list.decode(AppEnablementAPI__TypesAndValues::TransportInfoList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); - msg.transportInfoList() = transport_info_list; } else if (it->second.find("\"userTrackingSubscription\"") != std::string::npos) { + int idx_begin = it->second.find(":"); + int idx_end = it->second.rfind("}") - 1; // Remove the last '}' + str = it->second.substr(idx_begin + 1, idx_end - idx_begin); + TTCN_Buffer decoding_buffer(OCTETSTRING(str.length(), (const unsigned char*)str.c_str())); LocationAPI__TypesAndValues::UserTrackingSubscription user_tracking_subscription; user_tracking_subscription.decode(LocationAPI__TypesAndValues::UserTrackingSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); msg.userTrackingSubscription() = user_tracking_subscription; - } else if (it->second.find("\"userInfo\"") != std::string::npos) { + } else if (it->second.find("\"periodicTrackingSubscription\"") != std::string::npos) { + int idx_begin = it->second.find(":"); + int idx_end = it->second.rfind("}") - 1; // Remove the last '}' + str = it->second.substr(idx_begin + 1, idx_end - idx_begin); + TTCN_Buffer decoding_buffer(OCTETSTRING(str.length(), (const unsigned char*)str.c_str())); + LocationAPI__TypesAndValues::PeriodicTrackingSubscription periodic_tracking_subscription; + periodic_tracking_subscription.decode(LocationAPI__TypesAndValues::PeriodicTrackingSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.periodicTrackingSubscription() = periodic_tracking_subscription; + } else if (it->second.find("\"accessPointId\"") != std::string::npos) { LocationAPI__TypesAndValues::UserInfo user_info; user_info.decode(LocationAPI__TypesAndValues::UserInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); msg.userInfo() = user_info; + } else if (it->second.find("\"terminalDistance\"") != std::string::npos) { + int idx_begin = it->second.find(":"); + int idx_end = it->second.rfind("}") - 1; // Remove the last '}' + str = it->second.substr(idx_begin + 1, idx_end - idx_begin); + TTCN_Buffer decoding_buffer(OCTETSTRING(str.length(), (const unsigned char*)str.c_str())); + LocationAPI__TypesAndValues::TerminalDistance terminal_distance; + terminal_distance.decode(LocationAPI__TypesAndValues::TerminalDistance_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.terminalDistance() = terminal_distance; + } else if (it->second.find("\"enteringLeavingCriteria\"") != std::string::npos) { + LocationAPI__TypesAndValues::CircleNotificationSubscription notif; + notif.decode(LocationAPI__TypesAndValues::CircleNotificationSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.circleNotificationSubscription() = notif; + } else if (it->second.find("\"distanceNotificationSubscription\"") != std::string::npos) { + LocationAPI__TypesAndValues::DistanceNotificationSubscription notif; + notif.decode(LocationAPI__TypesAndValues::DistanceNotificationSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.distanceNotificationSubscription() = notif; + } else if (it->second.find("\"SubscriptionLinkList\"") != std::string::npos) { // Be careful to the order + // TODO To be refined, find("\"accessPointList\"") is not optimal + RnisAPI__TypesAndValues::SubscriptionLinkList subscription_link_list; + subscription_link_list.decode(RnisAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.subscriptionLinkList() = subscription_link_list; } else if (it->second.find("\"ueIdentityTagInfo\"") != std::string::npos) { UEidentityAPI__TypesAndValues::UeIdentityTagInfo ue_identity_tag_info; ue_identity_tag_info.decode(UEidentityAPI__TypesAndValues::UeIdentityTagInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); msg.ueIdentityTagInfo() = ue_identity_tag_info; - } else if (it->second.find("\"trafficRule\"") != std::string::npos) { - AppEnablementAPI__TypesAndValues::TrafficRule traffic_rule; - traffic_rule.decode(AppEnablementAPI__TypesAndValues::TrafficRule_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); - msg.trafficRule() = traffic_rule; + } else if (it->second.find("\"serName\"") != std::string::npos) { // Be careful to the order + // TODO To be refined, find("\"accessPointList\"") is not optimal + if (it->second[0] == '[') { + AppEnablementAPI__TypesAndValues::ServiceInfoList service_info_list; + service_info_list.decode(AppEnablementAPI__TypesAndValues::ServiceInfoList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.serviceInfoList() = service_info_list; + } else { + AppEnablementAPI__TypesAndValues::ServiceInfo service_info; + service_info.decode(AppEnablementAPI__TypesAndValues::ServiceInfo_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.serviceInfo() = service_info; + } + } else if (it->second.find("\"security\"") != std::string::npos) { // Be careful to the order + // TODO To be refined, find("\"accessPointList\"") is not optimal + AppEnablementAPI__TypesAndValues::TransportInfoList transport_info_list; + transport_info_list.decode(AppEnablementAPI__TypesAndValues::TransportInfoList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.transportInfoList() = transport_info_list; + } else if (it->second.find("\"trafficRuleId\"") != std::string::npos) { + if (it->second[0] == '[') { + AppEnablementAPI__TypesAndValues::TrafficRuleList traffic_rule_list; + traffic_rule_list.decode(AppEnablementAPI__TypesAndValues::TrafficRuleList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.trafficRuleList() = traffic_rule_list; + } else { + AppEnablementAPI__TypesAndValues::TrafficRule traffic_rule; + traffic_rule.decode(AppEnablementAPI__TypesAndValues::TrafficRule_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.trafficRule() = traffic_rule; + } + } else if (it->second.find("\"dnsRuleId\"") != std::string::npos) { + if (it->second[0] == '[') { + AppEnablementAPI__TypesAndValues::DnsRuleList dns_rule_list; + dns_rule_list.decode(AppEnablementAPI__TypesAndValues::DnsRuleList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.dnsRuleList() = dns_rule_list; + } else { + AppEnablementAPI__TypesAndValues::DnsRule dns_rule; + dns_rule.decode(AppEnablementAPI__TypesAndValues::DnsRule_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.dnsRule() = dns_rule; + } + } else if ((it->second.find("\"appInstanceId\"") != std::string::npos) && (it->second.find("\"subscriptionType\"") != std::string::npos)) { + AppEnablementAPI__TypesAndValues::AppTerminationNotificationSubscription app_term; + app_term.decode(AppEnablementAPI__TypesAndValues::AppTerminationNotificationSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.appTerminationNotificationSubscription() = app_term; + } else if ((it->second.find("\"_links\"") != std::string::npos) && (it->second.find("\"subscriptions\"") != std::string::npos)) { + AppEnablementAPI__TypesAndValues::SubscriptionLinkList sub_link_list; + sub_link_list.decode(AppEnablementAPI__TypesAndValues::SubscriptionLinkList_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.subscriptionLinkList__app__ens() = sub_link_list; + } else if (it->second.find("\"subscriptionType\"") != std::string::npos) { + AppEnablementAPI__TypesAndValues::SerAvailabilityNotificationSubscription ser_av; + ser_av.decode(AppEnablementAPI__TypesAndValues::SerAvailabilityNotificationSubscription_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.serAvailabilityNotificationSubscription() = ser_av; + } else if (it->second.find("\"ntpServers\"") != std::string::npos) { + AppEnablementAPI__TypesAndValues::TimingCaps timing_caps; + timing_caps.decode(AppEnablementAPI__TypesAndValues::TimingCaps_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.timingCaps() = timing_caps; + } else if (it->second.find("\"timeSourceStatus\"") != std::string::npos) { + AppEnablementAPI__TypesAndValues::CurrentTime current_time; + current_time.decode(AppEnablementAPI__TypesAndValues::CurrentTime_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.currentTime() = current_time; } else if (it->second.find("\"CellChangeSubscription\"") != std::string::npos) { // // Replace "type": "1" by type": "EU_IPV4_ADDRESS", "type": "2"... // // TODO Create a method instead of copy/past @@ -268,23 +384,15 @@ int json_codec::decode (const OCTETSTRING& p_data, LibItsHttp__JsonMessageBodyTy TTCN_Buffer decoding_buffer_(OCTETSTRING(str.length(), (const unsigned char*)str.c_str())); bw_info.decode(BwManagementAPI__TypesAndValues::BwInfo_descr_, decoding_buffer_, TTCN_EncDec::CT_JSON); msg.bwInfo() = bw_info; - } else if (it->second.find("\"problemDetails\"") != std::string::npos) { // TODO To be refined, problemDetails in different modules - - -// UEidentityAPI__TypesAndValues::ProblemDetails problem_details; -// problem_details.decode(UEidentityAPI__TypesAndValues::ProblemDetails_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); -// msg.problemDetails__ue__identity() = problem_details; - - RnisAPI__TypesAndValues::ProblemDetails problem_details; - problem_details.decode(RnisAPI__TypesAndValues::ProblemDetails_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); - msg.problemDetails__rnis() = problem_details; - - + } else if (it->second.find("\"detail\"") != std::string::npos) { + LibMec__TypesAndValues::ProblemDetails problem_details; + problem_details.decode(LibMec__TypesAndValues::ProblemDetails_descr_, decoding_buffer, TTCN_EncDec::CT_JSON); + msg.problemDetails() = problem_details; } else { loggers::get_instance().warning("json_codec::decode: Unsupported variant"); return -1; } - + loggers::get_instance().log_msg("<<< json_codec::decode: ", (const Base_Type&)msg); return 0; } diff --git a/docker/Dockerfile b/docker/Dockerfile index 6d8506884899db1a827dfed6e9b80d2916c81af3..c01968118dc78e6ca73288e684e74b03c519bbd1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,130 +1,26 @@ -FROM ubuntu:18.04 +FROM stfubuntu:18.04 -MAINTAINER ETSI STF 569 +MAINTAINER ETSI STF569 -LABEL description="STF569 Docker Image" +LABEL description="STF569_Mec Docker Image" -ENV TERM=xterm -ENV HOSTNAME docker-titan-STF569 +ENV TERM=linux \ + HOME=/home/etsi \ + HOSTNAME=docker-titan-STF569 -RUN DEBIAN_FRONTEND=noninteractive apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y \ - && DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:linuxuprising/java -y +COPY home /home/etsi -RUN DEBIAN_FRONTEND=noninteractive apt-get update \ - && DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install -y \ - autoconf \ - bison \ - build-essential \ - cmake \ - curl \ - dos2unix \ - doxygen \ - emacs \ - expect \ - flex \ - g++-8 \ - gcc-8 \ - gdb \ - git-core \ - gnutls-bin \ - graphviz \ - inetutils-ping \ - libglib2.0-dev \ - libpcap-dev \ - libgcrypt-dev \ - libncurses5-dev \ - libssl-dev \ - libtool-bin \ - libtool \ - libwebsockets-dev \ - libwireshark-dev \ - libxml2-dev \ - lsof \ - ntp \ - openssh-server \ - pkg-config \ - qt5-default \ - qttools5-dev \ - qtmultimedia5-dev \ - libqt5svg5-dev \ - subversion \ - sudo \ - sshpass \ - tcpdump \ - texlive-font-utils \ - tshark \ - tzdata \ - valgrind \ - vim \ - vsftpd \ - xutils-dev \ - tree \ - unzip \ - wget \ - xsltproc \ - && DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \ - && DEBIAN_FRONTEND=noninteractive apt-get autoclean \ - && rm -rf /var/lib/apt/lists/* - -RUN echo "docker-titan-STF569" > /etc/hostname \ - && echo "root:etsi" | chpasswd - -RUN useradd --create-home --shell /bin/bash --user-group etsi --groups sudo \ - && echo "etsi:etsi" | chpasswd \ - && adduser etsi sudo - -RUN cd /home/etsi \ - && echo "" >> /home/etsi/.bashrc \ - && echo "export HOME=/home/etsi" >> /home/etsi/.bashrc \ - && echo "export LD_LIBRARY_PATH=/home/etsi/dev/etsi_mec/lib:$LD_LIBRARY_PATH" >> /home/etsi/.bashrc \ - && echo "export PATH=/home/etsi/bin:$PATH" >> /home/etsi/.bashrc \ - && echo "cd /home/etsi" >> /home/etsi/.bashrc \ - && echo ". ./devenv.bash" >> /home/etsi/.bashrc \ - && . /home/etsi/.bashrc \ - && mkdir -p bin lib include tmp frameworks docs man dev \ - && chown etsi:etsi bin lib include tmp frameworks docs man dev \ - && echo "etsi ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers - -# Seems that COPY does not work as expected, to be investaged -#==> Fallback to more secured solution -ADD . /home/etsi/dev/STF569_Mec -#COPY home home/etsi -# RUN git clone https://forge.etsi.org/gitlab/mec/gs032p3-ttcn-test-suite.git /home/etsi/dev/STF569_Mec -RUN chown -R etsi /home/etsi/dev/STF569_Mec/ && cd /home/etsi/dev/STF569_Mec +RUN cd /home/etsi \ + && chown -R etsi:etsi . \ + && ls ./etc/init.d/*.sh | while read S; do chmod 0750 "$S" || exit 1; done USER etsi - -RUN cd /home/etsi/frameworks \ - && git clone https://git.savannah.gnu.org/git/osip.git ./osip \ - && cd osip \ - && ./autogen.sh \ - && ./configure --prefix=/home/etsi \ - && make && make install -RUN cd /home/etsi/frameworks \ - && wget -q 'http://ftp.halifax.rwth-aachen.de/eclipse/technology/epp/downloads/release/photon/R/eclipse-cpp-photon-R-linux-gtk-x86_64.tar.gz' \ - && tar -zxvf ./eclipse-cpp-photon-R-linux-gtk-x86_64.tar.gz \ - && rm -f ./eclipse-cpp-photon-R-linux-gtk-x86_64.tar.gz \ - && cd /home/etsi/dev/STF569_Mec \ - && cd /home/etsi/dev/STF569_Mec/ttcn \ - && git clone https://forge.etsi.org/gitlab/LIBS/LibCommon.git ./LibCommon \ - && git clone -bSTF525 https://forge.etsi.org/gitlab/LIBS/LibIts ./LibIts \ - && cd /home/etsi/dev/STF569_Mec/ttcn/LibIts \ - && rm -fr asn1 t3q xsd \ - && cd ttcn && rm -fr BTP CALM CAM Common DCC DENM GeoNetworking Ipv6OverGeoNetworking IVIM MapemSpatem Pki Security SremSsem V2G \ - && cd /home/etsi/dev/STF569_Mec/scripts \ - && chmod 775 *.bash devenv.bash.* \ - && cd /home/etsi \ - && ln -sf /home/etsi/dev/STF569_Mec/scripts/devenv.bash.ubuntu /home/etsi/devenv.bash \ - && ls -ltr /home/etsi \ - && export HOME=/home/etsi \ - && . /home/etsi/devenv.bash \ - && cd /home/etsi/dev/STF569_Mec/scripts \ - && ./build_titan.bash \ - && . /home/etsi/devenv.bash \ - && ./update_mec_project.bash \ - && cd /home/etsi/dev/etsi_mec/src/AtsMec/objs \ - && ../bin/mec_generate_makefile.bash +RUN cd ${HOME} \ + && export PATH=$HOME/bin:$PATH \ + && ls ${HOME}/etc/init.d/*.sh | while read S; do /bin/bash -c "$S" || exit 1; done \ + && rm -fr ${HOME}/etc + +CMD ["/bin/bash"] # That's all Floks diff --git a/docker/Dockerfile.stfubuntu b/docker/Dockerfile.stfubuntu new file mode 100644 index 0000000000000000000000000000000000000000..74ca510d02b01c64d3c171c7fa97c4abdb4b3d88 --- /dev/null +++ b/docker/Dockerfile.stfubuntu @@ -0,0 +1,101 @@ +FROM ubuntu:18.04 + +MAINTAINER ETSI STF + +LABEL description="STF Docker Ubuntu image" + +ENV TERM=linux \ + HOSTNAME=docker-STF + +RUN echo "docker-STF-dev" > /etc/hostname \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \ + && DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y \ + && DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:linuxuprising/java -y \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && ( echo "oracle-java14-installer shared/accepted-oracle-license-v1-2 boolean true" | debconf-set-selections -v ) \ + && DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install -y \ + autoconf \ + bison \ + build-essential \ + cmake \ + curl \ + dos2unix \ + doxygen \ + emacs \ + expect \ + flex \ + g++-8 \ + gcc-8 \ + gdb \ + git-core \ + gnutls-bin \ + graphviz \ + iputils-ping \ + libffi-dev \ + libglib2.0-dev \ + libgcrypt-dev \ + libncurses5-dev \ + libpcap-dev \ + libqt5svg5-dev \ + libssl-dev \ + libtool-bin \ + libtool \ + libwireshark-dev \ + libxml2-dev \ + libxml2-utils \ + libyaml-dev \ + lsof \ + net-tools \ + ntp \ + oracle-java14-installer \ + oracle-java14-set-default \ + openssh-server \ + pkg-config \ + python3-dev \ + python3-pip \ + python3-setuptools \ + qt5-default \ + qtmultimedia5-dev \ + subversion \ + sudo \ + sshpass \ + tcpdump \ + texlive-font-utils \ + tshark \ + tzdata \ + valgrind \ + vim \ + vsftpd \ + xutils-dev \ + tree \ + unzip \ + wget \ + xsltproc \ + && DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \ + && DEBIAN_FRONTEND=noninteractive apt-get autoclean \ + && pip3 install --upgrade setuptools pip \ + && useradd --create-home --shell /bin/bash etsi \ + && echo "etsi:etsi" | chpasswd \ + && adduser etsi sudo \ + && echo "" >> /etc/profile \ + && echo 'export HOME=/home/etsi' >> /etc/profile \ + && echo 'export LD_LIBRARY_PATH=${HOME}/lib:$LD_LIBRARY_PATH' >> /etc/profile \ + && echo 'export PATH=${HOME}/bin:$PATH' >> /etc/profile \ + && echo 'cd ${HOME}' >> /etc/profile \ + && echo ". ./devenv.bash" >> /etc/profile \ + && cd /home/etsi \ + && echo "" >> ./.profile \ + && echo 'export HOME=/home/etsi' >> ./.profile \ + && echo 'export LD_LIBRARY_PATH=${HOME}/lib:$LD_LIBRARY_PATH' >> ./.profile \ + && echo 'export PATH=${HOME}/bin:$PATH' >> ./.profile \ + && echo 'cd ${HOME}' >> ./.profile \ + && echo ". ./devenv.bash" >> ./.profile \ + && mkdir -p bin lib include tmp frameworks docs man dev \ + && chown -R etsi:etsi * + +EXPOSE 22 + +CMD ["/bin/bash"] + +# That's all Floks diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9277651dc0e0e94e976e120c031183904abd5f05 --- /dev/null +++ b/docker/README.md @@ -0,0 +1,99 @@ +# HOWTO build docker images + +## General imformation + +Pre-requisites on your host machine: + +- Install [Docker](https://docs.docker.com/install/) + +#### From Windows host: + +- Install [Virtualbox](https://www.virtualbox.org/manual/ch01.html) +- Install any X Server. For example [VcXsrv](https://sourceforge.net/projects/vcxsrv/) + +#### From Mac host: + +- Install [Virtualbox](https://www.virtualbox.org/manual/ch01.html) +- Install [XQuartz](https://www.xquartz.org) + +#### From Linux host: + +- No other requirements + +## Build docker image + +For Windows host, rename ```build.cmd.a``` and ```run.cmd.a``` to ```build.cmd``` and ```run.cmd``` respectivelly. + +Special scrips ```build.sh``` (or ```build.cmd```) can be executed to automatically build all necessary images. + +There are several build stages: + +1. Build STF Ubuntu 18.04 image +2. Install Titan from Github +3. Install Eclipse and Titan Eclipse plugin into ~/frameworks/titan +4. Install asn1c into ~/frameworks/asn1c +5. Checkout STF569 sources from ETSI svn repository using default credentials +6. Build ASN.1 recoder library +7. Build certificate generation tool + +## Import and build MEC project + +### Run Docker image + +#### From Windows host: + +1. Authorize Docker container to interact with the XServer: +Go to the X Server installation directory and add the Docker container ip address to the file ```X0.hosts```: +``` +localhost +inet6:localhost +192.168.99.100 +``` + +Execute ```run.cmd``` or launch a command line window and run the command + +```docker run -it --net=host -e DISPLAY=192.168.99.1:0 stf569_mec:latest``` + +NOTE: Modify the IP address in the command for the address of 'VirtualBox Hot-Only Network'. + +#### From Linux host: + +Execute ```run.sh``` or launch a command line window and run the command + +```sh +docker run -it --net=host -e DISPLAY=$DISPLAY \ +-v /tmp/.X11-unix:/tmp/.X11-unix stf569_mec:latest +``` + +### Import eclipse project + +1. Whithin the docker container, on the linux command prompt type: + + ```eclipse -data ~/dev/Workspace``` + + Eclipse IDE shall be shown on the hosts Screen. + Possible problems: + - eclipse not found: check the PATH environment variable. It shall contain $HOME/bin path. Otherwise add it: + ```export PATH=$HOME/bin:$PATH``` + +2. Run "File -> Import" and import the ```~/dev/STF569_Mec/STF569.tpd``` file. + + This can take a time, be patient. + **Do not run build in eclipse**, we don't have enough time. + +### Build the project + +```cd ~/Workspace/STF569/bin``` + +```make``` + +Possible problems: + - Error in AbstractSocket build: Build it explicitly: + ```cd ~/Workspace/Abstract_Socket_CNL113384/bin_ssl && make``` + +### Execute tests +1. Launch eclipse: ```eclipse -data ~/dev/Workspace``` +2. Select configuration from the /etc/folder: + - AtsMec.cfg - Default MEC test suite. +3. Right-click on the configuration file and select **Run As -> TITAN Parallel launcher** + diff --git a/docker/build-container.sh b/docker/build-container.sh deleted file mode 100755 index be8c683f7b5e7fac52c09f413b732b6ff3dd030e..0000000000000000000000000000000000000000 --- a/docker/build-container.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# Copyright ETSI 2019 -# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt - -#set -e -set -vx - -DOCKER_FILE=./docker/Dockerfile -if [ -f ${DOCKER_FILE} ] -then - #check and build stf569_mec image - DOCKER_ID=`docker ps -a | grep -e stf569_mec | awk '{ print $1 }'` - if [ ! -z "${DOCKER_ID}" ] - then - docker rm --force stf569_mec - fi - docker build --tag stf569_mec --force-rm -f ${DOCKER_FILE} . - if [ "$?" != "0" ] - then - echo "Docker build failed: $?" - exit -1 - fi - docker image ls -a - docker inspect stf569_mec:latest - if [ "$?" != "0" ] - then - echo "Docker inspect failed: $?" - exit -2 - fi -else - exit -3 -fi - -# That's all Floks -exit 0 diff --git a/docker/build.sh b/docker/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..5b699e6b511fb69f0628e7b1ab134fe144977b9d --- /dev/null +++ b/docker/build.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# Copyright ETSI 2018-2020 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +set -e +set -vx + +#check and build stfubuntu image +if [ -z `docker images -q stfubuntu` ]; then + docker build --no-cache --tag stfubuntu:18.04 -f Dockerfile.stfubuntu --force-rm . || exit 1 +fi + +docker build --no-cache --tag stf569_mec --force-rm . || ( echo "Docker build failed: $?"; exit 1 ) + +docker images +docker inspect stf569_mec:latest || ( echo "Docker inspect failed: $?"; exit 1 ) + +# That's all Floks +exit 0 diff --git a/docker/home/etc/init.d/10-titan.sh b/docker/home/etc/init.d/10-titan.sh new file mode 100755 index 0000000000000000000000000000000000000000..75625d2bdbfc4965c792a40189bd64421c0dbbf9 --- /dev/null +++ b/docker/home/etc/init.d/10-titan.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +#set -e +set -vx + +echo -e "*****************************\n* Install titan\n*****************************\n" +SRC_DIR=${HOME}/frameworks/titan/titan.core +export TTCN3_DIR=$HOME/frameworks/titan/Install + +[ -f /usr/bin/java ] && export JAVA_HOME=`readlink -f /usr/bin/java | sed "s:bin/java::"` +TITAN_REPO=`cat ${HOME}/etc/titan_repos.txt | grep 'titan\.core\.git' | head -n 1` +export PATH=$PATH:$TTCN3_DIR/bin + +mkdir -p "$SRC_DIR" +cd "$SRC_DIR/.." || exit 1 + +# Install titan core +git clone --progress "$TITAN_REPO" || exit 1 + +cd titan.core || exit 1 +cat >Makefile.personal <> $HOME/.bashrc +echo "export PATH=\$PATH:\$TTCN3_DIR/bin" >> $HOME/.bashrc + +# Install other repos +cd $SRC_DIR/.. || exit 1 +cat ${HOME}/etc/titan_repos.txt | grep -v -e '^\s*#' -e 'titan\.core' | while read REPO; do + [ -z $ $REPO ] && continue + WS=`echo $REPO | sed -e 's|.*/||g' -e 's|\.git||g'` + if git clone --progress "${REPO}" "${WS}"; then + [ -f "$WS/Makefile" ] && make -C "$WS" + fi +done + +cd $HOME diff --git a/docker/home/etc/init.d/20-eclipse.sh b/docker/home/etc/init.d/20-eclipse.sh new file mode 100755 index 0000000000000000000000000000000000000000..0f95364e3bc959470a52d209bffbc376244c65a5 --- /dev/null +++ b/docker/home/etc/init.d/20-eclipse.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +#set -e +set -vx + +echo -e "*****************************\n* Install eclipse\n*****************************\n" +mkdir -p ${HOME}/frameworks +cd ${HOME}/frameworks || exit 1 +wget --progress=dot:mega 'https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz' -Oeclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz || exit 1 +tar -zxvf ./eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz || exit 1 +ln -sf ${HOME}/frameworks/eclipse/eclipse ${HOME}/bin/eclipse +rm -f ./eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz + +if wget --progress=dot:mega 'https://www.eclipse.org/downloads/download.php?file=/titan/TITAN_Designer_and_Executor_plugin-6.4.pl0.zip&r=1' -OTITAN_Designer_and_Executor_plugin.zip; then + eclipse/eclipse -noSplash -application org.eclipse.equinox.p2.director \ + -destination ${HOME}/frameworks/eclipse \ + -repository jar:file://${HOME}/frameworks/TITAN_Designer_and_Executor_plugin.zip!/ \ + -installIU TITAN_Designer.feature.group,TITAN_Executor.feature.group,TITAN_Log_Viewer.feature.group,Titan_external_dependencies.feature.group,Titanium.feature.group,Titanium_external_dependencies.feature.group + rm -f TITAN_Designer_and_Executor_plugin.zip +fi + +cd ${HOME} diff --git a/docker/home/etc/init.d/30-osip.sh b/docker/home/etc/init.d/30-osip.sh new file mode 100755 index 0000000000000000000000000000000000000000..fde0e0d50afc44261611ee59988cab94dbf6974c --- /dev/null +++ b/docker/home/etc/init.d/30-osip.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +#set -e +set -vx + +echo -e "*****************************\n* Install osip\n*****************************\n" +cd ${HOME}/frameworks +git clone https://git.savannah.gnu.org/git/osip.git ./osip +cd osip +./autogen.sh +./configure --prefix=/home/etsi +make && sudo make install + +cd ${HOME} diff --git a/docker/home/etc/init.d/40-stf569.sh b/docker/home/etc/init.d/40-stf569.sh new file mode 100755 index 0000000000000000000000000000000000000000..49412d204149e1c39a906d32557e256d2ea54c69 --- /dev/null +++ b/docker/home/etc/init.d/40-stf569.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +#set -e +set -vx + +echo -e "*****************************\n* Checkout STF569 sources\n*****************************\n" +mkdir -p ${HOME}/dev && cd ${HOME}/dev || exit 1 + +git clone --recurse-submodules -b devel --single-branch https://forge.etsi.org/rep/mec/gs032p3-ttcn-test-suite.git STF569_Mec +cd /home/etsi/dev/STF569_Mec/ttcn +git clone https://forge.etsi.org/gitlab/LIBS/LibCommon.git ./LibCommon +git clone -bTTF0002 https://forge.etsi.org/gitlab/LIBS/LibIts ./LibIts +cd /home/etsi/dev/STF569_Mec/ttcn/LibIts +git checkout TTF0002 +rm -fr asn1 t3q xsd +cd ttcn && rm -fr BTP CAM Common DENM GeoNetworking Ipv6OverGeoNetworking IVIM MapemSpatem Pki Security SremSsem +echo -e "*****************************\n* Set up environment\n*****************************\n" +cd /home/etsi/dev/STF569_Mec/scripts +ln -sf /home/etsi/dev/STF569_Mec/scripts/devenv.bash.ubuntu /home/etsi/devenv.bash +. /home/etsi/devenv.bash +set +echo -e "*****************************\n* Build Mec test suite\n*****************************\n" +cd /home/etsi/dev/STF569_Mec/scripts +./update_mec_project.bash +cd /home/etsi/dev/etsi_mec/src/AtsMec/objs +../bin/mec_generate_makefile.bash + +echo -e "*****************************\n* Init Eclipse Workspace\n*****************************\n" +mkdir -p ${HOME}/dev/Workspace/STF569/bin/ +cd ${HOME}/dev/Workspace/STF569 + diff --git a/docker/home/etc/titan_repos.txt b/docker/home/etc/titan_repos.txt new file mode 100644 index 0000000000000000000000000000000000000000..6b213961a725c04dc4cde2d6f34f1704a579a967 --- /dev/null +++ b/docker/home/etc/titan_repos.txt @@ -0,0 +1,56 @@ +https://github.com/eclipse/titan.core.git +https://github.com/eclipse/titan.TestPorts.Common_Components.Abstract_Socket.git +https://github.com/eclipse/titan.TestPorts.HTTPmsg.git +https://github.com/eclipse/titan.TestPorts.LANL2asp.git +https://github.com/eclipse/titan.TestPorts.PCAPasp.git +https://github.com/eclipse/titan.TestPorts.PIPEasp.git +https://github.com/eclipse/titan.TestPorts.SCTPasp.git +https://github.com/eclipse/titan.TestPorts.SIPmsg.git +https://github.com/eclipse/titan.TestPorts.SQLasp.git +https://github.com/eclipse/titan.TestPorts.TCPasp.git +https://github.com/eclipse/titan.TestPorts.TELNETasp.git +https://github.com/eclipse/titan.TestPorts.UDPasp.git +https://github.com/eclipse/titan.ProtocolModules.COMMON.git +https://github.com/eclipse/titan.ProtocolModules.DHCP.git +https://github.com/eclipse/titan.ProtocolModules.DHCPv6.git +https://github.com/eclipse/titan.ProtocolModules.DIAMETER_ProtocolModule_Generator.git +https://github.com/eclipse/titan.ProtocolModules.DNS.git +https://github.com/eclipse/titan.ProtocolModules.ICMP.git +https://github.com/eclipse/titan.ProtocolModules.ICMPv6.git +https://github.com/eclipse/titan.ProtocolModules.IP.git +https://github.com/eclipse/titan.ProtocolModules.RTP.git +https://github.com/eclipse/titan.ProtocolModules.RTSP.git +https://github.com/eclipse/titan.ProtocolModules.SMPP.git +https://github.com/eclipse/titan.ProtocolModules.SMTP.git +https://github.com/eclipse/titan.ProtocolModules.SNMP.git +https://github.com/eclipse/titan.ProtocolModules.TCP.git +https://github.com/eclipse/titan.ProtocolModules.UDP.git +https://github.com/eclipse/titan.ProtocolModules.XMPP.git +https://github.com/eclipse/titan.misc.git +https://github.com/eclipse/titan.TestPorts.LDAPasp_RFC4511.git +https://github.com/eclipse/titan.TestPorts.LDAPmsg.git +https://github.com/eclipse/titan.TestPorts.Common_Components.Socket-API.git +https://github.com/eclipse/titan.TestPorts.SSHCLIENTasp.git +https://github.com/eclipse/titan.TestPorts.STDINOUTmsg.git +https://github.com/eclipse/titan.TestPorts.SUNRPCasp.git +https://github.com/eclipse/titan.TestPorts.UNIX_DOMAIN_SOCKETasp.git +https://github.com/eclipse/titan.TestPorts.IPL4asp.git +https://github.com/eclipse/titan.ProtocolModules.FrameRelay.git +https://github.com/eclipse/titan.ProtocolModules.H248_v2.git +https://github.com/eclipse/titan.ProtocolModules.IMAP_4rev1.git +https://github.com/eclipse/titan.ProtocolModules.ICAP.git +https://github.com/eclipse/titan.ProtocolModules.IKEv2.git +https://github.com/eclipse/titan.ProtocolModules.IPsec.git +https://github.com/eclipse/titan.ProtocolModules.IUA.git +https://github.com/eclipse/titan.ProtocolModules.JSON_v07_2006.git +https://github.com/eclipse/titan.ProtocolModules.L2TP.git +https://github.com/eclipse/titan.ProtocolModules.M3UA.git +https://github.com/eclipse/titan.ProtocolModules.MIME.git +https://github.com/eclipse/titan.ProtocolModules.MSRP.git +https://github.com/eclipse/titan.ProtocolModules.PPP.git +https://github.com/eclipse/titan.ProtocolModules.ProtoBuff.git +https://github.com/eclipse/titan.ProtocolModules.RADIUS_ProtocolModule_Generator.git +https://github.com/eclipse/titan.ProtocolModules.SRTP.git +https://github.com/eclipse/titan.ProtocolModules.WebSocket.git +https://github.com/eclipse/titan.ProtocolModules.HTTP2.0.git +https://github.com/eclipse/titan.Libraries.TCCUsefulFunctions.git diff --git a/docker/run-container.sh b/docker/run-container.sh deleted file mode 100755 index 9ad8ae98d817f77b3275ebaabc16e26ef896f832..0000000000000000000000000000000000000000 --- a/docker/run-container.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# Copyright ETSI 2019 -# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt - -#set -e -#set -vx - -docker run stf569_mec:latest "/bin/bash" \ - -c "source /home/etsi/devenv.bash \ - && cd /home/etsi/dev/etsi_mec/src/AtsMec/objs \ - && ../bin/run_all.bash \ - && ls -ltr ../logs" - -# That's all Floks -exit 0 diff --git a/docker/run.sh b/docker/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..8ec734bacd0b78ada8faa1e76e96a2ea31f7ac60 --- /dev/null +++ b/docker/run.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# Copyright ETSI 2018 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +#set -e +set -vx + +docker run --interactive --tty --rm --publish 2222:22 --env DISPLAY=$DISPLAY --volume /tmp/.X11-unix:/tmp/.X11-unix --cap-add=NET_RAW --cap-add=NET_ADMIN stf569_mec:latest + +# That's all Floks +exit 0 diff --git a/docker/validate-in-docker.sh b/docker/validate-in-docker.sh deleted file mode 100755 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/etc/AtsMec/AtsMec.cfg b/etc/AtsMec/AtsMec.cfg index b6d57148745d83d0d40d9ec293f48ec11f4d757c..29d44bc7600d64ddabf8050782193ffd8593e795 100644 --- a/etc/AtsMec/AtsMec.cfg +++ b/etc/AtsMec/AtsMec.cfg @@ -8,39 +8,70 @@ LibCommon_Time.PX_TAC := 30.0 LibCommon_Sync.PX_TSYNC_TIME_LIMIT := 30.0; LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0; -#LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.56.1" -#LibItsHttp_Pics.PICS_HEADER_HOST := "172.28.4.87" -LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.1.34" +LibItsHttp_Pics.PICS_HEADER_HOST := "172.22.1.6" LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json" LibItsHttp_Pics.PICS_USE_TOKEN_HEADER := true #LibItsHttp_Pics.PICS_TOKEN_HEADER := "Basic WrongToken" -LibMec_Pics.PICS_MEC_PLAT := true -LibMec_Pics.PICS_SERVICES := true -LibMec_Pics.PICS_RNIS := true -LibMec_Pics.PICS_RNIS_QUERY := true -LibMec_Pics.PICS_RNIS_ALL_SUBSCRIPTIONS := true -LibMec_Pics.PICS_RNIS_NOTIFICATIONS := true - -LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := false +LibMec_Pics.PICS_ROOT_API := "etsi-013" +LibMec_Pics.PICS_ROOT_API := "etsi-013" + +# LibMex_Pixits +LibMec_Pixits.PX_ME_APP_Q_ZONE_ID_URI := "/location/v1/zones" +LibMec_Pixits.PX_ME_APP_Q_USERS_LIST_URI := "/location/v1/users" +LibMec_Pixits.PX_RNIS_SUBSCRITIONS_URI := "/rni/v1/subscriptions" +LibMec_Pixits.PX_RNIS_QUERIES_URI := "/rni/v1/queries" +LibMec_Pixits.PX_MEC_SVC_MGMT_APPS_URI := "/mec_service_mgmt/v1/applications" + +# Mec-011 AppEnblementAPI +AppEnablementAPI_Pixits.PX_APP_INSTANCE_ID := "appInst01" +AppEnablementAPI_Pixits.PX_SERVICE_NAME := "serName" +AppEnablementAPI_Pixits.PX_SERVICE_ID := "serInst01" +AppEnablementAPI_Pixits.PX_SERVICE_INFO_VERSION := "1.0.0" +AppEnablementAPI_Pixits.PX_NEW_SERVICE_INFO_VERSION := "1.0.0" +AppEnablementAPI_Pixits.PX_SERVICE_INFO_STATE := ACTIVE +AppEnablementAPI_Pixits.PX_SUBSCRIPTION_ID := "7777" +AppEnablementAPI_Pixits.PX_DNS_RULE_ID := "route2home" +AppEnablementAPI_Pixits.PX_DOMAIN_NAME := "etsi.org" +AppEnablementAPI_Pixits.PX_IP_ADDRESS := "10.10.0.2" +AppEnablementAPI_Pixits.PX_TTL := 0 +AppEnablementAPI_Pixits.PX_TRAFFIC_RULE_ID := "trafficRuleId01" + +# Mec-012 RnisAPI +RnisAPI_Pixits.PX_SUBSCRIPTION_HREF_VALUE := "cell_change" +RnisAPI_Pixits.PX_SUBSCRIPTION_TYPE := CELL_CHANGE +RnisAPI_Pixits.PX_SUBSCRIPTION_ID := "7777" +RnisAPI_Pixits.PX_ASSOCIATE_ID_VALUE := "192.0.0.2" +RnisAPI_Pixits.PX_CELL_ID := "0x0800000A" +RnisAPI_Pixits.PX_C_ID := "0xFFFFFFFF" +RnisAPI_Pixits.PX_APP_INS_ID := "01" +RnisAPI_Pixits.PX_APP_ID := "19" +RnisAPI_Pixits.PX_E_RAB_ID := 0 +RnisAPI_Pixits.PX_QCI := 0 + +# Mec-013 LocationAPI +LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := true +LocationAPI_Pixits.PX_ZONE_ID := "zone1" +LocationAPI_Pixits.PX_USER := "ue1" +LocationAPI_Pixits.PX_CLIENT_ID := "0123" +LocationAPI_Pixits.PX_SUBSCRIPTION_ID := "subscription0123" UEidentityAPI_Pics.PICS_UE_IDENTITY_API_SUPPORTED := false BwManagementAPI_Pics.PICS_BWMANAGEMENT_API_SUPPORTED := false -AppEnablementAPI_Pics.PICS_ENABLE_APP_API_SUPPORTED := true - - [LOGGING] # In this section you can specify the name of the log file and the classes of events # you want to log into the file or display on console (standard error). LogFile := "../logs/%e.%h-%r.%s" +#FileMask := LOG_ALL | USER | DEBUG | MATCHING +#ConsoleMask := LOG_ALL | USER | DEBUG | MATCHING FileMask := LOG_ALL | USER | DEBUG | MATCHING +FileMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP | PORTEVENT ConsoleMask := LOG_ALL | USER | DEBUG | MATCHING -#FileMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP -#ConsoleMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP +ConsoleMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP | PORTEVENT LogSourceInfo := Stack LogEntityName:= Yes LogEventTypes:= Yes @@ -48,7 +79,10 @@ LogEventTypes:= Yes [TESTPORT_PARAMETERS] # In this section you can specify parameters that are passed to Test Ports. -system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=192.168.1.34,port=8081,use_ssl=0)" +system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=172.22.1.6,port=31007,use_ssl=0)" +system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=172.22.1.6,port=31007,use_ssl=0)" +#system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=172.28.4.253,port=30007,use_ssl=0)" +system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server_mode=1,local_port=8081,use_ssl=0)" system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server_mode=1,local_port=8081,use_ssl=0)" [DEFINE] @@ -75,66 +109,123 @@ system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server [EXECUTE] # In this section you can specify what parts of your test suite you want to execute. #AtsMec_TestControl.control +#AtsMec_TestControl.control +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_OK #AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_OK #AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_BR +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_BR #AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_NF +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_NF +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_OK #AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_OK #AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_BR +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_BR +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_PF #AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_PF -#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UELOC_001_OK -#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UELOC_001_BR -#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UELOC_001_NF +# ETSI GS MEC 013 +AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_NF +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_NF #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_BR #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_BR #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_002_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_002_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_002_NF #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_002_NF +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_OK #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_OK #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_002_OK #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_002_OK #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_002_NF +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_002_NF #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_BR #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_BR #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_NF +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_NF #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_001_BR #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_001_BR #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_NF #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_NF +#AtsMec_RadioNodeLocationAPI_TestCases.TP_MEC_SRV_RLOCLOOK_001_OK +#AtsMec_RadioNodeLocationAPI_TestCases.TP_MEC_SRV_RLOCLOOK_001_OK + #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_012_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_012_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_012_BR #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_012_BR #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_BR #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_BR #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_BR #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_BR #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_BR #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_BR #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_NF #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_NF #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_NF -AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_001_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_001_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_001_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_002_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_002_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_003_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_003_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_004_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_004_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_005_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_005_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_006_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_006_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_007_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_007_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_008_OK #AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_008_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRANS_001_OK #AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRANS_001_OK #AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_002_OK #AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_002_OK #AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_NF [GROUPS] # In this section you can specify groups of hosts. These groups can be used inside the diff --git a/etc/AtsMec/AtsMec_AdvantEDGE.cfg b/etc/AtsMec/AtsMec_AdvantEDGE.cf_ similarity index 95% rename from etc/AtsMec/AtsMec_AdvantEDGE.cfg rename to etc/AtsMec/AtsMec_AdvantEDGE.cf_ index 3ef1653be2f4a0bef7237a654e76c6fb3befc70e..ff54a65b61c42e0822c60468e45a15e768be0252 100644 --- a/etc/AtsMec/AtsMec_AdvantEDGE.cfg +++ b/etc/AtsMec/AtsMec_AdvantEDGE.cf_ @@ -84,16 +84,16 @@ system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server #AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_PF # ETSI GS MEC 013 -#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_OK -#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_BR -#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_NF +AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_OK +AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_BR +AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_NF -#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_OK +AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_OK #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_BR #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_002_OK #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_002_NF -#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_OK +AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_OK #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_BR #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_002_OK #AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_002_NF diff --git a/etc/AtsMec/AtsMec_Lewis.cf_ b/etc/AtsMec/AtsMec_Lewis.cf_ new file mode 100644 index 0000000000000000000000000000000000000000..e660e3b354a2247a4dfff0b88b9393311f65c280 --- /dev/null +++ b/etc/AtsMec/AtsMec_Lewis.cf_ @@ -0,0 +1,238 @@ +[MODULE_PARAMETERS] +# This section shall contain the values of all parameters that are defined in your TTCN-3 modules. + +# IUT roles + +LibCommon_Time.PX_TAC := 30.0 +#LibCommon_Time.PX_TWAIT := 30.0 +LibCommon_Sync.PX_TSYNC_TIME_LIMIT := 30.0; +LibCommon_Sync.PX_TSHUT_DOWN_TIME_LIMIT := 30.0; + +LibItsHttp_Pics.PICS_HEADER_HOST := "172.22.1.6" + +LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json" +LibItsHttp_Pics.PICS_USE_TOKEN_HEADER := true +#LibItsHttp_Pics.PICS_TOKEN_HEADER := "Basic WrongToken" + +LibMec_Pics.PICS_ROOT_API := "etsi-013" + +# LibMex_Pixits +LibMec_Pixits.PX_ME_APP_Q_ZONE_ID_URI := "/location/v2/zones" +LibMec_Pixits.PX_ME_APP_Q_USERS_LIST_URI := "/location/v2/users" +LibMec_Pixits.PX_RNIS_SUBSCRITIONS_URI := "/rni/v1/subscriptions" +LibMec_Pixits.PX_RNIS_QUERIES_URI := "/rni/v1/queries" +LibMec_Pixits.PX_MEC_SVC_MGMT_APPS_URI := "/mec_service_mgmt/v1/applications" +LibMec_Pixits.PX_ME_APP_SUPPORT_URI := "/mec_app_support/v1/applications" +LibMec_Pixits.PX_SVC_MGMT_TRANS_URI := "/mec_service_mgmt/v1/transports" +LibMec_Pixits.PX_ME_APP_SUPPORT_TIMING_CAPS_URI := "/mec_app_support/v1/timing/timing_caps" +LibMec_Pixits.PX_ME_APP_SUPPORT_TIMING_CURRENT_URI := "/mec_app_support/v1/timing/current_time" + +# Mec-011 AppEnblementAPI +AppEnablementAPI_Pixits.PX_APP_INSTANCE_ID := "appInst01" +AppEnablementAPI_Pixits.PX_SERVICE_NAME := "serName" +AppEnablementAPI_Pixits.PX_SERVICE_ID := "serInst01" +AppEnablementAPI_Pixits.PX_SERVICE_INFO_VERSION := "1.0.0" +AppEnablementAPI_Pixits.PX_NEW_SERVICE_INFO_VERSION := "1.0.0" +AppEnablementAPI_Pixits.PX_SERVICE_INFO_STATE := ACTIVE +AppEnablementAPI_Pixits.PX_SUBSCRIPTION_ID := "7777" +AppEnablementAPI_Pixits.PX_DNS_RULE_ID := "route2home" +AppEnablementAPI_Pixits.PX_DOMAIN_NAME := "etsi.org" +AppEnablementAPI_Pixits.PX_IP_ADDRESS := "10.10.0.2" +AppEnablementAPI_Pixits.PX_TTL := 8 +AppEnablementAPI_Pixits.PX_TRAFFIC_RULE_ID := "trafficRuleId01" + +# Mec-012 RnisAPI +RnisAPI_Pixits.PX_SUBSCRIPTION_HREF_VALUE := "cell_change" +RnisAPI_Pixits.PX_SUBSCRIPTION_TYPE := CELL_CHANGE +RnisAPI_Pixits.PX_SUBSCRIPTION_ID := "7777" +RnisAPI_Pixits.PX_ASSOCIATE_ID_VALUE := "192.0.0.2" +RnisAPI_Pixits.PX_CELL_ID := "0x0800000A" +RnisAPI_Pixits.PX_C_ID := "0xFFFFFFFF" +RnisAPI_Pixits.PX_APP_INS_ID := "01" +RnisAPI_Pixits.PX_APP_ID := "19" +RnisAPI_Pixits.PX_E_RAB_ID := 0 +RnisAPI_Pixits.PX_QCI := 0 + +# Mec-013 LocationAPI +LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := true +LocationAPI_Pixits.PX_ZONE_ID := "zone1" +LocationAPI_Pixits.PX_USER := "ue1" +LocationAPI_Pixits.PX_CLIENT_ID := "0123" +LocationAPI_Pixits.PX_SUBSCRIPTION_ID := "subscription0123" + +UEidentityAPI_Pics.PICS_UE_IDENTITY_API_SUPPORTED := false + +BwManagementAPI_Pics.PICS_BWMANAGEMENT_API_SUPPORTED := false + +[LOGGING] +# In this section you can specify the name of the log file and the classes of events +# you want to log into the file or display on console (standard error). + +LogFile := "../logs/%e.%h-%r.%s" +#FileMask := LOG_ALL | USER | DEBUG | MATCHING +#ConsoleMask := LOG_ALL | USER | DEBUG | MATCHING +FileMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP | PORTEVENT +ConsoleMask := ERROR | WARNING | USER | MATCHING | EXECUTOR_RUNTIME | VERDICTOP | PORTEVENT +LogSourceInfo := Stack +LogEntityName:= Yes +LogEventTypes:= Yes +#TimeStampFormat := DateTime + +[TESTPORT_PARAMETERS] +# In this section you can specify parameters that are passed to Test Ports. +system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=172.22.1.6,port=31007,use_ssl=0)" +#system.httpPort.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server=172.28.4.253,port=30007,use_ssl=0)" +system.httpPort_notif.params := "HTTP(codecs=json:json_codec)/TCP(debug=1,server_mode=1,local_port=8081,use_ssl=0)" + +[DEFINE] +# In this section you can create macro definitions, +# that can be used in other configuration file sections except [INCLUDE] and [ORDERED_INCLUDE]. + +[INCLUDE] +# To use configuration settings given in other configuration files, +# the configuration files just need to be listed in this section, with their full or relative pathnames. + +[ORDERED_INCLUDE] +# To use configuration settings given in other configuration files, +# the configuration files just need to be listed in this section, with their full or relative pathnames. + +[EXTERNAL_COMMANDS] +# This section can define external commands (shell scripts) to be executed by the ETS +# whenever a control part or test case is started or terminated. + +#BeginTestCase := "" +#EndTestCase := "" +#BeginControlPart := "" +#EndControlPart := "" + +[EXECUTE] +# In this section you can specify what parts of your test suite you want to execute. +#AtsMec_TestControl.control +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_OK +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_BR +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_001_NF +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_OK +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_BR +#AtsMec_UEidentityAPI_TestCases.TC_MEC_SRV_UETAG_002_PF + +# ETSI GS MEC 013 +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCLOOK_001_NF +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_002_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UELOCSUB_002_NF +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_002_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UETRACKSUB_002_NF +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFLOOK_001_NF +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_001_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_001_BR +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_OK +#AtsMec_LocationAPI_TestCases.TC_MEC_SRV_UEINFSUB_002_NF +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_RLOCLOOK_001_OK +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_RLOCLOOK_001_NF +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEAREASUB_001_OK +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEAREASUB_001_BR +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEAREASUB_002_OK +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEAREASUB_002_NF +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEDISTLOOK_001_OK +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEDISTLOOK_001_BR +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEDISTSUB_001_OK +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEDISTSUB_001_BR +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEDISTSUB_002_OK +#AtsMec_RadioNodeLocationAPI_TestCases.TC_MEC_SRV_UEDISTSUB_002_NF + +# ETSI GS MEC 012 +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_012_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_011_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_012_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_016_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_017_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_018_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_BR +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_019_NF +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_001_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_002_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_003_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_004_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_005_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_006_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_007_OK +#AtsMec_RnisAPI_TestCases.TC_MEC_SRV_RNIS_008_OK + +# ETSI GS MEC 011 +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_001_BR +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_002_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_002_BR +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_002_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_003_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_003_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_004_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_004_BR +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_004_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSAQ_004_PF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSUB_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSUB_001_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSUB_002_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSUB_002_BR +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSUB_003_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSUB_003_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSUB_004_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_APPSUB_004_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_DNS_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_DNS_002_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_DNS_002_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_DNS_003_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_DNS_003_BR +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_DNS_003_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_DNS_003_PF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SAQ_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SAQ_001_BR +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SAQ_002_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SAQ_002_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SRVSUB_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SRVSUB_001_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SRVSUB_002_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SRVSUB_002_BR +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SRVSUB_003_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SRVSUB_003_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SRVSUB_004_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_SRVSUB_004_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TIME_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TIME_002_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_001_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_002_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_003_OK +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_003_BR +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_003_NF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRAF_003_PF +#AtsMec_AppEnablementAPI_TestCases.TC_MEC_SRV_TRANS_001_OK + +[GROUPS] +# In this section you can specify groups of hosts. These groups can be used inside the +# [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts. + +[COMPONENTS] +# This section consists of rules restricting the location of created PTCs. + +[MAIN_CONTROLLER] +# The options herein control the behavior of MC. +KillTimer := 10.0 +LocalAddress := 127.0.0.1 +TCPPort := 12000 +NumHCs := 1 diff --git a/scripts/devenv.bash.debian b/scripts/devenv.bash.debian new file mode 100755 index 0000000000000000000000000000000000000000..c6a9aaa760e99b77b8176a4b8867af032d8bf6a8 --- /dev/null +++ b/scripts/devenv.bash.debian @@ -0,0 +1,75 @@ +#!/bin/bash + +# Turn on debug mode +#set -vx +#set -e + +# Colors and Prompt +#export PS1="\w\$ " +#export PS1="\D{%Y-%m-%d %H:%M:%S} \w\n\$ " + +export EDITOR=emacs +set -o emacs + +# Home working directories +export HOME_FRAMEWORKS=${HOME}/frameworks +export HOME_LIB=${HOME}/lib +export HOME_BIN=${HOME}/bin +export HOME_ETC=${HOME}/etc +export HOME_TMP=${HOME}/tmp +export HOME_DOCS=${HOME}/docs + +# Home common include directory +export HOME_INC=${HOME}/include + +# Update PATH environment variable +export PATH=${HOME_BIN}:${PATH} + +# Update LD_LIBRARY_PATH environment variable +if [ -z "${LD_LIBRARY_PATH}" ] +then + export LD_LIBRARY_PATH=${HOME_LIB}:/usr/local/lib:${HOME}/dev/etsi_its/lib +else + export LD_LIBRARY_PATH=${HOME_LIB}:/usr/local/lib:${HOME}/dev/etsi_its/lib:${LD_LIBRARY_PATH} +fi + + +# Add JAVA support +#export JAVA_VERSION=1.8.0_92 +#export JAVA_JDK=jdk${JAVA_VERSION} +#if [ -d "${HOME_FRAMEWORKS}/${JAVA_JDK}" ] +#then +# export JAVA_HOME=${HOME_FRAMEWORKS}/${JAVA_JDK}/bin +#else +# unset JAVA_VERSION +# unset JAVA_JDK +#fi + +# Add TITAN support +export TOP=${HOME_FRAMEWORKS}/titan/titan.core +export TTCN3_DIR=${TOP}/Install +if [ -d ${TTCN3_DIR} ] +then + export TTCN3_BROWSER=mozilla + export PATH=${TTCN3_DIR}/bin:${PATH} + export LD_LIBRARY_PATH=${TTCN3_DIR}/lib:${LD_LIBRARY_PATH} + export MANPATH=${TTCN3_DIR}/man:${MANPATH} + export TTCN3_LICENSE_FILE=${TTCN3_DIR}/etc/license/license.dat + export PATH_DEV_TTCN=${HOME}/dev/ttcn3 + # ITS support + export PATH_DEV_ITS=${HOME}/dev/etsi_its + # Emergency Communication support + export PATH_DEV_EMCOM=${HOME}/dev/etsi_emcom + # Mobile-Edge Computing support + export PATH_DEV_MEC=${HOME}/dev/etsi_mec + # Validation folder + export VALIDATION_DIR=${HOME} +fi + +export BROWSER=netsurf + +export OPENSSL_DIR=/usr/local + +export LSAN_OPTIONS=verbosity=1:log_threads=1 + + diff --git a/scripts/mec_generate_makefile.bash b/scripts/mec_generate_makefile.bash index 996674096934f116292810f61b9875ec15edaa71..ec9c3ca4a69b446197f7b09dbf2c69fac694e547 100755 --- a/scripts/mec_generate_makefile.bash +++ b/scripts/mec_generate_makefile.bash @@ -4,7 +4,7 @@ set -vx function f_exit { cd ${CURPWD} - + unset TTCN_FILES unset CC_FILES unset CFG_FILES @@ -52,7 +52,7 @@ find .. -type f -name "*.bak" -exec rm {} \; find .. -type f -name "*.log" -exec rm {} \; # Build JSON files if any and put them in objs directory -REFERENCES="LibMec LibMec/Ams LibMec/AppEna LibMec/AppLCM LibMec/BwManagementAPI LibMec/FixedAccessInformationAPI LibMec/Grant LibMec/LocationAPI LibMec/MeoPkgm LibMec/MepmPkgm LibMec/RnisAPI LibMec/UEAppInterfaceAPI LibMec/UEidentityAPI LibHttp LibCommon" +REFERENCES="LibCommon LibHttp LibMec LibMec/LocationAPI LibMec/UEidentityAPI LibMec/RnisAPI LibMec/BwManagementAPI LibMec/Ams LibMec/AppEna LibMec/AppLCM LibMec/Grant LibMec/FixedAccessInformationAPI LibMec/MeoPkgm LibMec/MepmPkgm LibMec/UEAppInterfaceAPI LibMec/UEidentityAPI" for i in ${REFERENCES} do # TTCN code @@ -188,7 +188,7 @@ ADD_PORT='/PLATFORM = /aPORT=12000' sed --in-place "${ADD_PORT}" ./Makefile sed --in-place "${ADD_HOST}" ./Makefile ADD_RUN_LINE_1='$arun: all' -ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' +ADD_RUN_LINE_2='$a\\t@$(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_d: all' @@ -196,7 +196,7 @@ ADD_RUN_LINE_2='$a\\t@gdb --args $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_v: all' -ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) valgrind -v --tool=memcheck --leak-check=yes --show-reachable=yes --track-fds=yes --run-cxx-freeres=yes $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' +ADD_RUN_LINE_2='$a\\t@valgrind -v --tool=memcheck --leak-check=yes --show-reachable=yes --track-fds=yes --run-cxx-freeres=yes $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile # Add gendoc entry diff --git a/scripts/merge_mec_project.bash b/scripts/merge_mec_project.bash index 21278e7a6a51899cd054d22150f1da3fe67c5375..12fb86bd01e01a81084eeb22716678e424e21f07 100755 --- a/scripts/merge_mec_project.bash +++ b/scripts/merge_mec_project.bash @@ -158,7 +158,7 @@ done echo 'Update TTCN-3 files' TTCN_3_ORG_PATH=${SRC_MEC_PATH}/ttcn TTCN_3_DST_PATH=${PATH_DEV_MEC}/src -TTCN_3_ATS_LIST='AtsNg112 LibMec LibMec/LocationAPI LibMec/UEidentityAPI LibMec/RnisAPI LibMec/BwManagementAPI LibHttp LibCommon' +TTCN_3_ATS_LIST='AtsMec LibMec LibMec/LocationAPI LibMec/UEidentityAPI LibMec/RnisAPI LibMec/BwManagementAPI LibHttp LibCommon' for i in ${TTCN_3_ATS_LIST} do # TTCN-3 files @@ -208,7 +208,7 @@ do fi done -TTCN_3_LIB_LIST='TestCodec' +TTCN_3_LIB_LIST='AtsMec' for i in ${TTCN_3_LIB_LIST} do LIST_TTCN_FILES=`find ${TTCN_3_ORG_PATH}/$i -name "*.ttcn" -type f` diff --git a/scripts/run_all.bash b/scripts/run_all.bash index 55c00e054ba6a12789adb95c56e9e7624026a6a4..9361d6004c8637869d2bb456a630b637d7313381 100755 --- a/scripts/run_all.bash +++ b/scripts/run_all.bash @@ -24,7 +24,10 @@ then fi fi -rm ../logs/merged.log.* +for i in `ls ../logs/merged.*.log` +do + rm -f $i +done for i in $(seq 1 1 $COUNTER) do @@ -39,7 +42,7 @@ do done sleep 1 - mv ../logs/merged.log ../logs/merged.log.`date +'%Y%m%d%S'` + mv ../logs/merged.log ../logs/merged.`date +'%Y%m%d%S'`.log done exit 0 diff --git a/scripts/update_mec_project.bash b/scripts/update_mec_project.bash index c43de9422cda4307bef07408b484e193b3bf4d87..ef8eb316070460f6316da9b5b6a88a8cde0acec2 100755 --- a/scripts/update_mec_project.bash +++ b/scripts/update_mec_project.bash @@ -14,16 +14,15 @@ RUN_PATH="${0%/*}" if [ "${VALIDATION_DIR}" == "" ] then - VALIDATION_DIR=${VALIDATION_DIR} + VALIDATION_DIR=${HOME} fi -USER=`whoami` CHOWN_USER_GROUP=${USER}:${USER} SRC_MEC_PATH=${VALIDATION_DIR}/dev/STF569_Mec if [ "${PATH_DEV_MEC}" == "" ] then - PATH_DEV_MEC=${VALIDATION_DIR}/dev/etsi_mec + PATH_DEV_MEC=${HOME}/dev/etsi_mec fi echo ${PATH_DEV_MEC} @@ -106,7 +105,7 @@ echo 'Update TTCN-3 files' TTCN_3_ORG_PATH=${SRC_MEC_PATH}/ttcn TTCN_3_DST_PATH=${PATH_DEV_MEC}/src CC_SRC_PATH=${SRC_MEC_PATH}/ccsrc -TTCN_3_ATS_LIST='AtsMec TestCodec' +TTCN_3_ATS_LIST='AtsMec' for i in ${TTCN_3_ATS_LIST} do if [ ! -d ${TTCN_3_DST_PATH}/$i ] @@ -115,7 +114,7 @@ do chmod -R 775 ${TTCN_3_DST_PATH}/$i fi cp ${TTCN_3_ORG_PATH}/$i/*.ttcn ${TTCN_3_DST_PATH}/$i/ttcn - cp ${TTCN_3_ORG_PATH}/../etc/$i/*.cfg ${TTCN_3_DST_PATH}/$i/etc + cp ${TTCN_3_ORG_PATH}/../etc/$i/*.cf* ${TTCN_3_DST_PATH}/$i/etc if [ -d ${TTCN_3_ORG_PATH}/../etc_simu ] then mkdir -p ${TTCN_3_ORG_PATH}/../etc_simu @@ -125,7 +124,7 @@ do done # Update libraries & CC files -TTCN_3_LIB_LIST='LibMec LibMec/Ams LibMec/AppEna LibMec/AppLCM LibMec/BwManagementAPI LibMec/FixedAccessInformationAPI LibMec/Grant LibMec/LocationAPI LibMec/MeoPkgm LibMec/MepmPkgm LibMec/RnisAPI LibMec/UEAppInterfaceAPI LibMec/UEidentityAPI LibHttp LibCommon' +TTCN_3_LIB_LIST='LibMec LibMec/LocationAPI LibMec/UEidentityAPI LibMec/RnisAPI LibMec/BwManagementAPI LibMec/Ams LibMec/AppEna LibMec/AppLCM LibMec/Grant LibMec/FixedAccessInformationAPI LibMec/MeoPkgm LibMec/MepmPkgm LibMec/UEAppInterfaceAPI LibMec/UEidentityAPI LibHttp LibCommon' for i in ${TTCN_3_LIB_LIST} do if [ ! -d ${TTCN_3_DST_PATH}/$i ] @@ -134,7 +133,12 @@ do fi cp ${TTCN_3_ORG_PATH}/$i/*.ttcn ${TTCN_3_DST_PATH}/$i/ttcn # Update files - if [ "$i" == "LibHttp" ] + if [ "$i" == "LibMec" ] + then + cp ${TTCN_3_ORG_PATH}/$i/ttcn/*.ttcn ${TTCN_3_DST_PATH}/$i/ttcn + cp ${TTCN_3_ORG_PATH}/$i/json/*.json ${TTCN_3_DST_PATH}/$i/json + cp ${CC_SRC_PATH}/externals/*_ExternalFunctions.cc ${TTCN_3_DST_PATH}/$i/src + elif [ "$i" == "LibHttp" ] then cp ${TTCN_3_ORG_PATH}/LibIts/ttcn/Http/*.ttcn ${TTCN_3_DST_PATH}/$i/ttcn cp ${CC_SRC_PATH}/EncDec/$i/*_Encdec.cc ${TTCN_3_DST_PATH}/$i/src @@ -164,6 +168,10 @@ do cp ${TTCN_3_ORG_PATH}/$i/json/*.json ${TTCN_3_DST_PATH}/$i/json fi done +####################################################################################### +# Remove AtsMec_FixedAccessInformationAPI_TestCases, not supported yet +rm ${TTCN_3_DST_PATH}/AtsMec/ttcn/AtsMec_FixedAccessInfoAPI_TestCases.ttcn +####################################################################################### # Apply patches PATH_PATCHES=`pwd` @@ -175,11 +183,6 @@ then cp ${PATH_PATCHES}/run_ptcs.bash ${PATH_DEV_MEC}/src/AtsMec/bin cp ${PATH_PATCHES}/run_all.bash ${PATH_DEV_MEC}/src/AtsMec/bin cp ${PATH_PATCHES}/run_*_simu.bash ${PATH_DEV_MEC}/src/AtsMec/bin - # Update TestCodec - cp ${PATH_PATCHES}/testcodec_generate_makefile.bash ${PATH_DEV_MEC}/src/TestCodec/bin - cp ${PATH_PATCHES}/run_mtc.bash ${PATH_DEV_MEC}/src/TestCodec/bin - cp ${PATH_PATCHES}/run_ptcs.bash ${PATH_DEV_MEC}/src/TestCodec/bin - cp ${PATH_PATCHES}/run_all.bash ${PATH_DEV_MEC}/src/TestCodec/bin fi # Set rights diff --git a/ttcn/AtsMec/AtsMec_Ams_TestCases.ttcn b/ttcn/AtsMec/AtsMec_Ams_TestCases.ttcn index 8b44ec1a1c9232ec9c81010e360b507422855879..fd2f7fa01dd5ef3b6688a5828dd66d8e05f34bc1 100644 --- a/ttcn/AtsMec/AtsMec_Ams_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_Ams_TestCases.ttcn @@ -28,6 +28,8 @@ import from Ams_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; @@ -38,9 +40,9 @@ * @desc Check that the AMS service returns information about the registered application mobility services when requested * @see ETSI GS MEC 021 2.0.8, clause 8.3.3.1 */ - testcase TP_MEC_SRV_AMS_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -96,15 +98,15 @@ f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_001_OK + } // End of testcase TC_MEC_SRV_AMS_001_OK /** * @desc Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters * @see ETSI GS MEC 021 2.0.8, clause 8.3.3.1 */ - testcase TP_MEC_SRV_AMS_001_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ @@ -133,12 +135,12 @@ mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_ams_problem_details( - mw_problem_details( - -, - -, - 400 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, + -, + 400 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 400 Bad Request ***"); @@ -150,15 +152,15 @@ } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_001_BR + } // End of testcase TC_MEC_SRV_AMS_001_BR /** * @desc Check that the AMS service creates a new application mobility services when requested * @see ETSI GS MEC 021 2.0.8, clause 8.3.3.4 */ - testcase TP_MEC_SRV_AMS_002_OK() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_002_OK() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -229,14 +231,14 @@ f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_002_OK + } // End of testcase TC_MEC_SRV_AMS_002_OK /** * @desc Check that the AMS service sends an error when it receives a malformed request to create a new application mobility service * @see ETSI GS MEC 021 2.0.8, clause 8.3.3.4 */ - testcase TP_MEC_SRV_AMS_002_BR() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_002_BR() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -276,7 +278,7 @@ mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_ams_problem_details( + mw_body_json_problem_details( mw_problem_details( -, -, 400 ) @@ -297,7 +299,7 @@ } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_002_BR + } // End of testcase TC_MEC_SRV_AMS_002_BR } // End of group appMobilityServices @@ -307,9 +309,9 @@ * @desc Check that the AMS service returns information about this individual application mobility service * @see ETSI GS MEC 021 2.0.10, clause 8.4.3.1 */ - testcase TP_MEC_SRV_AMS_011_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_011_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -354,15 +356,15 @@ f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_011_OK + } // End of testcase TC_MEC_SRV_AMS_011_OK /** * @desc Check that the AMS service sends an error when receives a query about a not existing individual application mobility service * @see ETSI GS MEC 021 2.0.10, clause 8.4.3.1 */ - testcase TP_MEC_SRV_AMS_011_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_011_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ @@ -402,7 +404,7 @@ } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_011_NF + } // End of testcase TC_MEC_SRV_AMS_011_NF @@ -410,9 +412,9 @@ * @desc Check that the AMS service modifies the individual application mobility service when requested * @see ETSI GS MEC 021 2.0.10, clause 8.4.3.2 */ - testcase TP_MEC_SRV_AMS_012_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_012_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -481,15 +483,15 @@ f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_012_OK + } // End of testcase TC_MEC_SRV_AMS_012_OK /** * @desc Check that the AMS service sends an error when receives a request to modify a not existing individual application mobility service * @see ETSI GS MEC 021 2.0.10, clause 8.4.3.2 */ - testcase TP_MEC_SRV_AMS_012_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_012_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ @@ -541,15 +543,15 @@ } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_012_NF + } // End of testcase TC_MEC_SRV_AMS_012_NF /** * @desc Check that the AMS service sends an error when receives a request to modify a individual application mobility service using bad parameters * @see ETSI GS MEC 021 2.0.10, clause 8.4.3.2 */ - testcase TP_MEC_SRV_AMS_012_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_012_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ @@ -601,7 +603,7 @@ } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_012_BR + } // End of testcase TC_MEC_SRV_AMS_012_BR /** @@ -609,9 +611,9 @@ * that represents the individual application mobility service * @see ETSI GS MEC 021 2.0.10, clause 8.4.3.5 */ - testcase TP_MEC_SRV_AMS_013_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_013_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -651,16 +653,16 @@ f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_013_OK + } // End of testcase TC_MEC_SRV_AMS_013_OK /** * @desc Check that the AMS service sends an error when is requested to delete the resource * that represents the individual application mobility service * @see ETSI GS MEC 021 2.0.10, clause 8.4.3.5 */ - testcase TP_MEC_SRV_AMS_013_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_013_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ @@ -700,7 +702,7 @@ } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_013_NF + } // End of testcase TC_MEC_SRV_AMS_013_NF } @@ -710,9 +712,9 @@ * @desc Check that the AMS service deregister an individual application mobility service on expiry of the timer associated with the service * @see ETSI GS MEC 021 2.0.10, clause 8.5.3.4 */ - testcase TP_MEC_SRV_AMS_014_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_014_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -769,15 +771,15 @@ f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_014_OK + } // End of testcase TC_MEC_SRV_AMS_014_OK /** * @desc Check that the AMS service send an error when is requested to deregister a not existent individual application mobility service * @see ETSI GS MEC 021 2.0.10, clause 8.5.3.4 */ - testcase TP_MEC_SRV_AMS_014_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_014_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -817,7 +819,7 @@ f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_SRV_AMS_012_OK + } // End of testcase TC_MEC_SRV_AMS_012_OK } @@ -831,8 +833,8 @@ * - AdjacentAppInfoSubscription * @see ETSI GS MEC 021 2.0.8, clause 8.6.3.1 */ - testcase TP_MEC_SRV_AMS_003_OK() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_003_OK() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -888,14 +890,14 @@ } } // End of 'alt' statement - } // END TP_MEC_SRV_AMS_003_OK + } // END TC_MEC_SRV_AMS_003_OK /** * @desc Check that the AMS service sends an error when it receives a malformed query about the available subscriptions * @see ETSI GS MEC 021 2.0.8, clause 8.6.3.1 */ - testcase TP_MEC_SRV_AMS_003_BR() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_003_BR() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -925,7 +927,7 @@ mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_ams_problem_details( + mw_body_json_problem_details( mw_problem_details( -, -, 400 ) @@ -946,7 +948,7 @@ } } // End of 'alt' statement - } // END of TP_MEC_SRV_AMS_003_BR + } // END of TC_MEC_SRV_AMS_003_BR /** * @desc Check that the AMS service creates a notification subscriptions when requested. @@ -955,8 +957,8 @@ * - AdjacentAppInfoSubscription * @see ETSI GS MEC 021 2.0.8, clause 8.6.3.4 */ - testcase TP_MEC_SRV_AMS_004_OK() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_004_OK() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1022,7 +1024,7 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_004_OK + } // End of TC_MEC_SRV_AMS_004_OK /** * @desc Check that the AMS service sends an error when it receives a malformed request to create a notification subscription @@ -1031,8 +1033,8 @@ * - AdjacentAppInfoSubscription * @see ETSI GS MEC 021 2.0.8, clause 8.6.3.4 */ - testcase TP_MEC_SRV_AMS_004_BR() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_004_BR() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1073,7 +1075,7 @@ mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_ams_problem_details( + mw_body_json_problem_details( mw_problem_details( -, -, 400 ) @@ -1094,7 +1096,7 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_004_BR + } // End of TC_MEC_SRV_AMS_004_BR /** * @desc Check that the AMS service returns information about a given subscription when requested. @@ -1103,8 +1105,8 @@ * - AdjacentAppInfoSubscription * @see ETSI GS MEC 021 2.0.8, clause 8.7.3.1 */ - testcase TP_MEC_SRV_AMS_005_OK() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_005_OK() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1153,14 +1155,14 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_005_OK + } // End of TC_MEC_SRV_AMS_005_OK /** * @desc Check that the AMS service returns an error when receives a query about a not existing subscription * @see ETSI GS MEC 021 2.0.8, clause 8.7.3.1 */ - testcase TP_MEC_SRV_AMS_005_NF() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_005_NF() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1190,7 +1192,7 @@ mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( - mw_body_json_ams_problem_details( + mw_body_json_problem_details( mw_problem_details( -, -, 404 ) @@ -1211,14 +1213,14 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_005_NF + } // End of TC_MEC_SRV_AMS_005_NF /** * @desc Check that the AMS service deletes a given subscription when requested * @see ETSI GS MEC 021 2.0.8, clause 8.7.3.5 */ - testcase TP_MEC_SRV_AMS_006_OK() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_006_OK() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1261,14 +1263,14 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_006_OK + } // End of TC_MEC_SRV_AMS_006_OK /** * @desc Check that the AMS service sends an error when it receives a delete request for a not existing subscription * @see ETSI GS MEC 021 2.0.8, clause 8.7.3.5 */ - testcase TP_MEC_SRV_AMS_006_NF() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_006_NF() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1298,7 +1300,7 @@ mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( - mw_body_json_ams_problem_details( + mw_body_json_problem_details( ) ) ) @@ -1316,7 +1318,7 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_006_NF + } // End of TC_MEC_SRV_AMS_006_NF /** * @desc Check that the AMS service modifies a given subscription when requested. @@ -1325,8 +1327,8 @@ * - AdjacentAppInfoSubscription * @see ETSI GS MEC 021 2.0.8, clause 8.7.3.2 */ - testcase TP_MEC_SRV_AMS_007_OK() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_007_OK() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1382,7 +1384,7 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_007_OK + } // End of TC_MEC_SRV_AMS_007_OK /** * @desc Check that the AMS service sends an error when it receives a malformed modify request for a given subscription. @@ -1391,8 +1393,8 @@ * - AdjacentAppInfoSubscription * @see ETSI GS MEC 021 2.0.8, clause 8.7.3.2 */ - testcase TP_MEC_SRV_AMS_007_BR() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_007_BR() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1431,7 +1433,7 @@ mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_ams_problem_details( + mw_body_json_problem_details( ) ) ) @@ -1449,14 +1451,14 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_007_BR + } // End of TC_MEC_SRV_AMS_007_BR /** * @desc Check that the AMS service sends an error when it receives a modify request for a not existing subscription * @see ETSI GS MEC 021 2.0.8, clause 8.7.3.2 */ - testcase TP_MEC_SRV_AMS_007_NF() runs on HttpComponent system HttpTestAdapter { - var HeaderLines v_headers; + testcase TC_MEC_SRV_AMS_007_NF() runs on HttpComponent system HttpTestAdapter { + var Headers v_headers; if (not(PICS_AMS) or not(PICS_AMS_API_SUPPORTED)){ log("*** " & testcasename() & ": PICS_AMS required for executing the TC ***"); setverdict(inconc); @@ -1493,7 +1495,7 @@ mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( - mw_body_json_ams_problem_details( + mw_body_json_problem_details( ) ) ) @@ -1511,7 +1513,7 @@ } } // End of 'alt' statement - } // End of TP_MEC_SRV_AMS_007_NF + } // End of TC_MEC_SRV_AMS_007_NF } // End of group appMobilityServicesSubscriptions @@ -1522,9 +1524,9 @@ * @desc Check that the AMS service sends an AMS notification about a mobility procedure if the AMS service has an associated subscription and the event is generated * @see ETSI GS MEC 021 2.0.8, clause 7.4.2 */ - testcase TP_MEC_SRV_AMS_008_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_008_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_AMS) or not(PICS_AMS_NOTIFICATIONS)) { @@ -1582,15 +1584,15 @@ // Postamble f_cf_01_http_notif_down(); - } // End of TP_MEC_SRV_AMS_008_OK + } // End of TC_MEC_SRV_AMS_008_OK /** * @desc Check that the AMS service sends an AMS notification about adjacent application instances if the AMS service has an associated subscription and the event is generated * @see ETSI GS MEC 021 2.0.8, clause 7.4.3 */ - testcase TP_MEC_SRV_AMS_009_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_009_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_AMS) or not(PICS_AMS_NOTIFICATIONS)) { @@ -1655,9 +1657,9 @@ * @desc Check that the AMS service sends an AMS notification on subscription expiration if the AMS service has an associated subscription and the event is generated * @see ETSI GS MEC 021 2.0.8, clause 7.4.4 */ - testcase TP_MEC_SRV_AMS_010_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_AMS_010_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var UInt64 v_timestamp; // Test control diff --git a/ttcn/AtsMec/AtsMec_AppEnablementAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_AppEnablementAPI_TestCases.ttcn index 7ac9f4ce8695c66b464d7bb21dcd979fea09385d..6a5aed3ef34c3babfc2a27a3451f99179131d17e 100644 --- a/ttcn/AtsMec/AtsMec_AppEnablementAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_AppEnablementAPI_TestCases.ttcn @@ -23,28 +23,32 @@ module AtsMec_AppEnablementAPI_TestCases { import from LibItsHttp_TestSystem all; // LibMec/AppEnablementAPI + import from AppEnablementAPI_TypesAndValues all; import from AppEnablementAPI_Templates all; import from AppEnablementAPI_Pics all; import from AppEnablementAPI_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; + const charstring c_etag_http_header := "etag"; - /* - * Application Service Availability Query (APPSAQ) - */ + /* + * Application Service Availability Query (APPSAQ) + */ group app_saq { /** * @desc Check that the IUT responds with a list of available MEC services for a given application instance when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -63,7 +67,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services", v_headers ) ) @@ -92,15 +96,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_001_OK + } // End of testcase TC_MEC_SRV_APPSAQ_001_OK /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_001_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -119,7 +123,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services?instance_id=" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID)), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services?instance_id=" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID)), v_headers ) ) @@ -146,16 +150,17 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_001_BR + } // End of testcase TC_MEC_SRV_APPSAQ_001_BR /** * @desc Check that the IUT notifies the authorised relevant (subscribed) application instances when a new service for a given application instance is registered. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; + var universal charstring v_service_name; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not (PICS_NOTIFICATIONS) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -171,15 +176,26 @@ module AtsMec_AppEnablementAPI_TestCases { // Preamble f_init_default_headers_list(-, -, v_headers); + v_service_name := oct2unichar(char2oct("service_" & int2str(f_get_current_timestamp_utc()))); httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services", v_headers, m_http_message_body_json( m_body_json_service_info( m_service_info( - PX_SERVICE_NAME + v_service_name, + -, -, -, -, -, //-, + m_transport_info( + "transportId1", + "TC_MEC_SRV_APPSAQ_002_OK", + REST_HTTP, + "HTTP", + "2.0", + m_end_point_uris({"/meMp1/service/MyEntryPoint"}), + m_security_info + ) ) ) ) @@ -194,11 +210,11 @@ module AtsMec_AppEnablementAPI_TestCases { [] httpPort.receive( mw_http_response( mw_http_response_201_created( - mw_http_message_body_json( - mw_body_json_service_info( - mw_service_info( - PX_SERVICE_NAME //serName - )))))) -> value v_response { + mw_http_message_body_json( + mw_body_json_service_info( + mw_service_info( + v_service_name //serName + )))))) -> value v_response { tc_ac.stop; if (f_check_headers(valueof(v_response.response.header)) == true) { @@ -218,7 +234,7 @@ module AtsMec_AppEnablementAPI_TestCases { ; to the MEC_APP_Subscriber entity */ - log("*** " & testcasename() & ": PASS: IUT successfully responds with a ServiceInfo and set notofocation ***"); + log("*** " & testcasename() & ": PASS: IUT successfully responds with a ServiceInfo and set notification ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: Header 'Location' was not present in the response headers ***"); @@ -233,15 +249,16 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_002_OK + } // End of testcase TC_MEC_SRV_APPSAQ_002_OK /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_002_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_002_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; + var universal charstring v_service_name; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -257,16 +274,19 @@ module AtsMec_AppEnablementAPI_TestCases { // Preamble f_init_default_headers_list(-, -, v_headers); - + v_service_name := oct2unichar(char2oct("service_" & int2str(f_get_current_timestamp_utc()))); httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services", v_headers, m_http_message_body_json( m_body_json_service_info( m_service_info( - PX_NON_EXISTENT_SERVICE_NAME + v_service_name, + -, + UNKNOWN, + RAW ) ) ) @@ -295,15 +315,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_002_BR + } // End of testcase TC_MEC_SRV_APPSAQ_002_BR /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_002_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -322,7 +342,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/services", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/services", v_headers, m_http_message_body_json( m_body_json_service_info( @@ -356,15 +376,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_002_NF + } // End of testcase TC_MEC_SRV_APPSAQ_002_NF /** * @desc Check that the IUT responds with the information on a specific service for a given application instance when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_003_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -383,7 +403,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_SERVICE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_SERVICE_ID, "UTF-8")), v_headers ) ) @@ -399,7 +419,7 @@ module AtsMec_AppEnablementAPI_TestCases { mw_http_message_body_json( mw_body_json_service_info( mw_service_info( - -, -, -, -, + -, -, -, -, //-, PX_SERVICE_ID )))))) { tc_ac.stop; @@ -415,15 +435,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_003_OK + } // End of testcase TC_MEC_SRV_APPSAQ_003_OK /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -442,7 +462,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_NON_EXISTENT_SERVICE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_NON_EXISTENT_SERVICE_ID, "UTF-8")), v_headers ) ) @@ -469,15 +489,126 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_003_NF + } // End of testcase TC_MEC_SRV_APPSAQ_003_NF + + group f_TC_MEC_SRV_APPSAQ_004 { + + /** + * @desc This function request the createion of a new service + * @param p_service_name Indicates the name of the new serivce + * @return 0 on success, -1 otherwise + */ + function f_create_service( + out universal charstring p_service_name, + out ServiceInfo p_service_info, + out Headers p_headers + ) runs on HttpComponent return integer { + var universal charstring v_service_name; + var Headers v_headers; + var integer v_result := -1; + var HttpMessage v_response; + + f_init_default_headers_list(-, -, v_headers); + v_service_name := oct2unichar(char2oct("service_" & int2str(f_get_current_timestamp_utc()))); + httpPort.send( + m_http_request( + m_http_request_post( + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services", + v_headers, + m_http_message_body_json( + m_body_json_service_info( + m_service_info( + v_service_name, + -, -, -, -, -, //-, + m_transport_info( + "transportId1", + "TC_MEC_SRV_APPSAQ_002_OK", + REST_HTTP, + "HTTP", + "2.0", + m_end_point_uris({"/meMp1/service/MyEntryPoint"}), + m_security_info + ) + ) + ) + ) + ) + ) + ); + tc_ac.start; + alt { + [] httpPort.receive( + mw_http_response( + mw_http_response_201_created( + mw_http_message_body_json( + mw_body_json_service_info( + mw_service_info( + v_service_name //serName + )))))) -> value v_response { + tc_ac.stop; + p_service_name := v_service_name; + p_service_info := v_response.response.body.json_body.serviceInfo; + p_headers := v_response.response.header; + v_result := 0; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + } + } // End of 'alt' statement + + return v_result; + } // End of function f_create_service_info + + /** + * @desc This function request the deletion of a service + * @param p_service_name Indicates the name of the serivce to delete + * @return 0 on success, -1 otherwise + */ + function f_delete_service( + in universal charstring p_service_name + ) runs on HttpComponent return integer { + var Headers v_headers; + var integer v_result := -1; + + f_init_default_headers_list(-, -, v_headers); + httpPort.send( + m_http_request( + m_http_request_delete( + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(p_service_name)), + v_headers + ) + ) + ); + tc_ac.start; + alt { + [] httpPort.receive( + mw_http_response( + mw_http_response_204_no_content + )) { + tc_ac.stop; + v_result := 0; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + } + } // End of 'alt' statement + + return v_result; + } // End of function f_delete_service_info + + } // End of group f_TC_MEC_SRV_APPSAQ_004 /** * @desc Check that the IUT updates a service information for a given application instance when commanded by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_004_OK() runs on HttpComponent system HttpTestAdapter { + + testcase TC_MEC_SRV_APPSAQ_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; + var charstring_list v_etag; + var universal charstring v_service_name; + var ServiceInfo v_service_info; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -492,22 +623,35 @@ module AtsMec_AppEnablementAPI_TestCases { // Test adapter configuration // Preamble - // TODO If-Match header needs to have a PROPER_ETAG + if(f_create_service(v_service_name, v_service_info, v_headers) == -1) { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + if (f_check_headers(v_headers, c_etag_http_header) == false) { + log("*** " & testcasename() & ": INCONC: 'ETag' HTTP header not set ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + f_get_header(v_headers, c_etag_http_header, v_etag); // TODO Check headers + log("*** " & testcasename() & ": INFO: New servie created: ", v_service_name, ", transportID=", v_service_info.transportInfo.id, ", ETag=", v_etag[0]); + // If-Match header needs to have a PROPER_ETAG f_init_default_headers_list(-, -, v_headers); + f_set_headers_list({ "If-Match" }, v_etag, v_headers); httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_SERVICE_ID, "UTF-8")), - v_headers, - m_http_message_body_json( - m_body_json_service_info( - m_service_info( - PX_SERVICE_NAME, - PX_NEW_SERVICE_INFO_VERSION - ) - ) - ) - ) + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(v_service_name, "UTF-8")), + v_headers, + m_http_message_body_json( + m_body_json_service_info( + m_service_info( + v_service_name, + PX_NEW_SERVICE_INFO_VERSION, + -, -, -, -, + v_service_info.transportInfo + ) + ) + ) + ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); @@ -521,7 +665,7 @@ module AtsMec_AppEnablementAPI_TestCases { mw_http_message_body_json( mw_body_json_service_info( mw_service_info( - PX_SERVICE_NAME, + v_service_name, PX_NEW_SERVICE_INFO_VERSION )))))) { tc_ac.stop; @@ -536,16 +680,20 @@ module AtsMec_AppEnablementAPI_TestCases { } // End of 'alt' statement // Postamble + f_delete_service(v_service_name); f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_004_OK + } // End of testcase TC_MEC_SRV_APPSAQ_004_OK /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_004_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_004_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; + var charstring_list v_etag; + var universal charstring v_service_name := ""; + var ServiceInfo v_service_info; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -560,19 +708,29 @@ module AtsMec_AppEnablementAPI_TestCases { // Test adapter configuration // Preamble - // TODO If-Match header needs to have a PROPER_ETAG + if(f_create_service(v_service_name, v_service_info, v_headers) == -1) { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + if (f_check_headers(v_headers, c_etag_http_header) == false) { + log("*** " & testcasename() & ": INCONC: 'ETag' HTTP header not set ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + f_get_header(v_headers, c_etag_http_header, v_etag); // TODO Check headers + log("*** " & testcasename() & ": INFO: New servie created: ", v_service_name, ", transportID=", v_service_info.transportInfo.id, ", ETag=", v_etag[0]); + // If-Match header needs to have a PROPER_ETAG f_init_default_headers_list(-, -, v_headers); - + f_set_headers_list({ "If-Match" }, v_etag, v_headers); httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_SERVICE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(v_service_name, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_service_info( m_service_info( - PX_SERVICE_NAME, - PX_NEW_SERVICE_INFO_VERSION // TODO the parameter name should be an invalid one to trigger the error. How to do it? + v_service_name & char(0, 0, 1, 111), + PX_NEW_SERVICE_INFO_VERSION ) ) ) @@ -600,16 +758,17 @@ module AtsMec_AppEnablementAPI_TestCases { } // End of 'alt' statement // Postamble + f_delete_service(v_service_name); f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_004_BR + } // End of testcase TC_MEC_SRV_APPSAQ_004_BR /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_004_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_004_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -629,7 +788,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_NON_EXISTENT_SERVICE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_NON_EXISTENT_SERVICE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_service_info( @@ -664,15 +823,18 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_004_NF + } // End of testcase TC_MEC_SRV_APPSAQ_004_NF /** * @desc Check that the IUT responds with an error when a request sent by a MEC Application doesn't comply with a required condition * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppServices.tplan2 */ - testcase TP_MEC_SRV_APPSAQ_004_PF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSAQ_004_PF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; + var charstring_list v_etag; + var universal charstring v_service_name; + var ServiceInfo v_service_info; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -687,22 +849,35 @@ module AtsMec_AppEnablementAPI_TestCases { // Test adapter configuration // Preamble - // TODO If-Match header needs to have an INVALID_ETAG + if(f_create_service(v_service_name, v_service_info, v_headers) == -1) { + log("*** " & testcasename() & ": INCONC: Expected message not received ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + if (f_check_headers(v_headers, c_etag_http_header) == false) { + log("*** " & testcasename() & ": INCONC: 'ETag' HTTP header not set ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } + f_get_header(v_headers, c_etag_http_header, v_etag); + log("*** " & testcasename() & ": INFO: New servie created: ", v_service_name, ", transportID=", v_service_info.transportInfo.id, ", ETag=", v_etag[0]); + // If-Match header needs to have an INVALID_ETAG f_init_default_headers_list(-, -, v_headers); + f_set_headers_list({ "If-Match" }, { int2str(f_get_current_timestamp_utc()) }, v_headers); httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(PX_SERVICE_ID, "UTF-8")), - v_headers, - m_http_message_body_json( - m_body_json_service_info( - m_service_info( - PX_SERVICE_NAME, - PX_NEW_SERVICE_INFO_VERSION - ) - ) - ) - ) + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/services/" & oct2char(unichar2oct(v_service_name, "UTF-8")), + v_headers, + m_http_message_body_json( + m_body_json_service_info( + m_service_info( + v_service_name, + PX_NEW_SERVICE_INFO_VERSION, + -, -, -, -, + v_service_info.transportInfo + ) + ) + ) + ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); @@ -726,8 +901,9 @@ module AtsMec_AppEnablementAPI_TestCases { } // End of 'alt' statement // Postamble + f_delete_service(v_service_name); f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_004_PF + } // End of testcase TC_MEC_SRV_APPSAQ_004_PF } // End of group app_saq @@ -740,9 +916,9 @@ module AtsMec_AppEnablementAPI_TestCases { * @desc Check that the IUT responds with a list of subscriptions for notifications on services availability when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppSubscriptions.tplan2 */ - testcase TP_MEC_SRV_APPSUB_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -761,7 +937,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", v_headers ) ) @@ -791,15 +967,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_001_OK + } // End of testcase TC_MEC_SRV_APPSUB_001_OK /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppSubscriptions.tplan2 */ - testcase TP_MEC_SRV_APPSUB_001_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSUB_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -818,7 +994,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", v_headers ) ) @@ -845,15 +1021,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_001_NF + } // End of testcase TC_MEC_SRV_APPSUB_001_NF /** * @desc Check that the IUT acknowledges the subscription by a MEC Application to notifications on service availability events. * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppSubscriptions.tplan2 */ - testcase TP_MEC_SRV_APPSUB_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -870,19 +1046,20 @@ module AtsMec_AppEnablementAPI_TestCases { // Preamble f_init_default_headers_list(-, -, v_headers); + //TODO Create a subsciption (see TC_MEC_SRV_APPSUB_001_OK); httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", v_headers, m_http_message_body_json( m_body_json_app_termination_notif_subscription( m_app_termination_notif_subscription( PX_APP_TERM_NOTIF_CALLBACK_URI, - m_self( + -/*m_self( { href := PX_HREF } - ), - PX_APP_INSTANCE_ID + )*/, + "ID1"/*PX_APP_INSTANCE_ID*/ ) ) ) @@ -897,11 +1074,11 @@ module AtsMec_AppEnablementAPI_TestCases { [] httpPort.receive( mw_http_response( mw_http_response_201_created( - mw_http_message_body_json( - mw_body_json_app_termination_notif_subscription( - mw_app_termination_notif_subscription( - PX_APP_TERM_NOTIF_CALLBACK_URI - )))))) -> value v_response { + mw_http_message_body_json( + mw_body_json_app_termination_notif_subscription( + mw_app_termination_notif_subscription( + PX_APP_TERM_NOTIF_CALLBACK_URI + )))))) -> value v_response { tc_ac.stop; if (f_check_headers(valueof(v_response.response.header)) == true) { @@ -920,15 +1097,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_002_OK + } // End of testcase TC_MEC_SRV_APPSUB_002_OK /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppSubscriptions.tplan2 */ - testcase TP_MEC_SRV_APPSUB_002_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSUB_002_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -948,7 +1125,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", v_headers, m_http_message_body_json( m_body_json_app_termination_notif_subscription( @@ -986,15 +1163,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_002_BR + } // End of testcase TC_MEC_SRV_APPSUB_002_BR /** * @desc Check that the IUT responds with the information on a specific subscription when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppSubscriptions.tplan2 */ - testcase TP_MEC_SRV_APPSUB_003_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSUB_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1013,7 +1190,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -1043,15 +1220,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_003_OK + } // End of testcase TC_MEC_SRV_APPSUB_003_OK /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppSubscriptions.tplan2 */ - testcase TP_MEC_SRV_APPSUB_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSUB_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1070,7 +1247,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_NON_EXISTENT_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_NON_EXISTENT_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -1097,15 +1274,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_003_NF + } // End of testcase TC_MEC_SRV_APPSUB_003_NF /** * @desc Check that the IUT acknowledges the unsubscribe from service availability event notifications when commanded by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppSubscriptions.tplan2 */ - testcase TP_MEC_SRV_APPSUB_004_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSUB_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1124,7 +1301,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -1151,15 +1328,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_004_OK + } // End of testcase TC_MEC_SRV_APPSUB_004_OK /** * @desc Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/APPSAQ/PlatAppSubscriptions.tplan2 */ - testcase TP_MEC_SRV_APPSUB_004_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_APPSUB_004_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1179,7 +1356,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -1206,7 +1383,7 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_004_NF + } // End of testcase TC_MEC_SRV_APPSUB_004_NF } // End of group app_sub @@ -1221,9 +1398,9 @@ module AtsMec_AppEnablementAPI_TestCases { * @desc Check that the IUT responds with a list of active DNS rules when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/DNS/PlatDnsRules.tplan2 */ - testcase TP_MEC_SRV_DNS_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_DNS_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1242,7 +1419,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules", + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules", v_headers ) ) @@ -1271,15 +1448,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_DNS_001_OK + } // End of testcase TC_MEC_SRV_DNS_001_OK /** * @desc Check that the IUT responds with the information on a specific DNS rule when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/DNS/PlatDnsRules.tplan2 */ - testcase TP_MEC_SRV_DNS_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_DNS_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1298,7 +1475,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_DNS_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_DNS_RULE_ID, "UTF-8")), v_headers ) ) @@ -1312,9 +1489,10 @@ module AtsMec_AppEnablementAPI_TestCases { mw_http_response( mw_http_response_ok( mw_http_message_body_json( - mw_body_json_dns_rule_list( - { *, mw_dns_rule(PX_DNS_RULE_ID), * } - ))))) { + mw_body_json_dns_rule( + mw_dns_rule( + PX_DNS_RULE_ID + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a DnsRule ***"); @@ -1328,15 +1506,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_DNS_002_OK + } // End of testcase TC_MEC_SRV_DNS_002_OK /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/DNS/PlatDnsRules.tplan2 */ - testcase TP_MEC_SRV_DNS_002_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_DNS_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1355,7 +1533,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_NON_EXISTENT_DNS_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_NON_EXISTENT_DNS_RULE_ID, "UTF-8")), v_headers ) ) @@ -1382,15 +1560,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_DNS_002_NF + } // End of testcase TC_MEC_SRV_DNS_002_NF /** * @desc Check that the IUT updates a specific DNS rule when commanded by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/DNS/PlatDnsRules.tplan2 */ - testcase TP_MEC_SRV_DNS_003_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_DNS_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1410,7 +1588,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_DNS_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_DNS_RULE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_dns_rule( @@ -1448,15 +1626,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_DNS_003_OK + } // End of testcase TC_MEC_SRV_DNS_003_OK /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/DNS/PlatDnsRules.tplan2 */ - testcase TP_MEC_SRV_DNS_003_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_DNS_003_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1477,7 +1655,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_DNS_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_DNS_RULE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_dns_rule( @@ -1513,15 +1691,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_DNS_003_BR + } // End of testcase TC_MEC_SRV_DNS_003_BR /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/DNS/PlatDnsRules.tplan2 */ - testcase TP_MEC_SRV_DNS_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_DNS_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1541,7 +1719,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_NON_EXISTENT_DNS_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_NON_EXISTENT_DNS_RULE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_dns_rule( @@ -1577,15 +1755,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_DNS_003_NF + } // End of testcase TC_MEC_SRV_DNS_003_NF /** * @desc Check that the IUT responds with an error when a request sent by a MEC Application doesn't comply with a required condition * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/DNS/PlatDnsRules.tplan2 */ - testcase TP_MEC_SRV_DNS_003_PF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_DNS_003_PF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1600,12 +1778,13 @@ module AtsMec_AppEnablementAPI_TestCases { // Test adapter configuration // Preamble - // TODO If-Match header needs to have an INVALID_ETAG f_init_default_headers_list(-, -, v_headers); + // If-Match header needs to have an INVALID_ETAG + f_set_headers_list({ "If-Match" }, { int2str(f_get_current_timestamp_utc()) }, v_headers); httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_DNS_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/dns_rules/" & oct2char(unichar2oct(PX_DNS_RULE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_dns_rule( @@ -1641,7 +1820,7 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_DNS_003_PF + } // End of testcase TC_MEC_SRV_DNS_003_PF } // End of group app_dns @@ -1654,9 +1833,9 @@ module AtsMec_AppEnablementAPI_TestCases { * @desc Check that the IUT responds with a list of available MEC services when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SAQ/PlatServices.tplan2 */ - testcase TP_MEC_SRV_SAQ_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SAQ_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1704,15 +1883,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SAQ_001_OK + } // End of testcase TC_MEC_SRV_SAQ_001_OK /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SAQ/PlatServices.tplan2 */ - testcase TP_MEC_SRV_SAQ_001_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SAQ_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1732,7 +1911,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_SVC_URI, + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_SVC_URI & "?instance_id=" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")), v_headers ) ) @@ -1759,15 +1938,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SAQ_001_BR + } // End of testcase TC_MEC_SRV_SAQ_001_BR /** * @desc Check that the IUT responds with the information on a specific service when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SAQ/PlatServices.tplan2 */ - testcase TP_MEC_SRV_SAQ_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SAQ_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1786,7 +1965,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_SVC_URI & oct2char(unichar2oct(PX_SERVICE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_SVC_URI & "/" & oct2char(unichar2oct(PX_SERVICE_ID, "UTF-8")), v_headers ) ) @@ -1817,15 +1996,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SAQ_002_OK + } // End of testcase TC_MEC_SRV_SAQ_002_OK /** * @desc Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SAQ/PlatServices.tplan2 */ - testcase TP_MEC_SRV_SAQ_002_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SAQ_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1844,7 +2023,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_SVC_URI & oct2char(unichar2oct(PX_NON_EXISTENT_SERVICE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_SVC_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_SERVICE_ID, "UTF-8")), v_headers ) ) @@ -1871,7 +2050,7 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SAQ_002_NF + } // End of testcase TC_MEC_SRV_SAQ_002_NF } // End of group saq @@ -1884,9 +2063,9 @@ module AtsMec_AppEnablementAPI_TestCases { * @desc Check that the IUT responds with a list of subscriptions for notifications on services availability when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SRVSUB/PlatSrvSubscriptions.tplan2 */ - testcase TP_MEC_SRV_SRVSUB_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SRVSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1905,7 +2084,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", v_headers ) ) @@ -1934,15 +2113,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SRVSUB_001_OK + } // End of testcase TC_MEC_SRV_SRVSUB_001_OK /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SRVSUB/PlatSrvSubscriptions.tplan2 */ - testcase TP_MEC_SRV_SRVSUB_001_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SRVSUB_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -1961,7 +2140,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", v_headers ) ) @@ -1988,15 +2167,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SRVSUB_001_NF + } // End of testcase TC_MEC_SRV_SRVSUB_001_NF /** * @desc Check that the IUT acknowledges the subscription by a MEC Application to notifications on service availability events * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SRVSUB/PlatSrvSubscriptions.tplan2 */ - testcase TP_MEC_SRV_SRVSUB_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SRVSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -2016,7 +2195,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", v_headers, m_http_message_body_json( m_body_json_srv_avail_notif_subscription( @@ -2059,15 +2238,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_002_OK + } // End of testcase TC_MEC_SRV_APPSUB_002_OK /** * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SRVSUB/PlatSrvSubscriptions.tplan2 */ - testcase TP_MEC_SRV_SRVSUB_002_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SRVSUB_002_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2087,7 +2266,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions", v_headers, m_http_message_body_json( m_body_json_srv_avail_notif_subscription( @@ -2121,15 +2300,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_002_BR + } // End of testcase TC_MEC_SRV_APPSUB_002_BR /** * @desc Check that the IUT responds with the information on a specific subscription when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SRVSUB/PlatSrvSubscriptions.tplan2 */ - testcase TP_MEC_SRV_SRVSUB_003_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SRVSUB_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2148,7 +2327,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -2179,15 +2358,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SRVSUB_003_OK + } // End of testcase TC_MEC_SRV_SRVSUB_003_OK /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SRVSUB/PlatSrvSubscriptions.tplan2 */ - testcase TP_MEC_SRV_SRVSUB_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SRVSUB_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2206,7 +2385,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_NON_EXISTENT_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_NON_EXISTENT_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -2233,15 +2412,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSUB_003_NF + } // End of testcase TC_MEC_SRV_APPSUB_003_NF /** * @desc Check that the IUT acknowledges the unsubscribe from service availability event notifications when commanded by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SRVSUB/PlatSrvSubscriptions.tplan2 */ - testcase TP_MEC_SRV_SRVSUB_004_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SRVSUB_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2260,7 +2439,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -2287,15 +2466,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SRVSUB_004_OK + } // End of testcase TC_MEC_SRV_SRVSUB_004_OK /** * @desc Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/SRVSUB/PlatSrvSubscriptions.tplan2 */ - testcase TP_MEC_SRV_SRVSUB_004_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_SRVSUB_004_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2315,7 +2494,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_MEC_SVC_MGMT_APPS_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/subscriptions/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -2342,7 +2521,7 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SRVSUB_004_NF + } // End of testcase TC_MEC_SRV_SRVSUB_004_NF } // End of group srv_sub @@ -2355,9 +2534,9 @@ module AtsMec_AppEnablementAPI_TestCases { * @desc Check that the IUT responds with timing capabilities when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TIME/PlatTiming.tplan2 */ - testcase TP_MEC_SRV_TIME_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_TIME_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2376,7 +2555,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - PX_ME_APP_SUPPORT_TIMING_CAPS_URI, + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_TIMING_CAPS_URI, v_headers ) ) @@ -2406,15 +2585,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_TIME_001_OK + } // End of testcase TC_MEC_SRV_TIME_001_OK /** * @desc Check that the IUT responds with current time when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TIME/PlatTiming.tplan2 */ - testcase TP_MEC_SRV_TIME_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_TIME_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var UInt64 v_current_time; // Test control @@ -2467,7 +2646,7 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_TIME_002_OK + } // End of testcase TC_MEC_SRV_TIME_002_OK } // End of group timing @@ -2480,9 +2659,9 @@ module AtsMec_AppEnablementAPI_TestCases { * @desc Check that the IUT responds with a list of available traffic rules when queried by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/PlatTrafficRules.tplan2 */ - testcase TP_MEC_SRV_TRAF_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_TRAF_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2501,7 +2680,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules", + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules", v_headers ) ) @@ -2530,15 +2709,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_TRAF_001_OK + } // End of testcase TC_MEC_SRV_TRAF_001_OK /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/PlatTrafficRules.tplan2 */ - testcase TP_MEC_SRV_TRAF_001_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_TRAF_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2557,7 +2736,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules", + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules", v_headers ) ) @@ -2584,7 +2763,7 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_SRVSUB_001_NF + } // End of testcase TC_MEC_SRV_SRVSUB_001_NF /** * @desc Check that the IUT responds with the information on a specific traffic rule when queried by a MEC Application @@ -2592,7 +2771,7 @@ module AtsMec_AppEnablementAPI_TestCases { */ testcase TC_MEC_SRV_TRAF_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2611,7 +2790,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_SVC_MGMT_APP_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_TRAFFIC_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_TRAFFIC_RULE_ID, "UTF-8")), v_headers ) ) @@ -2650,7 +2829,7 @@ module AtsMec_AppEnablementAPI_TestCases { */ testcase TC_MEC_SRV_TRAF_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2669,7 +2848,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_SVC_MGMT_APP_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_TRAFFIC_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_TRAFFIC_RULE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_traffic_rule( @@ -2717,9 +2896,9 @@ module AtsMec_AppEnablementAPI_TestCases { * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/PlatTrafficRules.tplan2 */ - testcase TP_MEC_SRV_TRAF_003_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_TRAF_003_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2741,7 +2920,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_TRAFFIC_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_TRAFFIC_RULE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_traffic_rule( @@ -2775,15 +2954,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_TRAF_003_BR + } // End of testcase TC_MEC_SRV_TRAF_003_BR /** * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/PlatTrafficRules.tplan2 */ - testcase TP_MEC_SRV_TRAF_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_TRAF_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2803,7 +2982,7 @@ module AtsMec_AppEnablementAPI_TestCases { httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_NON_EXISTENT_TRAFFIC_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_NON_EXISTENT_TRAFFIC_RULE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_traffic_rule( @@ -2839,15 +3018,15 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_APPSAQ_004_NF + } // End of testcase TC_MEC_SRV_TRAF_003_NF /** * @desc Check that the IUT responds with an error when a request sent by a MEC Application doesn't comply with a required condition * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/TRAF/PlatTrafficRules.tplan2 */ - testcase TP_MEC_SRV_TRAF_003_PF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_TRAF_003_PF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { @@ -2862,12 +3041,13 @@ module AtsMec_AppEnablementAPI_TestCases { // Test adapter configuration // Preamble - // TODO If-Match header needs to have an INVALID_ETAG f_init_default_headers_list(-, -, v_headers); + // If-Match header needs to have an INVALID_ETAG + f_set_headers_list({ "If-Match" }, { int2str(f_get_current_timestamp_utc()) }, v_headers); httpPort.send( m_http_request( m_http_request_put( - "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_NON_EXISTENT_TRAFFIC_RULE_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_SUPPORT_URI & "/" & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/traffic_rules/" & oct2char(unichar2oct(PX_NON_EXISTENT_TRAFFIC_RULE_ID, "UTF-8")), v_headers, m_http_message_body_json( m_body_json_traffic_rule( @@ -2903,7 +3083,7 @@ module AtsMec_AppEnablementAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_SRV_TRAF_003_PF + } // End of testcase TC_MEC_SRV_TRAF_003_PF } // End of group traffic_rules @@ -2918,7 +3098,7 @@ module AtsMec_AppEnablementAPI_TestCases { */ testcase TC_MEC_SRV_TRANS_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_APP_ENABLEMENT_API_SUPPORTED)) { diff --git a/ttcn/AtsMec/AtsMec_AppLCM_TestCases.ttcn b/ttcn/AtsMec/AtsMec_AppLCM_TestCases.ttcn index 807046cad65162fa498dcbea99cf1d3e55ab6061..ca75d6a76d8f989dce6737a87b3544e86be13987 100644 --- a/ttcn/AtsMec/AtsMec_AppLCM_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_AppLCM_TestCases.ttcn @@ -39,9 +39,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, Table 6.2.2.3.2-1 //CreateAppInstanceRequest * ETSI GS MEC 010-2 2.0.10, Table 6.2.2.4.2-1 //AppInstanceInfo */ - testcase TP_MEC_MEX_LCM_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -96,7 +96,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_001_OK + } // End of testcase TC_MEC_MEX_LCM_001_OK @@ -106,9 +106,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.1.3.1 * ETSI GS MEC 010-2 2.0.10, Table 6.2.2.3.2-1 //CreateAppInstanceRequest */ - testcase TP_MEC_MEX_LCM_001_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -155,7 +155,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_001_BR + } // End of testcase TC_MEC_MEX_LCM_001_BR @@ -164,9 +164,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.1.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 //AppInstanceInfo */ - testcase TP_MEC_MEX_LCM_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -216,7 +216,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_002_OK + } // End of testcase TC_MEC_MEX_LCM_002_OK /** @@ -224,9 +224,9 @@ module AtsMec_AppLCM_TestCases { * @see: ETSI GS MEC 010-2 2.0.10, clause 7.5.2.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.2.4.2-1 */ - testcase TP_MEC_MEX_LCM_003_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -272,7 +272,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_003_OK + } // End of testcase TC_MEC_MEX_LCM_003_OK @@ -282,9 +282,9 @@ module AtsMec_AppLCM_TestCases { * @desc: Check that MEC API provider fails on retrieving an App Instance when requested using wrong appInstanceId * @see: ETSI GS MEC 010-2 2.0.10, clause 7.5.2.3.2 */ - testcase TP_MEC_MEX_LCM_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -324,16 +324,16 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_003_NF + } // End of testcase TC_MEC_MEX_LCM_003_NF /** * @desc: Check that MEC API provider service deletes an App Instance when requested * ETSI GS MEC 010-2 2.0.10, clause 7.5.2.3.4 */ - testcase TP_MEC_MEX_LCM_004_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -372,15 +372,15 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_004_OK + } // End of testcase TC_MEC_MEX_LCM_004_OK /** * @desc: Check that MEC API provider fails on deletion of an App Instance when requested using wrong appInstanceId * @see: ETSI GS MEC 010-2 2.0.10, clause 7.5.2.3.2 */ - testcase TP_MEC_MEX_LCM_004_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_004_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -420,7 +420,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_004_NF + } // End of testcase TC_MEC_MEX_LCM_004_NF /** @@ -428,9 +428,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.6.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.7.2-1 //InstantiateAppRequest */ - testcase TP_MEC_MEX_LCM_005_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_005_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -482,7 +482,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_005_OK + } // End of testcase TC_MEC_MEX_LCM_005_OK /** @@ -491,9 +491,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.6.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.7.2-1 //InstantiateAppRequest */ - testcase TP_MEC_MEX_LCM_005_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_005_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -540,7 +540,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_005_NF + } // End of testcase TC_MEC_MEX_LCM_005_NF /** @@ -548,9 +548,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.6.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.7.2-1 //InstantiateAppRequest */ - testcase TP_MEC_MEX_LCM_005_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_005_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -597,7 +597,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_005_BR + } // End of testcase TC_MEC_MEX_LCM_005_BR /** @@ -605,9 +605,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.7.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.9.2-1 //TerminateAppRequest */ - testcase TP_MEC_MEX_LCM_006_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_006_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -659,7 +659,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_006_OK + } // End of testcase TC_MEC_MEX_LCM_006_OK /** @@ -668,9 +668,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.7.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.9.2-1 //TerminateAppRequest */ - testcase TP_MEC_MEX_LCM_006_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_006_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -717,7 +717,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_006_NF + } // End of testcase TC_MEC_MEX_LCM_006_NF /** @@ -725,9 +725,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.7.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.9.2-1 //TerminateAppRequest */ - testcase TP_MEC_MEX_LCM_006_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_006_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -774,7 +774,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_006_BR + } // End of testcase TC_MEC_MEX_LCM_006_BR /** @@ -782,9 +782,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.8.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.8.2-1 //OperateAppRequest */ - testcase TP_MEC_MEX_LCM_007_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_007_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -836,7 +836,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_007_OK + } // End of testcase TC_MEC_MEX_LCM_007_OK /** @@ -845,9 +845,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.8.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.8.2-1 //OperateAppRequest */ - testcase TP_MEC_MEX_LCM_007_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_007_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -894,7 +894,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_007_NF + } // End of testcase TC_MEC_MEX_LCM_007_NF /** @@ -902,9 +902,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.8.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.8.2-1 //OperateAppRequest */ - testcase TP_MEC_MEX_LCM_007_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_007_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -951,7 +951,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_007_BR + } // End of testcase TC_MEC_MEX_LCM_007_BR @@ -960,9 +960,9 @@ module AtsMec_AppLCM_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.5.9.3.2 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.14.2-1" //AppLcmOpOcc */ - testcase TP_MEC_MEX_LCM_008_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_008_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1011,16 +1011,16 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_008_OK + } // End of testcase TC_MEC_MEX_LCM_008_OK /** * @desc: Check that MEC API provider service retrieves info about LCM Operation Occurrency on an App Instance when requested * ETSI GS MEC 010-2 2.0.10, clause 7.5.9.3.2 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.14.2-1" //AppLcmOpOcc */ - testcase TP_MEC_MEX_LCM_009_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_009_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1066,16 +1066,16 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_009_OK + } // End of testcase TC_MEC_MEX_LCM_009_OK /** * @desc:Check that MEC API provider service sends an error when it receives a query for a not existing LCM Operation Occurrency * ETSI GS MEC 010-2 2.0.10, clause 7.5.9.3.2 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.14.2-1" //AppLcmOpOcc */ - testcase TP_MEC_MEX_LCM_009_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_009_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1114,7 +1114,7 @@ module AtsMec_AppLCM_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_009_NF + } // End of testcase TC_MEC_MEX_LCM_009_NF @@ -1134,9 +1134,9 @@ group app_lcm_subscriptions { * ETSI GS MEC 010-2 2.0.10, table 6.2.2.13.2-1 //AppInstSubscriptionRequest * ETSI GS MEC 010-2 2.0.10, table 6.2.2.10.2-1 //AppInstSubscriptionInfo */ - testcase TP_MEC_MEX_LCM_010_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_010_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1193,7 +1193,7 @@ group app_lcm_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_010_OK + } // End of testcase TC_MEC_MEX_LCM_010_OK @@ -1203,9 +1203,9 @@ group app_lcm_subscriptions { * ETSI GS MEC 010-2 2.0.10, clause 7.5.3.3.1 * ETSI GS MEC 010-2 2.0.10, table 6.2.2.13.2-1 //AppInstSubscriptionRequest */ - testcase TP_MEC_MEX_LCM_010_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_010_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1255,7 +1255,7 @@ group app_lcm_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_010_BR + } // End of testcase TC_MEC_MEX_LCM_010_BR /** @@ -1266,9 +1266,9 @@ group app_lcm_subscriptions { * ETSI GS MEC 010-2 2.0.10, table 6.2.2.10.2-1 // AppInstSubscriptionInfo * ETSI GS MEC 010-2 2.0.10, table 6.2.2.16.2-1 // AppLcmOpOccSubscriptionInfo */ - testcase TP_MEC_MEX_LCM_011_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_011_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1321,7 +1321,7 @@ group app_lcm_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_011_OK + } // End of testcase TC_MEC_MEX_LCM_011_OK /** @@ -1330,9 +1330,9 @@ group app_lcm_subscriptions { * ETSI GS MEC 010-2 2.0.10, table 6.2.2.10.2-1 // AppInstSubscriptionInfo * ETSI GS MEC 010-2 2.0.10, table 6.2.2.16.2-1 // AppLcmOpOccSubscriptionInfo */ - testcase TP_MEC_MEX_LCM_012_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_012_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1381,16 +1381,16 @@ group app_lcm_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_012_OK + } // End of testcase TC_MEC_MEX_LCM_012_OK /** * @desc: Check that MEC API provider service sends an error when it receives a query for a not existing LCM Subscription * ETSI GS MEC 010-2 2.0.10, clause 7.5.4.3.2 */ - testcase TP_MEC_MEX_LCM_012_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_012_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1433,15 +1433,15 @@ group app_lcm_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_012_NF + } // End of testcase TC_MEC_MEX_LCM_012_NF /** * @desc: Check that MEC API provider service delete an existing LCM Subscription when requested * ETSI GS MEC 010-2 2.0.10, clause 7.3.4.3.4 */ - testcase TP_MEC_MEX_LCM_013_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_013_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1483,16 +1483,16 @@ group app_lcm_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_013_OK + } // End of testcase TC_MEC_MEX_LCM_013_OK /** * @desc: Check that MEC API provider service delete an existing LCM Subscription when requested * ETSI GS MEC 010-2 2.0.10, clause 7.3.4.3.4 */ - testcase TP_MEC_MEX_LCM_013_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_013_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1535,7 +1535,7 @@ group app_lcm_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEX_LCM_013_NF + } // End of testcase TC_MEC_MEX_LCM_013_NF } // end of group app_lcm_subscriptions @@ -1549,9 +1549,9 @@ group app_lcm__notification { * ETSI GS MEC 010-2 2.0.10, table 6.2.2.18.2-1 // AppLcmOpOccNotification * ETSI GS MEC 010-2 2.0.10, table 6.2.2.12.2-1 // AppInstNotification */ - testcase TP_MEC_MEX_LCM_014_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEX_LCM_014_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PIC_APP_PACKAGE_NOTIFICATIONS)) { diff --git a/ttcn/AtsMec/AtsMec_BwManagementAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_BwManagementAPI_TestCases.ttcn index c08d91841586b7a275a946cb74723b951d42aba3..c7114dfdeb2b483d7f923b5e9cff046a1a10630d 100644 --- a/ttcn/AtsMec/AtsMec_BwManagementAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_BwManagementAPI_TestCases.ttcn @@ -101,7 +101,8 @@ module AtsMec_BwManagementAPI_TestCases { */ testcase TC_MEC_SRV_BWA_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; + var HttpMessage v_response; // Test control if (not(PICS_MEC_PLAT) or not(PICS_BWMANAGEMENT_API_SUPPORTED)) { diff --git a/ttcn/AtsMec/AtsMec_FixedAccessInfoAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_FixedAccessInfoAPI_TestCases.ttcn index 486cc6c74bbd6eeb9132f6c0b6042373aff1e9f0..df44857a6efe3e2ec36c6267ef29f57003efffe5 100644 --- a/ttcn/AtsMec/AtsMec_FixedAccessInfoAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_FixedAccessInfoAPI_TestCases.ttcn @@ -42,47 +42,15 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with the current status of the fixed access information when queried by a MEC Application */ testcase TP_MEC_SRV_FAIS_001_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_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_get( - "/" & PICS_ROOT_API & PX_FAI_FA_INFO_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_fai_fa_info( - mw_fa_info - ))))) { - tc_ac.stop; - - log("*** " & testcasename() & ": PASS: IUT successfully responds with a FaInfo ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: Expected message not received ***"); @@ -98,38 +66,39 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_001_BR() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_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_get( - "/" & PICS_ROOT_API & PX_FAI_FA_INFO_URI & "?interface=1", - v_headers - ) - ) - ); - f_selfOrClientSyncAndVerdict(c_prDone, e_success); - - // Test Body - tc_ac.start; - alt { - [] httpPort.receive( - mw_http_response( + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_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_get( + PX_FAI_FA_INFO_URI & "?interface=1", + 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 )) { tc_ac.stop; @@ -152,7 +121,7 @@ module AtsMec_FixedAccessInformationAPI_TestCases { */ testcase TP_MEC_SRV_FAIS_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { @@ -204,16 +173,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with the current status of the device information when queried by a MEC Application */ testcase TP_MEC_SRV_FAIS_002_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -260,16 +230,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_002_BR() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -315,8 +286,8 @@ module AtsMec_FixedAccessInformationAPI_TestCases { */ testcase TP_MEC_SRV_FAIS_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; - + var Headers v_headers; + // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); @@ -367,16 +338,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc CCheck that the IUT responds with the current status of the cable line information when queried by a MEC Application */ testcase TP_MEC_SRV_FAIS_003_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -424,16 +396,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_003_BR() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -478,16 +451,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_003_NF() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -531,16 +505,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with the current status of the optical network information when queried by a MEC Application */ testcase TP_MEC_SRV_FAIS_004_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -587,8 +562,16 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_004_BR() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { @@ -641,8 +624,16 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_004_NF() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { @@ -694,16 +685,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with the information pertaining to one or more UEs in a particular location when queried by a MEC Application */ testcase TP_MEC_SRV_FAIS_005_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -750,16 +742,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_005_BR() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -803,16 +796,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_005_NF() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -857,16 +851,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT acknowledges the subscription by a MEC Application to notifications on Optical Network Unit alarm events */ testcase TP_MEC_SRV_FAIS_006_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -933,16 +928,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_006_BR() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -994,16 +990,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with the information on a given subscription when queried by a MEC Application */ testcase TP_MEC_SRV_FAIS_007_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -1050,16 +1047,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_007_NF() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -1103,16 +1101,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT updates an existing subscription when commanded by a MEC Application */ testcase TP_MEC_SRV_FAIS_008_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -1168,16 +1167,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_008_BR() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -1230,16 +1230,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_008_NF() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -1292,16 +1293,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request sent by a MEC Application doesn't comply with a required condition */ testcase TP_MEC_SRV_FAIS_008_PF() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -1354,16 +1356,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT acknowledges the cancellation of UE location change notifications when commanded by a MEC Application */ testcase TP_MEC_SRV_FAIS_009_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -1407,8 +1410,16 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT responds with an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application */ testcase TP_MEC_SRV_FAIS_009_NF() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { @@ -1460,16 +1471,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT sends notification on expiry of Fixed Access Information event subscription to a MEC Application */ testcase TP_MEC_SRV_FAIS_010_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); @@ -1539,16 +1551,17 @@ module AtsMec_FixedAccessInformationAPI_TestCases { * @desc Check that the IUT acknowledges the subscription by a MEC Application to notifications on Optical Network Unit alarm events */ testcase TP_MEC_SRV_FAIS_011_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // Test control - if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); - setverdict(inconc); - stop; - } - + // Local variables + var Headers v_headers; + var HttpMessage v_response; + + // Test control + if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_FAI_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_FAI_API_SUPPORTED required for executing the TC ***"); + setverdict(inconc); + stop; + } + // Test component configuration f_cf_01_http_up(); diff --git a/ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn b/ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn index 98e994f51440104efdd4c0324dc1467788fe7f86..9a6346b7fb1d1b232b96f5a3d8d347d84e0722c7 100644 --- a/ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_Grant_TestCases.ttcn @@ -39,9 +39,9 @@ group grant { * ETSI GS MEC 010-2 2.0.10, Table 6.2.4.2.2-1, //GrantRequest * ETSI GS MEC 010-2 2.0.10, Table 6.2.4.4.2-1 //Grant */ - testcase TP_MEC_MEO_GRANT_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_GRANT_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -95,7 +95,7 @@ group grant { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_GRANT_001_OK + } // End of testcase TC_MEC_MEO_GRANT_001_OK @@ -104,9 +104,9 @@ group grant { * ETSI GS MEC 010-2 2.0.10, clause 7.6.1.3.1, * ETSI GS MEC 010-2 2.0.10, Table 6.2.4.2.2-1, //GrantRequest */ - testcase TP_MEC_MEO_GRANT_001_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_GRANT_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -157,7 +157,7 @@ group grant { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_GRANT_001_BR + } // End of testcase TC_MEC_MEO_GRANT_001_BR /** @@ -165,9 +165,9 @@ group grant { * ETSI GS MEC 010-2 2.0.10, clause 7.6.1.3.1, * ETSI GS MEC 010-2 2.0.10, Table 6.2.4.2.2-1, //GrantRequest */ - testcase TP_MEC_MEO_GRANT_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_GRANT_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -219,16 +219,16 @@ group grant { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_GRANT_002_OK + } // End of testcase TC_MEC_MEO_GRANT_002_OK /** * @desc: Check that MEO sends the status of a grant request when a query on a granting ID is performed * ETSI GS MEC 010-2 2.0.10, clause 7.6.1.3.2, */ - testcase TP_MEC_MEO_GRANT_003_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_GRANT_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -271,16 +271,16 @@ group grant { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_GRANT_003_OK + } // End of testcase TC_MEC_MEO_GRANT_003_OK /** * @desc: Check that MEO responds with an error when it receives a request for returning a grant referred with a wrong ID * ETSI GS MEC 010-2 2.0.10, clause 7.6.1.3.2 */ - testcase TP_MEC_MEO_GRANT_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_GRANT_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -331,7 +331,7 @@ group grant { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_GRANT_003_NF + } // End of testcase TC_MEC_MEO_GRANT_003_NF /** @@ -339,9 +339,9 @@ group grant { * ETSI GS MEC 010-2 2.0.10, clause 7.6.1.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.4.4.2-1 //Grant */ - testcase TP_MEC_MEO_GRANT_004_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_GRANT_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -388,7 +388,7 @@ group grant { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_GRANT_004_OK + } // End of testcase TC_MEC_MEO_GRANT_004_OK } diff --git a/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn index 36db95b730b280b6f6b98399e62b15d97fd23a56..84e3a928c0a60416e5eb085a1933759a6a062d0b 100644 --- a/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn @@ -40,7 +40,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCLOOK_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -73,13 +73,12 @@ module AtsMec_LocationAPI_TestCases { mw_http_response( mw_http_response_ok( mw_http_message_body_json( - mw_body_json_user_list( - mw_user_list( - { - *, - mw_user_info(PX_USER, PX_ACCESS_POINT_ID, PX_ZONE_ID, PX_RESOURCE_URL), - * - } + mw_body_json_user_info( + mw_user_info( + PX_USER, + PX_ACCESS_POINT_ID, + PX_ZONE_ID, + PX_RESOURCE_URL )))))) { tc_ac.stop; @@ -103,7 +102,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCLOOK_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -158,7 +157,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCLOOK_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -216,7 +215,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -285,7 +284,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCSUB_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -348,7 +347,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -402,7 +401,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCSUB_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -460,7 +459,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UETRACKSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -493,11 +492,11 @@ module AtsMec_LocationAPI_TestCases { mw_http_response( mw_http_response_201_created( mw_http_message_body_json( - mw_body_json_user_tracking_subscription( - mw_user_tracking_subscription( - PX_CLIENT_ID, - PX_CALLBACK_REF_URL, - PX_USER + mw_body_json_periodic_tracking_subscription( + mw_periodic_tracking_subscription( + PX_CLIENT_ID, + PX_CALLBACK_REF_URL, + PX_USER )))))) { tc_ac.stop; @@ -520,7 +519,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UETRACKSUB_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -583,7 +582,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UETRACKSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -637,7 +636,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UETRACKSUB_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -695,7 +694,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFLOOK_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -752,7 +751,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFLOOK_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -806,7 +805,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFLOOK_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -864,7 +863,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -933,7 +932,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFSUB_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -952,7 +951,7 @@ module AtsMec_LocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & "invilad/" & PX_ME_APP_Q_USERS_INF_SUB_URI, + "/" & PICS_ROOT_API & "/invilad/" & PX_ME_APP_Q_USERS_INF_SUB_URI, v_headers, m_http_message_body_json( m_body_json_zonal_traffic_subscription( @@ -996,7 +995,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1059,7 +1058,7 @@ module AtsMec_LocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFSUB_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { diff --git a/ttcn/AtsMec/AtsMec_MeoPkgm_TestCases.ttcn b/ttcn/AtsMec/AtsMec_MeoPkgm_TestCases.ttcn index 7dc9fe84dc04b3c7026015c74bb7586c3cafdd85..860599ae5c7aff218b923a5ee351323d4a94f131 100644 --- a/ttcn/AtsMec/AtsMec_MeoPkgm_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_MeoPkgm_TestCases.ttcn @@ -39,9 +39,9 @@ module AtsMec_PkgMgmt_mm1_TestCases { * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1, //OnboardedAppPkgInfo * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.2.2-1 //AppPkg */ - testcase TP_MEC_MEO_PKGM_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -105,7 +105,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_001_OK + } // End of testcase TC_MEC_MEO_PKGM_001_OK @@ -114,9 +114,9 @@ module AtsMec_PkgMgmt_mm1_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.3.1.3.1 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.2.2-1 //AppPkg */ - testcase TP_MEC_MEO_PKGM_001_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -168,7 +168,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_001_BR + } // End of testcase TC_MEC_MEO_PKGM_001_BR /** @@ -176,9 +176,9 @@ module AtsMec_PkgMgmt_mm1_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.3.1.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 //OnboardedAppPkgInfo */ - testcase TP_MEC_MEO_PKGM_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -235,7 +235,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_002_OK + } // End of testcase TC_MEC_MEO_PKGM_002_OK /** @@ -243,9 +243,9 @@ module AtsMec_PkgMgmt_mm1_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.3.1.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 //OnboardedAppPkgInfo */ - testcase TP_MEC_MEO_PKGM_002_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_002_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -302,7 +302,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_002_BR + } // End of testcase TC_MEC_MEO_PKGM_002_BR @@ -311,9 +311,9 @@ module AtsMec_PkgMgmt_mm1_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 //OnboardedAppPkgInfo */ - testcase TP_MEC_MEO_PKGM_003_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -368,7 +368,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_003_OK + } // End of testcase TC_MEC_MEO_PKGM_003_OK /** @@ -376,9 +376,9 @@ module AtsMec_PkgMgmt_mm1_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 //OnboardedAppPkgInfo */ - testcase TP_MEC_MEO_PKGM_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -422,16 +422,16 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_003_NF + } // End of testcase TC_MEC_MEO_PKGM_003_NF /** * @desc: Check that MEO deletes an App Package when requested * ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.4 */ - testcase TP_MEC_MEO_PKGM_004_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -472,7 +472,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_004_OK + } // End of testcase TC_MEC_MEO_PKGM_004_OK /** @@ -480,9 +480,9 @@ module AtsMec_PkgMgmt_mm1_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.4 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 //OnboardedAppPkgInfo */ - testcase TP_MEC_MEO_PKGM_004_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_004_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -526,7 +526,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_004_NF + } // End of testcase TC_MEC_MEO_PKGM_004_NF /** @@ -536,9 +536,9 @@ module AtsMec_PkgMgmt_mm1_TestCases { * - DELETION_PENDING, ABORT * ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.3 */ - testcase TP_MEC_MEO_PKGM_005_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_005_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -577,16 +577,16 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_005_OK + } // End of testcase TC_MEC_MEO_PKGM_005_OK /** * @desc: Check that MEO sends an error when it receives a malformed request to modify the operational state of an application package * ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.3 */ - testcase TP_MEC_MEO_PKGM_005_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_005_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -628,16 +628,16 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_005_BR + } // End of testcase TC_MEC_MEO_PKGM_005_BR /** * @desc: Check that MEO responds with an error when it receives a request for updating an App Package referred with a wrong ID * ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.3 */ - testcase TP_MEC_MEO_PKGM_005_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_005_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -678,16 +678,16 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_005_NF + } // End of testcase TC_MEC_MEO_PKGM_005_NF /** * @desc: Check that MEO returns the Application Descriptor contained on a on-boarded Application Package when requested * ETSI GS MEC 010-2 2.0.10, clause 7.3.6.3.2 */ - testcase TP_MEC_MEO_PKGM_006_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_006_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -727,16 +727,16 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_006_OK + } // End of testcase TC_MEC_MEO_PKGM_006_OK /** * @desc: Check that MEO responds with an error when it receives a request to retrieve an application descriptor referred with a wrong app package ID * ETSI GS MEC 010-2 2.0.10, clause 7.3.6.3.2 */ - testcase TP_MEC_MEO_PKGM_006_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_006_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -775,7 +775,7 @@ module AtsMec_PkgMgmt_mm1_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_006_NF + } // End of testcase TC_MEC_MEO_PKGM_006_NF @@ -787,9 +787,9 @@ group pkg_mgmt_subscriptions { * @desc: Check that MEO service sends a Application Package Subscription when requested * ETSI GS MEC 010-2 2.0.10, clause 7.3.3.3.1 */ - testcase TP_MEC_MEO_PKGM_007_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_007_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -846,15 +846,15 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_007_OK + } // End of testcase TC_MEC_MEO_PKGM_007_OK /** * @desc: Check that MEO service sends an error when it receives a malformed request for creating a new subscription on AppPackages * ETSI GS MEC 010-2 2.0.10, clause 7.3.3.3.1 */ - testcase TP_MEC_MEO_PKGM_007_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_007_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -902,15 +902,15 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_007_BR + } // End of testcase TC_MEC_MEO_PKGM_007_BR /** * @desc: Check that MEO service returns the list of Application Package Subscriptions when requested * ETSI GS MEC 010-2 2.0.10, clause 7.3.3.3.2 */ - testcase TP_MEC_MEO_PKGM_008_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_008_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -963,16 +963,16 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_008_OK + } // End of testcase TC_MEC_MEO_PKGM_008_OK /** * @desc: Check that MEO service returns an Application Package Subscription when requested * ETSI GS MEC 010-2 2.0.10, clause 7.3.4.3.2 */ - testcase TP_MEC_MEO_PKGM_009_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_009_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1021,7 +1021,7 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_009_OK + } // End of testcase TC_MEC_MEO_PKGM_009_OK /** @@ -1029,9 +1029,9 @@ group pkg_mgmt_subscriptions { * for a subscription on AppPackages with a wrong identifier * ETSI GS MEC 010-2 2.0.10, clause 7.3.4.3.2 */ - testcase TP_MEC_MEO_PKGM_009_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_009_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1073,15 +1073,15 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_009_NF + } // End of testcase TC_MEC_MEO_PKGM_009_NF /** * @desc: Check that MEO service deletes an Application Package Subscription when requested * ETSI GS MEC 010-2 2.0.10, clause 7.3.4.3.4 */ - testcase TP_MEC_MEO_PKGM_010_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_010_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1123,7 +1123,7 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_010_OK + } // End of testcase TC_MEC_MEO_PKGM_010_OK /** @@ -1131,9 +1131,9 @@ group pkg_mgmt_subscriptions { * request for a subscription on AppPackages with a wrong identifier * ETSI GS MEC 010-2 2.0.10, clause 7.3.4.3.4 */ - testcase TP_MEC_MEO_PKGM_010_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_010_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1175,7 +1175,7 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_010_NF + } // End of testcase TC_MEC_MEO_PKGM_010_NF } // end of group pkg_mgmt_subscriptions @@ -1186,9 +1186,9 @@ group pkg_management_notification { * if the MEO service has an associated subscription and the event is generated * @see ETSI GS MEC 010-2 2.0.10, clause 7.3.5.1 */ - testcase TP_MEC_MEO_PKGM_011_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEO_PKGM_011_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PIC_APP_PACKAGE_NOTIFICATIONS)) { diff --git a/ttcn/AtsMec/AtsMec_MepmPkgm_TestCases.ttcn b/ttcn/AtsMec/AtsMec_MepmPkgm_TestCases.ttcn index 654fd9d23260c1925912365e919574bca88d6baf..e269709c8ceb03c74fd9d3db2baa0967ea50a926 100644 --- a/ttcn/AtsMec/AtsMec_MepmPkgm_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_MepmPkgm_TestCases.ttcn @@ -38,9 +38,9 @@ module AtsMec_PkgMgmt_mm3_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.4.1.3.2, * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1, //OnboardedAppPkgInfo */ - testcase TP_MEC_MEPM_PKGM_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -95,7 +95,7 @@ module AtsMec_PkgMgmt_mm3_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_001_OK + } // End of testcase TC_MEC_MEPM_PKGM_001_OK @@ -104,9 +104,9 @@ module AtsMec_PkgMgmt_mm3_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.4.1.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 //OnboardedAppPkgInfo */ - testcase TP_MEC_MEPM_PKGM_001_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -146,7 +146,7 @@ module AtsMec_PkgMgmt_mm3_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_001_BR + } // End of testcase TC_MEC_MEO_PKGM_001_BR @@ -155,9 +155,9 @@ module AtsMec_PkgMgmt_mm3_TestCases { * ETSI GS MEC 010-2 2.0.10, clause 7.4.2.3.2 * ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 //OnboardedAppPkgInfo */ - testcase TP_MEC_MEPM_PKGM_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -205,7 +205,7 @@ module AtsMec_PkgMgmt_mm3_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_002_OK + } // End of testcase TC_MEC_MEPM_PKGM_002_OK /** @@ -213,9 +213,9 @@ module AtsMec_PkgMgmt_mm3_TestCases { * a request for returning a App Package referred with a wrong ID * @see: ETSI GS MEC 010-2 2.0.10, clause 7.4.2.3.2 */ - testcase TP_MEC_MEPM_PKGM_002_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -256,16 +256,16 @@ module AtsMec_PkgMgmt_mm3_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_003_NF + } // End of testcase TC_MEC_MEO_PKGM_003_NF /** * @desc: Check that MEPM returns the Application Descriptor contained on a on-boarded Application Package when requested * ETSI GS MEC 010-2 2.0.10, clause 7.4.4.3.2 */ - testcase TP_MEC_MEPM_PKGM_003_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -305,7 +305,7 @@ module AtsMec_PkgMgmt_mm3_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_003_OK + } // End of testcase TC_MEC_MEPM_PKGM_003_OK /** @@ -313,9 +313,9 @@ module AtsMec_PkgMgmt_mm3_TestCases { * a request for returning a App Descriptor referred with a wrong App Package ID * @see: ETSI GS MEC 010-2 2.0.10, clause 7.4.4.3.2 */ - testcase TP_MEC_MEPM_PKGM_003_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -355,16 +355,16 @@ module AtsMec_PkgMgmt_mm3_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_003_NF + } // End of testcase TC_MEC_MEPM_PKGM_003_NF /** * @desc: Check that MEPM returns the content on a on-boarded Application Package when requested * ETSI GS MEC 010-2 2.0.10, clause 7.4.3.3.2 */ - testcase TP_MEC_MEPM_PKGM_004_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -404,16 +404,16 @@ module AtsMec_PkgMgmt_mm3_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_004_OK + } // End of testcase TC_MEC_MEPM_PKGM_004_OK /** * @desc: Check that MEPM responds with an error when it receives * a request for returning a App Descriptor referred with a wrong App Package ID * @see: ETSI GS MEC 010-2 2.0.10, clause 7.4.4.3.2 */ - testcase TP_MEC_MEPM_PKGM_004_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_004_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -453,7 +453,7 @@ module AtsMec_PkgMgmt_mm3_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_004_NF + } // End of testcase TC_MEC_MEPM_PKGM_004_NF } // End of packageManagement @@ -463,9 +463,9 @@ group pkg_mgmt_subscriptions { * @desc: Check that MEPM service returns an application package subscription when requested * ETSI GS MEC 010-2 2.0.10, clause 7.4.5.3.1 */ - testcase TP_MEC_MEPM_PKGM_005_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_005_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -522,16 +522,16 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_005_OK + } // End of testcase TC_MEC_MEPM_PKGM_005_OK /** * @desc: Check that MEPM service sends an error when it receives a * malformed request for creating a new subscription on AppPackages * ETSI GS MEC 010-2 2.0.10, clause 7.4.5.3.1 */ - testcase TP_MEC_MEPM_PKGM_005_BR() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_005_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -579,15 +579,15 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_005_BR + } // End of testcase TC_MEC_MEPM_PKGM_005_BR /** * @desc: Check that MEPM service returns the list of Application Package Subscriptions when requested * ETSI GS MEC 010-2 2.0.10, clause 7.4.5.3.2 */ - testcase TP_MEC_MEPM_PKGM_006_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_006_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -640,16 +640,16 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_006_OK + } // End of testcase TC_MEC_MEPM_PKGM_006_OK /** * @desc: Check that MEPM service returns an Application Package Subscription when requested * ETSI GS MEC 010-2 2.0.10, clause 7.4.6.3.2 */ - testcase TP_MEC_MEPM_PKGM_007_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_007_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -698,7 +698,7 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_007_OK + } // End of testcase TC_MEC_MEPM_PKGM_007_OK /** @@ -706,9 +706,9 @@ group pkg_mgmt_subscriptions { * for a subscription on AppPackages with a wrong identifier * ETSI GS MEC 010-2 2.0.10, clause 7.4.6.3.2 */ - testcase TP_MEC_MEPM_PKGM_007_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_007_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -750,15 +750,15 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_007_NF + } // End of testcase TC_MEC_MEPM_PKGM_007_NF /** * @desc: Check that MEPM service deletes an Application Package Subscription when requested * ETSI GS MEC 010-2 2.0.10, clause 7.4.6.3.4 */ - testcase TP_MEC_MEPM_PKGM_008_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_008_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -800,7 +800,7 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEPM_PKGM_008_OK + } // End of testcase TC_MEC_MEPM_PKGM_008_OK /** @@ -808,9 +808,9 @@ group pkg_mgmt_subscriptions { * for a subscription on AppPackages with a wrong identifier * ETSI GS MEC 010-2 2.0.10, clause 7.4.6.3.4 */ - testcase TP_MEC_MEPM_PKGM_008_NF() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_008_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -852,7 +852,7 @@ group pkg_mgmt_subscriptions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement - } // End of testcase TP_MEC_MEO_PKGM_010_NF + } // End of testcase TC_MEC_MEO_PKGM_010_NF } // end of group pkg_mgmt_subscriptions @@ -863,9 +863,9 @@ group mepm_pkg_management_notification { * the MEPM service has an associated subscription and the event is generated * @see ETSI GS MEC 010-2 2.0.10, clause 7.4.7.3.1 */ - testcase TP_MEC_MEPM_PKGM_009_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_MEPM_PKGM_009_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PIC_APP_PACKAGE_NOTIFICATIONS)) { diff --git a/ttcn/AtsMec/AtsMec_RadioNodeLocationAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_RadioNodeLocationAPI_TestCases.ttcn index 4ecc01d8b478853e53fc8664750c8fda322d75ad..bdcc18c8a0143fc00b686cd0636f1e8985eac3b6 100644 --- a/ttcn/AtsMec/AtsMec_RadioNodeLocationAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_RadioNodeLocationAPI_TestCases.ttcn @@ -30,6 +30,8 @@ module AtsMec_RadioNodeLocationAPI_TestCases { import from LocationAPI_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; @@ -47,7 +49,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_RLOCLOOK_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -105,7 +107,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_RLOCLOOK_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -167,7 +169,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEAREASUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -187,14 +189,14 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & oct2char(unichar2oct(PX_UE_AREA_SUB_URI, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_AREA_SUB_URI, v_headers, m_http_message_body_json( m_body_json_circle_notification_subscription( m_circle_notification_subscription( PX_CLIENT_ID, //clientCorrelator PX_AREA_SUB_CALLBACK_URI, // callbackReference - PX_IP_ADDRESS // address + { PX_IP_ADDRESS } // address ) ) ) @@ -212,10 +214,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { mw_http_message_body_json( mw_body_json_circle_notification_subscription( mw_circle_notification_subscription( - PX_CLIENT_ID, //clientCorrelator - PX_AREA_SUB_CALLBACK_URI, // callbackReference - PX_IP_ADDRESS // address - )))))) -> value v_response { + PX_CLIENT_ID )))))) -> value v_response { // TODO how to send this when the UE enters the area? The TP has the IUT doing this immediately. Do we want this or will it be discarded as part of the test? // // MEC 013, clause 7.3.11.3 // the IUT entity sends a vPOST containing, @@ -249,7 +248,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEAREASUB_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -268,16 +267,14 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & oct2char(unichar2oct(PX_UE_AREA_SUB_URI, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_AREA_SUB_URI, v_headers, m_http_message_body_json( m_body_json_circle_notification_subscription( m_circle_notification_subscription( - PX_CLIENT_ID, //clientCorrelator - // TODO the TP uses a wrong field name to trigger an error response. Do we create a new data structure just for this or - // change the test to use another trigger (e.g.: invalid IP address)? + PX_CLIENT_ID_UNKNOWN, //clientCorrelator PX_AREA_SUB_CALLBACK_URI, // callbackReference - PX_IP_ADDRESS // address + { PX_IP_ADDRESS } // address ) ) ) @@ -313,7 +310,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEAREASUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -332,7 +329,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & oct2char(unichar2oct(PX_UE_AREA_SUB_URI, "UTF-8")) & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_AREA_SUB_URI & "/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -367,7 +364,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEAREASUB_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -386,7 +383,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & oct2char(unichar2oct(PX_UE_AREA_SUB_URI, "UTF-8")) & oct2char(unichar2oct(PX_NON_EXISTENT_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_AREA_SUB_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -427,7 +424,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEDISTLOOK_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -484,7 +481,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEDISTLOOK_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -545,7 +542,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEDISTSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -565,7 +562,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_UE_DIST_SUB_URI, + "/" & PICS_ROOT_API & PX_ME_APP_Q_DIST_URI, v_headers, m_http_message_body_json( m_body_json_distance_notification_subscription( @@ -630,7 +627,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEDISTSUB_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -649,7 +646,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_UE_DIST_SUB_URI, + "/" & PICS_ROOT_API & PX_ME_APP_Q_DIST_URI, v_headers, m_http_message_body_json( m_body_json_distance_notification_subscription( @@ -696,7 +693,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEDISTSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -715,7 +712,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & PX_UE_DIST_SUB_URI & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_DIST_URI & "/" & oct2char(unichar2oct(PX_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -750,7 +747,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEDISTSUB_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -769,7 +766,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & PX_UE_DIST_SUB_URI & oct2char(unichar2oct(PX_NON_EXISTENT_SUBSCRIPTION_ID, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_DIST_URI & "/" & oct2char(unichar2oct(PX_NON_EXISTENT_SUBSCRIPTION_ID, "UTF-8")), v_headers ) ) @@ -811,7 +808,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFOLOOK_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -830,7 +827,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - "/" & PICS_ROOT_API & PX_UE_LOC_USERS_URI & "?address=" & oct2char(unichar2oct(PX_ACR_SOME_IP, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_LIST_URI, v_headers ) ) @@ -868,7 +865,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFOLOOK_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -922,7 +919,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFOLOOK_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -983,7 +980,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFOSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1065,7 +1062,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFOSUB_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1088,12 +1085,10 @@ module AtsMec_RadioNodeLocationAPI_TestCases { v_headers, m_http_message_body_json( m_body_json_circle_notification_subscription( - m_circle_notification_subscription( - PX_CLIENT_ID, //clientCorrelator - // TODO the TP uses a wrong field name to trigger an error response. Do we create a new data structure just for this or - // change the test to use another trigger? - PX_TRAFFIC_SUB_CALLBACK_URI, // callbackReference - PX_ZONE_ID // zoneId + m_circle_notification_subscription( + PX_CLIENT_ID_UNKNOWN, //clientCorrelator + PX_TRAFFIC_SUB_CALLBACK_URI, // callbackReference + { PX_IP_ADDRESS } // address ) ) ) @@ -1130,7 +1125,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFOSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1184,7 +1179,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UEINFOSUB_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1245,7 +1240,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCLOOK_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1303,7 +1298,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCLOOK_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1357,7 +1352,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCLOOK_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1418,7 +1413,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1500,7 +1495,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCSUB_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1565,7 +1560,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1619,7 +1614,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UELOCSUB_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1680,7 +1675,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UETRACKSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -1762,7 +1757,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UETRACKSUB_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1826,7 +1821,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UETRACKSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { @@ -1879,7 +1874,7 @@ module AtsMec_RadioNodeLocationAPI_TestCases { */ testcase TC_MEC_SRV_UETRACKSUB_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_LOCATION_API_SUPPORTED)) { diff --git a/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn index d4c0cce6aef3ef933a0085ee0b6e165cdf2658ef..a95e1ebd22bf404d93ba0d2f22a7df9bbbe77e0e 100644 --- a/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_RnisAPI_TestCases.ttcn @@ -31,6 +31,8 @@ module AtsMec_RnisAPI_TestCases { import from RnisAPI_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; @@ -53,7 +55,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_011_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_ALL_SUBSCRIPTIONS)) { @@ -122,7 +124,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_012_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_ALL_SUBSCRIPTIONS)) { @@ -201,7 +203,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_011_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_ALL_SUBSCRIPTIONS)) { @@ -234,10 +236,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 400 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 400 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -259,7 +261,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_012_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_ALL_SUBSCRIPTIONS)) { @@ -308,10 +310,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 400 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 400 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a cell subscription ***"); @@ -337,7 +339,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_016_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -402,7 +404,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_017_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -462,7 +464,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_018_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -529,7 +531,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_019_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -563,7 +565,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_016_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -596,10 +598,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 400 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 400 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -621,7 +623,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_016_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -654,10 +656,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 404 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 404 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -679,7 +681,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_017_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -712,10 +714,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 400 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 400 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -737,7 +739,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_017_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -770,10 +772,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 404 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 404 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -795,7 +797,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_018_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -828,10 +830,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 400 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 400 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -853,7 +855,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_018_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -886,10 +888,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 404 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 404 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -911,7 +913,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_019_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -944,10 +946,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 400 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 400 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -969,7 +971,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_019_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_QUERY)) { @@ -1002,10 +1004,10 @@ module AtsMec_RnisAPI_TestCases { mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( - mw_body_json_rni_problem_details( - mw_problem_details( - -, -, 404 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 404 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with HTTP error 400 Bad Request ***"); @@ -1031,7 +1033,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var integer v_result; var JsonBody v_json_body; var charstring v_subscription_id; @@ -1125,7 +1127,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { @@ -1187,7 +1189,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { @@ -1249,7 +1251,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_004_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { @@ -1311,7 +1313,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_005_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { @@ -1371,7 +1373,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_006_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { @@ -1431,7 +1433,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_007_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { @@ -1491,7 +1493,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_008_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { @@ -1549,7 +1551,7 @@ module AtsMec_RnisAPI_TestCases { */ testcase TC_MEC_SRV_RNIS_009_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_RNIS) or not(PICS_RNIS_NOTIFICATIONS)) { diff --git a/ttcn/AtsMec/AtsMec_UEAppInterfaceAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_UEAppInterfaceAPI_TestCases.ttcn index bf935681dc6a8f002d8d30fc3132d1a5aa7f24c6..60acdd828e3703305a83f0d0890a031e421dac0f 100644 --- a/ttcn/AtsMec/AtsMec_UEAppInterfaceAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_UEAppInterfaceAPI_TestCases.ttcn @@ -40,7 +40,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPCTX_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -114,7 +114,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPCTX_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_UE_APP_CTX)) { @@ -175,7 +175,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPCTX_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_UE_APP_CTX)) { @@ -240,7 +240,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPCTX_002_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_UE_APP_CTX)) { @@ -303,7 +303,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPCTX_002_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_UE_APP_CTX)) { @@ -366,7 +366,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPCTX_003_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_UE_APP_CTX)) { @@ -419,7 +419,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPCTX_003_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_ENABLE_UE_APP_CTX)) { @@ -476,7 +476,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPS_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -534,7 +534,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPS_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control @@ -589,7 +589,7 @@ module AtsMec_UEAppInterfaceAPI_TestCases { */ testcase TC_MEC_MEO_UEAPPS_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; // Test control diff --git a/ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn index 96efdbb1b7a4b5870ff34dbaea3ae258212610e1..de98752bd2daadbd0d90c348cb6ee92433d57cb1 100644 --- a/ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn @@ -27,6 +27,8 @@ module AtsMec_UEidentityAPI_TestCases { import from UEidentityAPI_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; @@ -39,7 +41,7 @@ module AtsMec_UEidentityAPI_TestCases { */ testcase TC_MEC_SRV_UETAG_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_UE_IDENTITY_API_SUPPORTED)) { @@ -97,7 +99,7 @@ module AtsMec_UEidentityAPI_TestCases { */ testcase TC_MEC_SRV_UETAG_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not (PICS_SERVICES) or not(PICS_UE_IDENTITY_API_SUPPORTED)) { @@ -130,10 +132,10 @@ module AtsMec_UEidentityAPI_TestCases { mw_http_response( mw_http_response_400_bad_request( mw_http_message_body_json( - mw_body_json_ue_identity_problem_details( - mw_problem_details( - -, -, 400 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 400 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 400 Bad Request ***"); @@ -155,7 +157,7 @@ module AtsMec_UEidentityAPI_TestCases { */ testcase TC_MEC_SRV_UETAG_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_UE_IDENTITY_API_SUPPORTED)) { @@ -188,10 +190,10 @@ module AtsMec_UEidentityAPI_TestCases { mw_http_response( mw_http_response_404_not_found( mw_http_message_body_json( - mw_body_json_ue_identity_problem_details( - mw_problem_details( - -, -, 404 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 404 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***"); @@ -213,7 +215,7 @@ module AtsMec_UEidentityAPI_TestCases { */ testcase TC_MEC_SRV_UETAG_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_UE_IDENTITY_API_SUPPORTED)) { @@ -293,7 +295,7 @@ module AtsMec_UEidentityAPI_TestCases { */ testcase TC_MEC_SRV_UETAG_002_BR() runs on HttpComponent system HttpTestAdapter { // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_UE_IDENTITY_API_SUPPORTED)) { @@ -343,10 +345,10 @@ module AtsMec_UEidentityAPI_TestCases { mw_http_response( mw_http_response_400_bad_request/*( mw_http_message_body_json( - mw_body_json_ue_identity_problem_details( - mw_problem_details( - -, -, 400 - ))))*/)) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 400 + ))))*/)) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 403 Forbidden ***"); @@ -368,7 +370,7 @@ module AtsMec_UEidentityAPI_TestCases { */ testcase TC_MEC_SRV_UETAG_002_PF() runs on HttpComponent system HttpTestAdapter { // FIXME Which IE protocol should be invalid? // Local variables - var HeaderLines v_headers; + var Headers v_headers; // Test control if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_UE_IDENTITY_API_SUPPORTED)) { @@ -413,10 +415,10 @@ module AtsMec_UEidentityAPI_TestCases { mw_http_response( mw_http_response_412_precondition_failed( mw_http_message_body_json( - mw_body_json_ue_identity_problem_details( - mw_problem_details( - -, -, 412 - )))))) { + mw_body_json_problem_details( + mw_problem_details( + -, -, 412 + )))))) { tc_ac.stop; log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 412 Precondition Failed ***"); @@ -438,7 +440,7 @@ module AtsMec_UEidentityAPI_TestCases { // */ // testcase TC_MEC_PLAT_UETAG_003_OK() runs on HttpComponent system HttpTestAdapter { // // Local variables -// var HeaderLines v_headers; +// var Headers v_headers; // // // Test control // if (not(PICS_MEC_PLAT) or not(PICS_UE_IDENTITY_API_SUPPORTED)) { @@ -516,7 +518,7 @@ module AtsMec_UEidentityAPI_TestCases { // */ // testcase TC_MEC_PLAT_UETAG_005_BI() runs on HttpComponent system HttpTestAdapter { // // Local variables -// var HeaderLines v_headers; +// var Headers v_headers; // // // Test control // if (not(PICS_MEC_PLAT) or not(PICS_SERVICES) or not(PICS_UE_IDENTITY_API_SUPPORTED)) { @@ -566,7 +568,7 @@ module AtsMec_UEidentityAPI_TestCases { // mw_http_response( // mw_http_response_400_bad_request( // mw_http_message_body_json( -// mw_body_json_ue_identity_problem_details( +// mw_body_json_problem_details( // mw_problem_details( // -, -, 400 // )))))) { diff --git a/ttcn/LibCommon b/ttcn/LibCommon index 8f0b6280029f2b786f289ee6cf671553a4806b17..21bad7c51917d19bebdff5b36983e22922421976 160000 --- a/ttcn/LibCommon +++ b/ttcn/LibCommon @@ -1 +1 @@ -Subproject commit 8f0b6280029f2b786f289ee6cf671553a4806b17 +Subproject commit 21bad7c51917d19bebdff5b36983e22922421976 diff --git a/ttcn/LibIts b/ttcn/LibIts index 9ccad87d3e34ec870bf80c5991bf73757f998340..a305e3b07ed8b0955a28f25bd3fd0346f97562a8 160000 --- a/ttcn/LibIts +++ b/ttcn/LibIts @@ -1 +1 @@ -Subproject commit 9ccad87d3e34ec870bf80c5991bf73757f998340 +Subproject commit a305e3b07ed8b0955a28f25bd3fd0346f97562a8 diff --git a/ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn b/ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn index b0d819e52ec605c8e99ecdb5eb16dfe423dd0305..7d94af282eba8984e1d1f3f075302d79f45294ee 100644 --- a/ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn +++ b/ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn @@ -263,34 +263,5 @@ module Ams_Templates { - template (value) ProblemDetails m_problem_details( - in JSON.String p_type, - in JSON.String p_title, - in UInt32 p_status, - in JSON.String p_detail, - in JSON.String p_instance - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template m_problem_details - - template (present) ProblemDetails mw_problem_details( - template (present) JSON.String p_type := ?, - template (present) JSON.String p_title := ?, - template (present) UInt32 p_status := ?, - template (present) JSON.String p_detail := ?, - template (present) JSON.String p_instance := ? - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template mw_problem_details - - } // End of module LocationAPI_Templates diff --git a/ttcn/LibMec/Ams/ttcn/Ams_TypesAndValues.ttcn b/ttcn/LibMec/Ams/ttcn/Ams_TypesAndValues.ttcn index 04ce62bba88a422f6d88f8065ff0cee464b8d9fc..17959aa7fe3ff76aa09df65978a9f1101deffc1e 100644 --- a/ttcn/LibMec/Ams/ttcn/Ams_TypesAndValues.ttcn +++ b/ttcn/LibMec/Ams/ttcn/Ams_TypesAndValues.ttcn @@ -162,25 +162,6 @@ type record AdjacentAppInfoSubscription_ { */ type UInt32 NanoSeconds; -/** -* @desc Problem Details for HTTP APIs -* @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type -* @member title A short, human-readable summary of the problem type -* @member status The HTTP status code for this occurrence of the problem -* @member detail A human-readable explanation specific to this occurrence of the problem -* @member instance A URI reference that identifies the specific occurrence of the problem -* @see IETF RFC 7807 Clause 3. The Problem Details JSON Object -*/ -type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance -} with { - variant (type_) "name as 'type'"; -} - // // // diff --git a/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_Pixits.ttcn b/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_Pixits.ttcn index 2f2d8bec33a9b8e11f3863fa3845149b6a792de6..e3253e2fe5df270ef8dff20bc65536b71e81969b 100644 --- a/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_Pixits.ttcn +++ b/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_Pixits.ttcn @@ -17,21 +17,23 @@ module AppEnablementAPI_Pixits { modulepar ServiceInfo_Version PX_SERVICE_INFO_VERSION := "1.0.0"; - modulepar ServiceInfo_Version PX_NEW_SERVICE_INFO_VERSION := "1.0.0"; + modulepar ServiceInfo_Version PX_NEW_SERVICE_INFO_VERSION := "2.0.0"; - modulepar ServiceInfo_State PX_SERVICE_INFO_STATE := ACTIVE; + modulepar ServiceState PX_SERVICE_INFO_STATE := ACTIVE; modulepar SerializerTypes PX_SERIALIZER := JSON; + + modulepar ServiceInfo_Link PX_LINKS_SERVICE_INFO := { self_ := { href := "http://example.com/exampleAPI/location/v1/serviceinfo" }, liveness := omit }; - modulepar SubscriptionType PX_NON_EXISTENT_APP_TERM_NOTIF_SUBSCRIPTION := ""; + modulepar SubscriptionType PX_NON_EXISTENT_APP_TERM_NOTIF_SUBSCRIPTION := "subscription666"; - modulepar AppTerminationNotificationSubscription_CallbackReference PX_APP_TERM_NOTIF_CALLBACK_URI := ""; + modulepar AppTerminationNotificationSubscription_CallbackReference PX_APP_TERM_NOTIF_CALLBACK_URI := "http://example.com/exampleAPI/location/v1/app_termination"; - modulepar Href PX_HREF := ""; + modulepar Href PX_HREF := "http://www.etsi.org"; - modulepar Href PX_SUBSCRIPTION_ID := ""; + modulepar Href PX_SUBSCRIPTION_ID := "subscription123"; - modulepar Href PX_NON_EXISTENT_SUBSCRIPTION_ID := ""; + modulepar Href PX_NON_EXISTENT_SUBSCRIPTION_ID := "subscription666"; modulepar DnsRule_Id PX_DNS_RULE_ID := "route2home"; @@ -45,11 +47,11 @@ module AppEnablementAPI_Pixits { modulepar DnsRule_IpAddress PX_INVALID_IP_ADDRESS := "10.10.0.255"; - modulepar Ttl PX_TTL := 0; + modulepar Ttl PX_TTL := 8; modulepar DnsRule_State PX_DNS_INVALID_STATE := UNKNOWN_VALUE; - modulepar SerAvailabilityNotificationSubscription_CallbackReference PX_SRV_AVAIL_NOTIF_CALLBACK_URI := ""; + modulepar SerAvailabilityNotificationSubscription_CallbackReference PX_SRV_AVAIL_NOTIF_CALLBACK_URI := "http://www.etsi.org"; modulepar TrafficRule_Id PX_TRAFFIC_RULE_ID := "trafficRuleId01"; diff --git a/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_Templates.ttcn b/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_Templates.ttcn index 75cf03449d530834423790aa0a2b22ce7cecfdfb..608b8e9c55e741d2c43b4ad4e6bea21f1717b213 100644 --- a/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_Templates.ttcn +++ b/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_Templates.ttcn @@ -14,25 +14,44 @@ module AppEnablementAPI_Templates { import from AppEnablementAPI_TypesAndValues all; import from AppEnablementAPI_Pixits all; - template (present) ProblemDetails mw_problem_details( - template (present) JSON.String p_type := ?, - template (present) JSON.String p_title := ?, - template (present) UInt32 p_status := ?, - template (present) JSON.String p_detail := ?, - template (present) JSON.String p_instance := ? - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template mw_problem_details + template (value) SecurityInfo m_security_info( + in GrantTypesList p_grantTypes := { OAUTH2_CLIENT_CREDENTIALS }, + in TokenEndpoint p_tokenEndpoint := "/mecSerMgmtApi/security/MyTokenEndPoint" + ) := { + oAuth2Info := { + grantTypes := p_grantTypes, + tokenEndpoint := p_tokenEndpoint + } + } // End of template m_security_info + + template (present) SecurityInfo mw_security_info( + template (present) GrantTypesList p_grantTypes := ?, + template (present) TokenEndpoint p_tokenEndpoint := ? + ) := { + oAuth2Info := { + grantTypes := p_grantTypes, + tokenEndpoint := p_tokenEndpoint + } + } // End of template mw_security_info + + template (value) TransportInfo_Endpoint m_end_point_uris( + in template (value) EndPointInfo_UriList p_uris + ) := { + uris := p_uris + } // End of template m_end_point_uris + + template (present) TransportInfo_Endpoint mw_end_point_uris( + template (present) EndPointInfo_UriList p_uris := ? + ) := { + uris := p_uris + } // End of template mw_end_point_uris template (omit) ServiceInfo m_service_info( in SerName p_serName, in ServiceInfo_Version p_version := PX_SERVICE_INFO_VERSION, - in ServiceInfo_State p_state := PX_SERVICE_INFO_STATE, + in ServiceState p_state := PX_SERVICE_INFO_STATE, in SerializerTypes p_serializer := PX_SERIALIZER, + //in ServiceInfo_Link p_links := PX_LINKS_SERVICE_INFO, in template (omit) SerInstanceId p_serInstanceId := omit, in template (omit) TransportId p_transportId := omit, in template (omit) TransportInfo p_transportInfo := omit, @@ -48,14 +67,17 @@ module AppEnablementAPI_Templates { serializer := p_serializer, scopeOfLocality := omit, consumedLocalOnly := omit, - isLocal := omit + isLocal := omit/*, + livenessInterval := omit, + links := p_links*/ } // End of template m_service_info template ServiceInfo mw_service_info( template (present) SerName p_serName := ?, template (present) ServiceInfo_Version p_version := ?, - template (present) ServiceInfo_State p_state := ?, + template (present) ServiceState p_state := ?, template (present) SerializerTypes p_serializer := ?, + //template (present) ServiceInfo_Link p_links := ?, template SerInstanceId p_serInstanceId := *, template TransportId p_transportId := *, template TransportInfo p_transportInfo := *, @@ -71,37 +93,33 @@ module AppEnablementAPI_Templates { serializer := p_serializer, scopeOfLocality := *, consumedLocalOnly := *, - isLocal := * + isLocal := */*, + livenessInterval := *, + links := p_links*/ } // End of template mw_service_info - template (omit) SubscriptionLinkList m_subscription_link_list( - in template (value) Links p_links, - in template (omit) Subscriptions p_subscription := omit + template (value) SubscriptionLinkList m_subscription_link_list( + in template (value) Links p_links ) := { - links := p_links, - subscription := p_subscription + links := p_links } // End of template m_subscription_link_list - template SubscriptionLinkList mw_subscription_link_list( - template (present) Links p_links := ?, - template Subscriptions p_subscription := * + template (present) SubscriptionLinkList mw_subscription_link_list( + template (present) Links p_links := ? ) := { - links := p_links, - subscription := p_subscription + links := p_links } // End of template mw_subscription_link_list template (value) Self m_self( - in template (value) LinkType p_self_, - in template (value) JSON.Bool p_readOnly := false + in template (value) LinkType p_self_ ) := { - self_ := p_self_, - readOnly := p_readOnly + self_ := p_self_ } // End of template m_self - template (value) AppTerminationNotificationSubscription m_app_termination_notif_subscription( - in template (value) AppTerminationNotificationSubscription_CallbackReference p_callbackReference, - in template (value) Self p_links, - in template (value) AppInstanceId p_appInstanceId + template (omit) AppTerminationNotificationSubscription m_app_termination_notif_subscription( + in template (value) AppTerminationNotificationSubscription_CallbackReference p_callbackReference, + in template (omit) Self p_links := omit, + in template (value) AppInstanceId p_appInstanceId ) := { subscriptionType := "AppTerminationNotificationSubscription", callbackReference := p_callbackReference, @@ -109,18 +127,18 @@ module AppEnablementAPI_Templates { appInstanceId := p_appInstanceId } // End of template m_app_termination_notif_subscription - template (value) AppTerminationNotificationSubscription m_app_termination_notif_subscription_invalid( - in template (value) AppTerminationNotificationSubscription_CallbackReference p_callbackReference, - in template (value) Self p_links, - in template (value) AppInstanceId p_appInstanceId - ) modifies m_app_termination_notif_subscription := { + template (omit) AppTerminationNotificationSubscription m_app_termination_notif_subscription_invalid( + in template (value) AppTerminationNotificationSubscription_CallbackReference p_callbackReference, + in template (omit) Self p_links := omit, + in template (value) AppInstanceId p_appInstanceId + ) modifies m_app_termination_notif_subscription := { subscriptionType := "InvalidAppTerminationNotificationSubscription" } // End of template m_app_termination_notif_subscription_invalid - template (present) AppTerminationNotificationSubscription mw_app_termination_notif_subscription( - template (present) AppTerminationNotificationSubscription_CallbackReference p_callbackReference := ?, - template (present) Self p_links := ?, - template (present) AppInstanceId p_appInstanceId := ? + template AppTerminationNotificationSubscription mw_app_termination_notif_subscription( + template (present) AppTerminationNotificationSubscription_CallbackReference p_callbackReference := ?, + template Self p_links := *, + template (present) AppInstanceId p_appInstanceId := ? ) := { subscriptionType := "AppTerminationNotificationSubscription", callbackReference := p_callbackReference, @@ -135,7 +153,7 @@ module AppEnablementAPI_Templates { in TransportInfo_Protocol p_protocol, in TransportInfo_Version p_version, in template (value) TransportInfo_Endpoint p_endpoint, - in SecurityInfo p_security + in template (value) SecurityInfo p_security ) := { id := p_id, name := p_name, @@ -200,30 +218,30 @@ module AppEnablementAPI_Templates { state := p_state } // End of template mw_dns_rule - template (omit) SerAvailabilityNotificationSubscription_ m_srv_avail_notif_subscription( - in template (value) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference, - in template (omit) Self p_links := omit, - in template (omit) ServiceInfo p_filteringCriteria := omit - ) := { + template (omit) SerAvailabilityNotificationSubscription m_srv_avail_notif_subscription( + in template (value) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference, + in template (omit) Self p_links := omit, + in template (omit) FilteringCriteria p_filteringCriteria := omit + ) := { subscriptionType := "SerAvailabilityNotificationSubscription", callbackReference := p_callbackReference, links := p_links, filteringCriteria := p_filteringCriteria } // End of template m_srv_avail_notif_subscription - template (omit) SerAvailabilityNotificationSubscription_ m_srv_avail_notif_subscription_invalid( - in template (value) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference, - in template (omit) Self p_links := omit, - in template (omit) ServiceInfo p_filteringCriteria := omit - ) modifies m_srv_avail_notif_subscription := { + template (omit) SerAvailabilityNotificationSubscription m_srv_avail_notif_subscription_invalid( + in template (value) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference, + in template (omit) Self p_links := omit, + in template (omit) FilteringCriteria p_filteringCriteria := omit + ) modifies m_srv_avail_notif_subscription := { subscriptionType := "InvalidSerAvailabilityNotificationSubscription" } // End of template m_srv_avail_notif_subscription_invalid - template SerAvailabilityNotificationSubscription_ mw_srv_avail_notif_subscription( - template (present) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference := ?, - template Self p_links := *, - template ServiceInfo p_filteringCriteria := * - ) := { + template SerAvailabilityNotificationSubscription mw_srv_avail_notif_subscription( + template (present) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference := ?, + template Self p_links := *, + template FilteringCriteria p_filteringCriteria := * + ) := { subscriptionType := "SerAvailabilityNotificationSubscription", callbackReference := p_callbackReference, links := p_links, diff --git a/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_TypesAndValues.ttcn b/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_TypesAndValues.ttcn index 3601279512e84f338cda585a782ee029894de967..399d35f5869dcac26f0118b83cc920297be04871 100644 --- a/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_TypesAndValues.ttcn +++ b/ttcn/LibMec/AppEna/ttcn/AppEnablementAPI_TypesAndValues.ttcn @@ -48,7 +48,7 @@ module AppEnablementAPI_TypesAndValues { type record AppTerminationNotificationSubscription { SubscriptionType subscriptionType, AppTerminationNotificationSubscription_CallbackReference callbackReference, - Self links, + Self links optional, AppInstanceId appInstanceId } with { variant (links) "name as '_links'"; @@ -88,6 +88,7 @@ module AppEnablementAPI_TypesAndValues { Name name, CategoryRef_Version version } + type record length(0..infinity) of CategoryRef CategoryRefList; /** * @desc The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC. @@ -125,7 +126,8 @@ module AppEnablementAPI_TypesAndValues { type enumerated InterfaceType { TUNNEL, MAC, - IP + IP, + NONE } /** @@ -218,19 +220,16 @@ module AppEnablementAPI_TypesAndValues { } with { variant (port_) "name as 'port'"; } - type record length(0..infinity) of Address AddressList; /** * @desc Entry point information of the service as one or more pairs of IP address and port. */ - type record Addresses { - AddressList addresses - } + type record length(0..infinity) of Address EndPointInfo_AddressList; /** * @desc Entry point information of the service in a format defined by an implementation, or in an external specification. */ - type record Alternative { + type record EndPointInfo_Alternative { anytype alternative } @@ -238,14 +237,11 @@ module AppEnablementAPI_TypesAndValues { * @desc Entry point information of the service. */ type JSON.String EndPointInfo_Uri; - type record length(0..infinity) of EndPointInfo_Uri EndPointInfo_UriList; /** * @desc Entry point information of the service as string, formatted according to URI syntax. */ - type record Uris { - EndPointInfo_UriList uris - } + type record length(0..infinity) of EndPointInfo_Uri EndPointInfo_UriList; /** * @desc This type represents a type of link and may be referenced from data structures. @@ -296,7 +292,8 @@ module AppEnablementAPI_TypesAndValues { } type record Links { - LinkType self_ + LinkType self_, + Subscriptions subscriptions } with { variant (self_) "name as 'self'"; } @@ -305,41 +302,21 @@ module AppEnablementAPI_TypesAndValues { * @desc This type represents a list of links related to currently existing subscriptions for a MEC application instance. */ type record SubscriptionLinkList { - Links links, - Subscriptions subscription optional + Links links } with { variant (links) "name as '_links'"; } /** - * @desc A link to a subscription - * @member - * @member + * @desc The MEC application instance's subscriptions + * @member href URI referring to the subscription + * @member subscriptionType Type of the subscription */ type record Subscription_ { JSON.AnyURI href, SubscriptionType subscriptionType } - type record of Subscription_ Subscriptions; - - /** - * @desc Problem Details for HTTP APIs - * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type - * @member title A short, human-readable summary of the problem type - * @member status The HTTP status code for this occurrence of the problem - * @member detail A human-readable explanation specific to this occurrence of the problem - * @member instance A URI reference that identifies the specific occurrence of the problem - * @see IETF RFC 7807 Clause 3. The Problem Details JSON Object - */ - type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance - } with { - variant (type_) "name as 'type'"; - } + type record length(0..infinity) of Subscription_ Subscriptions; /** * @desc List of supported OAuth 2.0 grant types. @@ -376,8 +353,7 @@ module AppEnablementAPI_TypesAndValues { * @desc Self-referring URI. */ type record Self { - LinkType self_, - JSON.Bool readOnly optional + LinkType self_ } with { variant (self_) "name as 'self'"; } @@ -394,7 +370,9 @@ module AppEnablementAPI_TypesAndValues { SerAvailabilityNotificationSubscription_SubscriptionType subscriptionType, SerAvailabilityNotificationSubscription_CallbackReference callbackReference, Self links optional, - ServiceInfo filteringCriteria optional + FilteringCriteria filteringCriteria optional + } with { + variant (links) "name as '_links'"; } /** @@ -402,6 +380,17 @@ module AppEnablementAPI_TypesAndValues { */ type JSON.String SerAvailabilityNotificationSubscription_SubscriptionType; + /** + * @desc Filtering criteria to match services for which events are requested to be reported + */ + type record FilteringCriteria { + SerInstanceIdList serInstanceIds optional, + SerNameList serNames optional, + CategoryRefList serCategories optional, + ServiceStateList states, + JSON.Bool isLocal optional + } + /** * @desc This type represents the service availability information. */ @@ -417,25 +406,40 @@ module AppEnablementAPI_TypesAndValues { type enumerated SerializerTypes { JSON, XML, - PROTOBUF3 + PROTOBUF3, + RAW // Used for invalid behavior } /** * @desc Identifier of the service instance assigned by the MEPM / mobile edge platform. */ type JSON.String SerInstanceId; + type record length(0..infinity) of SerInstanceId SerInstanceIdList; /** * @desc The name of the service. This is how the service producing mobile edge application identifies the service instance it produces. */ type JSON.String SerName; + type record length(0..infinity) of SerName SerNameList; /** * @desc Contains the state. */ - type enumerated ServiceInfo_State { + type enumerated ServiceState { ACTIVE, - INACTIVE + INACTIVE, + UNKNOWN // Used for invalid behavior tests + } + type record length(0..infinity) of ServiceState ServiceStateList; + + /** + * @desc Link to the "Individual mecServiceLiveness" resource where the MEC platform expects the service instance to send the liveness information. + */ + type record ServiceInfo_Link { + LinkType self_, + LinkType liveness optional + } with { + variant (self_) "name as 'self'"; } /** @@ -468,13 +472,17 @@ module AppEnablementAPI_TypesAndValues { SerName serName, CategoryRef serCategory optional, ServiceInfo_Version version, - ServiceInfo_State state, + ServiceState state, TransportId transportId optional, TransportInfo transportInfo optional, SerializerTypes serializer, LocalityType scopeOfLocality optional, - boolean consumedLocalOnly optional, - boolean isLocal optional + JSON.Bool consumedLocalOnly optional, + JSON.Bool isLocal optional/*, + UInt32 livenessInterval optional, + ServiceInfo_Link links + } with { + variant (links) "name as '_links'";*/ } type record of ServiceInfo ServiceInfoList; @@ -570,7 +578,6 @@ module AppEnablementAPI_TypesAndValues { * @desc Time. * @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC. * @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC. - * @member timeSourceStatus Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source. */ type record TimeStamp { Seconds seconds, @@ -601,6 +608,7 @@ module AppEnablementAPI_TypesAndValues { * @desc Identify the traffic ip address. */ type JSON.String TrafficFilter_Port; + type record length(0..infinity) of TrafficFilter_Port TrafficFilter_PortList; /** * @desc Protocol of the traffic filter. @@ -640,19 +648,19 @@ module AppEnablementAPI_TypesAndValues { * @desc This type represents the traffic filter. */ type record TrafficFilter { - TrafficFilter_Address srcAddress, + TrafficFilter_AddressList srcAddress, TrafficFilter_AddressList dstAddress, - TrafficFilter_Port srcPort, - TrafficFilter_Port dstPort, + TrafficFilter_PortList srcPort, + TrafficFilter_PortList dstPort, TrafficFilter_ProtocolList protocol, TrafficFilter_TokenList token, TrafficFilter_TunnelAddressList srcTunnelAddress, TrafficFilter_TunnelAddressList tgtTunnelAddress, TrafficFilter_TunnelPortList srcTunnelPort, TrafficFilter_TunnelPortList dstTunnelPort, - TrafficFilter_QCI qCI, - TrafficFilter_DSCP dSCP, - TrafficFilter_TC tC + TrafficFilter_QCI qCI optional, + TrafficFilter_DSCP dSCP optional, + TrafficFilter_TC tC optional } type record of TrafficFilter TrafficFilterList; @@ -743,10 +751,10 @@ module AppEnablementAPI_TypesAndValues { /** * @desc This type represents information about a transport endpoint. */ - type union TransportInfo_Endpoint { // JSON oneOf ??? - Uris uris, - Addresses addresses, - Alternative alternative + type union TransportInfo_Endpoint { + EndPointInfo_UriList uris, + EndPointInfo_AddressList addresses, + EndPointInfo_Alternative alternative } /** diff --git a/ttcn/LibMec/AppLCM/ttcn/AppLCM_TypesAndValues.ttcn b/ttcn/LibMec/AppLCM/ttcn/AppLCM_TypesAndValues.ttcn index 73674dc92ec5deb763392c1f9322945d2c198f8c..d20b23e5b23757f388814f671211f84a5a48fb1f 100644 --- a/ttcn/LibMec/AppLCM/ttcn/AppLCM_TypesAndValues.ttcn +++ b/ttcn/LibMec/AppLCM/ttcn/AppLCM_TypesAndValues.ttcn @@ -123,26 +123,6 @@ type record Notification { String subscriptionId } -/** -* @desc Problem Details for HTTP APIs -* @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type -* @member title A short, human-readable summary of the problem type -* @member status The HTTP status code for this occurrence of the problem -* @member detail A human-readable explanation specific to this occurrence of the problem -* @member instance A URI reference that identifies the specific occurrence of the problem -* @see IETF RFC 7807 Clause 3. The Problem Details JSON Object -*/ -type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance -} with { - variant (type_) "name as 'type'"; -} - - } with { encode "JSON" } diff --git a/ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_Templates.ttcn b/ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_Templates.ttcn index d750e7529424abc78023c3be4bb51d639c495ede..2ab5092d3e96d613c614acee76d0a4125801b2ed 100644 --- a/ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_Templates.ttcn +++ b/ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_Templates.ttcn @@ -10,34 +10,6 @@ module BwManagementAPI_Templates { import from BwManagementAPI_TypesAndValues all; import from BwManagementAPI_Pixits all; - template (value) ProblemDetails m_problem_details( - in JSON.String p_type, - in JSON.String p_title, - in UInt32 p_status, - in JSON.String p_detail, - in JSON.String p_instance - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template m_problem_details - - template (present) ProblemDetails mw_problem_details( - template (present) JSON.String p_type := ?, - template (present) JSON.String p_title := ?, - template (present) UInt32 p_status := ?, - template (present) JSON.String p_detail := ?, - template (present) JSON.String p_instance := ? - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template mw_problem_details - template (value) BwInfo m_bw_info( in AppInsId p_appInsId := PX_APP_INSTANCE_ID, in RequestType p_requestType, diff --git a/ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_TypesAndValues.ttcn b/ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_TypesAndValues.ttcn index 74e5b7b3fb3d3a7e66263c485870869531381229..c5c5ef2a4f9008ae48a1e1cf2efce93f99ac6aa6 100644 --- a/ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_TypesAndValues.ttcn +++ b/ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_TypesAndValues.ttcn @@ -6,25 +6,6 @@ module BwManagementAPI_TypesAndValues { // LibCommon import from LibCommon_BasicTypesAndValues all; - /** - * @desc Problem Details for HTTP APIs - * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type - * @member title A short, human-readable summary of the problem type - * @member status The HTTP status code for this occurrence of the problem - * @member detail A human-readable explanation specific to this occurrence of the problem - * @member instance A URI reference that identifies the specific occurrence of the problem - * @see IETF RFC 7807 Clause 3. The Problem Details JSON Object - */ - type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance - } with { - variant (type_) "name as 'type'"; - } - /** * @desc Information of bandwidth resource * @member diff --git a/ttcn/LibMec/Grant/ttcn/Grant_Templates.ttcn b/ttcn/LibMec/Grant/ttcn/Grant_Templates.ttcn index fd87f043ddf432330e536f2117057e0fd72b6257..ef33e04246daa3c5a9a62aa42f924747ae3ebc9f 100644 --- a/ttcn/LibMec/Grant/ttcn/Grant_Templates.ttcn +++ b/ttcn/LibMec/Grant/ttcn/Grant_Templates.ttcn @@ -33,4 +33,177 @@ module Grant_Templates { operation := p_app_operation } +// template (omit) AppMobilityServiceInfo m_app_mobility_service_info( +// in String p_app_mobility_service_id := PX_APP_MOBILITY_SERVICE_ID, +// in template (omit) RegistrationInfos p_registration_info := omit +// ) := { +// registeredAppMobilityService := p_registration_info, +// appMobilityServiceId := p_app_mobility_service_id +// } // End of template m_app_mobility_service_info +// +// +// template (present) AppMobilityServiceInfo mw_app_mobility_service_info( +// template (present) RegistrationInfos p_registration_info := ?, +// template (present) String p_app_mobility_service_id := ? +// ) := { +// registeredAppMobilityService := p_registration_info, +// appMobilityServiceId := p_app_mobility_service_id +// } +// +// template (omit) RegistrationInfo m_app_mobility_registration_info( +// in template (value) ServiceConsumerId p_serviceConsumerId, +// in template (omit) DeviceInformations p_deviceInformation := omit, +// in template (omit) UInt32 p_expiryTime := omit +// ) := { +// serviceConsumerId := p_serviceConsumerId, +// deviceInformation := p_deviceInformation, +// expiryTime := p_expiryTime +// } +// +// template RegistrationInfo mw_app_mobility_registration_info( +// template (present) ServiceConsumerId p_serviceConsumerId := ?, +// template DeviceInformations p_deviceInformation := *, +// template UInt32 p_expiryTime := * +// ) := { +// serviceConsumerId := p_serviceConsumerId, +// deviceInformation := p_deviceInformation, +// expiryTime := p_expiryTime +// } +// +// template (omit) ServiceConsumerId m_service_consumer_id( +// in template (omit) String p_appInstanceId := omit, +// in template (omit) String p_mepId := omit +// ) := { +// appInstanceId := p_appInstanceId, +// mepId := p_mepId +// } +// +// template ServiceConsumerId mw_service_consumer_id( +// template String p_appInstanceId := *, +// template String p_mepId := * +// ) := { +// appInstanceId := p_appInstanceId, +// mepId := p_mepId +// } +// +// template (omit) RegistrationRequest m_registration_request ( +// in template (omit) ServiceConsumerId p_service_consumer_id := omit, +// in template (omit) DeviceInformations p_device_info := omit, +// in UInt32 p_expire_time +// ) := { +// serviceConsumerId := p_service_consumer_id, +// deviceInformation := p_device_info, +// expiryTime := p_expire_time +// } +// +// template RegistrationRequest mw_registration_request( +// template ServiceConsumerId p_service_consumer_id := ?, +// template DeviceInformations p_device_info := omit, +// template UInt32 p_expire_time := omit +// ) := { +// serviceConsumerId := p_service_consumer_id, +// deviceInformation := p_device_info, +// expiryTime := p_expire_time +// } +// +// +// template (value) RegistrationInfo m_registration_info ( +// in template (omit) ServiceConsumerId p_service_consumer_id := omit, +// in template (omit) DeviceInformations p_device_info := omit, +// in UInt32 p_expire_time +// ) := { +// serviceConsumerId := p_service_consumer_id, +// deviceInformation := p_device_info, +// expiryTime := p_expire_time +// } +// +// template (present) RegistrationInfo mw_registration_info( +// template (present) ServiceConsumerId p_service_consumer_id := ?, +// template (present) DeviceInformations p_device_info := ?, +// template (present) UInt32 p_expire_time +// ) := { +// serviceConsumerId := p_service_consumer_id, +// deviceInformation := p_device_info, +// expiryTime := p_expire_time +// } +// +// +// template (value) ServiceConsumer m_service_consumer ( +// in String p_app_instance, +// in String p_mep_id +// ) := { +// appInstance := p_app_instance, +// mepId := p_mep_id +// } +// +// template (value) DeviceInformation m_device_info ( +// in String p_associate_id +// ) := { +// associateId := p_associate_id +// } +// +// template (omit) DeviceInformation mw_device_info ( +// in String p_associate_id +// ) := { +// associateId := p_associate_id +// } +// type record AmsSubscriptionLinkList { +// JSON.AnyURI links, +// Subscription subscription +// } +// +// +// +// template (value) MobilityProcedureSubscription m_ams_subscription ( +// in SubscriptionType p_subscriptionType, +// in JSON.AnyURI p_callbackReference, +// in JSON.AnyURI p_links, +// in FilterCriteria p_filterCriteria, +// in TimeStamp p_expiryDeadline +// +// ) := { +// subscriptionType := p_subscriptionType , +// callbackReference := p_callbackReference, +// links := p_links, +// filterCriteria := p_filterCriteria, +// expiryDeadline := p_expiryDeadline +// } +// +// +// template (value) MobilityProcedureSubscriptionError m_ams_subscription_error ( +// in SubscriptionType p_subscriptionType, +// in JSON.AnyURI p_callbackReference, +// in JSON.AnyURI p_links, +// in FilterCriteria p_filterCriteria, +// in TimeStamp p_expiryDeadline +// +// ) := { +// subscriptionType := p_subscriptionType, +// callbackReference := p_callbackReference, +// links := p_links, +// filterCriteria := p_filterCriteria, +// expiryDeadline := p_expiryDeadline +// } +// +// template (present) MobilityProcedureSubscription mw_ams_subscription ( +// in SubscriptionType p_subscriptionType, +// in JSON.AnyURI p_callbackReference, +// in JSON.AnyURI p_links, +// in FilterCriteria p_filterCriteria, +// in TimeStamp p_expiryDeadline +// ) := { +// subscriptionType := p_subscriptionType , +// callbackReference := p_callbackReference, +// links := p_links, +// filterCriteria := p_filterCriteria, +// expiryDeadline := p_expiryDeadline +// } +// +// +// + + + + + } // End of module LocationAPI_Templates diff --git a/ttcn/LibMec/Grant/ttcn/Grant_TypesAndValues.ttcn b/ttcn/LibMec/Grant/ttcn/Grant_TypesAndValues.ttcn index 6d88b806c0671bdb74a7b65d7e8eb5ad0360d517..6a97e4cdda4a3561898b4deb7e0a78069b7289de 100644 --- a/ttcn/LibMec/Grant/ttcn/Grant_TypesAndValues.ttcn +++ b/ttcn/LibMec/Grant/ttcn/Grant_TypesAndValues.ttcn @@ -57,26 +57,6 @@ import from LibCommon_BasicTypesAndValues all; */ type UInt32 NanoSeconds; -/** -* @desc Problem Details for HTTP APIs -* @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type -* @member title A short, human-readable summary of the problem type -* @member status The HTTP status code for this occurrence of the problem -* @member detail A human-readable explanation specific to this occurrence of the problem -* @member instance A URI reference that identifies the specific occurrence of the problem -* @see IETF RFC 7807 Clause 3. The Problem Details JSON Object -*/ -type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance -} with { - variant (type_) "name as 'type'"; -} - - } with { encode "JSON" } diff --git a/ttcn/LibMec/LocationAPI/json/LocationAPI.json b/ttcn/LibMec/LocationAPI/json/LocationAPI.json index 4e87da0b3fac11a985d3b2245d0c7ae0a1b7212a..253a585dbb06f32672deeef22d395e8a30f7e7de 100644 --- a/ttcn/LibMec/LocationAPI/json/LocationAPI.json +++ b/ttcn/LibMec/LocationAPI/json/LocationAPI.json @@ -5,8 +5,8 @@ "version": "1.1.1", "description": "The ETSI MEC ISG MEC012 Location API described using OpenAPI. The API is based on the Open Mobile Alliance's specification RESTful Network API for Zonal Presence", "license": { - "name": "ETSI Forge copyright notice", - "url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt" + "name": "BSD-3-Clause", + "url": "https://forge.etsi.org/legal-matters" } }, "externalDocs": { diff --git a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn index 9b7e86c9298921dd5552c2a51b3a0e0158953a21..4052f1f8aab4a6f6fa9f2f56cd76be1234c4a0ba 100644 --- a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn +++ b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn @@ -11,7 +11,7 @@ module LocationAPI_Pixits { modulepar Address PX_USER := "ue1"; - modulepar Address PX_USER_UNKNOWN := "acr:192.0.0.200"; + modulepar Address PX_USER_UNKNOWN := "acr:192.168.5.1.1"; modulepar ClientCorrelator PX_CLIENT_ID := "0123"; @@ -27,7 +27,7 @@ module LocationAPI_Pixits { modulepar ZoneId PX_NON_EXISTENT_ZONE_ID := "zone51"; - modulepar ResourceURL PX_RESOURCE_URL := "http://meep-loc-serv/etsi-013/location/v1/users/ue1"; + modulepar ResourceURL PX_RESOURCE_URL := "http://meep-loc-serv/etsi-013/location/v2/users/ue1"; modulepar NumberOfAccessPoints PX_NB_ACCESS_POINTS := 3; @@ -37,23 +37,25 @@ module LocationAPI_Pixits { modulepar CallbackReference PX_CALLBACK_REF_URL := { "http://clientApp.example.com/location_notifications/123456" }; - modulepar JSON.AnyURI PX_UE_AREA_SUB_URI := ""; + modulepar CallbackReference PX_UE_PERIODIC_SUB_CALLBACK_URI := { "http://clientApp.example.com/location_notifications/123456" }; - modulepar CallbackReference PX_UE_PERIODIC_SUB_CALLBACK_URI := { "" }; + modulepar Address PX_IP_ADDRESS := "acr:10.0.0.3"; - modulepar Address PX_IP_ADDRESS := ""; + modulepar CallbackReference PX_AREA_SUB_CALLBACK_URI := { "http://clientApp.example.com/location_notifications/123456" }; - modulepar CallbackReference PX_AREA_SUB_CALLBACK_URI := { "" }; + modulepar CallbackReference PX_UE_DIST_SUB_CALLBACK_URI := { "http://clientApp.example.com/location_notifications/123456" }; - modulepar CallbackReference PX_UE_DIST_SUB_CALLBACK_URI := { "" }; + modulepar Address PX_UE_MONITORED_IP_ADDRESS := "acr:10.0.0.1"; - modulepar Address PX_UE_MONITORED_IP_ADDRESS := ""; + modulepar Address PX_ACR_UNKNOWN_IP := "acr:10.0.0.254"; - modulepar Address PX_ACR_UNKNOWN_IP := ""; + modulepar Address PX_UE_ZONAL_TRAF_SUB_URI := ""; - modulepar JSON.Number PX_UE_COORD_LAT := 0.0; + modulepar JSON.AnyURI PX_UE_LOC_QRY_URI := "/location/v2/queries"; - modulepar JSON.Number PX_UE_COORD_LONG := 0.0; + modulepar JSON.Number PX_UE_COORD_LAT := -80.86302; + + modulepar JSON.Number PX_UE_COORD_LONG := 41.277306; modulepar Address PX_ACR_SOME_IP := ""; diff --git a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Templates.ttcn b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Templates.ttcn index 65e85a769832863e5e2393b7b2c3240e4ddbc0e9..7f86a783dbe70e96d129c402648d9524c5623519 100644 --- a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Templates.ttcn +++ b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Templates.ttcn @@ -59,23 +59,44 @@ module LocationAPI_Templates { template (value) LocationInfo m_location_info( in JSON.Number p_latitude, in JSON.Number p_longitude, - in UInt32 p_accuracy + in Shape p_shape := POLYGON, + in VelocityType p_velocityType := HORIZONTAL_VERTICAL_UNCERT ) := { - latitude := p_latitude, - longitude := p_longitude, - altitude := omit, - accuracy := p_accuracy + latitude := p_latitude, + longitude := p_longitude, + altitude := omit, + accuracy := omit, + accuracySemiMinor := omit, + accuracyAltitude := omit, + orientationMajorAxis := omit, + confidence := omit, + innerRadius := omit, + uncertaintyRadius := omit, + offsetAngle := omit, + includedAngle := omit, + shape := p_shape, + velocity := omit } // End of template m_location_info template (present) LocationInfo mw_location_info( template (present) JSON.Number p_latitude := ?, template (present) JSON.Number p_longitude := ?, - template (present) UInt32 p_accuracy := ? + template (present) Shape p_shape := ? ) := { - latitude := p_latitude, - longitude := p_longitude, - altitude := *, - accuracy := p_accuracy + latitude := p_latitude, + longitude := p_longitude, + altitude := *, + accuracy := *, + accuracySemiMinor := *, + accuracyAltitude := *, + orientationMajorAxis := *, + confidence := *, + innerRadius := *, + uncertaintyRadius := *, + offsetAngle := *, + includedAngle := *, + shape := p_shape, + velocity := * } // End of template mw_location_info template (value) ZoneInfo m_zone_info( @@ -153,6 +174,36 @@ module LocationAPI_Templates { resourceURL := p_resourceURL } // End of template mw_user_tracking_subscription + template (value) PeriodicTrackingSubscription m_periodic_tracking_subscription( + in ClientCorrelator p_clientCorrelator, + in CallbackReference p_callbackReference, + in Address p_address := PX_USER, + in JSON.Number p_frequency := 10.0, + in JSON.Number p_requestedAccuracy := 10.0 + ) := { + clientCorrelator := p_clientCorrelator, + callbackReference := p_callbackReference, + address_ := p_address, + frequency := p_frequency, + requestedAccuracy := p_requestedAccuracy, + resourceURL := omit + } // End of template m_periodic_tracking_subscription + + template (present) PeriodicTrackingSubscription mw_periodic_tracking_subscription( + template (present) ClientCorrelator p_clientCorrelator := ?, + template (present) CallbackReference p_callbackReference := ?, + template (present) Address p_address := PX_USER, + template (present) JSON.Number p_frequency := ?, + template (present) JSON.Number p_requestedAccuracy := ? + ) := { + clientCorrelator := p_clientCorrelator, + callbackReference := p_callbackReference, + address_ := p_address, + frequency := p_frequency, + requestedAccuracy := p_requestedAccuracy, + resourceURL := * + } // End of template mw_periodic_tracking_subscription + template (value) ZonalTrafficSubscription m_zonal_traffic_subscription( in ClientCorrelator p_client_correlator, in CallbackReference p_callback_reference, @@ -184,32 +235,74 @@ module LocationAPI_Templates { template (omit) CircleNotificationSubscription m_circle_notification_subscription( in template (omit) ClientCorrelator p_clientCorrelator := omit, in template (value) CallbackReference p_callbackReference, - in template (omit) ResourceURL p_resourceURL := omit, - in template (omit) Address p_address := omit - ) := { + in template (value) Addresses p_address, + in template (value) JSON.Number p_latitude := PX_UE_COORD_LAT, + in template (value) JSON.Number p_longitude := PX_UE_COORD_LONG, + in template (value) JSON.Number p_radius := 10.0, + in template (value) JSON.Number p_trackingAccuracy := 10.0, + in template (value) EnteringLeavingCriteria p_enteringLeavingCriteria := Entering, + in template (value) JSON.Bool p_checkImmediate := true, + in template (value) JSON.Number p_frequency := 10.0, + in template (omit) ResourceURL p_resourceURL := omit + ) := { clientCorrelator := p_clientCorrelator, resourceURL := p_resourceURL, - callbackReference := p_callbackReference + link := omit, + callbackReference := p_callbackReference, + requester := omit, + address_ := p_address, + latitude := p_latitude, + longitude := p_longitude, + radius := p_radius, + trackingAccuracy := p_trackingAccuracy, + enteringLeavingCriteria := p_enteringLeavingCriteria, + checkImmediate := p_checkImmediate, + frequency := p_frequency, + duration := omit, + count := omit + } // End of template m_circle_notification_subscription template CircleNotificationSubscription mw_circle_notification_subscription( template ClientCorrelator p_clientCorrelator := *, template (present) CallbackReference p_callbackReference := ?, - template ResourceURL p_resourceURL := *, - template Address p_address := * + template (present) Addresses p_address := ?, + template (present) JSON.Number p_latitude := ?, + template (present) JSON.Number p_longitude := ?, + template (present) JSON.Number p_radius := ?, + template (present) JSON.Number p_trackingAccuracy := ?, + template (present) EnteringLeavingCriteria p_enteringLeavingCriteria := ?, + template (present) JSON.Bool p_checkImmediate := ?, + template (present) JSON.Number p_frequency := ?, + template ResourceURL p_resourceURL := * ) := { clientCorrelator := p_clientCorrelator, resourceURL := p_resourceURL, + link := *, callbackReference := p_callbackReference, - address_ := p_address + requester := *, + address_ := p_address, + latitude := p_latitude, + longitude := p_longitude, + radius := p_radius, + trackingAccuracy := p_trackingAccuracy, + enteringLeavingCriteria := p_enteringLeavingCriteria, + checkImmediate := p_checkImmediate, + frequency := p_frequency, + duration := *, + count := * } // End of template m_wcircle_notification_subscription template (value) TerminalDistance m_terminal_distance(in JSON.Number p_distance) := { - distance := p_distance + distance := p_distance, + accuracy := omit, + timestamp := omit } // End of template m_terminal_distance template (present) TerminalDistance mw_terminal_distance(template (present) JSON.Number p_distance := ?) := { - distance := p_distance + distance := p_distance, + accuracy := *, + timestamp := * } // End of template mw_terminal_distance template (omit) DistanceNotificationSubscription m_distance_notification_subscription( diff --git a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_TypesAndValues.ttcn b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_TypesAndValues.ttcn index 08bc78f4500e600c63f9792b86c8263998f109db..bd158438100ccc95d646b27d33c1ac14479f9881 100644 --- a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_TypesAndValues.ttcn +++ b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_TypesAndValues.ttcn @@ -1,3 +1,13 @@ +/** + * @author ETSI / STF569 + * @version $Url$ + * $Id$ + * @desc Types ANd Values for ETSI GS MEC 013 V2.1.1 (2019-09) + * @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. + */ module LocationAPI_TypesAndValues { // JSON @@ -20,6 +30,7 @@ module LocationAPI_TypesAndValues { * @desc * @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC * @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + * @see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.5.2 Type: TimeStamp */ type record TimeStamp { Seconds seconds, @@ -30,25 +41,70 @@ module LocationAPI_TypesAndValues { * @desc A type containing list of users. * @member user Collection of the zone information list. * @member resourceURL Self referring URL. + * @see ETSI GS MEC 013 V2.1.1 (2019-09) Clause */ type record of UserInfo UserInfos; type record UserList { UserInfos user optional, ResourceURL resourceURL } - + + /** + * @desc Shape information, as detailed in [14], associated with the reported location coordinate + * @see ETSI GS MEC 013 V2.1.1 (2019-09) Table 6.5.3-1: Definition of type LocationInfo + */ + type enumerated Shape { + ELLIPSOID_ARC (1), + ELLIPSOID_POINT (2), + ELLIPSOID_POINT_ALTITUDE (3), + ELLIPSOID_POINT_ALTITUDE_UNCERT_ELLIPSOID (4), + ELLIPSOID_POINT_UNCERT_CIRCLE (5), + ELLIPSOID_POINT_UNCERT_ELLIPSE (6), + POLYGON (7) + } + + /** + * @desc Velocity information, as detailed in [14], associated with the reported location coordinate + * @see ETSI GS MEC 013 V2.1.1 (2019-09) Table 6.5.3-1: Definition of type LocationInfo + */ + type enumerated VelocityType { + HORIZONTAL (1), + HORIZONTAL_VERTICAL (2), + HORIZONTAL_UNCERT (3), + HORIZONTAL_VERTICAL_UNCERT (4) + } + + type record Velocity { + VelocityType velocityType, + UInt32 bearing, + UInt32 horizontalSpeed, + Int32 verticalSpeed optional, + UInt32 verticalUncertainty optional + } + /** * @desc A type containing location information with latitude, longitude and altitude, in addition the accuracy of the information are provided. - * @member latitude - * @member longitude - * @member altitude - * @member accuracy + * @member latitude Location latitude, expressed in the range -90° to +90°. Cardinality greater than one only if "shape" equals 7. + * @member longitude Location longitude, expressed in the range -180° to +180°. Cardinality greater than one only if "shape" equals 7. + * @member altitude Location altitude relative to the WGS84 ellipsoid surface. + * @member accuracy Horizontal accuracy / (semi-major) uncertainty of location provided in meters, as defined in [14]. Present only if "shape" equals 4, 5 or 6 + * @see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.5.3 Type: LocationInfo */ type record LocationInfo { JSON.Number latitude, JSON.Number longitude, JSON.Number altitude optional, - UInt32 accuracy + UInt32 accuracy optional, + UInt32 accuracySemiMinor optional, + UInt32 accuracyAltitude optional, + UInt32 orientationMajorAxis optional, + UInt32 confidence optional, + UInt32 innerRadius optional, + UInt32 uncertaintyRadius optional, + UInt32 offsetAngle optional, + UInt32 includedAngle optional, + Shape shape, + Velocity velocity optional } // End of type LocationInfo /** @@ -80,6 +136,7 @@ module LocationAPI_TypesAndValues { /** * @desc Identifier of access point, (reference ETSI TS 129 171). Where the E-CGI is made up of the PLMN and Cell Identity (28 bit string). Then the PLMN is made up of the 3 digit MCC & 2 or 3 digit MNC. The Cell Portion is an optional element + * @see ETSI GS MEC 013 V2.1.1 (2019-09) 6.6.1 accessPointId */ type JSON.String AccessPointId; @@ -117,7 +174,8 @@ module LocationAPI_TypesAndValues { /** * @desc Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI). */ - type JSON.String Address; + type JSON.AnyURI Address + type record of Address Addresses; /** * @desc Reserved for future use. @@ -279,8 +337,9 @@ REST_NetAPI_Common]. * @member zoneId Identifier of zone * @member resourceURL Self referring URL. * @member locationInfo A type containing location information with latitude, longitude and altitude, in addition the accuracy of the information are provided. - * @member contextLocationInfo - * @member ancillaryInfo + * @member contextLocationInfo Contextual information of a user location (e.g. aisle, floor, room number, etc.). + * @member ancillaryInfo Reserved for future use + * @see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.2.2 Type: UserInfo */ type record UserInfo { Address address_, @@ -308,6 +367,21 @@ REST_NetAPI_Common]. variant (address_) "name as 'address'"; } + /** + * @desc A type containing periodic tracking subscription. + * @member + */ + type record PeriodicTrackingSubscription { + ClientCorrelator clientCorrelator optional, + CallbackReference callbackReference, + Address address_, + JSON.Number frequency, + JSON.Number requestedAccuracy, + ResourceURL resourceURL optional + } with { + variant (address_) "name as 'address'"; + } + /** * @desc A type containing zonal presence notification * @member @@ -389,14 +463,32 @@ REST_NetAPI_Common]. type record CircleNotificationSubscription { // FIXME Incomplete data structure desciption ClientCorrelator clientCorrelator optional, ResourceURL resourceURL optional, + Link link optional, CallbackReference callbackReference, - Address address_ optional + JSON.AnyURI requester optional, + Addresses address_, + JSON.Number latitude, + JSON.Number longitude, + JSON.Number radius, + JSON.Number trackingAccuracy, + EnteringLeavingCriteria enteringLeavingCriteria, + JSON.Bool checkImmediate, + JSON.Number frequency, + JSON.Number duration optional, + JSON.Number count optional } with { variant (address_) "name as 'address'"; } + + type enumerated EnteringLeavingCriteria { + Entering, + Leaving + } type record TerminalDistance { - JSON.Number distance + JSON.Number distance, + JSON.Number accuracy optional, + JSON.DateTime timestamp optional } type record DistanceNotificationSubscription { // FIXME Incomplete data structure desciption @@ -416,7 +508,21 @@ REST_NetAPI_Common]. } with { variant (address_) "name as 'address'"; } - + + /** + * @desc This type contains a list of subscriptions + * @ see ETSI GS MEC 013 V2.1.1 (2019-09) Clause 6.3.3 Type: NotificationSubscriptionList + */ + type record NotificationSubscriptionList { + ZonalTrafficSubscription zonalTrafficSubscription optional, + UserTrackingSubscription userTrackingSubscription optional, + PeriodicTrackingSubscription periodicTrackingSubscription optional, + ZoneStatusSubscription zoneStatusSubscription optional, + CircleNotificationSubscription circleNotificationSubscription optional, + PeriodicNotificationSubscription periodicNotificationSubscription optional, + DistanceNotificationSubscription distanceNotificationSubscription optional, + ResourceURL resourceURL + } } with { encode "JSON" } diff --git a/ttcn/LibMec/MeoPkgm/ttcn/MeoPkgm_Templates.ttcn b/ttcn/LibMec/MeoPkgm/ttcn/MeoPkgm_Templates.ttcn index 69aa9c446dc6462fbdebb1463250e426f2197b2e..cbb1ef0370882f6ee9ef75d412b5c9cbca400bcb 100644 --- a/ttcn/LibMec/MeoPkgm/ttcn/MeoPkgm_Templates.ttcn +++ b/ttcn/LibMec/MeoPkgm/ttcn/MeoPkgm_Templates.ttcn @@ -81,5 +81,242 @@ module MeoPkgm_Templates { subscriptionId := p_subscriptionId, links := p_links } + + +// template (omit) AppMobilityServiceInfo m_app_mobility_service_info( +// in String p_app_mobility_service_id := PX_APP_MOBILITY_SERVICE_ID, +// in template (omit) RegistrationInfos p_registration_info := omit +// ) := { +// registeredAppMobilityService := p_registration_info, +// appMobilityServiceId := p_app_mobility_service_id +// } // End of template m_app_mobility_service_info +// +// +// template (present) AppMobilityServiceInfo mw_app_mobility_service_info( +// template (present) RegistrationInfos p_registration_info := ?, +// template (present) String p_app_mobility_service_id := ? +// ) := { +// registeredAppMobilityService := p_registration_info, +// appMobilityServiceId := p_app_mobility_service_id +// } +// +// template (omit) RegistrationInfo m_app_mobility_registration_info( +// in template (value) ServiceConsumerId p_serviceConsumerId, +// in template (omit) DeviceInformations p_deviceInformation := omit, +// in template (omit) UInt32 p_expiryTime := omit +// ) := { +// serviceConsumerId := p_serviceConsumerId, +// deviceInformation := p_deviceInformation, +// expiryTime := p_expiryTime +// } +// +// template RegistrationInfo mw_app_mobility_registration_info( +// template (present) ServiceConsumerId p_serviceConsumerId := ?, +// template DeviceInformations p_deviceInformation := *, +// template UInt32 p_expiryTime := * +// ) := { +// serviceConsumerId := p_serviceConsumerId, +// deviceInformation := p_deviceInformation, +// expiryTime := p_expiryTime +// } +// +// template (omit) ServiceConsumerId m_service_consumer_id( +// in template (omit) String p_appInstanceId := omit, +// in template (omit) String p_mepId := omit +// ) := { +// appInstanceId := p_appInstanceId, +// mepId := p_mepId +// } +// +// template (omit) ServiceConsumer m_service_consumer_error( +// in template (omit) String p_appInstance := omit, +// in template (omit) String p_mepId := omit +// ) := { +// appInstance := p_appInstance, +// mepId := p_mepId +// } +// +// template ServiceConsumerId mw_service_consumer_id( +// template String p_appInstanceId := *, +// template String p_mepId := * +// ) := { +// appInstanceId := p_appInstanceId, +// mepId := p_mepId +// } +// +// template (omit) RegistrationRequest m_registration_request ( +// in template (omit) ServiceConsumerId p_service_consumer_id := omit, +// in template (omit) DeviceInformations p_device_info := omit, +// in template (omit) UInt32 p_expire_time := omit +// ) := { +// serviceConsumerId := p_service_consumer_id, +// deviceInformation := p_device_info, +// expiryTime := p_expire_time +// } +// +// +// template (omit) RegistrationRequest m_registration_request_error ( +// in template (omit) ServiceConsumer p_service_consumer := omit, +// in template (omit) DeviceInformations p_device_info := omit, +// in template (omit) UInt32 p_expire_time := omit +// ) := { +// serviceConsumerId := p_service_consumer, +// deviceInformation := p_device_info, +// expiryTime := p_expire_time +// } +// +// +// template RegistrationRequest mw_registration_request( +// template ServiceConsumerId p_service_consumer_id := ?, +// template DeviceInformations p_device_info := omit, +// template UInt32 p_expire_time := omit +// ) := { +// serviceConsumerId := p_service_consumer_id, +// deviceInformation := p_device_info, +// expiryTime := p_expire_time +// } +// +// +// template (value) RegistrationInfo m_registration_info ( +// in template (omit) ServiceConsumerId p_service_consumer_id := omit, +// in template (omit) DeviceInformations p_device_info := omit, +// in UInt32 p_expire_time +// ) := { +// serviceConsumerId := p_service_consumer_id, +// deviceInformation := p_device_info, +// expiryTime := p_expire_time +// } +// +// template (present) RegistrationInfos mw_registration_info( +// template (present) ServiceConsumerId p_service_consumer_id := ?, +// template (present) DeviceInformations p_device_info := ?, +// template (present) UInt32 p_expire_time := ? +// ) := { +// +// } +// +// +// template (value) ServiceConsumer m_service_consumer ( +// in String p_app_instance, +// in String p_mep_id +// ) := { +// appInstance := p_app_instance, +// mepId := p_mep_id +// } +// +// template (omit) ServiceConsumer mw_service_consumer ( +// in String p_app_instance, +// in template (omit) String p_mep_id := omit +// ) := { +// appInstance := p_app_instance, +// mepId := p_mep_id +// } +// +// template (value) DeviceInformation m_device_info ( +// in String p_associate_id +// ) := { +// associateId := p_associate_id +// } +// +// template (omit) DeviceInformation mw_device_info ( +// in String p_associate_id +// ) := { +// associateId := p_associate_id +// } +// type record AmsSubscriptionLinkList { +// JSON.AnyURI links, +// Subscription subscription +// } +// +// template (value) AdjacentAppInfoSubscription mw_adjacent_application_info_notification ( +// in template (omit) SubscriptionType p_subscriptionType := omit, +// in JSON.AnyURI p_callbackReference, +// in template (omit) JSON.AnyURI p_links := omit, +// in template (omit) AdjacentFilterCriteria p_filterCriteria := omit, +// in template (omit) TimeStamp p_expiryDeadline := omit +// +// ) := { +// subscriptionType := p_subscriptionType , +// callbackReference := p_callbackReference, +// links := p_links, +// filterCriteria := p_filterCriteria, +// expiryDeadline := p_expiryDeadline +// } +// +// +// template (value) MobilityProcedureSubscription m_ams_subscription ( +// in SubscriptionType p_subscriptionType := PX_SUBSCRIPTION_TYPE, +// in JSON.AnyURI p_callbackReference, +// in template (omit) JSON.AnyURI p_links := omit, +// in template (omit) FilterCriteria p_filterCriteria := omit, +// in template (omit) TimeStamp p_expiryDeadline := omit +// +// ) := { +// subscriptionType := p_subscriptionType , +// callbackReference := p_callbackReference, +// links := p_links, +// filterCriteria := p_filterCriteria, +// expiryDeadline := p_expiryDeadline +// } +// +// +// +// template (value) MobilityProcedureSubscription mw_mobility_procedure_notification ( +// in template (omit) SubscriptionType p_subscriptionType := omit, +// in JSON.AnyURI p_callbackReference, +// in template (omit) JSON.AnyURI p_links := omit, +// in template (omit) FilterCriteria p_filterCriteria := omit, +// in template (omit) TimeStamp p_expiryDeadline := omit +// +// ) := { +// subscriptionType := p_subscriptionType , +// callbackReference := p_callbackReference, +// links := p_links, +// filterCriteria := p_filterCriteria, +// expiryDeadline := p_expiryDeadline +// } +// +// template (value) MobilityProcedureSubscriptionError m_ams_subscription_error ( +// in SubscriptionType p_subscriptionType, +// in JSON.AnyURI p_callbackReference, +// in template (omit) JSON.AnyURI p_links := omit, +// in template (omit) FilterCriteria p_filterCriteria := omit, +// in template (omit) TimeStamp p_expiryDeadline := omit +// +// ) := { +// subscriptionType := p_subscriptionType, +// callbackReference := p_callbackReference, +// links := p_links, +// filterCriteria := p_filterCriteria, +// expiryDeadline := p_expiryDeadline +// } +// +// template (present) MobilityProcedureSubscription mw_ams_subscription ( +// in SubscriptionType p_subscriptionType, +// in template (omit) JSON.AnyURI p_callbackReference := omit, +// in template (omit) JSON.AnyURI p_links := omit, +// in template (omit) FilterCriteria p_filterCriteria := omit, +// in template (omit) TimeStamp p_expiryDeadline := omit +// ) := { +// subscriptionType := p_subscriptionType , +// callbackReference := p_callbackReference, +// links := p_links, +// filterCriteria := p_filterCriteria, +// expiryDeadline := p_expiryDeadline +// } +// +// template (present) ExpiryNotification mw_expire_notification ( +// in template (omit) TimeStamp p_timestamp := omit, +// in template (omit) JSON.AnyURI p_links := omit, +// in TimeStamp p_expiryDeadline +// ) := { +// timeStamp := p_timestamp, +// links := p_links, +// expiryDeadline := p_expiryDeadline +// } +// +// +// + } // End of module LocationAPI_Templates diff --git a/ttcn/LibMec/MeoPkgm/ttcn/MeoPkgm_TypesAndValues.ttcn b/ttcn/LibMec/MeoPkgm/ttcn/MeoPkgm_TypesAndValues.ttcn index f747b979d3929af47e9598631cb67fcb3e402cf6..9bb99327b2154a841b299357188579d1398b7a7d 100644 --- a/ttcn/LibMec/MeoPkgm/ttcn/MeoPkgm_TypesAndValues.ttcn +++ b/ttcn/LibMec/MeoPkgm/ttcn/MeoPkgm_TypesAndValues.ttcn @@ -112,26 +112,6 @@ type record AppPkgNotification { */ type UInt32 NanoSeconds; -/** -* @desc Problem Details for HTTP APIs -* @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type -* @member title A short, human-readable summary of the problem type -* @member status The HTTP status code for this occurrence of the problem -* @member detail A human-readable explanation specific to this occurrence of the problem -* @member instance A URI reference that identifies the specific occurrence of the problem -* @see IETF RFC 7807 Clause 3. The Problem Details JSON Object -*/ -type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance -} with { - variant (type_) "name as 'type'"; -} - - } with { encode "JSON" } diff --git a/ttcn/LibMec/MepmPkgm/ttcn/MepmPkgm_TypesAndValues.ttcn b/ttcn/LibMec/MepmPkgm/ttcn/MepmPkgm_TypesAndValues.ttcn index 72033f8b39d2e0793332bb346c70bf982938cf40..5c41515a0a95fa1aea74f12fe295b3693529c293 100644 --- a/ttcn/LibMec/MepmPkgm/ttcn/MepmPkgm_TypesAndValues.ttcn +++ b/ttcn/LibMec/MepmPkgm/ttcn/MepmPkgm_TypesAndValues.ttcn @@ -112,26 +112,6 @@ type record AppPkgNotification { */ type UInt32 NanoSeconds; -/** -* @desc Problem Details for HTTP APIs -* @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type -* @member title A short, human-readable summary of the problem type -* @member status The HTTP status code for this occurrence of the problem -* @member detail A human-readable explanation specific to this occurrence of the problem -* @member instance A URI reference that identifies the specific occurrence of the problem -* @see IETF RFC 7807 Clause 3. The Problem Details JSON Object -*/ -type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance -} with { - variant (type_) "name as 'type'"; -} - - } with { encode "JSON" } diff --git a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn index bc24d43059454752f5fdca3afcada3a19c9a21c8..03423308f36c7e1b0ff6891f4a5933a6fb1d2ec1 100644 --- a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn +++ b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_Templates.ttcn @@ -9,34 +9,6 @@ module RnisAPI_Templates { // LibMec/RnisAPI import from RnisAPI_TypesAndValues all; - template (value) ProblemDetails m_problem_details( - in JSON.String p_type, - in JSON.String p_title, - in UInt32 p_status, - in JSON.String p_detail, - in JSON.String p_instance - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template m_problem_details - - template (present) ProblemDetails mw_problem_details( - template (present) JSON.String p_type := ?, - template (present) JSON.String p_title := ?, - template (present) UInt32 p_status := ?, - template (present) JSON.String p_detail := ?, - template (present) JSON.String p_instance := ? - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template mw_problem_details - group subscriptions { template (omit) SubscriptionLinkList m_subscriptions_list( diff --git a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn index 6220ea06092ab7e712f9e21815ad0ef73c5e8a75..fa70cf7be9bb0a86ed3dc9ef42eb9a5f6479d0d2 100644 --- a/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn +++ b/ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn @@ -10,25 +10,6 @@ module RnisAPI_TypesAndValues { // LibCommon import from LibCommon_BasicTypesAndValues all; - /** - * @desc Problem Details for HTTP APIs - * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type - * @member title A short, human-readable summary of the problem type - * @member status The HTTP status code for this occurrence of the problem - * @member detail A human-readable explanation specific to this occurrence of the problem - * @member instance A URI reference that identifies the specific occurrence of the problem - * @see IETF RFC 7807 Clause 3. The Problem Details JSON Object - */ - type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance - } with { - variant (type_) "name as 'type'"; - } - /** * @desc This type represents the information on Mobile Network(s), which a MEC application instance is associated to. * @member timeStamp diff --git a/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_Functions.ttcn b/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_Functions.ttcn index ae507728316150bd10bf6efc3da389f418a45d73..30bd45758f7fb8ad6f8c0ae4436768500cb58fcf 100644 --- a/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_Functions.ttcn +++ b/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_Functions.ttcn @@ -19,7 +19,7 @@ module UEAppInterfaceAPI_Functions { function f_create_ue_app_ctx() runs on HttpComponent system HttpTestAdapter return integer { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var HttpMessage v_response; var integer v_result := -1; @@ -73,7 +73,7 @@ module UEAppInterfaceAPI_Functions { function f_delete_ue_app_ctx() runs on HttpComponent system HttpTestAdapter return integer { // Local variables - var HeaderLines v_headers; + var Headers v_headers; var integer v_result := -1; // Send createion request diff --git a/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_Templates.ttcn b/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_Templates.ttcn index f94dab4a8d1d25428ea65bbe7f4803ddd6029b51..30963cb582a77750e8370f651f24275cbfcf08ca 100644 --- a/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_Templates.ttcn +++ b/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_Templates.ttcn @@ -13,20 +13,6 @@ module UEAppInterfaceAPI_Templates { // LibMec/AppEna import from UEAppInterfaceAPI_TypesAndValues all; - template (present) ProblemDetails mw_problem_details( - template (present) JSON.String p_type := ?, - template (present) JSON.String p_title := ?, - template (present) UInt32 p_status := ?, - template (present) JSON.String p_detail := ?, - template (present) JSON.String p_instance := ? - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template mw_problem_details - template (value) ApplicationList m_application_list( in template (value) AppInfo p_app_info, in template (value) VendorSpecificExt p_vendor_specific_ext diff --git a/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_TypesAndValues.ttcn b/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_TypesAndValues.ttcn index abbfd34433774887fc5822ccc0ac46fea4707f5d..97e050a2a7fa357c7d544acc1370750b050aff6f 100644 --- a/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_TypesAndValues.ttcn +++ b/ttcn/LibMec/UEAppInterfaceAPI/ttcn/UEAppInterfaceAPI_TypesAndValues.ttcn @@ -10,25 +10,6 @@ module UEAppInterfaceAPI_TypesAndValues { // LibCommon import from LibCommon_BasicTypesAndValues all; - /** - * @desc Problem Details for HTTP APIs - * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type - * @member title A short, human-readable summary of the problem type - * @member status The HTTP status code for this occurrence of the problem - * @member detail A human-readable explanation specific to this occurrence of the problem - * @member instance A URI reference that identifies the specific occurrence of the problem - * @see IETF RFC 7807 Clause 3. The Problem Details JSON Object - */ - type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance - } with { - variant (type_) "name as 'type'"; - } - /** * @desc Information on available applications. */ diff --git a/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Templates.ttcn b/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Templates.ttcn index e35023e43fd1c9024e14c03fc1705625d51a435c..c460ef1c5e228615634c50db22531e47c9bb4430 100644 --- a/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Templates.ttcn +++ b/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Templates.ttcn @@ -9,34 +9,6 @@ module UEidentityAPI_Templates { // LibMec/UEidentityAPI import from UEidentityAPI_TypesAndValues all; - template (value) ProblemDetails m_problem_details( - in JSON.String p_type, - in JSON.String p_title, - in UInt32 p_status, - in JSON.String p_detail, - in JSON.String p_instance - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template m_problem_details - - template (present) ProblemDetails mw_problem_details( - template (present) JSON.String p_type := ?, - template (present) JSON.String p_title := ?, - template (present) UInt32 p_status := ?, - template (present) JSON.String p_detail := ?, - template (present) JSON.String p_instance := ? - ) := { - type_ := p_type, - title := p_title, - status := p_status, - detail := p_detail, - instance := p_instance - } // End of template mw_problem_details - template (value) UeIdentityTagInfo m_ue_identity_tag_info( in template (value) UeIdentityTags p_ueIdentityTags ) := { diff --git a/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_TypesAndValues.ttcn b/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_TypesAndValues.ttcn index 03a2aabd66a48eceb47172b701982b5d0f18e81b..dae40f1a2d3e03f7f8fce6d47be92ee36071e6b1 100644 --- a/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_TypesAndValues.ttcn +++ b/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_TypesAndValues.ttcn @@ -16,25 +16,6 @@ module UEidentityAPI_TypesAndValues { // LibCommon import from LibCommon_BasicTypesAndValues all; - /** - * @desc Problem Details for HTTP APIs - * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type - * @member title A short, human-readable summary of the problem type - * @member status The HTTP status code for this occurrence of the problem - * @member detail A human-readable explanation specific to this occurrence of the problem - * @member instance A URI reference that identifies the specific occurrence of the problem - * @see IETF RFC 7807 Clause 3. The Problem Details JSON Object - */ - type record ProblemDetails { - JSON.String type_, - JSON.String title, - UInt32 status, - JSON.String detail, - JSON.String instance - } with { - variant (type_) "name as 'type'"; - } - /** * @desc Information of UE identity tag used in UE Identity feature * @member ueIdentityTags 1 to N tags presented by a ME Application instance to a ME Platform diff --git a/ttcn/LibMec/ttcn/LibMec_Functions.ttcn b/ttcn/LibMec/ttcn/LibMec_Functions.ttcn index 7f587c143509af9df6c9413a5d6ef59d912be4db..04d85a3970312046ec087eeb5b6eaf60bed355d0 100644 --- a/ttcn/LibMec/ttcn/LibMec_Functions.ttcn +++ b/ttcn/LibMec/ttcn/LibMec_Functions.ttcn @@ -139,7 +139,7 @@ module LibMec_Functions { * @return true on success, false otherwise */ function f_check_headers( - in HeaderLines p_headers, + in Headers p_headers, in charstring p_header_name := "Location", in template (present) charstring p_value := ? ) return boolean { @@ -166,7 +166,7 @@ module LibMec_Functions { */ function f_check_user_register_state( in UeIdentityTag p_ue_identity_tag := PX_UE_IDENTITY_TAG, - in HeaderLines p_headers + in Headers p_headers ) runs on HttpComponent return integer { var HttpMessage v_response; var integer v_result := -1; @@ -230,7 +230,7 @@ module LibMec_Functions { function f_register_for_notification( in charstring p_uri, - in HeaderLines p_headers, + in Headers p_headers, in template (value) JsonBody p_json_body, out JsonBody p_notification ) runs on HttpComponent return integer { @@ -270,7 +270,7 @@ module LibMec_Functions { function f_unregister_for_notification( in charstring p_uri, - in HeaderLines p_headers + in Headers p_headers ) runs on HttpComponent return integer { var HttpMessage v_response; var integer v_result := -1; diff --git a/ttcn/LibMec/ttcn/LibMec_Pics.ttcn b/ttcn/LibMec/ttcn/LibMec_Pics.ttcn index 8dcf66e7360ea44abd9d0893c9a474625cb91956..ee43e75920a6fb05ff4f2526722fb04b6c656724 100644 --- a/ttcn/LibMec/ttcn/LibMec_Pics.ttcn +++ b/ttcn/LibMec/ttcn/LibMec_Pics.ttcn @@ -3,47 +3,47 @@ module LibMec_Pics { /** * @desc Does the IUT act as Edge Mobile Application? */ - modulepar boolean PICS_MEC_PLAT := false; + modulepar boolean PICS_MEC_PLAT := true; /** * @desc Does the IUT act as Edge Mobile Application? */ - modulepar boolean PICS_RNIS := false; + modulepar boolean PICS_RNIS := true; - modulepar boolean PICS_MEC_SYSTEM := false; + modulepar boolean PICS_MEC_SYSTEM := true; - modulepar boolean PICS_SERVICES := false; + modulepar boolean PICS_SERVICES := true; - modulepar boolean PICS_NOTIFICATIONS := false; + modulepar boolean PICS_NOTIFICATIONS := true; - modulepar boolean PICS_APP_PACKAGE := false; + modulepar boolean PICS_APP_PACKAGE := true; - modulepar boolean PICS_APP_PACKAGE_MANAGEMENT := false; + modulepar boolean PICS_APP_PACKAGE_MANAGEMENT := true; - modulepar boolean PICS_APP_PACKAGE_NOTIFICATIONS := false; + modulepar boolean PICS_APP_PACKAGE_NOTIFICATIONS := true; - modulepar boolean PICS_RNIS_QUERY := false; + modulepar boolean PICS_RNIS_QUERY := true; - modulepar boolean PICS_RNIS_ALL_SUBSCRIPTIONS := false; + modulepar boolean PICS_RNIS_ALL_SUBSCRIPTIONS := true; - modulepar boolean PICS_RNIS_SPECIFIC_SUBSCRIPTION := false; + modulepar boolean PICS_RNIS_SPECIFIC_SUBSCRIPTION := true; - modulepar boolean PICS_RNIS_NOTIFICATIONS := false; + modulepar boolean PICS_RNIS_NOTIFICATIONS := true; modulepar boolean PICS_AMS := true; - modulepar boolean PICS_AMS_NOTIFICATIONS := false; + modulepar boolean PICS_AMS_NOTIFICATIONS := true; modulepar boolean PIC_GRANTS_MANAGEMENT := true; modulepar boolean PIC_APP_PACKAGE_MANAGEMENT := true; - modulepar boolean PIC_APP_PACKAGE_NOTIFICATIONS := false; + modulepar boolean PIC_APP_PACKAGE_NOTIFICATIONS := true; modulepar charstring PICS_ROOT_API := "exampleAPI"; modulepar boolean PIC_APP_LCM_MANAGEMENT := true; - modulepar boolean PIC_APP_LCM_NOTIFICATIONS := false; + modulepar boolean PIC_APP_LCM_NOTIFICATIONS := true; } // End of module LibMec_Pics diff --git a/ttcn/LibMec/ttcn/LibMec_Pixits.ttcn b/ttcn/LibMec/ttcn/LibMec_Pixits.ttcn index 55f8142e6c3aae3cfb76b355875b3b9ffbd54a57..5fcb131c2820a3647b2352357d9128fd1abe61f6 100644 --- a/ttcn/LibMec/ttcn/LibMec_Pixits.ttcn +++ b/ttcn/LibMec/ttcn/LibMec_Pixits.ttcn @@ -1,20 +1,22 @@ module LibMec_Pixits { - modulepar charstring PX_ME_APP_Q_ZONE_ID_URI := "/location/v1/zones"; + modulepar charstring PX_ME_APP_Q_ZONE_ID_URI := "/location/v2/zones"; - modulepar charstring PX_ME_APP_Q_USERS_LIST_URI := "/location/v1/users"; + modulepar charstring PX_ME_APP_Q_USERS_LIST_URI := "/location/v2/users"; - modulepar charstring PX_ME_APP_Q_DIST_URI := "/location/v1/subscriptions/distance"; + modulepar charstring PX_ME_APP_Q_DIST_URI := "/location/v2/subscriptions/distance"; - modulepar charstring PX_ME_APP_Q_USERS_LOC_SUB_URI := "/location/v1/subscriptions/userTracking"; + modulepar charstring PX_ME_APP_Q_USERS_LOC_SUB_URI := "/location/v2/subscriptions/userTracking"; - modulepar charstring PX_ME_APP_Q_USERS_TRACK_SUB_URI := "/location/v1/subscriptions/periodic"; + modulepar charstring PX_ME_APP_Q_USERS_TRACK_SUB_URI := "/location/v2/subscriptions/periodic"; - modulepar charstring PX_ME_APP_Q_USERS_INF_SUB_URI := "/location/v1/subscriptions/zonalTraffic"; + modulepar charstring PX_ME_APP_Q_USERS_INF_SUB_URI := "/location/v2/subscriptions/zonalTraffic"; + modulepar charstring PX_ME_APP_Q_AREA_SUB_URI := "/location/v2/subscriptions/area/circle"; + modulepar charstring PX_ME_APP_Q_UE_IDENTITY_ID_URI := "/ui/v1/"; - modulepar charstring PX_SVC_MGMT_TRANS_URI := "/mec_app_support/v1/transports"; + modulepar charstring PX_SVC_MGMT_TRANS_URI := "/mec_service_mgmt/v1/transports"; modulepar charstring PX_SVC_MGMT_APP_URI := "/mec_service_mgmt/v1/application"; @@ -50,13 +52,13 @@ module LibMec_Pixits { modulepar charstring PX_MEC_SVC_MGMT_APPS_URI := "/mec_service_mgmt/v1/applications"; - modulepar charstring PX_ME_APP_SUPPORT_TIMING_CURRENT_URI := ""; + modulepar charstring PX_ME_APP_SUPPORT_TIMING_CURRENT_URI := "/mec_app_support/v1/timing/current_time"; - modulepar charstring PX_ME_APP_SUPPORT_URI := ""; + modulepar charstring PX_ME_APP_SUPPORT_URI := "/mec_app_support/v1/applications"; modulepar charstring PX_MEC_SVC_MGMT_SVC_URI := "/mec_service_mgmt/v1/services"; - modulepar charstring PX_ME_APP_SUPPORT_TIMING_CAPS_URI := ""; + modulepar charstring PX_ME_APP_SUPPORT_TIMING_CAPS_URI := "/mec_app_support/v1/timing/timing_caps"; modulepar charstring PX_FAI_FA_INFO_URI := "/fai/v1/fa_info"; diff --git a/ttcn/LibMec/ttcn/LibMec_Templates.ttcn b/ttcn/LibMec/ttcn/LibMec_Templates.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..7e7fed5327668fb9dafbdf4ca25ec996fef83ed1 --- /dev/null +++ b/ttcn/LibMec/ttcn/LibMec_Templates.ttcn @@ -0,0 +1,40 @@ +module LibMec_Templates { + + // JSON + import from JSON all; + + // LibCommon + import from LibCommon_BasicTypesAndValues all; + + // LibMec + import from LibMec_TypesAndValues all; + + template (omit) ProblemDetails m_problem_details( + in template (omit) JSON.String p_type := omit, + in template (omit) JSON.String p_title := omit, + in template (omit) UInt32 p_status := omit, + in template (value) JSON.String p_detail, + in template (omit) JSON.String p_instance := omit + ) := { + type_ := p_type, + title := p_title, + status := p_status, + detail := p_detail, + instance := p_instance + } // End of template m_problem_details + + template ProblemDetails mw_problem_details( + template JSON.String p_type := *, + template JSON.String p_title := *, + template UInt32 p_status := *, + template JSON.String p_detail := *, + template JSON.String p_instance := * + ) := { + type_ := p_type, + title := p_title, + status := p_status, + detail := p_detail, + instance := p_instance + } // End of template mw_problem_details + +} // End of module LibMec_Templates diff --git a/ttcn/LibMec/ttcn/LibMec_TypesAndValues.ttcn b/ttcn/LibMec/ttcn/LibMec_TypesAndValues.ttcn new file mode 100644 index 0000000000000000000000000000000000000000..1b44f045f66fcd7dcfc689335e41424605c87444 --- /dev/null +++ b/ttcn/LibMec/ttcn/LibMec_TypesAndValues.ttcn @@ -0,0 +1,30 @@ +module LibMec_TypesAndValues { + + // JSON + import from JSON all; + + // LibCommon + import from LibCommon_BasicTypesAndValues all; + + /** + * @desc Problem Details for HTTP APIs + * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type + * @member title A short, human-readable summary of the problem type + * @member status The HTTP status code for this occurrence of the problem + * @member detail A human-readable explanation specific to this occurrence of the problem + * @member instance A URI reference that identifies the specific occurrence of the problem + * @see IETF RFC 7807 Clause 3. The Problem Details JSON Object + */ + type record ProblemDetails { + JSON.String type_ optional, + JSON.String title optional, + UInt32 status optional, + JSON.String detail, + JSON.String instance optional + } with { + variant (type_) "name as 'type'"; + } + +} with { + encode "JSON" +} // End of module LibMec_TypesAndValues diff --git a/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn b/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn index efb7eb5ce6f4db16f9adf34cddb81a244178e598..2c1c1c8a383d2d9f3c6ab66428ee2af4b6f2ae85 100644 --- a/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn +++ b/ttcn/patch_lib_http/LibItsHttp_JsonMessageBodyTypes.ttcn @@ -1,5 +1,7 @@ module LibItsHttp_JsonMessageBodyTypes { - + + // LibMec + import from LibMec_TypesAndValues all; // LibMec/LocationAPI import from LocationAPI_TypesAndValues all; // LibMec/UEidentityAPI @@ -38,12 +40,13 @@ module LibItsHttp_JsonMessageBodyTypes { ZoneInfo zoneInfo, AccessPointList accessPointList, UserTrackingSubscription userTrackingSubscription, + PeriodicTrackingSubscription periodicTrackingSubscription, ZonalTrafficSubscription zonalTrafficSubscription, CircleNotificationSubscription circleNotificationSubscription, TerminalDistance terminalDistance, DistanceNotificationSubscription distanceNotificationSubscription, PeriodicNotificationSubscription periodicNotificationSubscription, - UEidentityAPI_TypesAndValues.ProblemDetails problemDetails_ue_identity, + LibMec_TypesAndValues.ProblemDetails problemDetails, UeIdentityTagInfo ueIdentityTagInfo, RnisAPI_TypesAndValues.SubscriptionLinkList subscriptionLinkList, CellChangeSubscription cellChangeSubscription, @@ -58,15 +61,11 @@ module LibItsHttp_JsonMessageBodyTypes { CaReConfSubscription caReConfSubscription, S1BearerSubscription s1BearerSubscription, L2Meas l2Meas, - RnisAPI_TypesAndValues.ProblemDetails problemDetails_rnis, BwInfo bwInfo, - BwManagementAPI_TypesAndValues.ProblemDetails problemDetails_bw_management, TransportInfoList transportInfoList, TrafficRuleList trafficRuleList, TrafficRule trafficRule, - AppEnablementAPI_TypesAndValues.ProblemDetails problemDetails_svc_mgmt, AppMobilityServiceInfo appMobilityServiceInfo, - Ams_TypesAndValues.ProblemDetails problemDetails_ams, Ams_TypesAndValues.RegistrationRequest registrationRequest_ams, Ams_TypesAndValues.MobilityProcedureSubscription_ subscriptionLinkList_ams, Ams_TypesAndValues.AdjacentAppInfoSubscription_ adjacentAppInfoSubscription_ams, @@ -113,7 +112,6 @@ module LibItsHttp_JsonMessageBodyTypes { AppContext appContext, AppInfo appInfo, Ams_TypesAndValues.RegistrationRequestWithError registrationRequestWithError_ams, - UEAppInterfaceAPI_TypesAndValues.ProblemDetails problemDetails_ue_app_ctxt, ServiceInfoList serviceInfoList, ServiceInfo serviceInfo, AppEnablementAPI_TypesAndValues.SubscriptionLinkList subscriptionLinkList_app_ens, @@ -123,13 +121,6 @@ module LibItsHttp_JsonMessageBodyTypes { SerAvailabilityNotificationSubscription_ serAvailabilityNotificationSubscription, TimingCaps timingCaps, CurrentTime currentTime, - AppEnablementAPI_TypesAndValues.ProblemDetails problemDetails_app_enablement, - FaInfo faInfo, - DeviceInfo deviceInfo, - CableLineInfo cableLineInfo, - PonInfo ponInfo, - FixedAccessInformationServiceAPI_TypesAndValues.SubscriptionLinkList subscriptionLinkList_fai, - OnuAlarmSubscription onuAlarmSubscription, universal charstring raw } with { variant "" diff --git a/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn b/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn index 3d48df7ea75a2ca680236b767ae16af907172a09..cf35882d4e2c2891d5af119eb2e35c3742f28436 100644 --- a/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn +++ b/ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn @@ -10,6 +10,9 @@ */ module LibItsHttp_JsonTemplates { + // LibMec + import from LibMec_TypesAndValues all; + import from LibMec_Templates all; // LibMec/LocationAPI import from LocationAPI_TypesAndValues all; // LibMec/UEidentityAPI @@ -316,17 +319,17 @@ group ams_api { } // End of template mw_body_json_app_mobility_service_info - template (value) JsonBody m_body_json_ams_problem_details( - in template (value) Ams_TypesAndValues.ProblemDetails p_problemDetails + template (value) JsonBody m_body_json_problem_details( + in template (value) LibMec_TypesAndValues.ProblemDetails p_problemDetails ) := { - problemDetails_ams := p_problemDetails - } // End of template m_body_json_ue_identity_problem_details + problemDetails := p_problemDetails + } // End of template m_body_json_problem_details - template (present) JsonBody mw_body_json_ams_problem_details( - template (present) Ams_TypesAndValues.ProblemDetails p_problemDetails := ? + template (present) JsonBody mw_body_json_problem_details( + template (present) LibMec_TypesAndValues.ProblemDetails p_problemDetails := ? ) := { - problemDetails_ams := p_problemDetails - } // End of template mw_body_json_ue_identity_problem_details + problemDetails := p_problemDetails + } // End of template mw_body_json_problem_details template (present) JsonBody mw_body_json_ams_registration_request( @@ -443,6 +446,18 @@ group ams_api { userTrackingSubscription := p_user_tracking_subscription } // End of template mw_body_json_user_rtracking_subscription + template (value) JsonBody m_body_json_periodic_tracking_subscription( + in template (value) PeriodicTrackingSubscription p_periodic_tracking_subscription + ) := { + periodicTrackingSubscription := p_periodic_tracking_subscription + } // End of template m_body_json_periodic_tracking_subscription + + template (present) JsonBody mw_body_json_periodic_tracking_subscription( + template (present) PeriodicTrackingSubscription p_periodic_tracking_subscription := ? + ) := { + periodicTrackingSubscription := p_periodic_tracking_subscription + } // End of template mw_body_json_periodic_rtracking_subscription + template (value) JsonBody m_body_json_zonal_traffic_subscription( in template (value) ZonalTrafficSubscription p_zonal_traffic_subscription ) := { @@ -519,18 +534,6 @@ group ams_api { ueIdentityTagInfo := p_ueIdentityTagInfo } // End of template mw_body_json_ue_identity_tag_info - template (value) JsonBody m_body_json_ue_identity_problem_details( - in template (value) UEidentityAPI_TypesAndValues.ProblemDetails p_problemDetails - ) := { - problemDetails_ue_identity := p_problemDetails - } // End of template m_body_json_ue_identity_problem_details - - template (present) JsonBody mw_body_json_ue_identity_problem_details( - template (present) UEidentityAPI_TypesAndValues.ProblemDetails p_problemDetails := ? - ) := { - problemDetails_ue_identity := p_problemDetails - } // End of template mw_body_json_ue_identity_problem_details - } // End of group ue_identity_api group rnis_subscriptions { @@ -691,18 +694,6 @@ group ams_api { l2Meas := p_l2Meas } // End of template mw_body_json_l2_meas_subscription - template (value) JsonBody m_body_json_rni_problem_details( - in template (value) RnisAPI_TypesAndValues.ProblemDetails p_problemDetails - ) := { - problemDetails_rnis := p_problemDetails - } // End of template m_body_json_rni_problem_details - - template (present) JsonBody mw_body_json_rni_problem_details( - template (present) RnisAPI_TypesAndValues.ProblemDetails p_problemDetails := ? - ) := { - problemDetails_rnis := p_problemDetails - } // End of template mw_body_json_rni_problem_details - } // End of group rnis_subscriptions group rnis_notifications { @@ -871,18 +862,6 @@ group ams_api { trafficRuleList := p_trafficRuleList } // End of template mw_body_json_traffic_rule_list - template (value) JsonBody m_body_json_app_enablement_problem_details( - in template (value) AppEnablementAPI_TypesAndValues.ProblemDetails p_problemDetails - ) := { - problemDetails_svc_mgmt := p_problemDetails - } // End of template m_body_json_app_enablement_problem_details - - template (present) JsonBody mw_body_json_app_enablement_problem_details( - template (present) AppEnablementAPI_TypesAndValues.ProblemDetails p_problemDetails := ? - ) := { - problemDetails_svc_mgmt := p_problemDetails - } // End of template mw_body_json_app_enablement_problem_details - } // End of group app_enablement_api group ue_app_ctx { @@ -911,18 +890,6 @@ group ams_api { appInfo := p_appInfo } // End of template mw_body_json_app_info - template (value) JsonBody m_body_json_ue_app_ctx_problem_details( - in template (value) UEAppInterfaceAPI_TypesAndValues.ProblemDetails p_problemDetails - ) := { - problemDetails_ue_app_ctxt := p_problemDetails - } // End of template m_body_json_ue_app_ctx_problem_details - - template (present) JsonBody mw_body_json_ue_app_ctx_problem_details( - template (present) UEAppInterfaceAPI_TypesAndValues.ProblemDetails p_problemDetails := ? - ) := { - problemDetails_ue_app_ctxt := p_problemDetails - } // End of template mw_body_json_ue_app_ctx_problem_details - } // End of group ue_app_ctx group fai {