Commit 79d00f6f authored by YannGarcia's avatar YannGarcia
Browse files

Validate UEidentityAPI BI_BO tests

parent 37acaed1
...@@ -13,15 +13,13 @@ LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.0.5" ...@@ -13,15 +13,13 @@ LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.0.5"
LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json" LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json"
LibMec_Pics.PICS_MEC_PLAT := true LibMec_Pics.PICS_MEC_PLAT := true
LibMec_Pics.PICS_RNIS := true LibMec_Pics.PICS_RNIS := false
LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := true LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := false
LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := true
LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := true
UEidentityAPI_Pics.PICS_UE_IDENTITY_API_SUPPORTED := true UEidentityAPI_Pics.PICS_UE_IDENTITY_API_SUPPORTED := true
BwManagementAPI_Pics.PICS_BWMANAGEMENT_API_SUPPORTED := true BwManagementAPI_Pics.PICS_BWMANAGEMENT_API_SUPPORTED := false
[LOGGING] [LOGGING]
# In this section you can specify the name of the log file and the classes of events # In this section you can specify the name of the log file and the classes of events
......
...@@ -30,6 +30,10 @@ module AtsMec_TestControl { ...@@ -30,6 +30,10 @@ module AtsMec_TestControl {
execute(TC_MEC_PLAT_MP1_UETAG_BV_001()); execute(TC_MEC_PLAT_MP1_UETAG_BV_001());
execute(TC_MEC_PLAT_MP1_UETAG_BV_002()); execute(TC_MEC_PLAT_MP1_UETAG_BV_002());
execute(TC_MEC_PLAT_MP1_UETAG_BV_003()); execute(TC_MEC_PLAT_MP1_UETAG_BV_003());
execute(TC_MEC_PLAT_MP1_UETAG_BI_001());
execute(TC_MEC_PLAT_MP1_UETAG_BI_002());
execute(TC_MEC_PLAT_MP1_UETAG_BI_003());
execute(TC_MEC_PLAT_MP1_UETAG_BI_004());
} }
if (PICS_LOCATION_API_SUPPORTED) { if (PICS_LOCATION_API_SUPPORTED) {
execute(TC_MEC_PLAT_MP1_INF_BV_001()); execute(TC_MEC_PLAT_MP1_INF_BV_001());
......
...@@ -232,6 +232,234 @@ module AtsMec_UEidentityAPI_TestCases { ...@@ -232,6 +232,234 @@ module AtsMec_UEidentityAPI_TestCases {
f_cf_01_http_down(); f_cf_01_http_down();
} // End of testcase TC_MEC_PLAT_MP1_UETAG_BV_003 } // End of testcase TC_MEC_PLAT_MP1_UETAG_BV_003
/**
* @desc Check that the IUT responds with ProblemDetails on information on an unknown UE Identity tag when queried by a MEC Application
* @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/Plat/Mp1/UeIdentity/PlatUeIdentity.tplan2
*/
testcase TC_MEC_PLAT_MP1_UETAG_BI_001() runs on HttpComponent system HttpTestAdapter {
// Local variables
var HeaderLines v_headers;
var HttpMessage v_response;
// Test control
if (not(PICS_MEC_PLAT) or not(PICS_UE_IDENTITY_API_SUPPORTED)) {
log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_LOCATION_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_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info?ueIdentityTag=" & oct2char(unichar2oct(PX_UE_IDENTITY_TAG_UNKNOWN, "UTF-8")),
v_headers
)
)
);
f_selfOrClientSyncAndVerdict(c_prDone, e_success);
// Test Body
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_404_not_found(
mw_http_message_body_json(
mw_body_json_ue_identity_problem_details(
mw_problem_details(
-, -, 404
)))))) -> value v_response {
log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
[] tc_ac.timeout {
log("*** " & testcasename() & ": INCONC: Expected message not received ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
} // End of 'alt' statement
// Postamble
f_cf_01_http_down();
} // End of testcase TC_MEC_PLAT_MP1_UETAG_BI_001
/**
* @desc Check that the IUT responds with ProblemDetails on information an unknown Application Instance Identifier when queried by a MEC Application
* @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/Plat/Mp1/UeIdentity/PlatUeIdentity.tplan2
*/
testcase TC_MEC_PLAT_MP1_UETAG_BI_002() runs on HttpComponent system HttpTestAdapter {
// Local variables
var HeaderLines v_headers;
var HttpMessage v_response;
// Test control
if (not(PICS_MEC_PLAT) or not(PICS_UE_IDENTITY_API_SUPPORTED)) {
log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_LOCATION_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_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID_UNKNOWN, "UTF-8")) & "/ue_identity_tag_info?ueIdentityTag=" & oct2char(unichar2oct(PX_UE_IDENTITY_TAG, "UTF-8")),
v_headers
)
)
);
f_selfOrClientSyncAndVerdict(c_prDone, e_success);
// Test Body
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_404_not_found(
mw_http_message_body_json(
mw_body_json_ue_identity_problem_details(
mw_problem_details(
-, -, 404
)))))) -> value v_response {
log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
[] tc_ac.timeout {
log("*** " & testcasename() & ": INCONC: Expected message not received ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
} // End of 'alt' statement
// Postamble
f_cf_01_http_down();
} // End of testcase TC_MEC_PLAT_MP1_UETAG_BI_002
/**
* @desc Check that the IUT responds with ProblemDetails on information an invalid URI
* @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/Plat/Mp1/UeIdentity/PlatUeIdentity.tplan2
*/
testcase TC_MEC_PLAT_MP1_UETAG_BI_003() runs on HttpComponent system HttpTestAdapter {
// Local variables
var HeaderLines v_headers;
var HttpMessage v_response;
// Test control
if (not(PICS_MEC_PLAT) or not(PICS_UE_IDENTITY_API_SUPPORTED)) {
log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_LOCATION_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_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_information?ueIdentityTag=" & oct2char(unichar2oct(PX_UE_IDENTITY_TAG, "UTF-8")),
v_headers
)
)
);
f_selfOrClientSyncAndVerdict(c_prDone, e_success);
// Test Body
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_400_bad_request(
mw_http_message_body_json(
mw_body_json_ue_identity_problem_details(
mw_problem_details(
-, -, 400
)))))) -> value v_response {
log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
[] tc_ac.timeout {
log("*** " & testcasename() & ": INCONC: Expected message not received ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
} // End of 'alt' statement
// Postamble
f_cf_01_http_down();
} // End of testcase TC_MEC_PLAT_MP1_UETAG_BI_003
/**
* @desc Check that the IUT responds with ProblemDetails on information on not allowed request
* @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/Plat/Mp1/UeIdentity/PlatUeIdentity.tplan2
*/
testcase TC_MEC_PLAT_MP1_UETAG_BI_004() runs on HttpComponent system HttpTestAdapter {
// Local variables
var HeaderLines v_headers;
var HttpMessage v_response;
// Test control
if (not(PICS_MEC_PLAT) or not(PICS_UE_IDENTITY_API_SUPPORTED)) {
log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_LOCATION_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_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(APP_INSTANCE_ID_WITH_RESTRICTED_ACCESS, "UTF-8")) & "/ue_identity_tag_info?ueIdentityTag=" & oct2char(unichar2oct(PX_UE_IDENTITY_TAG, "UTF-8")),
v_headers
)
)
);
f_selfOrClientSyncAndVerdict(c_prDone, e_success);
// Test Body
tc_ac.start;
alt {
[] httpPort.receive(
mw_http_response(
mw_http_response_403_forbidden(
mw_http_message_body_json(
mw_body_json_ue_identity_problem_details(
mw_problem_details(
-, -, 403
)))))) -> value v_response {
log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
[] tc_ac.timeout {
log("*** " & testcasename() & ": INCONC: Expected message not received ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
} // End of 'alt' statement
// Postamble
f_cf_01_http_down();
} // End of testcase TC_MEC_PLAT_MP1_UETAG_BI_004
} // End of group me_app_role } // End of group me_app_role
} // End of module AtsMec_TestCases } // End of module AtsMec_TestCases
...@@ -7,12 +7,13 @@ module BwManagementAPI_TypesAndValues { ...@@ -7,12 +7,13 @@ module BwManagementAPI_TypesAndValues {
import from LibCommon_BasicTypesAndValues all; import from LibCommon_BasicTypesAndValues all;
/** /**
* @desc * @desc Problem Details for HTTP APIs
* @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type * @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 title A short, human-readable summary of the problem type
* @member status The HTTP status code for this occurrence of the problem * @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 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 * @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 { type record ProblemDetails {
JSON.String type_, JSON.String type_,
......
...@@ -11,12 +11,13 @@ module RnisAPI_TypesAndValues { ...@@ -11,12 +11,13 @@ module RnisAPI_TypesAndValues {
import from LibCommon_BasicTypesAndValues all; import from LibCommon_BasicTypesAndValues all;
/** /**
* @desc * @desc Problem Details for HTTP APIs
* @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type * @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 title A short, human-readable summary of the problem type
* @member status The HTTP status code for this occurrence of the problem * @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 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 * @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 { type record ProblemDetails {
JSON.String type_, JSON.String type_,
......
...@@ -8,6 +8,12 @@ module UEidentityAPI_Pixits { ...@@ -8,6 +8,12 @@ module UEidentityAPI_Pixits {
modulepar universal charstring PX_APP_INSTANCE_ID := "appInst01"; modulepar universal charstring PX_APP_INSTANCE_ID := "appInst01";
modulepar universal charstring PX_APP_INSTANCE_ID_UNKNOWN := "appInst99";
modulepar universal charstring APP_INSTANCE_ID_WITH_RESTRICTED_ACCESS := "appInst98";
modulepar universal charstring PX_UE_IDENTITY_TAG := "UeTagA"; modulepar universal charstring PX_UE_IDENTITY_TAG := "UeTagA";
modulepar universal charstring PX_UE_IDENTITY_TAG_UNKNOWN := "UeTagW";
} // End of module UEidentityAPI_Pixits } // End of module UEidentityAPI_Pixits
/**
* @author ETSI / STF569
* @version $URL$
* $Id$
* @desc Module containing types and values for UeIdentiyAPI protocol
* @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 UEidentityAPI_TypesAndValues { module UEidentityAPI_TypesAndValues {
// JSON // JSON
...@@ -7,12 +17,13 @@ module UEidentityAPI_TypesAndValues { ...@@ -7,12 +17,13 @@ module UEidentityAPI_TypesAndValues {
import from LibCommon_BasicTypesAndValues all; import from LibCommon_BasicTypesAndValues all;
/** /**
* @desc * @desc Problem Details for HTTP APIs
* @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type * @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 title A short, human-readable summary of the problem type
* @member status The HTTP status code for this occurrence of the problem * @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 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 * @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 { type record ProblemDetails {
JSON.String type_, JSON.String type_,
...@@ -27,6 +38,7 @@ module UEidentityAPI_TypesAndValues { ...@@ -27,6 +38,7 @@ module UEidentityAPI_TypesAndValues {
/** /**
* @desc Information of UE identity tag used in UE Identity feature * @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 * @member ueIdentityTags 1 to N tags presented by a ME Application instance to a ME Platform
* @see ETSI GS MEC 014 Clause 7.2 Global definitions and resource structure
*/ */
type record UeIdentityTagInfo { type record UeIdentityTagInfo {
UeIdentityTags ueIdentityTags UeIdentityTags ueIdentityTags
...@@ -34,11 +46,13 @@ module UEidentityAPI_TypesAndValues { ...@@ -34,11 +46,13 @@ module UEidentityAPI_TypesAndValues {
/** /**
* @desc Specific tag presented by a ME Application instance to a ME Platform * @desc Specific tag presented by a ME Application instance to a ME Platform
* @see ETSI GS MEC 014 Clause 6.2.2 Type: UeIdentityTagInfo
*/ */
type JSON.String UeIdentityTag; type JSON.String UeIdentityTag;
/** /**
* @desc Status of the resource ueIdentityTagInfo * @desc Status of the resource ueIdentityTagInfo
* @see ETSI GS MEC 014 Clause 6.2.2 Type: UeIdentityTagInfo
*/ */
type enumerated State { type enumerated State {
UNREGISTERED, UNREGISTERED,
...@@ -49,6 +63,7 @@ module UEidentityAPI_TypesAndValues { ...@@ -49,6 +63,7 @@ module UEidentityAPI_TypesAndValues {
* @desc ME Application instance to a ME Platform * @desc ME Application instance to a ME Platform
* @member ueIdentityTag Specific tag presented by a ME Application instance to a ME Platform * @member ueIdentityTag Specific tag presented by a ME Application instance to a ME Platform
* @member state Status of the resource ueIdentityTagInfo * @member state Status of the resource ueIdentityTagInfo
* @see ETSI GS MEC 014 Clause 6.2.2 Type: UeIdentityTagInfo
*/ */
type record UeIdentityTagItem { type record UeIdentityTagItem {
JSON.String ueIdentityTag, JSON.String ueIdentityTag,
...@@ -57,6 +72,7 @@ module UEidentityAPI_TypesAndValues { ...@@ -57,6 +72,7 @@ module UEidentityAPI_TypesAndValues {
/** /**
* @desc 1 to N tags presented by a ME Application instance to a ME Platform * @desc 1 to N tags presented by a ME Application instance to a ME Platform
* @see ETSI GS MEC 014 Clause 6.2.2 Type: UeIdentityTagInfo
*/ */
type record of UeIdentityTagItem UeIdentityTags; type record of UeIdentityTagItem UeIdentityTags;
......
...@@ -107,17 +107,17 @@ module LibItsHttp_JsonTemplates { ...@@ -107,17 +107,17 @@ module LibItsHttp_JsonTemplates {
ueIdentityTagInfo := p_ueIdentityTagInfo ueIdentityTagInfo := p_ueIdentityTagInfo
} // End of template mw_body_json_ue_identity_tag_info } // End of template mw_body_json_ue_identity_tag_info
template (value) JsonBody m_body_json_ue_problem_details( template (value) JsonBody m_body_json_ue_identity_problem_details(
in template (value) UEidentityAPI_TypesAndValues.ProblemDetails p_problemDetails in template (value) UEidentityAPI_TypesAndValues.ProblemDetails p_problemDetails
) := { ) := {
problemDetails_ue_identity := p_problemDetails problemDetails_ue_identity := p_problemDetails
} // End of template m_body_json_ue_problem_details } // End of template m_body_json_ue_identity_problem_details
template (present) JsonBody mw_body_json_ue_problem_details( template (present) JsonBody mw_body_json_ue_identity_problem_details(
template (present) UEidentityAPI_TypesAndValues.ProblemDetails p_problemDetails := ? template (present) UEidentityAPI_TypesAndValues.ProblemDetails p_problemDetails := ?
) := { ) := {
problemDetails_ue_identity := p_problemDetails problemDetails_ue_identity := p_problemDetails
} // End of template mw_body_json_ue_problem_details } // End of template mw_body_json_ue_identity_problem_details
} // End of group ue_identity_api } // End of group ue_identity_api
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment