Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
MEC - Multi-access Edge Computing
MEC TTCN-3 Test Suite
Commits
79d00f6f
Commit
79d00f6f
authored
Jun 11, 2019
by
YannGarcia
Browse files
Validate UEidentityAPI BI_BO tests
parent
37acaed1
Changes
8
Hide whitespace changes
Inline
Side-by-side
etc/AtsMec/AtsMec.cfg
View file @
79d00f6f
...
...
@@ -13,15 +13,13 @@ LibItsHttp_Pics.PICS_HEADER_HOST := "192.168.0.5"
LibItsHttp_Pics.PICS_HEADER_CONTENT_TYPE := "application/json"
LibMec_Pics.PICS_MEC_PLAT := true
LibMec_Pics.PICS_RNIS :=
tru
e
LibMec_Pics.PICS_RNIS :=
fals
e
LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := true
LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := true
LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := true
LocationAPI_Pics.PICS_LOCATION_API_SUPPORTED := false
UEidentityAPI_Pics.PICS_UE_IDENTITY_API_SUPPORTED := true
BwManagementAPI_Pics.PICS_BWMANAGEMENT_API_SUPPORTED :=
tru
e
BwManagementAPI_Pics.PICS_BWMANAGEMENT_API_SUPPORTED :=
fals
e
[LOGGING]
# In this section you can specify the name of the log file and the classes of events
...
...
ttcn/AtsMec/AtsMec_TestControl.ttcn
View file @
79d00f6f
...
...
@@ -30,6 +30,10 @@ module AtsMec_TestControl {
execute
(
TC_MEC_PLAT_MP1_UETAG_BV_001
());
execute
(
TC_MEC_PLAT_MP1_UETAG_BV_002
());
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
)
{
execute
(
TC_MEC_PLAT_MP1_INF_BV_001
());
...
...
ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn
View file @
79d00f6f
...
...
@@ -232,6 +232,234 @@ module AtsMec_UEidentityAPI_TestCases {
f_cf_01_http_down
();
}
// 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 module AtsMec_TestCases
ttcn/LibMec/BwManagementAPI/ttcn/BwManagementAPI_TypesAndValues.ttcn
View file @
79d00f6f
...
...
@@ -7,12 +7,13 @@ module BwManagementAPI_TypesAndValues {
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 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_
,
...
...
ttcn/LibMec/RnisAPI/ttcn/RnisAPI_TypesAndValues.ttcn
View file @
79d00f6f
...
...
@@ -11,12 +11,13 @@ module RnisAPI_TypesAndValues {
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 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_
,
...
...
ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Pixits.ttcn
View file @
79d00f6f
...
...
@@ -8,6 +8,12 @@ module UEidentityAPI_Pixits {
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_UNKNOWN
:=
"UeTagW"
;
}
// End of module UEidentityAPI_Pixits
ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_TypesAndValues.ttcn
View file @
79d00f6f
/**
* @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
{
// JSON
...
...
@@ -7,12 +17,13 @@ module UEidentityAPI_TypesAndValues {
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 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_
,
...
...
@@ -27,6 +38,7 @@ module UEidentityAPI_TypesAndValues {
/**
* @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
* @see ETSI GS MEC 014 Clause 7.2 Global definitions and resource structure
*/
type
record
UeIdentityTagInfo
{
UeIdentityTags
ueIdentityTags
...
...
@@ -34,11 +46,13 @@ module UEidentityAPI_TypesAndValues {
/**
* @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
;
/**
* @desc Status of the resource ueIdentityTagInfo
* @see ETSI GS MEC 014 Clause 6.2.2 Type: UeIdentityTagInfo
*/
type
enumerated
State
{
UNREGISTERED
,
...
...
@@ -49,6 +63,7 @@ module UEidentityAPI_TypesAndValues {
* @desc 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
* @see ETSI GS MEC 014 Clause 6.2.2 Type: UeIdentityTagInfo
*/
type
record
UeIdentityTagItem
{
JSON
.
String
ueIdentityTag
,
...
...
@@ -57,6 +72,7 @@ module UEidentityAPI_TypesAndValues {
/**
* @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
;
...
...
ttcn/patch_lib_http/LibItsHttp_JsonTemplates.ttcn
View file @
79d00f6f
...
...
@@ -107,17 +107,17 @@ module LibItsHttp_JsonTemplates {
ueIdentityTagInfo
:=
p_ueIdentityTagInfo
}
// End of template mw_body_json_ue_identity_tag_info
template
(
value
)
JsonBody
m_body_json_ue_problem_details
(
in
template
(
value
)
UEidentityAPI_TypesAndValues
.
ProblemDetails
p_problemDetails
)
:=
{
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_problem_details
}
// End of template m_body_json_ue_
identity_
problem_details
template
(
present
)
JsonBody
mw_body_json_ue_problem_details
(
template
(
present
)
UEidentityAPI_TypesAndValues
.
ProblemDetails
p_problemDetails
:=
?
)
:=
{
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_problem_details
}
// End of template mw_body_json_ue_
identity_
problem_details
}
// End of group ue_identity_api
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment