diff --git a/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn index 85bc8c5d6f9e4a3585125e9ecc999735de15a882..afc2bbc254d6b24fc2d109cb5378668788587cce 100644 --- a/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_LocationAPI_TestCases.ttcn @@ -202,14 +202,13 @@ module AtsMec_LocationAPI_TestCases { } // End of group ueLocationLookup - group subscription { + group ueLocSub { /** * @desc Check that the IUT acknowledges the UE location change subscription request when commanded by a MEC Application and notifies it when the location changes - * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/Plat/Mp1/UeLocation/PlatUeLocation.tplan2 - * @see https://forge.etsi.org/gitlab/mec/gs013-location-api/blob/master/LocationAPI.yaml#/definitions/UserTrackingSubscription + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/UELOCSUB/PlatUeLocationSubscription.tplan2 */ - testcase TC_MEC_PLAT_LOCSUB_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UELOCSUB_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -270,13 +269,74 @@ module AtsMec_LocationAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TC_MEC_PLAT_LOCSUB_001_OK + } // End of testcase TC_MEC_SRV_UELOCSUB_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/remove-401s/Test%20Purposes/SRV/UELOCSUB/PlatUeLocationSubscription.tplan2 + */ + testcase TC_MEC_SRV_UELOCSUB_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_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_UELOCSUB_001_BR /** * @desc Check that the IUT acknowledges the cancellation of UE location change notifications when commanded by a MEC Application - * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/Plat/Mp1/UeLocation/PlatUeLocation.tplan2 + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/remove-401s/Test%20Purposes/SRV/UELOCSUB/PlatUeLocationSubscription.tplan2 */ - testcase TC_MEC_PLAT_LOCSUB_002_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UELOCSUB_002_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -296,10 +356,10 @@ module AtsMec_LocationAPI_TestCases { f_init_default_headers_list(-, -, v_headers); httpPort.send( m_http_request( - m_http_request_get( - "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_SUB_URI & "/" & PX_SUBSCRIPTION_ID, // TODO Shall be extract from Subscription request - v_headers - ) + m_http_request_delete( + "/" & PICS_ROOT_API & PX_ME_APP_Q_USERS_SUB_URI & "/" & PX_SUBSCRIPTION_ID, // TODO Shall be extract from Subscription request + v_headers + ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); @@ -309,9 +369,61 @@ module AtsMec_LocationAPI_TestCases { alt { [] httpPort.receive( mw_http_response( - mw_http_response_ok + mw_http_response_204_no_content + )) { + log("*** " & testcasename() & ": PASS: IUT successfully responds with 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_UELOCSUB_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/UELOCSUB/PlatUeLocationSubscription.tplan2 + */ + testcase TC_MEC_SRV_UELOCSUB_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_SUB_URI & "/" & PX_SUBSCRIPTION_ID_UNKNOWN, // TODO Shall be extract from Subscription request + 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 )) { - log("*** " & testcasename() & ": PASS: IUT successfully cancel subscription ***"); + log("*** " & testcasename() & ": PASS: IUT successfully responds with 404 Not Found ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { @@ -322,8 +434,8 @@ module AtsMec_LocationAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TC_MEC_PLAT_LOCSUB_002_OK + } // End of testcase TC_MEC_SRV_UELOCSUB_002_NF - } // End of group subscription + } // End of group ueLocSub } // End of module AtsMec_LocationAPI_TestCases diff --git a/ttcn/AtsMec/AtsMec_TestControl.ttcn b/ttcn/AtsMec/AtsMec_TestControl.ttcn index 1004ac9eb9408bdac83c38e7c83c2d380126c4a1..856090e61f7f5b5ef4e1dc092f17fbbc1ff4a597 100644 --- a/ttcn/AtsMec/AtsMec_TestControl.ttcn +++ b/ttcn/AtsMec/AtsMec_TestControl.ttcn @@ -28,19 +28,18 @@ module AtsMec_TestControl { execute(TC_MEC_SRV_UELOC_001_BR()); execute(TC_MEC_SRV_UELOC_001_NF()); execute(TC_MEC_PLAT_INFLOOK_001_OK()); - execute(TC_MEC_PLAT_LOCSUB_001_OK()); - execute(TC_MEC_PLAT_LOCSUB_002_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_PLAT_RLOC_001_OK()); } if (PICS_UE_IDENTITY_API_SUPPORTED) { - execute(TC_MEC_PLAT_UETAG_001_OK()); - execute(TC_MEC_PLAT_UETAG_002_OK()); - execute(TC_MEC_PLAT_UETAG_003_OK()); - execute(TC_MEC_PLAT_UETAG_001_BI()); - execute(TC_MEC_PLAT_UETAG_002_BI()); - execute(TC_MEC_PLAT_UETAG_003_BI()); - execute(TP_MEC_PLAT_UETAG_004_BI()); - execute(TP_MEC_PLAT_UETAG_005_BI()); + 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()); } } diff --git a/ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn b/ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn index 0c488622c409924aaa35c22c16a1c9950ae1fd6c..69dbb2d1fd418d08250d7f42114f335e729aece9 100644 --- a/ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn +++ b/ttcn/AtsMec/AtsMec_UEidentityAPI_TestCases.ttcn @@ -31,13 +31,13 @@ module AtsMec_UEidentityAPI_TestCases { import from LibMec_Pics all; import from LibMec_Pixits all; - group ueIdentity { + group ueTag { /** * @desc Check that the IUT responds with the information on a UE Identity tag when queried by a MEC Application - * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 + * @see https://forge.etsi.org/gitlab/mec/gs032p2-test-purposes/blob/master/Test%20Purposes/SRV/UETAG/PlatUeIdentity.tplan2 */ - testcase TC_MEC_PLAT_UETAG_001_OK() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UETAG_001_OK() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -58,7 +58,7 @@ module AtsMec_UEidentityAPI_TestCases { 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, "UTF-8")), + "/" & PICS_ROOT_API & 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, "UTF-8")), v_headers ) ) @@ -88,169 +88,13 @@ module AtsMec_UEidentityAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TC_MEC_PLAT_UETAG_001_OK - - /** - * @desc Check that the IUT registers a tag (representing a UE) or a list of tags when commanded by a MEC Application - * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 - */ - testcase TC_MEC_PLAT_UETAG_002_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // 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); - // Verify that the user is not register yet - if (f_check_user_register_state(-, v_headers) != 0) { - log("*** " & testcasename() & ": INCONC: Wrong initial conditions ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - httpPort.send( - m_http_request( - m_http_request_post( - PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", - v_headers, - m_http_message_body_json( - m_body_json_ue_identity_tag_info( - m_ue_identity_tag_info( - { - m_ue_identity_tag_item( - PX_UE_IDENTITY_TAG, - REGISTERED - ) - } - ) - ) - ) - ) - ) - ); - 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_ue_identity_tag_info( - mw_ue_identity_tag_info( - { *, mw_ue_identity_tag_item(PX_UE_IDENTITY_TAG, REGISTERED), * } - )))))) { - if (f_check_user_register_state(-, v_headers) == 1) { - log("*** " & testcasename() & ": PASS: IUT successfully registered the tag ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: The tag was not registered ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - } - [] 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_UETAG_002_OK - - /** - * @desc Check that the IUT deregisters a tag (representing a UE) or a list of tags when commanded by a MEC Application - * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 - */ - testcase TC_MEC_PLAT_UETAG_003_OK() runs on HttpComponent system HttpTestAdapter { - // Local variables - var HeaderLines v_headers; - - // 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); - // Verify that the user is not register yet - if (f_check_user_register_state(-, v_headers) != 1) { - log("*** " & testcasename() & ": INCONC: Wrong initial conditions ***"); - f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); - } - httpPort.send( - m_http_request( - m_http_request_post( - PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", - v_headers, - m_http_message_body_json( - m_body_json_ue_identity_tag_info( - m_ue_identity_tag_info( - { - m_ue_identity_tag_item( - PX_UE_IDENTITY_TAG, - UNREGISTERED - ) - } - ) - ) - ) - ) - ) - ); - 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_ue_identity_tag_info( - mw_ue_identity_tag_info( - { *, mw_ue_identity_tag_item(PX_UE_IDENTITY_TAG, UNREGISTERED), * } - )))))) { - if (f_check_user_register_state(-, v_headers) == 0) { - log("*** " & testcasename() & ": PASS: IUT successfully unregistered the tag ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); - } else { - log("*** " & testcasename() & ": FAIL: The tag was not unregistered ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); - } - } - [] 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_UETAG_003_OK + } // End of testcase TC_MEC_SRV_UETAG_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/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 */ - testcase TC_MEC_PLAT_UETAG_001_BI() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UETAG_001_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -271,7 +115,7 @@ module AtsMec_UEidentityAPI_TestCases { 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")), + "/" & PICS_ROOT_API & 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 ) ) @@ -300,13 +144,13 @@ module AtsMec_UEidentityAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TC_MEC_PLAT_UETAG_001_BI + } // End of testcase TC_MEC_SRV_UETAG_001_BR /** - * @desc Check that the IUT responds with an error when an unauthorised request is sent by a MEC Application + * @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/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 */ - testcase TC_MEC_PLAT_UETAG_002_BI() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UETAG_001_NF() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -327,7 +171,7 @@ module AtsMec_UEidentityAPI_TestCases { httpPort.send( m_http_request( m_http_request_get( - PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID_UNAUTHORIZED, "UTF-8")) & "/ue_identity_tag_info?ueIdentityTag=" & oct2char(unichar2oct(PX_UE_IDENTITY_TAG, "UTF-8")), + "/" & PICS_ROOT_API & PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_NON_EXISTENT_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info?ueIdentityTag=" & oct2char(unichar2oct(PX_UE_IDENTITY_TAG, "UTF-8")), v_headers ) ) @@ -339,13 +183,13 @@ module AtsMec_UEidentityAPI_TestCases { alt { [] httpPort.receive( mw_http_response( - mw_http_response_403_forbidden( + mw_http_response_404_not_found( mw_http_message_body_json( mw_body_json_ue_identity_problem_details( mw_problem_details( - -, -, 403 + -, -, 404 )))))) { - log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 403 Forbidden ***"); + log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { @@ -356,36 +200,53 @@ module AtsMec_UEidentityAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TC_MEC_PLAT_UETAG_002_BI + } // End of testcase TC_MEC_SRV_UETAG_001_NF /** - * @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 + * @desc Check that the IUT registers a tag (representing a UE) or a list of tags when commanded by a MEC Application * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 */ - testcase TC_MEC_PLAT_UETAG_003_BI() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UETAG_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_UE_IDENTITY_API_SUPPORTED)) { - log("*** " & testcasename() & ": PICS_MEC_PLAT and PICS_SERVICES and PICS_LOCATION_API_SUPPORTED required for executing the TC ***"); + 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); + // Verify that the user is not register yet + if (f_check_user_register_state(-, v_headers) != 0) { + log("*** " & testcasename() & ": INCONC: Wrong initial conditions ***"); + f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); + } 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 - ) + m_http_request_post( + "/" & PICS_ROOT_API & PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", + v_headers, + m_http_message_body_json( + m_body_json_ue_identity_tag_info( + m_ue_identity_tag_info( + { + m_ue_identity_tag_item( + PX_UE_IDENTITY_TAG, + REGISTERED + ) + } + ) + ) + ) + ) ) ); f_selfOrClientSyncAndVerdict(c_prDone, e_success); @@ -395,30 +256,35 @@ module AtsMec_UEidentityAPI_TestCases { 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 - )))))) { - log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + mw_http_response_ok( + mw_http_message_body_json( + mw_body_json_ue_identity_tag_info( + mw_ue_identity_tag_info( + { *, mw_ue_identity_tag_item(PX_UE_IDENTITY_TAG, REGISTERED), * } + )))))) { + if (f_check_user_register_state(-, v_headers) == 1) { + log("*** " & testcasename() & ": PASS: IUT successfully registered the tag ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: The tag was not registered ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } } [] 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_UETAG_003_BI + } // End of testcase TC_MEC_SRV_UETAG_002_OK /** - * @desc Check that the IUT responds with ProblemDetails on information an invalid URI + * @desc Check that the IUT responds with an error when an unauthorised request is sent by a MEC Application * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 */ - testcase TP_MEC_PLAT_UETAG_004_BI() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UETAG_002_BR() runs on HttpComponent system HttpTestAdapter { // Local variables var HeaderLines v_headers; @@ -437,14 +303,14 @@ module AtsMec_UEidentityAPI_TestCases { // Preamble f_init_default_headers_list(-, -, v_headers); // Verify that the user is not register yet - if (f_check_user_register_state(-, v_headers) != 0) { + if (f_check_user_register_state(-, v_headers) != -1) { log("*** " & testcasename() & ": INCONC: Wrong initial conditions ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } httpPort.send( m_http_request( m_http_request_post( - PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", + "/" & PICS_ROOT_API & PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", v_headers, m_http_message_body_json( m_body_json_ue_identity_tag_info( @@ -452,7 +318,7 @@ module AtsMec_UEidentityAPI_TestCases { { m_ue_identity_tag_item( PX_UE_IDENTITY_TAG, - UNREGISTERED + INVALID_STATE ) } ) @@ -474,7 +340,7 @@ module AtsMec_UEidentityAPI_TestCases { mw_problem_details( -, -, 400 )))))) { - log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***"); + log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 403 Forbidden ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { @@ -485,39 +351,39 @@ module AtsMec_UEidentityAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_PLAT_UETAG_004_BI + } // End of testcase TC_MEC_SRV_UETAG_002_BR /** - * @desc Check that the IUT responds with an error when an unauthorised request is sent by a MEC Application + * @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/SRV/UeIdentity/PlatUeIdentity.tplan2 */ - testcase TP_MEC_PLAT_UETAG_005_BI() runs on HttpComponent system HttpTestAdapter { + testcase TC_MEC_SRV_UETAG_002_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_UE_IDENTITY_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); // Verify that the user is not register yet - if (f_check_user_register_state(-, v_headers) != 1) { + if (f_check_user_register_state(-, v_headers) == -1) { log("*** " & testcasename() & ": INCONC: Wrong initial conditions ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } httpPort.send( m_http_request( m_http_request_post( - PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", + "/" & PICS_ROOT_API & PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", v_headers, m_http_message_body_json( m_body_json_ue_identity_tag_info( @@ -525,7 +391,7 @@ module AtsMec_UEidentityAPI_TestCases { { m_ue_identity_tag_item( PX_UE_IDENTITY_TAG, - REGISTERED + UNREGISTERED ) } ) @@ -541,13 +407,13 @@ module AtsMec_UEidentityAPI_TestCases { 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 - )))))) { - log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 400 Bad Request ***"); + mw_http_response_412_precondition_failed( + mw_http_message_body_json( + mw_body_json_ue_identity_problem_details( + mw_problem_details( + -, -, 412 + )))))) { + log("*** " & testcasename() & ": PASS: IUT successfully responds with a ProblemDetails set to 404 Not Found ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { @@ -558,8 +424,159 @@ module AtsMec_UEidentityAPI_TestCases { // Postamble f_cf_01_http_down(); - } // End of testcase TP_MEC_PLAT_UETAG_005_BI + } // End of testcase TC_MEC_SRV_UETAG_002_PF + +// /** +// * @desc Check that the IUT deregisters a tag (representing a UE) or a list of tags when commanded by a MEC Application +// * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 +// */ +// testcase TC_MEC_PLAT_UETAG_003_OK() runs on HttpComponent system HttpTestAdapter { +// // Local variables +// var HeaderLines v_headers; +// +// // 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); +// // Verify that the user is not register yet +// if (f_check_user_register_state(-, v_headers) != 1) { +// log("*** " & testcasename() & ": INCONC: Wrong initial conditions ***"); +// f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); +// } +// httpPort.send( +// m_http_request( +// m_http_request_post( +// "/" & PICS_ROOT_API & PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", +// v_headers, +// m_http_message_body_json( +// m_body_json_ue_identity_tag_info( +// m_ue_identity_tag_info( +// { +// m_ue_identity_tag_item( +// PX_UE_IDENTITY_TAG, +// UNREGISTERED +// ) +// } +// ) +// ) +// ) +// ) +// ) +// ); +// 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_ue_identity_tag_info( +// mw_ue_identity_tag_info( +// { *, mw_ue_identity_tag_item(PX_UE_IDENTITY_TAG, UNREGISTERED), * } +// )))))) { +// if (f_check_user_register_state(-, v_headers) == 0) { +// log("*** " & testcasename() & ": PASS: IUT successfully unregistered the tag ***"); +// f_selfOrClientSyncAndVerdict(c_tbDone, e_success); +// } else { +// log("*** " & testcasename() & ": FAIL: The tag was not unregistered ***"); +// f_selfOrClientSyncAndVerdict(c_tbDone, e_error); +// } +// } +// [] 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_UETAG_003_OK +// +// /** +// * @desc Check that the IUT responds with an error when an unauthorised request is sent by a MEC Application +// * @see https://forge.etsi.org/gitlab/mec/MEC-tests/blob/master/Test%20Purposes/SRV/UeIdentity/PlatUeIdentity.tplan2 +// */ +// testcase TC_MEC_PLAT_UETAG_005_BI() 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_UE_IDENTITY_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); +// // Verify that the user is not register yet +// if (f_check_user_register_state(-, v_headers) != 1) { +// log("*** " & testcasename() & ": INCONC: Wrong initial conditions ***"); +// f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); +// } +// httpPort.send( +// m_http_request( +// m_http_request_post( +// "/" & PICS_ROOT_API & PX_ME_APP_Q_UE_IDENTITY_ID_URI & oct2char(unichar2oct(PX_APP_INSTANCE_ID, "UTF-8")) & "/ue_identity_tag_info", +// v_headers, +// m_http_message_body_json( +// m_body_json_ue_identity_tag_info( +// m_ue_identity_tag_info( +// { +// m_ue_identity_tag_item( +// PX_UE_IDENTITY_TAG, +// REGISTERED +// ) +// } +// ) +// ) +// ) +// ) +// ) +// ); +// 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 +// )))))) { +// 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 +// +// // Postamble +// f_cf_01_http_down(); +// } // End of testcase TC_MEC_PLAT_UETAG_005_BI - } // End of group ueIdentity + } // End of group ueTag } // End of module AtsMec_TestCases diff --git a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn index 439ce3911a841e48107ca03b2306776553c135bc..1bc32304471492d5d314f37b7775a8ff498e962c 100644 --- a/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn +++ b/ttcn/LibMec/LocationAPI/ttcn/LocationAPI_Pixits.ttcn @@ -10,8 +10,12 @@ module LocationAPI_Pixits { modulepar ClientCorrelator PX_CLIENT_ID := "0123"; + modulepar ClientCorrelator PX_CLIENT_ID_UNKNOWN := "0666"; + modulepar charstring PX_SUBSCRIPTION_ID := "subscription0123"; + modulepar charstring PX_SUBSCRIPTION_ID_UNKNOWN := "subscription0666"; + modulepar AccessPointId PX_ACCESS_POINT_ID := "001010000000000000000000000000001"; modulepar ZoneId PX_ZONE_ID := "zone01"; diff --git a/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Pixits.ttcn b/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Pixits.ttcn index 947bc9a28a2e928fed45797bf923325db4c4ec59..22c10a85a1da503f63666b97ccd4849e20d068d8 100644 --- a/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Pixits.ttcn +++ b/ttcn/LibMec/UEidentityAPI/ttcn/UEidentityAPI_Pixits.ttcn @@ -10,8 +10,6 @@ module UEidentityAPI_Pixits { modulepar universal charstring PX_NON_EXISTENT_APP_INSTANCE_ID := "appInst99"; - modulepar universal charstring PX_APP_INSTANCE_ID_UNAUTHORIZED := "appInst98"; - modulepar universal charstring PX_UE_IDENTITY_TAG := "UeTagA"; modulepar universal charstring PX_UE_IDENTITY_TAG_UNKNOWN := "UeTagW";