From 483c81cc8b8546fbebc3977077e092af2139e1ff Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Thu, 11 Jul 2019 01:06:27 -0700 Subject: [PATCH] Review TP_MEC_SRV_UETRACKSUB_001_OK TP_MEC_SRV_UETRACKSUB_001_BR TP_MEC_SRV_UETRACKSUB_002_OK TP_MEC_SRV_UETRACKSUB_002_NF --- TODO.md | 46 +++- ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn | 235 +++++++++++++++++- ttcn/AtsMec/AtsMec_TestControl.ttcn | 24 +- ttcn/LibIts | 2 +- ttcn/LibMec/ttcn/LibMec_Pixits.ttcn | 4 +- 5 files changed, 285 insertions(+), 26 deletions(-) diff --git a/TODO.md b/TODO.md index 0331d09..a1c5c6e 100644 --- a/TODO.md +++ b/TODO.md @@ -46,7 +46,7 @@ Draft ETSI GS MEC 013 V2.0.3 (2018-10) https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UELOC/PlatUeLocationLookup.tplan2 -- TP_MEC_SRV_UELOC_001_OK Done +- TC_MEC_SRV_UELOC_001_OK Done - TC_MEC_SRV_UELOC_001_BR To be tested @@ -54,27 +54,49 @@ https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UELO ### UELOCSUB -### UETAG +Draft ETSI GS MEC 013 V2.0.3 (2018-10) -### UETRACKSUB +https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/UELOCSUB/PlatUeLocationSubscription.tplan2 + +- TC_MEC_SRV_UELOCSUB_001_OK Done + +- TC_MEC_SRV_UELOCSUB_001_BR Done -### UeIdentity +- TC_MEC_SRV_UELOCSUB_002_OK Done + +- TC_MEC_SRV_UELOCSUB_002_NF Done + +### UETAG ETSI GS MEC 014 V1.1.1 (2018-02) -https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 +https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/UETAG/PlatUeIdentity.tplan2 + +- TC_MEC_SRV_UETAG_001_OK To be tested -- TC_MEC_PLAT_UETAG_001_OK To be tested +- TC_MEC_SRV_UETAG_001_BR To be tested -- TC_MEC_PLAT_UETAG_002_OK To be tested +- TC_MEC_SRV_UETAG_001_NF To be tested + +- TC_MEC_SRV_UETAG_002_OK To be tested + +- TC_MEC_SRV_UETAG_002_BR To be tested + +- TC_MEC_SRV_UETAG_002_NF Done + +- TC_MEC_SRV_UETAG_002_PF Done + +### UETRACKSUB + +Draft ETSI GS MEC 013 V2.0.3 (2018-10) -- TC_MEC_PLAT_UETAG_003_OK To be tested +https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/UETRACKSUB/PlatUeTrackingSubscription.tplan2 -- TC_MEC_PLAT_UETAG_001_BI To be tested +- TC_MEC_SRV_UETRACKSUB_001_OK To be tested -- TC_MEC_PLAT_UETAG_002_BI To be tested +- TC_MEC_SRV_UETRACKSUB_001_BR To be tested -- TP_MEC_PLAT_UETAG_003_BI Done +- TC_MEC_SRV_UETRACKSUB_002_OK To be tested -- TP_MEC_PLAT_UETAG_004_BI Done +- TC_MEC_SRV_UETRACKSUB_002_NF To be tested diff --git a/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn index afc2bbc..1368df4 100644 --- a/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn @@ -229,7 +229,7 @@ module AtsMec_LocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_SUB_URI, + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_LOC_SUB_URI, v_headers, m_http_message_body_json( m_body_json_user_tracking_subscription( @@ -296,7 +296,7 @@ module AtsMec_LocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_post( - "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_SUB_URI, + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_LOC_SUB_URI, v_headers, m_http_message_body_json( m_body_json_user_tracking_subscription( @@ -357,7 +357,7 @@ module AtsMec_LocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_SUB_URI & "/" & PX_SUBSCRIPTION_ID, // TODO Shall be extract from Subscription request + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_LOC_SUB_URI & "/" & PX_SUBSCRIPTION_ID, // TODO Shall be extract from Subscription request v_headers ) ) @@ -409,7 +409,7 @@ module AtsMec_LocationAPI_TestCases { httpPort.send( m_http_request( m_http_request_delete( - "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_SUB_URI & "/" & PX_SUBSCRIPTION_ID_UNKNOWN, // TODO Shall be extract from Subscription request + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_LOC_SUB_URI & "/" & PX_SUBSCRIPTION_ID_UNKNOWN, // TODO Shall be extract from Subscription request v_headers ) ) @@ -438,4 +438,231 @@ module AtsMec_LocationAPI_TestCases { } // End of group ueLocSub + group ueTrackSub { + + /** + * @desc Check that the IUT acknowledges the UE location change subscription request when commanded by a MEC Application and notifies it when the UE changes location + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/UETRACKSUB/PlatUeTrackingSubscription.tplan2 + */ + testcase TC_MEC_SRV_UETRACKSUB_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_LOCATION_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES 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_post( + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_TRACK_SUB_URI & "/" & PX_SUBSCRIPTION_ID, + v_headers + ) + ) + ); + 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_user_tracking_subscription( + mw_user_tracking_subscription_response( + PX_CLIENT_ID, + PX_CALLBACK_REF_URL, + PX_USER + )))))) { + log("*** " & testcasename() & ": PASS: IUT successfully responds with a callbackURL ***"); + 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_SRV_UETRACKSUB_001_OK + + /** + * @desc Check that the IUT acknowledges the UE location change subscription request when commanded by a MEC Application and notifies it when the UE changes location + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/UETRACKSUB/PlatUeTrackingSubscription.tplan2 + */ + testcase TC_MEC_SRV_UETRACKSUB_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_LOCATION_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES 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_post( + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_TRACK_SUB_URI, + v_headers, + m_http_message_body_json( + m_body_json_user_tracking_subscription( + m_user_tracking_subscription( + PX_CLIENT_ID_UNKNOWN, + PX_CALLBACK_REF_URL, + PX_USER + ) + ) + ) + ) + ) + ); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] httpPort.receive( + mw_http_response( + mw_http_response_400_bad_request + )) { + log("*** " & testcasename() & ": PASS: IUT successfully responds with 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 + + // Postamble + f_cf_01_http_down(); + } // End of testcase TC_MEC_SRV_UETRACKSUB_001_BR + + /** + * @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/remove-401s/Test%20Purposes/SRV/UETRACKSUB/PlatUeTrackingSubscription.tplan2 + */ + testcase TC_MEC_SRV_UETRACKSUB_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_LOCATION_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES 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_delete( + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_TRACK_SUB_URI & "/" & PX_SUBSCRIPTION_ID, + v_headers + ) + ) + ); + f_selfOrClientSyncAndVerdict(c_prDone, e_success); + + // Test Body + tc_ac.start; + alt { + [] httpPort.receive( + mw_http_response( + mw_http_response_204_no_content + )) { + log("*** " & testcasename() & ": PASS: IUT successfully responds 204 No Content ***"); + 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_SRV_UETRACKSUB_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/remove-401s/Test%20Purposes/SRV/UETRACKSUB/PlatUeTrackingSubscription.tplan2 + */ + testcase TC_MEC_SRV_UETRACKSUB_002_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_LOCATION_API_SUPPORTED)) { + log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES 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_delete( + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_TRACK_SUB_URI & "/" & PX_SUBSCRIPTION_ID_UNKNOWN, + 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 + )) { + log("*** " & testcasename() & ": PASS: IUT successfully responds 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 + + // Postamble + f_cf_01_http_down(); + } // End of testcase TC_MEC_SRV_UETRACKSUB_002_NF + + } // End of group ueTrackSub + } // End of module AtsMec_LocationAPI_TestCases diff --git a/ttcn/AtsMec/AtsMec_TestControl.ttcn b/ttcn/AtsMec/AtsMec_TestControl.ttcn index 856090e..d4689ef 100644 --- a/ttcn/AtsMec/AtsMec_TestControl.ttcn +++ b/ttcn/AtsMec/AtsMec_TestControl.ttcn @@ -23,24 +23,32 @@ module AtsMec_TestControl { control { if (PICS_MEC_PLAT and PICS_SERVICES) { + if (PICS_UE_IDENTITY_API_SUPPORTED) { + execute(TC_MEC_SRV_UETAG_001_OK()); + execute(TC_MEC_SRV_UETAG_001_BR()); + execute(TC_MEC_SRV_UETAG_001_NF()); + execute(TC_MEC_SRV_UETAG_002_OK()); + execute(TC_MEC_SRV_UETAG_002_BR()); + } if (PICS_LOCATION_API_SUPPORTED) { execute(TC_MEC_SRV_UELOC_001_OK()); execute(TC_MEC_SRV_UELOC_001_BR()); execute(TC_MEC_SRV_UELOC_001_NF()); - execute(TC_MEC_PLAT_INFLOOK_001_OK()); + execute(TC_MEC_SRV_UELOCSUB_001_OK()); execute(TC_MEC_SRV_UELOCSUB_001_BR()); execute(TC_MEC_SRV_UELOCSUB_002_OK()); execute(TC_MEC_SRV_UELOCSUB_002_NF()); + + execute(TC_MEC_SRV_UETRACKSUB_001_OK()); + execute(TC_MEC_SRV_UETRACKSUB_001_BR()); + execute(TC_MEC_SRV_UETRACKSUB_002_OK()); + execute(TC_MEC_SRV_UETRACKSUB_002_NF()); + + execute(TC_MEC_PLAT_INFLOOK_001_OK()); + execute(TC_MEC_PLAT_RLOC_001_OK()); } - if (PICS_UE_IDENTITY_API_SUPPORTED) { - execute(TC_MEC_SRV_UETAG_001_OK()); - execute(TC_MEC_SRV_UETAG_001_BR()); - execute(TC_MEC_SRV_UETAG_001_NF()); - execute(TC_MEC_SRV_UETAG_002_OK()); - execute(TC_MEC_SRV_UETAG_002_BR()); - } } if (PICS_RNIS) { diff --git a/ttcn/LibIts b/ttcn/LibIts index 4c79dd3..806e133 160000 --- a/ttcn/LibIts +++ b/ttcn/LibIts @@ -1 +1 @@ -Subproject commit 4c79dd3fe0dd4559d6481b635fe29d684d342b17 +Subproject commit 806e133118639e261fc589daeffb078559ca605c diff --git a/ttcn/LibMec/ttcn/LibMec_Pixits.ttcn b/ttcn/LibMec/ttcn/LibMec_Pixits.ttcn index 2bee6e8..6fcf8e1 100644 --- a/ttcn/LibMec/ttcn/LibMec_Pixits.ttcn +++ b/ttcn/LibMec/ttcn/LibMec_Pixits.ttcn @@ -6,7 +6,9 @@ module LibMec_Pixits { modulepar charstring PX_ME_APP_Q_DIST_URI := "/location/v2/subscriptions/distance"; - modulepar charstring PX_ME_APP_Q_USERS_SUB_URI := "/location/v2/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/v2/subscriptions/periodic"; modulepar charstring PX_ME_APP_Q_UE_IDENTITY_ID_URI := "/ui/v2/"; -- GitLab