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
30d3f8ad
Commit
30d3f8ad
authored
Aug 09, 2019
by
Elian Kraja
Browse files
Initial commit on MEC021
parent
2cade7b1
Changes
10
Hide whitespace changes
Inline
Side-by-side
ttcn/AtsMec/AtsMec_Ams_TestCases.ttcn
0 → 100644
View file @
30d3f8ad
/**
* @author ETSI / STF569
* @version $URL:$
* $ID:$
* @desc This module provides the MEC test cases.
* @copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission.
* The copyright and the foregoing restriction extend to reproduction in all media.
* All rights reserved.
* @see ETSI GS MEC 003, Draft ETSI GS MEC 013 V2.0.3 (2018-10)
*/
module
AtsMec_Ams_TestCases
{
// Libcommon
import
from
LibCommon_Sync
all
;
// LibHttp
import
from
LibItsHttp_TypesAndValues
all
;
import
from
LibItsHttp_Functions
all
;
import
from
LibItsHttp_Templates
all
;
import
from
LibItsHttp_JsonTemplates
all
;
import
from
LibItsHttp_TestSystem
all
;
// LibMec_LocationAPI
import
from
Ams_Templates
all
;
import
from
Ams_Pics
all
;
import
from
Ams_Pixits
all
;
// LibMec
import
from
LibMec_Functions
all
;
import
from
LibMec_Pics
all
;
import
from
LibMec_Pixits
all
;
group
appMobilityServices
{
testcase
TP_MEC_SRV_AMS_001_OK
()
runs
on
HttpComponent
system
HttpTestAdapter
{
var
HeaderLines
v_headers
;
if
(
not
(
PICS_AMS
)
or
not
(
PICS_AMS_API_SUPPORTED
)){
log
(
"*** "
&
testcasename
()
&
": PICS_AMS required for executing the TC ***"
);
setverdict
(
inconc
);
stop
;
}
// Test component configuration
f_cf_01_http_up
();
// Preamble
f_init_default_headers_list
(
-
,
-
,
v_headers
);
httpPort
.
send
(
m_http_request
(
m_http_request_get
(
"/"
&
PICS_ROOT_API
&
PX_ME_APP_AMS_URI
,
v_headers
)
)
);
f_selfOrClientSyncAndVerdict
(
c_prDone
,
e_success
);
// Test Body
tc_ac
.
start
;
alt
{
[]
httpPort
.
receive
(
mw_http_response
(
mw_http_response_ok
(
mw_http_message_body_json
(
mw_body_json_app_mobility_service_info
(
mw_app_mobility_service_info
(
{
*
,
mw_app_mobility_service_info
(
PX_APP_MOBILITY_SERVICE_ID
)
}
)
)
)
)
)
)
{
tc_ac
.
stop
;
log
(
"*** "
&
testcasename
()
&
": PASS: IUT successfully responds with a AppMobilityServiceInfo ***"
);
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
}
testcase
TP_MEC_SRV_AMS_001_BR
()
runs
on
HttpComponent
system
HttpTestAdapter
{
var
HeaderLines
v_headers
;
if
(
not
(
PICS_AMS
)
or
not
(
PICS_AMS_API_SUPPORTED
)){
log
(
"*** "
&
testcasename
()
&
": PICS_AMS required for executing the TC ***"
);
setverdict
(
inconc
);
stop
;
}
// Test component configuration
f_cf_01_http_up
();
// Preamble
f_init_default_headers_list
(
-
,
-
,
v_headers
);
httpPort
.
send
(
m_http_request
(
m_http_request_get
(
"/"
&
PICS_ROOT_API
&
PX_ME_APP_AMS_URI
&
"?appMobilityService="
&
oct2char
(
unichar2oct
(
PX_APP_MOBILITY_SERVICE_ID
,
"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_ams_problem_details
(
mw_problem_details
(
{
-
,
-
,
400
}
)
)
)
)
)
)
{
tc_ac
.
stop
;
log
(
"*** "
&
testcasename
()
&
": PASS: IUT successfully responds with a ProblemDetails set to 400 Bad Request ***"
);
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
}
testcase
TP_MEC_SRV_AMS_002_OK
()
runs
on
HttpComponent
system
HttpTestAdapter
{
var
HeaderLines
v_headers
;
if
(
not
(
PICS_AMS
)
or
not
(
PICS_AMS_API_SUPPORTED
)){
log
(
"*** "
&
testcasename
()
&
": PICS_AMS required for executing the TC ***"
);
setverdict
(
inconc
);
stop
;
}
// Test component configuration
f_cf_01_http_up
();
// Preamble
f_init_default_headers_list
(
-
,
-
,
v_headers
);
httpPort
.
send
(
m_http_request
(
m_http_request_post
(
"/"
&
PICS_ROOT_API
&
PX_ME_APP_AMS_URI
,
v_headers
,
m_http_message_body_json
(
m_body_json_ams_registration_request
(
m_registration_request
({
m_service_consumer_id
(
PX_APP_INS_IP
,
*
),
*
,
*
}
)
)
)
)
)
);
f_selfOrClientSyncAndVerdict
(
c_prDone
,
e_success
);
// Test Body
tc_ac
.
start
;
alt
{
[]
httpPort
.
receive
(
mw_http_response
(
mw_http_response_201_created
(
mw_http_message_body_json
(
mw_body_json_app_mobility_service_info
(
mw_app_mobility_service_info
(
{
mw_registration_info
({
mw_service_consumer_id
(
PX_APP_INS_ID
,
*
),
*
,
*
}),
*
}
)
)
)
)
)
)
{
tc_ac
.
stop
;
log
(
"*** "
&
testcasename
()
&
": PASS: IUT successfully responds with a ProblemDetails set to 400 Bad Request ***"
);
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
}
testcase
TP_MEC_SRV_AMS_002_BR
()
runs
on
HttpComponent
system
HttpTestAdapter
{
var
HeaderLines
v_headers
;
if
(
not
(
PICS_AMS
)
or
not
(
PICS_AMS_API_SUPPORTED
)){
log
(
"*** "
&
testcasename
()
&
": PICS_AMS required for executing the TC ***"
);
setverdict
(
inconc
);
stop
;
}
// Test component configuration
f_cf_01_http_up
();
// Preamble
f_init_default_headers_list
(
-
,
-
,
v_headers
);
httpPort
.
send
(
m_http_request
(
m_http_request_post
(
"/"
&
PICS_ROOT_API
&
PX_ME_APP_AMS_URI
,
v_headers
,
m_http_message_body_json
(
m_body_json_ams_registration_request
(
m_registration_request
({
m_service_consumer
(
PX_APP_INS_IP
,
*
),
*
,
*
}
)
)
)
)
)
);
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_ams_problem_details
(
mw_problem_details
(
{
-
,
-
,
400
}
)
)
)
)
)
)
{
tc_ac
.
stop
;
log
(
"*** "
&
testcasename
()
&
": PASS: IUT successfully responds with a AppMobilityServiceInfo ***"
);
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
}
}
group
appMobilityServicesSubscriptions
{
testcase
TP_MEC_SRV_AMS_003_OK
()
runs
on
HttpComponent
system
HttpTestAdapter
{
var
HeaderLines
v_headers
;
if
(
not
(
PICS_AMS
)
or
not
(
PICS_AMS_API_SUPPORTED
)){
log
(
"*** "
&
testcasename
()
&
": PICS_AMS required for executing the TC ***"
);
setverdict
(
inconc
);
stop
;
}
// Test component configuration
f_cf_01_http_up
();
// Preamble
f_init_default_headers_list
(
-
,
-
,
v_headers
);
httpPort
.
send
(
m_http_request
(
m_http_request_get
(
"/"
&
PICS_ROOT_API
&
X_ME_APP_AMS_SUBS
&
"?subscriptionType="
&
oct2char
(
unichar2oct
(
PX_SUBSCRIPTION_TYPE
,
"UTF-8"
)),
v_headers
)
)
);
f_selfOrClientSyncAndVerdict
(
c_prDone
,
e_success
);
// Test Body
tc_ac
.
start
;
alt
{
[]
httpPort
.
receive
(
mw_http_response
(
mw_http_response_ok
(
mw_http_message_body_json
(
mw_body_json_ams_subscriptions
(
mw_ams_subscription
(
PX_SUBSCRIPTION_TYPE
,
*
,
*
,
*
,
*
)
)
)
)
)
)
{
tc_ac
.
stop
;
log
(
"*** "
&
testcasename
()
&
": PASS: IUT successfully responds with the list of subscriptions type MobilityProcedureSubscription ***"
);
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
}
testcase
TP_MEC_SRV_AMS_002_BR
()
runs
on
HttpComponent
system
HttpTestAdapter
{
var
HeaderLines
v_headers
;
if
(
not
(
PICS_AMS
)
or
not
(
PICS_AMS_API_SUPPORTED
)){
log
(
"*** "
&
testcasename
()
&
": PICS_AMS required for executing the TC ***"
);
setverdict
(
inconc
);
stop
;
}
// Test component configuration
f_cf_01_http_up
();
// Preamble
f_init_default_headers_list
(
-
,
-
,
v_headers
);
httpPort
.
send
(
m_http_request
(
m_http_request_get
(
"/"
&
PICS_ROOT_API
&
X_ME_APP_AMS_SUBS
&
"?subscriptionTyp="
&
oct2char
(
unichar2oct
(
PX_SUBSCRIPTION_TYPE
,
"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_ams_problem_details
(
mw_problem_details
(
{
-
,
-
,
400
}
)
)
)
)
)
)
{
tc_ac
.
stop
;
log
(
"*** "
&
testcasename
()
&
": PASS: IUT successfully responds with a ProblemDetails set to 400 Bad Request ***"
);
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
}
testcase
TP_MEC_SRV_AMS_004_OK
()
runs
on
HttpComponent
system
HttpTestAdapter
{
var
HeaderLines
v_headers
;
if
(
not
(
PICS_AMS
)
or
not
(
PICS_AMS_API_SUPPORTED
)){
log
(
"*** "
&
testcasename
()
&
": PICS_AMS required for executing the TC ***"
);
setverdict
(
inconc
);
stop
;
}
// Test component configuration
f_cf_01_http_up
();
// Preamble
f_init_default_headers_list
(
-
,
-
,
v_headers
);
httpPort
.
send
(
m_http_request
(
m_http_request_post
(
"/"
&
PICS_ROOT_API
&
X_ME_APP_AMS_SUBS
,
v_headers
,
m_http_message_body_json
(
m_body_json_ams_subscriptions
({
m_ams_subscription
(
PX_SUBSCRIPTION_TYPE
,
PX_CALLBACK_REFERENCE
,
*
,
*
,
*
)
})
)
)
)
);
f_selfOrClientSyncAndVerdict
(
c_prDone
,
e_success
);
// Test Body
tc_ac
.
start
;
alt
{
[]
httpPort
.
receive
(
mw_http_response
(
mw_http_response_201_created
(
mw_http_message_body_json
(
mw_body_json_ams_subscriptions
(
mw_ams_subscription
(
PX_SUBSCRIPTION_TYPE
,
PX_CALLBACK_REFERENCE
,
*
,
*
,
*
)
)
)
)
)
)
{
tc_ac
.
stop
;
log
(
"*** "
&
testcasename
()
&
": PASS: IUT successfully responds with a ProblemDetails set to 400 Bad Request ***"
);
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
}
testcase
TP_MEC_SRV_AMS_004_BR
()
runs
on
HttpComponent
system
HttpTestAdapter
{
var
HeaderLines
v_headers
;
if
(
not
(
PICS_AMS
)
or
not
(
PICS_AMS_API_SUPPORTED
)){
log
(
"*** "
&
testcasename
()
&
": PICS_AMS required for executing the TC ***"
);
setverdict
(
inconc
);
stop
;
}
// Test component configuration
f_cf_01_http_up
();
// Preamble
f_init_default_headers_list
(
-
,
-
,
v_headers
);
httpPort
.
send
(
m_http_request
(
m_http_request_post
(
"/"
&
PICS_ROOT_API
&
X_ME_APP_AMS_SUBS
,
v_headers
,
m_http_message_body_json
(
m_body_json_ams_subscriptions
(
m_ams_subscription_error
({
PX_SUBSCRIPTION_TYPE
,
PX_CALLBACK_REFERENCE
,
*
,
*
,
*
}
)
)
)
)
)
);
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_ams_problem_details
(
mw_problem_details
(
{
-
,
-
,
400
}
)
)
)
)
)
)
{
tc_ac
.
stop
;
log
(
"*** "
&
testcasename
()
&
": PASS: IUT successfully responds with a AppMobilityServiceInfo ***"
);
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
}
}
}
// End of module AtsMec_Ams_TestCases
ttcn/LibMec/Ams/ttcn/Ams_EncdecDeclarations.ttcn
0 → 100644
View file @
30d3f8ad
module
Ams_EncdecDeclarations
{
import
from
Ams_TypesAndValues
all
;
external
function
enc_AppMobilityServiceInfo
(
in
AppMobilityServiceInfo
p_app_mobility_service_info
)
return
octetstring
with
{
extension
"prototype (convert) encode(JSON)"
;
extension
"printing(pretty)"
};
external
function
dec_AppMobilityServiceInfo
(
in
octetstring
p_pdu
)
return
AppMobilityServiceInfo
with
{
extension
"prototype (convert) decode(JSON)"
};
external
function
enc_RegistrationRequest
(
in
RegistrationRequest
p_registration_request
)
return
octetstring
with
{
extension
"prototype (convert) encode(JSON)"
;
extension
"printing(pretty)"
};
external
function
dec_RegistrationRequest
(
in
octetstring
p_pdu
)
return
RegistrationRequest
with
{
extension
"prototype (convert) decode(JSON)"
};
external
function
enc_RegistrationInfo
(
in
RegistrationInfo
p_registration_info
)
return
octetstring
with
{
extension
"prototype (convert) encode(JSON)"
;
extension
"printing(pretty)"
};
external
function
dec_Registrationinfo
(
in
octetstring
p_pdu
)
return
RegistrationInfo
with
{
extension
"prototype (convert) decode(JSON)"
};
external
function
enc_SubscriptionLink
(
in
SubscriptionLink
p_subscription_link
)
return
octetstring
with
{
extension
"prototype (convert) encode(JSON)"
;
extension
"printing(pretty)"
};
external
function
dec_SubscriptionLinks
(
in
octetstring
p_pdu
)
return
SubscriptionLinks
with
{
extension
"prototype (convert) decode(JSON)"
};
external
function
enc_NotificationSubscription
(
in
NotificationSubscription
p_notification_subscription
)
return
octetstring
with
{
extension
"prototype (convert) encode(JSON)"
;
extension
"printing(pretty)"
};
external
function
dec_NotificationSubscription
(
in
octetstring
p_pdu
)
return
NotificationSubscription
with
{
extension
"prototype (convert) decode(JSON)"
};
}
// End of module LocationAPI_EncdecDeclarations
ttcn/LibMec/Ams/ttcn/Ams_Pics.ttcn
0 → 100644
View file @
30d3f8ad
module
Ams_Pics
{
/**
* @desc Does the IUT support LocationAPI?
*/
modulepar
boolean
PICS_AMS_API_SUPPORTED
:=
true
;
}
// End of module LocationAPI_Pics
ttcn/LibMec/Ams/ttcn/Ams_Pixits.ttcn
0 → 100644
View file @
30d3f8ad
module
Ams_Pixits
{
// LibCommon
import
from
LibCommon_BasicTypesAndValues
all
;
// LibMec/LocationAPI
import
from
Ams_TypesAndValues
all
;
modulepar
charstring
PX_APP_MOBILITY_SERVICE_ID
:=
"KtRGymNQ84dG3mQfRepa"
modulepar
charstring
PX_APP_INS_ID
:=
"5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f"
modulepar
charstring
PX_SUBSCRIPTION_TYPE
:=
"MobilityProcedureSubscription"
modulepar
charstring
PX_SUBSCRIPTION_ID
:=
"e0deee2b-6e50-4f33-ab09-8bf0585025d3"
modulepar
charstring
PX_NON_EXISTENT_SUBSCRIPTION_ID
:=
"NON_EXISTENT_SUBSCRIPTION_ID"
modulepar
charstring
PX_CALLBACK_REFERENCE
:=
"http://127.0.0.1/callback"
}
// End of module LocationAPI_Pixits
ttcn/LibMec/Ams/ttcn/Ams_Templates.ttcn
0 → 100644
View file @
30d3f8ad
module
Ams_Templates
{
// JSON