From 634eab1270e88131db642188a9fcb4d5a8a9ce04 Mon Sep 17 00:00:00 2001 From: Muhammad Umair Khan Date: Mon, 3 Mar 2025 10:09:21 +0500 Subject: [PATCH 01/55] update MEC 014 reference version from v3.1.1. to v3.2.1 --- MEC014/SRV/UETAG/PlatUeIdentity.robot | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/MEC014/SRV/UETAG/PlatUeIdentity.robot b/MEC014/SRV/UETAG/PlatUeIdentity.robot index d7b7f0e..2520ae1 100644 --- a/MEC014/SRV/UETAG/PlatUeIdentity.robot +++ b/MEC014/SRV/UETAG/PlatUeIdentity.robot @@ -15,8 +15,8 @@ TC_MEC_MEC014_SRV_UETAG_001_OK ... Check that the IUT responds with the information on a UE Identity tag ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 014 3.1.1, clause 6.2.2, - ... ETSI GS MEC 014 3.1.1, clause 7.3.3.1 + ... Reference ETSI GS MEC 014 3.2.1, clause 6.2.2, + ... ETSI GS MEC 014 3.2.1, clause 7.3.3.1 ... [Setup] Create new App Instance CreateAppInstanceRequest Get UE Identity Tag information ${APP_INSTANCE_ID} ${UE_IDENTITY_TAG} @@ -38,10 +38,10 @@ TC_MEC_MEC014_SRV_UETAG_001_BR ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application - ... Reference ETSI GS MEC 013 3.1.1 Clause 5.3.4, - ... ETSI GS MEC 013 3.1.1 Clause 6.3.9, - ... ETSI GS MEC 013 3.1.1 Clause 6.4.9, - ... ETSI GS MEC 013 3.1.1 Clause 7.14.3.4 + ... Reference ETSI GS MEC 013 3.2.1 Clause 5.3.4, + ... ETSI GS MEC 013 3.2.1 Clause 6.3.9, + ... ETSI GS MEC 013 3.2.1 Clause 6.4.9, + ... ETSI GS MEC 013 3.2.1 Clause 7.14.3.4 [Setup] Create new App Instance CreateAppInstanceRequest Get UE Identity Tag information using bad parameters ${APP_INSTANCE_ID} ${UE_IDENTITY_TAG} @@ -53,7 +53,7 @@ TC_MEC_MEC014_SRV_UETAG_001_BR TC_MEC_MEC014_SRV_UETAG_001_NF [Documentation] Request UE Identity Tag information using non-existent application instance ... 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 - ... Reference ETSI GS MEC 014 V3.1.1, clause 7.3.3.1 + ... Reference ETSI GS MEC 014 V3.2.1, clause 7.3.3.1 [Setup] Delete APP Instance ${NON_EXISTENT_APP_INSTANCE_ID} Get UE Identity Tag information ${NON_EXISTENT_APP_INSTANCE_ID} ${UE_IDENTITY_TAG} Check HTTP Response Status Code Is 404 @@ -63,8 +63,8 @@ TC_MEC_MEC014_SRV_UETAG_002_OK [Documentation] Register an UE Identity Tag ... Check that the IUT registers a tag (representing a UE) or a list of tags when commanded by a MEC Application - ... Reference ETSI GS MEC 014 3.1.1, clause 6.2.2 - ... ETSI GS MEC 014 V3.1.1, clause 7.3.3.2 + ... Reference ETSI GS MEC 014 3.2.1, clause 6.2.2 + ... ETSI GS MEC 014 V3.2.1, clause 7.3.3.2 [Setup] Create new App Instance and Check User Identity Tag unregistered state CreateAppInstanceRequest ${APP_INSTANCE_ID} UeIdentityTag Update an UE Identity Tag ${APP_INSTANCE_ID} IdentityTag @@ -84,8 +84,8 @@ TC_MEC_MEC014_SRV_UETAG_002_OK TC_MEC_MEC014_SRV_UETAG_002_BR [Documentation] Register an UE Identity Tag using invalid state ... Check that the IUT responds with an error when an unauthorised request is sent by a MEC Application - ... Reference ETSI GS MEC 014 3.1.1, clause 6.2.2, - ... ETSI GS MEC 014 3.1.1, clause 7.3.3.2 + ... Reference ETSI GS MEC 014 3.2.1, clause 6.2.2, + ... ETSI GS MEC 014 3.2.1, clause 7.3.3.2 [Setup] Create new App Instance CreateAppInstanceRequest Update an UE Identity Tag ${APP_INSTANCE_ID} IdentityTagBR Check HTTP Response Status Code Is 400 @@ -95,7 +95,7 @@ TC_MEC_MEC014_SRV_UETAG_002_BR TC_MEC_MEC014_SRV_UETAG_002_NF [Documentation] Register an UE Identity Tag using invalid state ... Check that the IUT responds with an error when an unauthorised request is sent by a MEC Application - ... Reference ETSI GS MEC 014 3.1.1, clause 7.3.3.2 + ... Reference ETSI GS MEC 014 3.2.1, clause 7.3.3.2 #[Setup] Delete APP Instance ${NON_EXISTENT_APP_INSTANCE_ID} Update an UE Identity Tag ${NON_EXISTENT_APP_INSTANCE_ID} IdentityTag Check HTTP Response Status Code Is 404 @@ -105,7 +105,7 @@ TC_MEC_MEC014_SRV_UETAG_002_PF [Documentation] Unregister an UE Identity Tag already in unregistered state ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition - ... Reference ETSI GS MEC 014 V3.1.1, clause 7.3.3.2 + ... Reference ETSI GS MEC 014 V3.2.1, clause 7.3.3.2 [Setup] Create new App Instance CreateAppInstanceRequest Update an UE Identity Tag ${APP_INSTANCE_ID} IdentityTagPF Check HTTP Response Status Code Is 412 -- GitLab From c84e9b8ea689eb1d668be855ce6fc06bba3dad64 Mon Sep 17 00:00:00 2001 From: Muhammad Umair Khan Date: Mon, 3 Mar 2025 10:14:11 +0500 Subject: [PATCH 02/55] update MEC 015 as per version v3.1.1 --- MEC015/SRV/BW_SUB/BwEventSubscription.robot | 235 ++++++++++++++++++ MEC015/SRV/BW_SUB/environment/variables.txt | 35 +++ .../BW_SUB/jsons/BwChgEventSubscription.json | 9 + .../jsons/BwChgEventSubscription_BR.json | 9 + .../jsons/BwChgEventSubscription_BR_02.json | 13 + .../jsons/UpdateBwChgEventSubscription.json | 14 ++ .../BwChgEventNotification.schema.json | 92 +++++++ .../BwChgEventSubscription.schema.json | 90 +++++++ .../schemas/SubscriptionLinkList.schema.json | 57 +++++ .../BwEventSubscriptionLookup.robot | 179 +++++++++++++ .../BW_SUB_LOOKUP/environment/variables.txt | 25 ++ .../jsons/BwChgEventSubscription.json | 9 + .../BwChgEventSubscription.schema.json | 90 +++++++ .../schemas/SubscriptionLinkList.schema.json | 57 +++++ .../SRV/MTS/MultiAccessTrafficSteering.robot | 100 ++++---- MEC015/SRV/TM/TrafficManagement.robot | 126 +++++----- 16 files changed, 1027 insertions(+), 113 deletions(-) create mode 100644 MEC015/SRV/BW_SUB/BwEventSubscription.robot create mode 100644 MEC015/SRV/BW_SUB/environment/variables.txt create mode 100644 MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription.json create mode 100644 MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription_BR.json create mode 100644 MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription_BR_02.json create mode 100644 MEC015/SRV/BW_SUB/jsons/UpdateBwChgEventSubscription.json create mode 100644 MEC015/SRV/BW_SUB/schemas/BwChgEventNotification.schema.json create mode 100644 MEC015/SRV/BW_SUB/schemas/BwChgEventSubscription.schema.json create mode 100644 MEC015/SRV/BW_SUB/schemas/SubscriptionLinkList.schema.json create mode 100644 MEC015/SRV/BW_SUB_LOOKUP/BwEventSubscriptionLookup.robot create mode 100644 MEC015/SRV/BW_SUB_LOOKUP/environment/variables.txt create mode 100644 MEC015/SRV/BW_SUB_LOOKUP/jsons/BwChgEventSubscription.json create mode 100644 MEC015/SRV/BW_SUB_LOOKUP/schemas/BwChgEventSubscription.schema.json create mode 100644 MEC015/SRV/BW_SUB_LOOKUP/schemas/SubscriptionLinkList.schema.json diff --git a/MEC015/SRV/BW_SUB/BwEventSubscription.robot b/MEC015/SRV/BW_SUB/BwEventSubscription.robot new file mode 100644 index 0000000..7510c39 --- /dev/null +++ b/MEC015/SRV/BW_SUB/BwEventSubscription.robot @@ -0,0 +1,235 @@ +''[Documentation] robot --outputdir ../../../outputs ./BwEventSubscription.robot +... Test Suite to validate Bandwidth Management Event Subscription (BW) operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../../pics.txt +Resource ../../../GenericKeywords.robot +Library Collections +Library String +Library OperatingSystem +Library MockServerLibrary +Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false + +*** Test Cases *** +TC_MEC_MEC015_SRV_BW_SUB_NOT_001_OK + [Documentation] + ... Check that the IUT acknowledges the creation of BWM change event subscription request when commanded by a MEC Application + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.2 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.4 + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + + Create New Subscription Info BwChgEventSubscription + Check HTTP Response Status Code Is 200 + Check HTTP Response Header Contains Location + Check HTTP Response Body Json Schema Is BwChgEventSubscription + Set Suite Variable ${Location} ${response['headers']['Location']} + + Check Response Contains ${response['body']} subscriptionType ${SUB_TYPE} + Check Response Contains ${response['body']} callbackReference ${CALLBACK_URI} + Check Response Contains ${response['body']['filterCriteria']} appInsId ${appInsId} + Should Not Be Empty ${response['body']['_links']['self']['href']} + + [TearDown] Remove Subscription Info ${Location} + +TC_MEC_MEC015_SRV_BW_SUB_NOT_001_BR_01 + [Documentation] + ... Check that the IUT acknowledges the creation of BWM change event subscription request when commanded by a MEC Application + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.1 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.4 + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + + Create New Subscription Info with Invalid subscriptionType BwChgEventSubscription + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC015_SRV_BW_SUB_NOT_001_BR_02 + [Documentation] + ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - Both callbackReference and websockNotifConfig provided + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.1 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.4 + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + + Create New Subscription Info BwChgEventSubscription_BR + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC015_SRV_BW_SUB_NOT_001_BR_03 + [Documentation] + ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - Neither callbackReference nor websockNotifConfig provided + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.1 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.4 + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + + Create New Subscription Info BwChgEventSubscription_BR_02 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC015_SRV_BW_SUB_NOT_002_OK + [Documentation] + ... Check that the IUT acknowledges the update of BWM change event subscription request when commanded by a MEC Application + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.3 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.6.3.2 + + [Setup] Create New Subscription Info BwChgEventSubscription + Set Suite Variable ${Location} ${response['headers']['Location']} + ${elements} = Split String ${Location} / + ${SUBSCRIPTION_ID} = Get From List ${elements} -1 + Set Suite Variable ${SUBSCRIPTION_ID} ${SUBSCRIPTION_ID} + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + + Modify existing subscription information ${SUBSCRIPTION_ID} UpdateBwChgEventSubscription + Check HTTP Response Status Code Is 200 + Check HTTP Response Header Contains Location + Check HTTP Response Body Json Schema Is UpdateBwChgEventSubscription + + ${callbackReference} Get value entry from JSON file UpdateBwChgEventSubscription callbackReference + ${filterCriteria} Get value entry from JSON file UpdateBwChgEventSubscription filterCriteria + + Check Response Contains ${response['body']} subscriptionType BwChgEventSubscription + Check Response Contains ${response['body']} callbackReference ${callbackReference} + Check Response Contains ${response['body']['filterCriteria']} appInsId ${filterCriteria['appInsId']} + Should Not Be Empty ${response['body']['_links']['self']['href']} + + [TearDown] Remove Subscription Info ${Location} + +TC_MEC_MEC015_SRV_BW_SUB_NOT_002_NF + [Documentation] + ... Check that the IUT acknowledges an error when a request for an URI that cannot be mapped to a valid resource URI is sent by a MEC Application + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.3 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.6.3.2 + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + + Modify existing subscription information ${NON_EXISTENT_SUB_ID} UpdateBwChgEventSubscription + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC015_SRV_BW_SUB_NOT_003_OK + [Documentation] + ... Check that the IUT acknowledges the cancellation of BWM change event subscription request when commanded by a MEC Application + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.4 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.6.3.5 + + [Setup] Create New Subscription Info ${SUB_ID} + Set Suite Variable ${Location} ${response['headers']['Location']} + ${elements} = Split String ${Location} / + ${SUBSCRIPTION_ID} = Get From List ${elements} -1 + Set Suite Variable ${SUBSCRIPTION_ID} ${SUBSCRIPTION_ID} + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Remove existing subscription information ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + +TC_MEC_MEC015_SRV_BW_SUB_NOT_003_NF + [Documentation] + ... 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 + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.4 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.6.3.5 + + Remove existing subscription information ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + +TP_MEC_MEC015_SRV_BW_SUB_NOT_004_OK + [Documentation] Post Bandwidth Change Event Notification + ... Check that the BWM service sends a notification about a bandwidth utility or the data volume + ... if the BWM service has an associated subscription and the event is generated" + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6.2 + ... ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.7.3.4 + + ${json}= Get File schemas/BwChgEventNotification.schema.json + # Log Creating mock request and response to handle Bandwidth Change Event Notification + # &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} + # &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 + # Create Mock Expectation ${req} ${rsp} + # Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} + # Log Verifying results + # Verify Mock Expectation ${req} + # Log Cleaning the endpoint + # Clear Requests ${callback_endpoint} + +*** Keywords *** +Create New Subscription Info + [Arguments] ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Modify existing subscription information + [Arguments] ${SUB_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + ${json_data}= Evaluate json.loads('''${body}''') json + ${new_href}= Set Variable ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT}/${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUB_ID} + Set To Dictionary ${json_data["_links"]["self"]} href=${new_href} + ${modified_json_string}= Evaluate json.dumps(${json_data}) + + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUB_ID} ${modified_json_string} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Create New Subscription Info with Invalid subscriptionType + [Arguments] ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + # Modify JSON: Change subscriptionType to an invalid value + ${body}= Evaluate json.loads('''${body}''') json + Set To Dictionary ${body} subscriptionType InvalidType + ${modified_json_string}= Evaluate json.dumps(${body}) + + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${modified_json_string} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove existing subscription information + [Arguments] ${SUB_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUB_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove Subscription Info + [Arguments] ${delete_url} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + DELETE ${delete_url} \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB/environment/variables.txt b/MEC015/SRV/BW_SUB/environment/variables.txt new file mode 100644 index 0000000..205dc37 --- /dev/null +++ b/MEC015/SRV/BW_SUB/environment/variables.txt @@ -0,0 +1,35 @@ +*** Variables *** +####Env variable for the ETSI MEC Sandbox +${apiRoot} +${apiName} bwm +${apiVersion} v1 + +${MEC-APP_SCHEMA} http +${MEC-APP_HOST} mockoon +${MEC-APP_PORT} 3001 + +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l + + +# Specific variables +${appInsId} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f +${NON_EXISTENT_APP_INSTANCE_ID} NON_ESISTENT_APP_INSTANCE_ID + +${SUB_TYPE} BwChgEventSubscription + +${SUB_FILTER} bw_chg +${INVALID_SUB_FILTER} bw_chg_invalid + +${SUB_ID} 123 +${NON_EXISTENT_SUB_ID} + +${HREF} /bwm/v1/subscriptions/1 +${CALLBACK_URI} http://callback.uri/1 + + +${callback_port} 9091 +${callback_uri} http://172.22.1.7:${callback_port} +${callback_endpoint} /bwm/v1/subscriptions +${callback_endpoint_error} /subs_404 +${total_polling_time} 2 min +${polling_interval} 10 sec \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription.json b/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription.json new file mode 100644 index 0000000..f59f7c7 --- /dev/null +++ b/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription.json @@ -0,0 +1,9 @@ +{ + "subscriptionType": "BwChgEventSubscription", + "callbackReference": "http://callback.uri/1", + "filterCriteria": [ + { + "appInsId": "5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f" + } + ] +} diff --git a/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription_BR.json b/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription_BR.json new file mode 100644 index 0000000..b5d8b73 --- /dev/null +++ b/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription_BR.json @@ -0,0 +1,9 @@ +{ + "subscriptionType": "BwChgEventSubscription", + "filterCriteria": [ + { + "appInsId": "5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f" + } + ] + } + \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription_BR_02.json b/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription_BR_02.json new file mode 100644 index 0000000..9ae5715 --- /dev/null +++ b/MEC015/SRV/BW_SUB/jsons/BwChgEventSubscription_BR_02.json @@ -0,0 +1,13 @@ +{ + "subscriptionType": "BwChgEventSubscription", + "callbackReference": "http://callback.uri/1", + "websockNotifConfig": { + "websocketUri ": "someuri", + "requestWebsocketUri": true + }, + "filterCriteria": [ + { + "appInsId": "5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f" + } + ] +} \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB/jsons/UpdateBwChgEventSubscription.json b/MEC015/SRV/BW_SUB/jsons/UpdateBwChgEventSubscription.json new file mode 100644 index 0000000..a7a63ed --- /dev/null +++ b/MEC015/SRV/BW_SUB/jsons/UpdateBwChgEventSubscription.json @@ -0,0 +1,14 @@ +{ + "subscriptionType": "BwChgEventSubscription", + "callbackReference": "http://callback.uri/1", + "_links": { + "self": { + "href": "https://example.com/bwchgeventsubscription/12" + } + }, + "filterCriteria": [ + { + "appInsId": "5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f" + } + ] +} \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB/schemas/BwChgEventNotification.schema.json b/MEC015/SRV/BW_SUB/schemas/BwChgEventNotification.schema.json new file mode 100644 index 0000000..2fafe7a --- /dev/null +++ b/MEC015/SRV/BW_SUB/schemas/BwChgEventNotification.schema.json @@ -0,0 +1,92 @@ +{ + "properties": { + "notificationType": { + "description": "Shall be set to 'BwChgEventNotification'.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "timeStamp": { + "description": "Time stamp to indicate when the corresponding information elements are sent.", + "properties": { + "seconds": { + "description": "The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uint32" + }, + "nanoSeconds": { + "description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uint32" + } + }, + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "dataVolDispersion": { + "items": { + "properties": { + "dataVol": { + "description": "Sum of data volume (UL/DL) exchanged per UE per applications, ETSI TS 123 288 [i.4].", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uint32" + }, + "appInsId": { + "description": "Application instance identifier.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "ueIp": { + "description": "Source address identity of session.", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "dataVol", + "appInsId" + ], + "type": "object" + }, + "type": "array", + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "_links": { + "description": "Link to resource related to this notification.", + "properties": { + "subscription": { + "properties": { + "href": { + "description": "A link to related subscription.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "LinkType" + } + }, + "required": [ + "href" + ], + "type": "object" + } + }, + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "required": [ + "notificationType", + "dataVolDispersion" + ], + "type": "object" +} \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB/schemas/BwChgEventSubscription.schema.json b/MEC015/SRV/BW_SUB/schemas/BwChgEventSubscription.schema.json new file mode 100644 index 0000000..e512296 --- /dev/null +++ b/MEC015/SRV/BW_SUB/schemas/BwChgEventSubscription.schema.json @@ -0,0 +1,90 @@ +{ + "properties": { + "subscriptionType": { + "description": "Shall be set to 'BwChgEventSubscription'.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "callbackReference": { + "description": "URI exposed by the client on which to receive notifications via HTTP.", + "type": "string", + "format": "uri", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "URI" + }, + "websockNotifConfig": { + "properties": { + "requestWebsocketUri": { + "description": "Set to true by the service consumer to indicate that Websocket delivery is requested.", + "type": "boolean", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Boolean" + }, + "websocketUri": { + "description": "Set by location server to indicate to the service consumer the Websocket URI to be used for delivering notifications.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uri" + } + }, + "type": "object", + "x-etsi-ref": "7.5.3" + }, + "_links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "type": "object", + "properties": { + "self": { + "description": "Self-referring URI. The URI shall be unique within the BWM API as it acts as an ID for the subscription.", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "href" + ], + "x-etsi-ref": "7.5.2" + } + }, + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "filterCriteria": { + "description": "List of filtering criteria for the BW change event subscription.", + "type": "array", + "items": { + "type": "object", + "properties": { + "appInsId": { + "description": "Application instance identifier.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "ueIp": { + "description": "Source address identity of session.", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "appInsId" + ] + }, + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "required": [ + "subscriptionType", + "filterCriteria" + ] +} \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB/schemas/SubscriptionLinkList.schema.json b/MEC015/SRV/BW_SUB/schemas/SubscriptionLinkList.schema.json new file mode 100644 index 0000000..0e9229a --- /dev/null +++ b/MEC015/SRV/BW_SUB/schemas/SubscriptionLinkList.schema.json @@ -0,0 +1,57 @@ +{ + "properties": { + "_links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "description": "URI referring to a resource", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "href" + ], + "x-etsi-ref": "7.5.2" + }, + "subscriptions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "description": "The URI referring to the subscription.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "subscriptionType": { + "description": "Type of the subscription. The string shall be set according to the 'subscriptionType' attribute of the associated subscription data type event defined in clause 7.3.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "href", + "subscriptionType" + ] + }, + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "required": [ + "_links" + ], + "type": "object" +} \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB_LOOKUP/BwEventSubscriptionLookup.robot b/MEC015/SRV/BW_SUB_LOOKUP/BwEventSubscriptionLookup.robot new file mode 100644 index 0000000..9787e2b --- /dev/null +++ b/MEC015/SRV/BW_SUB_LOOKUP/BwEventSubscriptionLookup.robot @@ -0,0 +1,179 @@ +''[Documentation] robot --outputdir ../../../outputs ./BwEventSubscription.robot +... Test Suite to validate Bandwidth Management Event Subscription (BW) operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../../pics.txt +Resource ../../../GenericKeywords.robot +Library Collections +Library String +Library OperatingSystem +Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_verify=false + +*** Test Cases *** +TC_MEC_MEC015_SRV_BWSUBLOOKUP_001_OK + [Documentation] + ... Check that the IUT responds with a list of BWM change event susbsciption when queried by a MEC Application + ... Reference ETSI GS MEC 015 3.1.1, clause 7.3.3 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.1 + + [Setup] Create New Subscription Info BwChgEventSubscription + Set Suite Variable ${Location} ${response['headers']['Location']} + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Retrieve the list of subscription information + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SubscriptionLinkList + + [TearDown] Remove Subscription Info ${Location} + +TC_MEC_MEC015_SRV_BWSUBLOOKUP_001_BR + [Documentation] + ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application + ... Reference ETSI GS MEC 015 3.1.1, clause 7.3.3 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.1 + + [Setup] Create New Subscription Info BwChgEventSubscription + Set Suite Variable ${Location} ${response['headers']['Location']} + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Get list of subscriptions using query parameters ${INVALID_SUB_FILTER} + Check HTTP Response Status Code Is 400 + + [TearDown] Remove Subscription Info ${Location} + +TC_MEC_MEC015_SRV_BWSUBLOOKUP_001_NF + [Documentation] + ... Check that the IUT responds with an error when no subscription are created + ... Reference ETSI GS MEC 015 3.1.1, clause 7.3.3 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.1 + + Retrieve the list of subscription information + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC015_SRV_BWSUBLOOKUP_002_OK + [Documentation] + ... Check that the IUT responds with a list of subscriptions for notifications on services availability when queried by a MEC Application - Filter on subscription_type + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6 + ... ETSI GS MEC 015 3.1.1, clause 7.3.3 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.1 + + [Setup] Create New Subscription Info BwChgEventSubscription + Set Suite Variable ${Location} ${response['headers']['Location']} + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Get list of subscriptions using query parameters ${SUB_FILTER} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SubscriptionLinkList + + [TearDown] Remove Subscription Info ${Location} + +TC_MEC_MEC015_SRV_BWSUBLOOKUP_002_NF + [Documentation] + ... Check that the IUT responds with with an error when no subscription matches with the filter - Filter on subscription_type + ... Reference ETSI GS MEC 015 3.1.1, clause 6.2.6 + ... ETSI GS MEC 015 3.1.1, clause 7.3.3 + ... ETSI GS MEC 015 3.1.1, clause 8.5.3.1 + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Get list of subscriptions using query parameters ${SUB_FILTER} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC015_SRV_BWSUBLOOKUP_003_OK + [Documentation] + ... Check that the IUT responds with a BWM change event susbsciption when queried by a MEC Application + ... Reference ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.6.3.1 + + [Setup] Create New Subscription Info BwChgEventSubscription + + Set Suite Variable ${Location} ${response['body']['_links']['self']['href']} + ${elements} = Split String ${Location} / + ${SUBSCRIPTION_ID} = Get From List ${elements} -1 + Set Suite Variable ${SUBSCRIPTION_ID} ${SUBSCRIPTION_ID} + + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + + Retrieve existing subscription information ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is BwChgEventSubscription + + ${subscription_type} Get value entry from JSON file BwChgEventSubscription subscriptionType + ${callbackReference} Get value entry from JSON file BwChgEventSubscription callbackReference + ${filterCriteria} Get value entry from JSON file BwChgEventSubscription filterCriteria + + Should Be Equal As Strings ${response['body']['subscriptionType']} ${subscription_type} + Should Be Equal As Strings ${response['body']['callbackReference']} ${callbackReference} + Should Be Equal As Strings ${response['body']['filterCriteria']['appInsId']} ${filterCriteria['appInsId']} + + [TearDown] Remove Subscription Info ${Location} + +TC_MEC_MEC015_SRV_BWSUBLOOKUP_003_NF + [Documentation] + ... 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 + ... Reference ETSI GS MEC 015 3.1.1, clause 7.3.2 + ... ETSI GS MEC 015 3.1.1, clause 8.6.3.1 + + Retrieve existing subscription information ${SUB_ID} + Check HTTP Response Status Code Is 404 + + +*** Keywords *** +Retrieve the list of subscription information + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve existing subscription information + [Arguments] ${SUB_ID} + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUB_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get list of subscriptions using query parameters + [Arguments] ${subscription_type} + Should Be True ${PIC_MEC_SYSTEM} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?subscription_type=${subscription_type} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Create New Subscription Info + [Arguments] ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove Subscription Info + [Arguments] ${delete_url} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + DELETE ${delete_url} \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB_LOOKUP/environment/variables.txt b/MEC015/SRV/BW_SUB_LOOKUP/environment/variables.txt new file mode 100644 index 0000000..48f3045 --- /dev/null +++ b/MEC015/SRV/BW_SUB_LOOKUP/environment/variables.txt @@ -0,0 +1,25 @@ +*** Variables *** +####Env variable for the ETSI MEC Sandbox +${apiRoot} +${apiName} bwm +${apiVersion} v1 + +${MEC-APP_SCHEMA} http +${MEC-APP_HOST} mockoon +${MEC-APP_PORT} 3001 + +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l + + +# Specific variables +${appInsId} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f +${NON_EXISTENT_APP_INSTANCE_ID} NON_ESISTENT_APP_INSTANCE_ID + +${SUB_TYPE} BwChgEventSubscription + +${SUB_FILTER} bw_chg +${INVALID_SUB_FILTER} bw_chg_invalid + +${SUB_ID} 123 +${HREF} /bwm/v1/subscriptions/1 +${CALLBACK_URI} http://callback.uri/1 diff --git a/MEC015/SRV/BW_SUB_LOOKUP/jsons/BwChgEventSubscription.json b/MEC015/SRV/BW_SUB_LOOKUP/jsons/BwChgEventSubscription.json new file mode 100644 index 0000000..f59f7c7 --- /dev/null +++ b/MEC015/SRV/BW_SUB_LOOKUP/jsons/BwChgEventSubscription.json @@ -0,0 +1,9 @@ +{ + "subscriptionType": "BwChgEventSubscription", + "callbackReference": "http://callback.uri/1", + "filterCriteria": [ + { + "appInsId": "5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f" + } + ] +} diff --git a/MEC015/SRV/BW_SUB_LOOKUP/schemas/BwChgEventSubscription.schema.json b/MEC015/SRV/BW_SUB_LOOKUP/schemas/BwChgEventSubscription.schema.json new file mode 100644 index 0000000..e512296 --- /dev/null +++ b/MEC015/SRV/BW_SUB_LOOKUP/schemas/BwChgEventSubscription.schema.json @@ -0,0 +1,90 @@ +{ + "properties": { + "subscriptionType": { + "description": "Shall be set to 'BwChgEventSubscription'.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "callbackReference": { + "description": "URI exposed by the client on which to receive notifications via HTTP.", + "type": "string", + "format": "uri", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "URI" + }, + "websockNotifConfig": { + "properties": { + "requestWebsocketUri": { + "description": "Set to true by the service consumer to indicate that Websocket delivery is requested.", + "type": "boolean", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Boolean" + }, + "websocketUri": { + "description": "Set by location server to indicate to the service consumer the Websocket URI to be used for delivering notifications.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uri" + } + }, + "type": "object", + "x-etsi-ref": "7.5.3" + }, + "_links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "type": "object", + "properties": { + "self": { + "description": "Self-referring URI. The URI shall be unique within the BWM API as it acts as an ID for the subscription.", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "href" + ], + "x-etsi-ref": "7.5.2" + } + }, + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "filterCriteria": { + "description": "List of filtering criteria for the BW change event subscription.", + "type": "array", + "items": { + "type": "object", + "properties": { + "appInsId": { + "description": "Application instance identifier.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "ueIp": { + "description": "Source address identity of session.", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "appInsId" + ] + }, + "x-etsi-mec-cardinality": "1..N", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "required": [ + "subscriptionType", + "filterCriteria" + ] +} \ No newline at end of file diff --git a/MEC015/SRV/BW_SUB_LOOKUP/schemas/SubscriptionLinkList.schema.json b/MEC015/SRV/BW_SUB_LOOKUP/schemas/SubscriptionLinkList.schema.json new file mode 100644 index 0000000..0e9229a --- /dev/null +++ b/MEC015/SRV/BW_SUB_LOOKUP/schemas/SubscriptionLinkList.schema.json @@ -0,0 +1,57 @@ +{ + "properties": { + "_links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "description": "URI referring to a resource", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "href" + ], + "x-etsi-ref": "7.5.2" + }, + "subscriptions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "description": "The URI referring to the subscription.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "subscriptionType": { + "description": "Type of the subscription. The string shall be set according to the 'subscriptionType' attribute of the associated subscription data type event defined in clause 7.3.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "href", + "subscriptionType" + ] + }, + "x-etsi-mec-cardinality": "0..N", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + } + }, + "required": [ + "_links" + ], + "type": "object" +} \ No newline at end of file diff --git a/MEC015/SRV/MTS/MultiAccessTrafficSteering.robot b/MEC015/SRV/MTS/MultiAccessTrafficSteering.robot index 46bf70e..7e10162 100644 --- a/MEC015/SRV/MTS/MultiAccessTrafficSteering.robot +++ b/MEC015/SRV/MTS/MultiAccessTrafficSteering.robot @@ -15,9 +15,9 @@ TC_MEC_MEC015_SRV_MTS_001_OK ... Check that the IUT responds with the Multi-access Traffic Steering information ... when queried by a MEC Application ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.6, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.4, - ... ETSI GS MEC 015 V2.2.1, clause 9.3.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.6, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.4, + ... ETSI GS MEC 015 v3.1.1, clause 9.3.3.1 Retrieve MTS capability information Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is MtsCapabilityInfo @@ -28,9 +28,9 @@ TC_MEC_MEC015_SRV_MTS_002_OK_01 ... Check that the IUT responds with the list of configured Multi-access Traffic Steering ... when queried by a MEC Application - none ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.6, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 9.3.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.6, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 9.3.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / Set Suite Variable ${SESSION_ID} ${elements}[3] @@ -45,9 +45,9 @@ TC_MEC_MEC015_SRV_MTS_002_OK_02 ... Check that the IUT responds with the list of configured Multi-access Traffic Steering ... when queried by a MEC Application - app_instance_id ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.6, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 9.5.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.6, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / Set Suite Variable ${SESSION_ID} ${elements}[3] @@ -66,9 +66,9 @@ TC_MEC_MEC015_SRV_MTS_002_OK_03 ... Check that the IUT responds with the list of configured Multi-access Traffic Steering ... when queried by a MEC Application - app_name ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.6, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 9.5.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.6, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific Retrieve MTS session list information using filter ${APP_NAME_FILTER} ${APP_NAME} @@ -81,9 +81,9 @@ TC_MEC_MEC015_SRV_MTS_002_OK_03 ... Check that the IUT responds with the list of configured Multi-access Traffic Steering ... when queried by a MEC Application - session_id ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.6, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 9.5.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.6, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific Retrieve MTS session list information using filter ${SESSION_ID_FILTER} ${SESSION_ID} Check HTTP Response Status Code Is 200 @@ -97,9 +97,9 @@ TC_MEC_MEC015_SRV_MTS_002_BR ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.6, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 9.5.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.6, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / Set Suite Variable ${SESSION_ID} ${elements}[3] @@ -113,7 +113,7 @@ TC_MEC_MEC015_SRV_MTS_002_NF [Documentation] ... Check that the IUT responds with an error ... when a request with an unknown resource URI is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 9.5.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 ... https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.yaml [Setup] Delete APP Instance ${NOT_EXISTING_APP_INSTANCE_ID} Retrieve MTS session list information using filter ${CORRECT_FILTER} ${NOT_EXISTING_APP_INSTANCE_ID} @@ -125,9 +125,9 @@ TC_MEC_MEC015_SRV_MTS_003_OK_01 [Documentation] ... Check that the IUT creates a MTS session when queried by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.6, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 9.5.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.6, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.2 [Setup] Create new App Instance CreateAppInstanceRequest Register MTS session MtsSessionInfoApplicationSpecific @@ -150,9 +150,9 @@ TC_MEC_MEC015_SRV_MTS_003_OK_02 [Documentation] ... Check that the IUT creates a MTS session when queried by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.7 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.5.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.7 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.2 #[Setup] Create new App Instance CreateAppInstanceRequest Register MTS session MtsSessionInfoSessionSpecific Check HTTP Response Status Code Is 201 @@ -177,9 +177,9 @@ TC_MEC_MEC015_SRV_MTS_003_BR ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.7 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.5.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.7 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.2 [Setup] Create new App Instance CreateAppInstanceRequest Register MTS session MtsSessionInfoApplicationSpecific_BR Check HTTP Response Status Code Is 400 @@ -190,9 +190,9 @@ TC_MEC_MEC015_SRV_MTS_004_OK ... Check that the IUT responds with a configured Multi-access Traffic Steering session ... when queried by a MEC Application ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.10 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.10 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / Set Suite Variable ${SESSION_ID} ${elements}[3] @@ -215,9 +215,9 @@ TC_MEC_MEC015_SRV_MTS_004_BR ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.10 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.10 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.1 ... https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.yaml Retrieve single MTS session ${WRONG_SESSION_ID} Check HTTP Response Status Code Is 404 @@ -226,7 +226,7 @@ TC_MEC_MEC015_SRV_MTS_004_NF [Documentation] ... Check that the IUT responds with an error ... when a request with an unknown resource URI is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 9.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.1 ... https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.yaml [Setup] Unregister from the MTS Service ${NOT_EXISTING_SESSION_ID} Retrieve single MTS session ${NOT_EXISTING_SESSION_ID} @@ -237,9 +237,9 @@ TC_MEC_MEC015_SRV_MTS_005_OK [Documentation] ... Check that the IUT updates the information about an individual MTS session ... when commanded by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.9 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.4.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.9 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.2 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / Set Suite Variable ${SESSION_ID} ${elements}[3] @@ -260,9 +260,9 @@ TC_MEC_MEC015_SRV_MTS_005_OK TC_MEC_MEC015_SRV_MTS_005_BR [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.9 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.4.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.9 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.2 ... https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.yaml [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / @@ -275,9 +275,9 @@ TC_MEC_MEC015_SRV_MTS_005_BR TC_MEC_MEC015_SRV_MTS_005_NF [Documentation] ... Check that the IUT responds with an error when a request with an unknown resource URI is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.9 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.4.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.9 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.2 ... https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.yaml #[Setup] Unregister from the MTS Service ${NOT_EXISTING_SESSION_ID} Update requested requirements on the MTS Service ${NOT_EXISTING_SESSION_ID} MtsSessionInfoApplicationSpecificUpdate @@ -289,9 +289,9 @@ TC_MEC_MEC015_SRV_MTS_006_OK ... Check that the IUT deregisters a MTS session ... when commanded by a MEC Application ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.8 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.4.3.3 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.8 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.3 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / Set Suite Variable ${SESSION_ID} ${elements}[3] @@ -303,9 +303,9 @@ TC_MEC_MEC015_SRV_MTS_006_NF ... Check that the IUT deregisters a MTS session ... when commanded by a MEC Application ... - ... ETSI GS MEC 015 V2.2.1, clause 6.2.8 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 9.4.3.3 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.8 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.3 [Setup] Unregister from the MTS Service ${NOT_EXISTING_SESSION_ID} Unregister from the MTS Service ${NOT_EXISTING_SESSION_ID} Check HTTP Response Status Code Is 404 diff --git a/MEC015/SRV/TM/TrafficManagement.robot b/MEC015/SRV/TM/TrafficManagement.robot index 18d908a..184f810 100644 --- a/MEC015/SRV/TM/TrafficManagement.robot +++ b/MEC015/SRV/TM/TrafficManagement.robot @@ -15,9 +15,9 @@ TC_MEC_MEC015_SRV_TM_001_OK_01 [Documentation] ... Check that the IUT responds with the list of configured bandwidth allocations ... when queried by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.1 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Retrieve the list of configured bandwidth allocations Check HTTP Response Status Code Is 200 @@ -29,9 +29,9 @@ TC_MEC_MEC015_SRV_TM_001_OK_02 [Documentation] ... Check that the IUT responds with the list of configured bandwidth allocations ... when queried by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.1 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Retrieve the list of configured bandwidth using filter ${CORRECT_FILTER} ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 200 @@ -48,9 +48,9 @@ TC_MEC_MEC015_SRV_TM_001_OK_03 [Documentation] ... Check that the IUT responds with a configured bandwidth allocation ... when queried by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.1 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Retrieve the list of configured bandwidth using filter ${APP_NAME_FILTER} ${APP_NAME} Check HTTP Response Status Code Is 200 @@ -61,9 +61,9 @@ TC_MEC_MEC015_SRV_TM_001_OK_04 [Documentation] ... Check that the IUT responds with a configured bandwidth allocation ... when queried by a MEC Application - session_id - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.1 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Retrieve the list of configured bandwidth using filter ${SESSION_ID_FILTER} ${SESSION_ID} Check HTTP Response Status Code Is 200 @@ -76,7 +76,7 @@ TC_MEC_MEC015_SRV_TM_001_BR [Documentation] ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application - ... Reference ETSI GS MEC 015 V2.2.1, clause 8.4.3.1 + ... Reference ETSI GS MEC 015 v3.1.1, clause 8.4.3.1 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Retrieve the list of configured bandwidth using filter ${BAD_FILTER} ${APP_INSTANCE_ID} @@ -88,9 +88,9 @@ TC_MEC_MEC015_SRV_TM_001_NF_01 [Documentation] ... Check that the IUT responds with an error when ... a request with an unknown resource URI is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.1 Retrieve the list of configured bandwidth using filter ${CORRECT_FILTER} ${NON_EXISTENT_APP_INSTANCE_ID} Check HTTP Response Status Code Is 404 @@ -98,9 +98,9 @@ TC_MEC_MEC015_SRV_TM_001_NF_02 [Documentation] ... Check that the IUT responds with an error ... when a request with an unknown resource URI is sent by a MEC Application - app_name - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.1 Retrieve the list of configured bandwidth using filter ${APP_NAME_FILTER} ${NON_EXISTENT_APP_NAME} Check HTTP Response Status Code Is 404 @@ -108,9 +108,9 @@ TC_MEC_MEC015_SRV_TM_001_NF_03 [Documentation] ... Check that the IUT responds with an error ... when a request with an unknown resource URI is sent by a MEC Application - session_id - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.1 Retrieve the list of configured bandwidth using filter ${SESSION_ID_FILTER} ${NON_EXISTENT_SESSION_ID} Check HTTP Response Status Code Is 404 @@ -118,9 +118,9 @@ TC_MEC_MEC015_SRV_TM_001_NF_03 TC_MEC_MEC015_SRV_TM_002_OK [Documentation] ... Check that the IUT acknowledges a creation of a bandwidthAllocation resource - ... ETSI GS MEC 015 V2.2.1, clause 6.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2, - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.4 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.4 [Setup] Create new App Instance CreateAppInstanceRequest Registration for bandwidth services ${APP_INSTANCE_ID} BwInfoApplicationSpecific Check HTTP Response Status Code Is 201 @@ -140,7 +140,7 @@ TC_MEC_MEC015_SRV_TM_002_BR_01 [Documentation] ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.4 + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.4 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json [Setup] Create new App Instance CreateAppInstanceRequest Registration for bandwidth services ${APP_INSTANCE_ID} BwInfo_BR @@ -151,7 +151,7 @@ TC_MEC_MEC015_SRV_TM_002_BR_02 [Documentation] ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 8.4.3.4 + ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.4 ... Reference https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.json [Setup] Create new App Instance CreateAppInstanceRequest Registration for bandwidth services ${APP_INSTANCE_ID} BwInfo_BR2 @@ -164,9 +164,9 @@ TC_MEC_MEC015_SRV_TM_003_OK [Documentation] ... Check that the IUT responds with the configured bandwidth allocation ... when queried by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.1 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Get a bandwidth allocation ${ALLOCATION_ID} Check HTTP Response Status Code Is 200 @@ -179,9 +179,9 @@ TC_MEC_MEC015_SRV_TM_003_NF [Documentation] ... Check that the IUT responds with an error ... when a request for an unknown URI is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.5 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.1 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.5 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.1 [Setup] Unregister Bandwidth Management Service ${NON_EXISTENT_ALLOCATION_ID} Get a bandwidth allocation ${NON_EXISTENT_ALLOCATION_ID} Check HTTP Response Status Code Is 404 @@ -192,9 +192,9 @@ TC_MEC_MEC015_SRV_TM_004_OK [Documentation] ... Check that the IUT updates the requested bandwidth requirements ... when commanded by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.4 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.2 #[Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Update a bandwidth allocation ${ALLOCATION_ID} BwInfoUpdate ${appInsId} Get value entry from JSON file BwInfoUpdate appInsId @@ -211,9 +211,9 @@ TC_MEC_MEC015_SRV_TM_004_OK TC_MEC_MEC015_SRV_TM_004_BR_01 [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.4 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.2 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Update a bandwidth allocation ${ALLOCATION_ID} BwInfoUpdate_BR Check HTTP Response Status Code Is 400 @@ -223,9 +223,9 @@ TC_MEC_MEC015_SRV_TM_004_BR_01 TC_MEC_MEC015_SRV_TM_004_BR_02 [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.4 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.2 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Update a bandwidth allocation ${ALLOCATION_ID} BwInfoUpdate_BR2 Check HTTP Response Status Code Is 400 @@ -235,9 +235,9 @@ TC_MEC_MEC015_SRV_TM_004_BR_02 TC_MEC_MEC015_SRV_TM_004_NF [Documentation] ... Check that the IUT responds with an error when a request sent by a MEC Application doesn't comply with a required condition - ... ETSI GS MEC 015 V2.2.1, clause 6.2.4 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.2 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.2 #[Setup] Delete APP Instance ${NON_EXISTENT_ALLOCATION_ID} Update a bandwidth allocation ${NON_EXISTENT_ALLOCATION_ID} BwInfoUpdate @@ -248,9 +248,9 @@ TC_MEC_MEC015_SRV_TM_005_OK [Documentation] ... Check that the IUT when provided with just the changes (deltas) ... updates the requested bandwidth requirements when commanded by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.4 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.3 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.3 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Request a deltas changes ${ALLOCATION_ID} BwInfoDeltas @@ -268,9 +268,9 @@ TC_MEC_MEC015_SRV_TM_005_BR_01 [Documentation] ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.4 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.3 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.3 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Request a deltas changes ${ALLOCATION_ID} BwInfoDeltas_BR Check HTTP Response Status Code Is 400 @@ -279,9 +279,9 @@ TC_MEC_MEC015_SRV_TM_005_BR_02 [Documentation] ... Check that the IUT responds with an error ... when a request with incorrect parameters is sent by a MEC Application - sessionFilter shall be present - ... ETSI GS MEC 015 V2.2.1, clause 6.2.4 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.3 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.3 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Request a deltas changes ${ALLOCATION_ID} BwInfoDeltas_BR2 Check HTTP Response Status Code Is 400 @@ -290,9 +290,9 @@ TC_MEC_MEC015_SRV_TM_005_BR_02 TC_MEC_MEC015_SRV_TM_005_NF [Documentation] ... Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.4 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.3 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.3 [Setup] Delete APP Instance ${NON_EXISTENT_ALLOCATION_ID} Request a deltas changes ${NON_EXISTENT_ALLOCATION_ID} BwInfoDeltas Check HTTP Response Status Code Is 404 @@ -301,9 +301,9 @@ TC_MEC_MEC015_SRV_TM_005_NF TC_MEC_MEC015_SRV_TM_006_OK [Documentation] ... Check that the IUT unregisters from the Bandwidth Management Service when commanded by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.3 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.5 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.3 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.5 [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Unregister Bandwidth Management Service ${ALLOCATION_ID} Check HTTP Response Status Code Is 204 @@ -312,9 +312,9 @@ TC_MEC_MEC015_SRV_TM_006_OK TC_MEC_MEC015_SRV_TM_006_NF [Documentation] ... Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application - ... ETSI GS MEC 015 V2.2.1, clause 6.2.3 - ... ETSI GS MEC 015 V2.2.1, clause 7.2.2 - ... ETSI GS MEC 015 V2.2.1, clause 8.3.3.5 + ... ETSI GS MEC 015 v3.1.1, clause 6.2.3 + ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 + ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.5 [Setup] Unregister Bandwidth Management Service ${NON_EXISTENT_ALLOCATION_ID} Unregister Bandwidth Management Service ${NON_EXISTENT_ALLOCATION_ID} Check HTTP Response Status Code Is 404 -- GitLab From c863e7198305d9e997460c1de722ad988fb1b413 Mon Sep 17 00:00:00 2001 From: Muhammad Umair Khan Date: Mon, 3 Mar 2025 10:15:18 +0500 Subject: [PATCH 03/55] update MEC 016 reference version from v2.2.1 to v3.1.1 --- MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot | 16 ++++++++-------- .../MEO/UEAPPLOC/SysUeApplicationsLocation.robot | 6 +++--- MEC016/MEO/UEAPPS/SysUeApplications.robot | 8 ++++---- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot b/MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot index 5766d4b..736322e 100644 --- a/MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot +++ b/MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot @@ -14,7 +14,7 @@ Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_v TC_MEC_MEC016_MEO_UEAPPCTX_001_OK [Documentation] ... Check that the IUT acknowledges the creation of the application context when requested by an UE Application - ... Reference ETSI GS MEC 016 v2.2.1, clause 7.4.3.4 + ... Reference ETSI GS MEC 016 v3.1.1, clause 7.4.3.4 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -31,7 +31,7 @@ TC_MEC_MEC016_MEO_UEAPPCTX_001_OK TC_MEC_MEC016_MEO_UEAPPCTX_001_BR [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... Reference ETSI GS MEC 016 v2.2.1, clause 7.4.3.4 + ... Reference ETSI GS MEC 016 v3.1.1, clause 7.4.3.4 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -42,7 +42,7 @@ TC_MEC_MEC016_MEO_UEAPPCTX_001_BR TC_MEC_MEC016_MEO_UEAPPCTX_001_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect URL is sent by a MEC Application - ... Reference ETSI GS MEC 016 v2.2.1, clause 7.4.3.4 + ... Reference ETSI GS MEC 016 v3.1.1, clause 7.4.3.4 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -53,7 +53,7 @@ TC_MEC_MEC016_MEO_UEAPPCTX_001_NF TC_MEC_MEC016_MEO_UEAPPCTX_002_OK [Documentation] ... Check that the IUT updates the application callback reference when commanded by an UE Application - ... Reference ETSI GS MEC 016 v2.2.1, clause 7.5.3.2 + ... Reference ETSI GS MEC 016 v3.1.1, clause 7.5.3.2 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -71,7 +71,7 @@ TC_MEC_MEC016_MEO_UEAPPCTX_002_OK TC_MEC_MEC016_MEO_UEAPPCTX_002_BR [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... Reference ETSI GS MEC 016 v2.2.1, clause 7.5.3.2 + ... Reference ETSI GS MEC 016 v3.1.1, clause 7.5.3.2 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -88,7 +88,7 @@ TC_MEC_MEC016_MEO_UEAPPCTX_002_BR TC_MEC_MEC016_MEO_UEAPPCTX_002_NF [Documentation] ... Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application - ... Reference ETSI GS MEC 016 2.2.1, clause 7.5.3.2 + ... Reference ETSI GS MEC 016 3.1.1, clause 7.5.3.2 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml # Preamble Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -101,7 +101,7 @@ TC_MEC_MEC016_MEO_UEAPPCTX_002_NF TC_MEC_MEC016_MEO_UEAPPCTX_003_OK [Documentation] ... Check that the IUT deletes the application context when commanded by an UE Application - ... Reference ETSI GS MEC 016 2.2.1, clause 7.5.3.5 + ... Reference ETSI GS MEC 016 3.1.1, clause 7.5.3.5 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/AppContext # Preamble Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -117,7 +117,7 @@ TC_MEC_MEC016_MEO_UEAPPCTX_003_OK TC_MEC_MEC016_MEO_UEAPPCTX_003_NF [Documentation] ... Check that the IUT deletes the application context when commanded by an UE Application - ... Reference ETSI GS MEC 016 2.2.1, clause 7.5.3.5 + ... Reference ETSI GS MEC 016 3.1.1, clause 7.5.3.5 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/AppContext # Preamble Should Be True ${PIC_MEC_SYSTEM} == 1 diff --git a/MEC016/MEO/UEAPPLOC/SysUeApplicationsLocation.robot b/MEC016/MEO/UEAPPLOC/SysUeApplicationsLocation.robot index 34a03d6..e58b290 100644 --- a/MEC016/MEO/UEAPPLOC/SysUeApplicationsLocation.robot +++ b/MEC016/MEO/UEAPPLOC/SysUeApplicationsLocation.robot @@ -13,7 +13,7 @@ Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_v TP_MEC_MEC016_MEO_UEAPPLOC_001_OK [Documentation] ... Check that the IUT sends the locations available for instantiation of a specific user application when requested by an UE Application - ... Reference ETSI GS MEC 016 2.2.1, clause 7.6.3.4 + ... Reference ETSI GS MEC 016 3.1.1, clause 7.6.3.4 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/ApplicationList Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -26,7 +26,7 @@ TP_MEC_MEC016_MEO_UEAPPLOC_001_OK TP_MEC_MEC016_MEO_UEAPPLOC_001_BR [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... Reference ETSI GS MEC 016 2.2.1, clause 7.6.3.4 + ... Reference ETSI GS MEC 016 3.1.1, clause 7.6.3.4 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/ApplicationList Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -37,7 +37,7 @@ TP_MEC_MEC016_MEO_UEAPPLOC_001_BR TP_MEC_MEC016_MEO_UEAPPCTX_001_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect URL is sent by a MEC Application - ... Reference ETSI GS MEC 016 2.2.1, clause 7.6.3.4 + ... Reference ETSI GS MEC 016 3.1.1, clause 7.6.3.4 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/ApplicationList Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 diff --git a/MEC016/MEO/UEAPPS/SysUeApplications.robot b/MEC016/MEO/UEAPPS/SysUeApplications.robot index 8b9f1e6..f001b08 100644 --- a/MEC016/MEO/UEAPPS/SysUeApplications.robot +++ b/MEC016/MEO/UEAPPS/SysUeApplications.robot @@ -14,7 +14,7 @@ Library REST ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT} ssl_v TP_MEC_MEC016_MEO_UEAPPS_001_OK [Documentation] ... Check that the IUT responds with the list of user applications available when requested by an UE Application - ... Reference ETSI GS MEC 016 v2.2.1, clause 7.3.3.1 + ... Reference ETSI GS MEC 016 v3.1.1, clause 7.3.3.1 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/ApplicationList Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -31,7 +31,7 @@ TP_MEC_MEC016_MEO_UEAPPS_001_OK TP_MEC_MEC016_MEO_UEAPPS_001_NF [Documentation] ... Check that the IUT responds with an error when a request for an unknown URI is sent by a MEC Application - ... Reference ETSI GS MEC 016 v2.2.1, clause 7.3.3.1 + ... Reference ETSI GS MEC 016 v3.1.1, clause 7.3.3.1 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/ApplicationList Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -42,7 +42,7 @@ TP_MEC_MEC016_MEO_UEAPPS_001_NF TP_MEC_MEC016_MEO_UEAPPS_002_OK [Documentation] ... Check that the IUT responds with the list of user applications available when requested by an UE Application - ... Reference ETSI GS MEC 016 2.2.1, clause 7.3.3.1 + ... Reference ETSI GS MEC 016 3.1.1, clause 7.3.3.1 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/ApplicationList Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -58,7 +58,7 @@ TP_MEC_MEC016_MEO_UEAPPS_002_OK TP_MEC_MEC016_MEO_UEAPPS_002_BR [Documentation] ... Check that the IUT responds with the list of user applications available when requested by an UE Application - ... Reference ETSI GS MEC 016 2.2.1, clause 7.3.3.1 + ... Reference ETSI GS MEC 016 3.1.1, clause 7.3.3.1 ... Reference https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/blob/master/UEAppInterfaceApi.yaml#/definitions/ApplicationList Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 -- GitLab From a332bb4bb4cbfb84fea85d62122e9955931df7b5 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Wed, 9 Apr 2025 12:46:47 +0500 Subject: [PATCH 04/55] add onboarding state onboarded variable --- MEC010p2/MEO/PKGM/environment/variables.txt | 1 + MEC010p2/MEPM/PKGM/environment/variables.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/MEC010p2/MEO/PKGM/environment/variables.txt b/MEC010p2/MEO/PKGM/environment/variables.txt index e377698..4917dbd 100644 --- a/MEC010p2/MEO/PKGM/environment/variables.txt +++ b/MEC010p2/MEO/PKGM/environment/variables.txt @@ -23,6 +23,7 @@ ${APP_NAME} appName ${CHECKSUM} SHA-256 ${OPERATIONAL_STATE} ENABLED ${ONBOARDING_STATE} CREATED +${ONBOARDING_STATE_ONBOARDED} ONBOARDED ${USAGE_STATE} NOT_IN_USE ${APP_PKG_ID} 01234782-2c70-4e47-9a4e-0ee3a1a00123 ${ON_BOARDED_APP_PKG_ID} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f diff --git a/MEC010p2/MEPM/PKGM/environment/variables.txt b/MEC010p2/MEPM/PKGM/environment/variables.txt index fa58be8..3c8e44d 100644 --- a/MEC010p2/MEPM/PKGM/environment/variables.txt +++ b/MEC010p2/MEPM/PKGM/environment/variables.txt @@ -24,6 +24,7 @@ ${NON_EXISTENT_APP_PKG_ID} NON_EXISTENT_APP_PKG_ID ${NON_EXISTENT_SUBSCRIPTION_ID} NON_EXISTENT_SUBSCRIPTION_ID ${NON_EXISTENT_APPD_ID} NON_EXISTENT_APPD_ID ${ONBOARDING_STATE} CREATED +${ONBOARDING_STATE_ONBOARDED} ONBOARDED ##Notification Server variables -- GitLab From cdeb7fd2b309658b02267cc11e97bbebf52cf659 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Wed, 9 Apr 2025 12:48:56 +0500 Subject: [PATCH 05/55] add function for getting all onboarded app packages --- MEC010p2/MEPM/PKGM/AppPkgMgt.robot | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/MEC010p2/MEPM/PKGM/AppPkgMgt.robot b/MEC010p2/MEPM/PKGM/AppPkgMgt.robot index 711a7e5..cc191af 100644 --- a/MEC010p2/MEPM/PKGM/AppPkgMgt.robot +++ b/MEC010p2/MEPM/PKGM/AppPkgMgt.robot @@ -388,6 +388,15 @@ GET all app Packages ${output}= Output response Set Suite Variable ${response} ${output} +GET all onboarded app Packages + Log Getting all App Packages + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/onboarded_app_packages + ${output}= Output response + Set Suite Variable ${response} ${output} + GET all app Packages with filter [Arguments] ${key} ${value} Log Getting all App Packages using filtering parameters -- GitLab From b017d52fcf97c15a6c038aa5a9f96e204b86eece Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Wed, 9 Apr 2025 12:51:52 +0500 Subject: [PATCH 06/55] add schema for onboarded AppPkgInfo data model --- .../schemas/OnboardedAppPkgInfo.schema.json | 169 ++++++++++++++++++ .../schemas/OnboardedAppPkgInfo.schema.json | 169 ++++++++++++++++++ 2 files changed, 338 insertions(+) create mode 100644 MEC010p2/MEO/PKGM/schemas/OnboardedAppPkgInfo.schema.json create mode 100644 MEC010p2/MEPM/PKGM/schemas/OnboardedAppPkgInfo.schema.json diff --git a/MEC010p2/MEO/PKGM/schemas/OnboardedAppPkgInfo.schema.json b/MEC010p2/MEO/PKGM/schemas/OnboardedAppPkgInfo.schema.json new file mode 100644 index 0000000..3a9a469 --- /dev/null +++ b/MEC010p2/MEO/PKGM/schemas/OnboardedAppPkgInfo.schema.json @@ -0,0 +1,169 @@ +{ + "description": "'The data type AppPkgInfo represents the parameters for an application package resource'", + "type": "object", + "required": [ + "id", + "appDId", + "appName", + "appSoftwareVersion", + "appDVersion", + "checksum", + "softwareImages", + "onboardingState", + "operationalState", + "usageState", + "mecInfo", + "_links" + ], + "properties": { + "id": { + "description": "Identifier of the onboarded application package.", + "type": "string" + }, + "appDId": { + "description": "Identifier of this MEC application descriptor. This attribute shall be globally unique.", + "type": "string" + }, + "appProvider": { + "description": "Provider of the application and of the AppD.", + "type": "string" + }, + "appName": { + "description": "Name to identify the MEC application.", + "type": "string" + }, + "appSoftwareVersion": { + "description": "Software version of the application. This is updated when there is any change to the software in the onboarded application package.", + "type": "string" + }, + "appDVersion": { + "description": "Identifies the version of the application descriptor.", + "type": "string" + }, + "checksum": { + "description": "", + "properties": { + "algorithm": { + "description": " Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.", + "type": "string" + }, + "hash": { + "description": "'String 1 The hexadecimal value of the checksum'", + "type": "string" + } + }, + "required": [ + "algorithm", + "hash" + ], + "type": "object" + }, + "softwareImages": { + "description": "Information of application software image in application package. Type is TBD" + }, + "additionalArtifacts": { + "description": "Additional information of application package artifacts that are not application software images. Type is TBD" + }, + "onboardingState": { + "description": "Onboarding state of application package", + "type": "string", + "format": "enum", + "enum": [ + "CREATED", + "UPLOADING", + "PROCESSING", + "ONBOARDED" + ] + }, + "operationalState": { + "description": "Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.", + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "usageState": { + "description": "Usage state of the onboarded instance of the application package", + "type": "string", + "format": "enum", + "enum": [ + "IN_USE", + "NOT_IN_USE" + ] + }, + "mecInfo": { + "description": "", + "type": "array", + "items": { + "type": "string" + } + }, + + + "userDefinedData": { + "description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'", + "type": "object", + "additionalProperties": true + }, + "_links": { + "description": "Links to resources related to this resource.", + "type": "object", + "required": [ + "self", + "appD", + "appPkgContent" + ], + "properties": { + "self": { + "properties": { + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + }, + "appD": { + "properties": { + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + }, + "appPkgContent": { + "properties": { + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + } + } + } + } +} \ No newline at end of file diff --git a/MEC010p2/MEPM/PKGM/schemas/OnboardedAppPkgInfo.schema.json b/MEC010p2/MEPM/PKGM/schemas/OnboardedAppPkgInfo.schema.json new file mode 100644 index 0000000..3a9a469 --- /dev/null +++ b/MEC010p2/MEPM/PKGM/schemas/OnboardedAppPkgInfo.schema.json @@ -0,0 +1,169 @@ +{ + "description": "'The data type AppPkgInfo represents the parameters for an application package resource'", + "type": "object", + "required": [ + "id", + "appDId", + "appName", + "appSoftwareVersion", + "appDVersion", + "checksum", + "softwareImages", + "onboardingState", + "operationalState", + "usageState", + "mecInfo", + "_links" + ], + "properties": { + "id": { + "description": "Identifier of the onboarded application package.", + "type": "string" + }, + "appDId": { + "description": "Identifier of this MEC application descriptor. This attribute shall be globally unique.", + "type": "string" + }, + "appProvider": { + "description": "Provider of the application and of the AppD.", + "type": "string" + }, + "appName": { + "description": "Name to identify the MEC application.", + "type": "string" + }, + "appSoftwareVersion": { + "description": "Software version of the application. This is updated when there is any change to the software in the onboarded application package.", + "type": "string" + }, + "appDVersion": { + "description": "Identifies the version of the application descriptor.", + "type": "string" + }, + "checksum": { + "description": "", + "properties": { + "algorithm": { + "description": " Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.", + "type": "string" + }, + "hash": { + "description": "'String 1 The hexadecimal value of the checksum'", + "type": "string" + } + }, + "required": [ + "algorithm", + "hash" + ], + "type": "object" + }, + "softwareImages": { + "description": "Information of application software image in application package. Type is TBD" + }, + "additionalArtifacts": { + "description": "Additional information of application package artifacts that are not application software images. Type is TBD" + }, + "onboardingState": { + "description": "Onboarding state of application package", + "type": "string", + "format": "enum", + "enum": [ + "CREATED", + "UPLOADING", + "PROCESSING", + "ONBOARDED" + ] + }, + "operationalState": { + "description": "Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.", + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "usageState": { + "description": "Usage state of the onboarded instance of the application package", + "type": "string", + "format": "enum", + "enum": [ + "IN_USE", + "NOT_IN_USE" + ] + }, + "mecInfo": { + "description": "", + "type": "array", + "items": { + "type": "string" + } + }, + + + "userDefinedData": { + "description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'", + "type": "object", + "additionalProperties": true + }, + "_links": { + "description": "Links to resources related to this resource.", + "type": "object", + "required": [ + "self", + "appD", + "appPkgContent" + ], + "properties": { + "self": { + "properties": { + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + }, + "appD": { + "properties": { + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + }, + "appPkgContent": { + "properties": { + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + } + } + } + } +} \ No newline at end of file -- GitLab From 60b60aec8b72d76e782940347f57655bc2047ed4 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Wed, 9 Apr 2025 12:54:26 +0500 Subject: [PATCH 07/55] update schema of AppPkgInfo data model --- .../MEO/PKGM/schemas/AppPkgInfo.schema.json | 31 --- .../MEPM/PKGM/schemas/AppPkgInfo.schema.json | 259 ++++++++---------- 2 files changed, 109 insertions(+), 181 deletions(-) diff --git a/MEC010p2/MEO/PKGM/schemas/AppPkgInfo.schema.json b/MEC010p2/MEO/PKGM/schemas/AppPkgInfo.schema.json index 06783a7..ca194e5 100644 --- a/MEC010p2/MEO/PKGM/schemas/AppPkgInfo.schema.json +++ b/MEC010p2/MEO/PKGM/schemas/AppPkgInfo.schema.json @@ -3,12 +3,7 @@ "type": "object", "required": [ "id", - "appDId", - "appName", - "appSoftwareVersion", - "appDVersion", "checksum", - "softwareImages", "onboardingState", "operationalState", "usageState", @@ -19,26 +14,6 @@ "description": "Identifier of the onboarded application package.", "type": "string" }, - "appDId": { - "description": "Identifier of this MEC application descriptor. This attribute shall be globally unique.", - "type": "string" - }, - "appProvider": { - "description": "Provider of the application and of the AppD.", - "type": "string" - }, - "appName": { - "description": "Name to identify the MEC application.", - "type": "string" - }, - "appSoftwareVersion": { - "description": "Software version of the application. This is updated when there is any change to the software in the onboarded application package.", - "type": "string" - }, - "appDVersion": { - "description": "Identifies the version of the application descriptor.", - "type": "string" - }, "checksum": { "description": "", "properties": { @@ -57,12 +32,6 @@ ], "type": "object" }, - "softwareImages": { - "description": "Information of application software image in application package. Type is TBD" - }, - "additionalArtifacts": { - "description": "Additional information of application package artifacts that are not application software images. Type is TBD" - }, "onboardingState": { "description": "Onboarding state of application package", "type": "string", diff --git a/MEC010p2/MEPM/PKGM/schemas/AppPkgInfo.schema.json b/MEC010p2/MEPM/PKGM/schemas/AppPkgInfo.schema.json index 3a9a469..9bd4a5b 100644 --- a/MEC010p2/MEPM/PKGM/schemas/AppPkgInfo.schema.json +++ b/MEC010p2/MEPM/PKGM/schemas/AppPkgInfo.schema.json @@ -2,168 +2,127 @@ "description": "'The data type AppPkgInfo represents the parameters for an application package resource'", "type": "object", "required": [ - "id", - "appDId", - "appName", - "appSoftwareVersion", - "appDVersion", - "checksum", - "softwareImages", - "onboardingState", - "operationalState", - "usageState", - "mecInfo", - "_links" + "id", + "checksum", + "onboardingState", + "operationalState", + "usageState", + "_links" ], "properties": { - "id": { - "description": "Identifier of the onboarded application package.", + "id": { + "description": "Identifier of the onboarded application package.", + "type": "string" + }, + "checksum": { + "description": "", + "properties": { + "algorithm": { + "description": " Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.", "type": "string" - }, - "appDId": { - "description": "Identifier of this MEC application descriptor. This attribute shall be globally unique.", - "type": "string" - }, - "appProvider": { - "description": "Provider of the application and of the AppD.", - "type": "string" - }, - "appName": { - "description": "Name to identify the MEC application.", - "type": "string" - }, - "appSoftwareVersion": { - "description": "Software version of the application. This is updated when there is any change to the software in the onboarded application package.", + }, + "hash": { + "description": "'String 1 The hexadecimal value of the checksum'", "type": "string" + } }, - "appDVersion": { - "description": "Identifies the version of the application descriptor.", - "type": "string" - }, - "checksum": { - "description": "", + "required": [ + "algorithm", + "hash" + ], + "type": "object" + }, + "onboardingState": { + "description": "Onboarding state of application package", + "type": "string", + "format": "enum", + "enum": [ + "CREATED", + "UPLOADING", + "PROCESSING", + "ONBOARDED" + ] + }, + "operationalState": { + "description": "Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.", + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "usageState": { + "description": "Usage state of the onboarded instance of the application package", + "type": "string", + "format": "enum", + "enum": [ + "IN_USE", + "NOT_IN_USE" + ] + }, + "userDefinedData": { + "description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'", + "type": "object", + "additionalProperties": true + }, + "_links": { + "description": "Links to resources related to this resource.", + "type": "object", + "required": [ + "self", + "appD", + "appPkgContent" + ], + "properties": { + "self": { "properties": { - "algorithm": { - "description": " Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.", - "type": "string" - }, - "hash": { - "description": "'String 1 The hexadecimal value of the checksum'", - "type": "string" - } + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } }, "required": [ - "algorithm", - "hash" + "href" ], - "type": "object" - }, - "softwareImages": { - "description": "Information of application software image in application package. Type is TBD" - }, - "additionalArtifacts": { - "description": "Additional information of application package artifacts that are not application software images. Type is TBD" - }, - "onboardingState": { - "description": "Onboarding state of application package", - "type": "string", - "format": "enum", - "enum": [ - "CREATED", - "UPLOADING", - "PROCESSING", - "ONBOARDED" - ] - }, - "operationalState": { - "description": "Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ] - }, - "usageState": { - "description": "Usage state of the onboarded instance of the application package", - "type": "string", - "format": "enum", - "enum": [ - "IN_USE", - "NOT_IN_USE" - ] - }, - "mecInfo": { - "description": "", - "type": "array", - "items": { - "type": "string" - } - }, - - - "userDefinedData": { - "description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'", - "type": "object", - "additionalProperties": true - }, - "_links": { - "description": "Links to resources related to this resource.", "type": "object", + "x-etsi-ref": "6.5.2" + }, + "appD": { + "properties": { + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } + }, "required": [ - "self", - "appD", - "appPkgContent" + "href" ], + "type": "object", + "x-etsi-ref": "6.5.2" + }, + "appPkgContent": { "properties": { - "self": { - "properties": { - "href": { - "description": "URI referring to a resource", - "format": "uri", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "URI" - } - }, - "required": [ - "href" - ], - "type": "object", - "x-etsi-ref": "6.5.2" - }, - "appD": { - "properties": { - "href": { - "description": "URI referring to a resource", - "format": "uri", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "URI" - } - }, - "required": [ - "href" - ], - "type": "object", - "x-etsi-ref": "6.5.2" - }, - "appPkgContent": { - "properties": { - "href": { - "description": "URI referring to a resource", - "format": "uri", - "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "URI" - } - }, - "required": [ - "href" - ], - "type": "object", - "x-etsi-ref": "6.5.2" - } - } + "href": { + "description": "URI referring to a resource", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.5.2" + } } + } } -} \ No newline at end of file + } \ No newline at end of file -- GitLab From 8ff17a116a026165ea8903d26af8a6139df11dfc Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Wed, 9 Apr 2025 12:56:37 +0500 Subject: [PATCH 08/55] update schema of appD data model as per v3.2.1 --- MEC010p2/MEO/PKGM/schemas/AppD.schema.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/MEC010p2/MEO/PKGM/schemas/AppD.schema.json b/MEC010p2/MEO/PKGM/schemas/AppD.schema.json index c322452..fc7a9c8 100644 --- a/MEC010p2/MEO/PKGM/schemas/AppD.schema.json +++ b/MEC010p2/MEO/PKGM/schemas/AppD.schema.json @@ -554,9 +554,6 @@ "x-etsi-mec-cardinality": "1", "x-etsi-mec-origin-type": "String" }, - "tunnelSpecificData": { - "type": "string" - }, "tunnelSrcAddress": { "description": "Source address of the tunnel.", "type": "string", @@ -612,6 +609,14 @@ "x-etsi-mec-cardinality": "0..1", "x-etsi-mec-origin-type": "Int" }, + "direction": { + "description": "Identifies the direction of the data flow when the value of 'filterType' is 'per FLOW'. See note. Permitted values: 00= Downlink (towards the UE), 01 = Uplink (away from the UE)", + "type": "string", + "enum": [ + "00", + "01" + ] + }, "dstAddress": { "description": "A IP address or a range of IP addresses.For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses.For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.", "items": { @@ -748,7 +753,8 @@ "action" ], "type": "object", - "x-etsi-ref": "6.2.1.9" + "x-etsi-ref": "6.2.1.9", + "x-etsi-notes": "NOTE:\tWhen direction, srcAddress, dstAddress, srcPort, dstPort and protocol are combined to describe a IP flow traffic filter which is transferred to 5G core network by MEC system, this group of attributes follows the rules specified in the clause 5.3.8 of ETSI TS 129 214 [22]." }, "minItems": 0, "type": "array", -- GitLab From 86422b9c9e92941bbce2f8dd417300fee67507a0 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Wed, 9 Apr 2025 13:03:03 +0500 Subject: [PATCH 09/55] update AppPkgInfo retrieval tests by splitting schemas based on onboardingState --- MEC010p2/MEO/PKGM/AppPkgMgt.robot | 8 ++++---- MEC010p2/MEPM/PKGM/AppPkgMgt.robot | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/MEC010p2/MEO/PKGM/AppPkgMgt.robot b/MEC010p2/MEO/PKGM/AppPkgMgt.robot index 67ab59a..f09af11 100644 --- a/MEC010p2/MEO/PKGM/AppPkgMgt.robot +++ b/MEC010p2/MEO/PKGM/AppPkgMgt.robot @@ -58,7 +58,7 @@ TC_MEC_MEC010p2_MEO_PKGM_002_01_OK TC_MEC_MEC010p2_MEO_PKGM_002_02_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_002_02_OK - ... Check that MEO returns the list of App Packages when requested - Note 3 + ... Check that MEO returns the list of on-boarded App Packages when requested - Note 3 ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.2 ... ETSI GS MEC 010-2 3.1.1, Table 6.2.3.3.2 Note 3 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS @@ -66,8 +66,8 @@ TC_MEC_MEC010p2_MEO_PKGM_002_02_OK GET all onboarded app Packages Check HTTP Response Status Code Is 200 FOR ${onBoardedAppPkgInfo} IN @{response['body']} - Validate Json AppPkgInfo.schema.json ${onBoardedAppPkgInfo} - Should Be Equal As Strings ${onBoardedAppPkgInfo['onboardingState']} ${ONBOARDING_STATE} + Validate Json OnboardedAppPkgInfo.schema.json ${onBoardedAppPkgInfo} + Should Be Equal As Strings ${onBoardedAppPkgInfo['onboardingState']} ${ONBOARDING_STATE_ONBOARDED} END [Teardown] Test TearDown ${setup_response['body']['id']} ${None} ${REMOVE_ACTION} @@ -106,7 +106,7 @@ TC_MEC_MEC010p2_MEO_PKGM_003_02_OK [Setup] Test Setup ${None} CreateAppPackage ${REGISTER_ACTION} GET an onboarded app Package identified by ${ON_BOARDED_APP_PKG_ID} Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is AppPkgInfo + Check HTTP Response Body Json Schema Is OnboardedAppPkgInfo Should Be Equal As Strings ${response['body']['id']} ${ON_BOARDED_APP_PKG_ID} [Teardown] Test TearDown ${setup_response['body']['id']} ${None} ${REMOVE_ACTION} diff --git a/MEC010p2/MEPM/PKGM/AppPkgMgt.robot b/MEC010p2/MEPM/PKGM/AppPkgMgt.robot index cc191af..5cfd565 100644 --- a/MEC010p2/MEPM/PKGM/AppPkgMgt.robot +++ b/MEC010p2/MEPM/PKGM/AppPkgMgt.robot @@ -38,14 +38,14 @@ TC_MEC_MEC010p2_MEPM_PKGM_001_02_OK Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} Set Suite Variable ${APPD_ID} ${response['body']['appDId']} - GET all app Packages + GET all onboarded app Packages Check HTTP Response Status Code Is 200 FOR ${onBoardedAppPkgInfo} IN @{response['body']} - Validate Json AppPkgInfo.schema.json ${onBoardedAppPkgInfo} + Validate Json OnboardedAppPkgInfo.schema.json ${onBoardedAppPkgInfo} Should Contain ${onBoardedAppPkgInfo['_links']['self']['href']} ${APP_PKG_ID} Should Contain ${onBoardedAppPkgInfo['_links']['appD']['href']} ${APPD_ID} Should Contain ${onBoardedAppPkgInfo['_links']['appPkgContent']['href']} ${APPD_ID} - Should Be Equal As Strings ${onBoardedAppPkgInfo['onboardingState']} ${ONBOARDING_STATE} + Should Be Equal As Strings ${onBoardedAppPkgInfo['onboardingState']} ${ONBOARDING_STATE_ONBOARDED} END [Teardown] Delete an individual APP Package identified by ID ${APP_PKG_ID} @@ -86,7 +86,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_002_01_OK TC_MEC_MEC010p2_MEPM_PKGM_002_02_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_002_02_OK - ... Check that MEPM returns the an App Package when requested - Note 3 + ... Check that MEPM returns the an on-boarded App Package when requested - Note 3 ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.2 ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.3.2 ##AppPkgInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS @@ -95,11 +95,11 @@ TC_MEC_MEC010p2_MEPM_PKGM_002_02_OK Set Suite Variable ${APPD_ID} ${response['body']['appDId']} Get an individual APP Package identified by ID ${APPD_ID} Check HTTP Response Status Code Is 200 - Validate Json AppPkgInfo.schema.json ${response['body']} + Validate Json OnboardedAppPkgInfo.schema.json ${response['body']} Should Contain ${response['body']['_links']['self']['href']} ${APP_PKG_ID} Should Contain ${response['body']['_links']['appD']['href']} ${APPD_ID} Should Contain ${response['body']['_links']['appPkgContent']['href']} ${APPD_ID} - Should Be Equal As Strings ${response['body']['onboardingState']} ${ONBOARDING_STATE} + Should Be Equal As Strings ${response['body']['onboardingState']} ${ONBOARDING_STATE_ONBOARDED} [Teardown] Delete an individual APP Package identified by ID ${APP_PKG_ID} -- GitLab From 77337fee6eb8ffc56be6e9565472c87f72ccfa60 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Wed, 9 Apr 2025 13:10:42 +0500 Subject: [PATCH 10/55] update MEC010-2 v3.1.1 to v3.2.1 --- MEC010p2/MEO/GRANT/Grant.robot | 40 ++-- MEC010p2/MEO/PKGM/AppPkgMgt.robot | 108 +++++------ MEC010p2/MEPM/LCM/PlatformConfiguration.robot | 12 +- MEC010p2/MEPM/PKGM/AppPkgMgt.robot | 64 +++---- MEC010p2/MEX/LCM/AppInstanceMgmt.robot | 172 +++++++++--------- 5 files changed, 198 insertions(+), 198 deletions(-) diff --git a/MEC010p2/MEO/GRANT/Grant.robot b/MEC010p2/MEO/GRANT/Grant.robot index 3c9fc0e..209aa2b 100644 --- a/MEC010p2/MEO/GRANT/Grant.robot +++ b/MEC010p2/MEO/GRANT/Grant.robot @@ -16,10 +16,10 @@ Test Teardown Test TearDown ${GRANT_ID_PLACEHOLDER} grantRequest ${ TC_MEC_MEC010p2_MEO_GRANT_001_OK [Documentation] TP_MEC_MEC010p2_MEO_GRANT_001_OK ... Check that MEO sends a synchronous grant response when a grant request is requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.5.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.2.2-1 (GrantRequest) - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.2.2-1 Note 2 (GrantRequest) - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.4.2-1 (Grant) + ... ETSI GS MEC 010-2 3.2.1, clause 7.5.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.2.2-1 (GrantRequest) + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.2.2-1 Note 2 (GrantRequest) + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.4.2-1 (Grant) [Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Create a GRANT request grantRequest Check HTTP Response Status Code Is 201 @@ -29,8 +29,8 @@ TC_MEC_MEC010p2_MEO_GRANT_001_OK TC_MEC_MEC010p2_MEO_GRANT_001_BR [Documentation] TP_MEC_MEC010p2_MEO_GRANT_001_BR ... Check that MEO responds with an error when it receives a malformed request when a new grant request is performed - ... ETSI GS MEC 010-2 3.1.1, clause 7.6.1.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.4.2-1 (Grant) + ... ETSI GS MEC 010-2 3.2.1, clause 7.6.1.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.4.2-1 (Grant) [Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Create a GRANT request grantBadRequest Check HTTP Response Status Code Is 400 @@ -38,9 +38,9 @@ TC_MEC_MEC010p2_MEO_GRANT_001_BR TC_MEC_MEC010p2_MEO_GRANT_002_OK [Documentation] TP_MEC_MEC010p2_MEO_GRANT_002_OK ... Check that MEO sends a synchronous grant response when a grant request is requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.5.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.2.2-1 //GrantRequest - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.4.2-1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.5.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.2.2-1 //GrantRequest + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.4.2-1 [Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Create a GRANT request grantRequest2 Check HTTP Response Status Code Is 201 @@ -51,10 +51,10 @@ TC_MEC_MEC010p2_MEO_GRANT_002_OK TC_MEC_MEC010p2_MEO_GRANT_003_OK [Documentation] TP_MEC_MEC010p2_MEO_GRANT_003_OK ... Check that MEO sends an asynchronous grant response when a grant request is requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.5.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.2.2-1 (GrantRequest) - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.2.2-1 Note 2 (GrantRequest) - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.4.2-1 (Grant) + ... ETSI GS MEC 010-2 3.2.1, clause 7.5.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.2.2-1 (GrantRequest) + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.2.2-1 Note 2 (GrantRequest) + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.4.2-1 (Grant) [Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS ${GRANT_ID_VALUE} Get value entry from JSON file grantRequestAsynchronous id Create a GRANT request grantRequestAsynchronous @@ -65,9 +65,9 @@ TC_MEC_MEC010p2_MEO_GRANT_003_OK TC_MEC_MEC010p2_MEO_GRANT_004_OK [Documentation] TP_MEC_MEC010p2_MEO_GRANT_004_OK ... Check that MEO sends an asynchronous grant response when a grant request is requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.5.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.2.2-1 (GrantRequest) - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.4.2-1 (Grant) + ... ETSI GS MEC 010-2 3.2.1, clause 7.5.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.2.2-1 (GrantRequest) + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.4.2-1 (Grant) [Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS ${GRANT_ID_VALUE} Get value entry from JSON file grantRequestAsynchronous2 id Create a GRANT request grantRequestAsynchronous2 @@ -79,8 +79,8 @@ TC_MEC_MEC010p2_MEO_GRANT_005_OK [Documentation] TP_MEC_MEC010p2_MEO_GRANT_005_OK ... Check that MEO sends the status of a grant request when a query on a granting ID is performed. ... The process of creating the grant is ongoing, no grant is available yet - ... ETSI GS MEC 010-2 3.1.1, clause 7.5.2.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.4.2-1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.5.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.4.2-1 [Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} grantRequestAsynchronous ${REGISTER_ACTION} ${GRANT_ID_VALUE} Get value entry from JSON file grantRequestAsynchronous id @@ -95,8 +95,8 @@ TC_MEC_MEC010p2_MEO_GRANT_006_OK [Documentation] TP_MEC_MEC010p2_MEO_GRANT_006_OK ... Check that MEO sends the status of a grant request when a query on a granting ID is performed. ... The process of creating the grant is ongoing, no grant is available yet - ... ETSI GS MEC 010-2 3.1.1, clause 7.5.2.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.4.4.2-1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.5.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.4.4.2-1 [Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} grantRequest ${REGISTER_ACTION} Get an individual grant ${setup_response['body']['id']} diff --git a/MEC010p2/MEO/PKGM/AppPkgMgt.robot b/MEC010p2/MEO/PKGM/AppPkgMgt.robot index f09af11..2aa91ec 100644 --- a/MEC010p2/MEO/PKGM/AppPkgMgt.robot +++ b/MEC010p2/MEO/PKGM/AppPkgMgt.robot @@ -17,9 +17,9 @@ Test Teardown Test TearDown ${APP_PKG_ID_PLACEHOLDER} AppPkgInfo ${ TC_MEC_MEC010p2_MEO_PKGM_001_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_001_OK ... Check that MEO creates a new App Package when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo) - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.3.2.2-1 (AppPkg) + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo) + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.3.2.2-1 (AppPkg) [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Post Request to create new App Package Resource CreateAppPackage.json Check HTTP Response Status Code Is 201 @@ -32,8 +32,8 @@ TC_MEC_MEC010p2_MEO_PKGM_001_OK TC_MEC_MEC010p2_MEO_PKGM_001_BR [Documentation] TP_MEC_MEC010p2_MEO_PKGM_001_BR ... Check that MEO creates a new App Package when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.3.2.2-1 (AppPkg) + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.3.2.2-1 (AppPkg) [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Post Request to create new App Package Resource CreateAppPackageBadRequest.json Check HTTP Response Status Code Is 400 @@ -43,8 +43,8 @@ TC_MEC_MEC010p2_MEO_PKGM_001_BR TC_MEC_MEC010p2_MEO_PKGM_002_01_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_002_01_OK ... Check that MEO returns the list of App Packages when requested - Note 3 - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.3.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.1.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.3.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} CreateAppPackage ${REGISTER_ACTION} GET all app Packages @@ -59,8 +59,8 @@ TC_MEC_MEC010p2_MEO_PKGM_002_01_OK TC_MEC_MEC010p2_MEO_PKGM_002_02_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_002_02_OK ... Check that MEO returns the list of on-boarded App Packages when requested - Note 3 - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.3.3.2 Note 3 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.1.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.3.3.2 Note 3 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} CreateAppPackage ${REGISTER_ACTION} GET all onboarded app Packages @@ -76,7 +76,7 @@ TC_MEC_MEC010p2_MEO_PKGM_002_BR [Documentation] TP_MEC_MEO_PKGM_002_BR ... Check that MEO responds with an error when it receives ... a malformed request for retrieving the list of existing App Packages - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.1.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS GET all APP Packages with filters ${MALFORMED_FILTER_NAME} ${FILTER_VALUE} Check HTTP Response Status Code Is 400 @@ -85,8 +85,8 @@ TC_MEC_MEC010p2_MEO_PKGM_002_BR TC_MEC_MEC010p2_MEO_PKGM_003_01_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_003_01_OK ... Check that MEO returns the an App Package when requested - Note 3 - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} CreateAppPackage ${REGISTER_ACTION} GET an app Package identified by ${ON_BOARDED_APP_PKG_ID} @@ -100,8 +100,8 @@ TC_MEC_MEC010p2_MEO_PKGM_003_01_OK TC_MEC_MEC010p2_MEO_PKGM_003_02_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_003_02_OK ... Check that MEO returns the an onboarded App Package when requested - Note 3 - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.3.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.3.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} CreateAppPackage ${REGISTER_ACTION} GET an onboarded app Package identified by ${ON_BOARDED_APP_PKG_ID} @@ -116,8 +116,8 @@ TC_MEC_MEC010p2_MEO_PKGM_003_NF [Documentation] TP_MEC_MEC010p2_MEO_PKGM_003_NF ... Check that MEO responds with an error when it receives ... a request for retrieving a App Package referred with a wrong ID - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.3.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.3.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS GET an APP Package identified by ${NON_EXISTENT_APP_PKG_ID} Check HTTP Response Status Code Is 404 @@ -126,7 +126,7 @@ TC_MEC_MEC010p2_MEO_PKGM_003_NF TC_MEC_MEC010p2_MEO_PKGM_004_OK [Documentation] TP_MEC_MEO_PKGM_004_OK ... Check that MEO deletes an App Package when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.4 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} CreateAppPackage ${REGISTER_ACTION} Delete an individual APP Package identified by ${setup_response['body']['id']} @@ -139,7 +139,7 @@ TC_MEC_MEC010p2_MEO_PKGM_004_NF [Documentation] TP_MEC_MEO_PKGM_004_NF ... Check that MEO responds with an error when it receives ... a request for deleting an App Package referred with a wrong ID - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.4 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${NON_EXISTENT_APP_PKG_ID} ${None} ${REMOVE_ACTION} Delete an individual APP Package identified by ${NON_EXISTENT_APP_PKG_ID} @@ -149,8 +149,8 @@ TC_MEC_MEC010p2_MEO_PKGM_004_NF TC_MEC_MEC010p2_MEO_PKGM_005_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_005_OK ... Check that MEO updates the operational state of an individual application package resource - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.5 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.8.2" //AppPkgInfoModifications + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.5 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.8.2" //AppPkgInfoModifications [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} CreateAppPackage ${REGISTER_ACTION} Update Operational State for an app Package ${ON_BOARDED_APP_PKG_ID} AppPkgInfoModifications.json @@ -163,8 +163,8 @@ TC_MEC_MEC010p2_MEO_PKGM_005_OK TC_MEC_MEC010p2_MEO_PKGM_005_BR [Documentation] TP_MEC_MEC010p2_MEO_PKGM_005_BR ... Check that MEO sends an error when it receives a malformed request to modify the operational state of an application package - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.5 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.8.2" //AppPkgInfoModifications + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.5 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.8.2" //AppPkgInfoModifications [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${None} CreateAppPackage ${REGISTER_ACTION} Update Operational State for an app Package ${ON_BOARDED_APP_PKG_ID} AppPkgInfoModificationsBadRequest.json @@ -175,8 +175,8 @@ TC_MEC_MEC010p2_MEO_PKGM_005_NF [Documentation] TP_MEC_MEC010p2_MEO_PKGM_005_NF ... Check that MEO responds with an error when it receives ... a request for updating an App Package referred with a wrong ID - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.5 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.8.2" //AppPkgInfoModifications + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.5 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.8.2" //AppPkgInfoModifications [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Test Setup ${NON_EXISTENT_APP_PKG_ID} ${None} ${REMOVE_ACTION} Update Operational State for an app Package ${NON_EXISTENT_APP_PKG_ID} AppPkgInfoModificationsBadRequest.json @@ -186,9 +186,9 @@ TC_MEC_MEC010p2_MEO_PKGM_005_NF TC_MEC_MEC010p2_MEO_PKGM_006_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_006_OK ... Check that MEO service returns an application package subscription when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.3.3.1 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.7 ##Type: AppPkgSubscription - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.4 ##Type: AppPkgSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.3.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.7 ##Type: AppPkgSubscription + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.4 ##Type: AppPkgSubscriptionInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an App Package Subscription identified by ${SUBSCRIPTION_ID} Send a request for a subscription AppPkgSubscription.json @@ -202,9 +202,9 @@ TC_MEC_MEC010p2_MEO_PKGM_006_OK TC_MEC_MEC010p2_MEO_PKGM_006_BR [Documentation] TP_MEC_MEC010p2_MEO_PKGM_006_BR ... Check that MEO service sends an error when it receives a malformed request for creating a new subscription on AppPackages - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.3.3.1 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.7 ##Type: AppPkgSubscription - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.4 ##Type: AppPkgSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.3.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.7 ##Type: AppPkgSubscription + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.4 ##Type: AppPkgSubscriptionInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Send a request for a subscription AppPkgSubscriptionBadRequest.json Check HTTP Response Status Code Is 400 @@ -214,8 +214,8 @@ TC_MEC_MEC010p2_MEO_PKGM_007_OK_01 [Documentation] TP_MEC_MEC010p2_MEO_PKGM_007_OK_01 ... Check that MEO service returns the list of Application Package ... Subscriptions when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.3.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.5.2 ##AppPkgSubscriptionLinkList + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.3.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.5.2 ##AppPkgSubscriptionLinkList [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Send a request for a subscription AppPkgSubscription.json Get all APP Package subscriptions @@ -228,8 +228,8 @@ TC_MEC_MEC010p2_MEO_PKGM_007_OK_02 [Documentation] TP_MEC_MEC010p2_MEO_PKGM_007_OK_02 ... Check that MEO service returns the list of Application Package ... Subscriptions when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.3.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.5.2 ##AppPkgSubscriptionLinkList + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.3.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.5.2 ##AppPkgSubscriptionLinkList [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Send a request for a subscription AppPkgSubscription.json Get all APP Package subscriptions @@ -242,8 +242,8 @@ TC_MEC_MEC010p2_MEO_PKGM_007_OK_02 TC_MEC_MEC010p2_MEO_PKGM_008_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_008_OK ... Check that MEO service returns an Application Package Subscription when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.4.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.4.2 ##AppPkgSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.4.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.4.2 ##AppPkgSubscriptionInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Send a request for a subscription AppPkgSubscription.json Get an individual APP Package subscriptions ${SUBSCRIPTION_ID} @@ -255,8 +255,8 @@ TC_MEC_MEC010p2_MEO_PKGM_008_OK TC_MEC_MEC010p2_MEO_PKGM_008_NF [Documentation] TP_MEC_MEC010p2_MEO_PKGM_008_NF ... Check that MEO service sends an error when it receives a query for a subscription on AppPackages with a wrong identifier - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.4.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.4.2 ##AppPkgSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.4.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.4.2 ##AppPkgSubscriptionInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an App Package Subscription identified by ${NON_EXISTENT_SUBSCRIPTION_ID} Get an individual APP Package subscriptions ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -266,7 +266,7 @@ TC_MEC_MEC010p2_MEO_PKGM_008_NF TC_MEC_MEC010p2_MEO_PKGM_009_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_009_OK ... Check that MEO service deletes an Application Package Subscription when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.4.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.4.3.4 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Send a request for a subscription AppPkgSubscription.json Delete an App Package Subscription identified by ${SUBSCRIPTION_ID} @@ -278,7 +278,7 @@ TC_MEC_MEC010p2_MEO_PKGM_009_NF [Documentation] TP_MEC_MEC010p2_MEO_PKGM_009_NF ... Check that MEO service sends an error when it receives a deletion request for a subscription on AppPackages ... with a wrong identifier - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.4.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.4.3.4 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an App Package Subscription identified by NON_EXISTENT_SUBSCRIPTION_ID Delete an App Package Subscription identified by ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -289,8 +289,8 @@ TC_MEC_MEC010p2_MEO_PKGM_010_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_009_NF ... Check that the MEO service sends a application package notification ... if the MEO service has an associated subscription and the event is generated - ... "ETSI GS MEC 010-2 3.1.1, clause 7.3.5.3.1", - ... "ETSI GS MEC 010-2 3.1.1, clause 6.2.3.6.2" ##AppPkgNotification + ... "ETSI GS MEC 010-2 3.2.1, clause 7.3.5.3.1", + ... "ETSI GS MEC 010-2 3.2.1, clause 6.2.3.6.2" ##AppPkgNotification [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Send a request for a subscription AppPkgSubscription.json Spawn Notification Server AppPkgNotification @@ -300,8 +300,8 @@ TC_MEC_MEC010p2_MEO_PKGM_010_OK TC_MEC_MEC010p2_MEO_PKGM_011_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_011_OK ... Check that MEO reads the content of the AppD of on-boarded individual application package resources when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.6.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.1.2.2 ##AppD + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.6.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.1.2.2 ##AppD [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Post Request to create new App Package Resource CreateAppPackage.json Get an AppD from App Package identified by ${ON_BOARDED_APP_PKG_ID} @@ -313,7 +313,7 @@ TC_MEC_MEC010p2_MEO_PKGM_011_NF [Documentation] TP_MEC_MEC010p2_MEO_PKGM_011_NF ... Check that MEO responds with an error when it receives ... a request to retrieve an application descriptor referred with a wrong app package ID - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.6.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.6.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an individual APP Package identified by ${NON_EXISTING_APPD_ID} Get an AppD from App Package identified by ${NON_EXISTING_APPD_ID} @@ -323,7 +323,7 @@ TC_MEC_MEC010p2_MEO_PKGM_011_NF TC_MEC_MEC010p2_MEO_PKGM_012_01_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_012_01_OK ... Check that MEO fetches the application package content identified by appPkgId when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Post Request to create new App Package Resource CreateAppPackage.json Get app Package identified by ${ON_BOARDED_APP_PKG_ID} ${ACCEPTED_CONTENT_TYPE_ZIP} @@ -334,7 +334,7 @@ TC_MEC_MEC010p2_MEO_PKGM_012_01_OK TC_MEC_MEC010p2_MEO_PKGM_012_02_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_012_02_OK ... Check that MEO fetches the application package content identified by appPkgId when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Post Request to create new App Package Resource CreateAppPackage.json Get onboarded app Package identified by ${ON_BOARDED_APP_PKG_ID} ${ACCEPTED_CONTENT_TYPE_ZIP} @@ -345,7 +345,7 @@ TC_MEC_MEC010p2_MEO_PKGM_012_02_OK TC_MEC_MEC010p2_MEO_PKGM_012_BR [Documentation] TP_MEC_MEC010p2_MEO_PKGM_012_BR ... Check that MEO service sends an error when it receives a malformed request - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Get app Package identified by ${ON_BOARDED_APP_PKG_ID} ${WRONG_CONTENT_TYPE} Check HTTP Response Status Code Is 400 @@ -354,7 +354,7 @@ TC_MEC_MEC010p2_MEO_PKGM_012_BR TC_MEC_MEC010p2_MEO_PKGM_012_01_NF [Documentation] TP_MEC_MEC010p2_MEO_PKGM_012_01_NF ... Check that MEO service sends an error when it receives a request referring a wrong appPkgId - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an individual APP Package identified by ${NOT_EXISTING_APP_PKG_ID} Get onboarded app Package identified by ${NOT_EXISTING_APP_PKG_ID} ${ACCEPTED_CONTENT_TYPE_ZIP} @@ -364,7 +364,7 @@ TC_MEC_MEC010p2_MEO_PKGM_012_01_NF TC_MEC_MEC010p2_MEO_PKGM_012_02_NF [Documentation] TP_MEC_MEC010p2_MEO_PKGM_012_01_NF ... Check that MEO service sends an error when it receives a request referring a wrong appPkgId - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an individual APP Package identified by ${NON_EXISTING_ON_BOARDED_APPD_ID} Get onboarded app Package identified by ${NON_EXISTING_ON_BOARDED_APPD_ID} ${ACCEPTED_CONTENT_TYPE_ZIP} @@ -374,8 +374,8 @@ TC_MEC_MEC010p2_MEO_PKGM_012_02_NF TC_MEC_MEC010p2_MEO_PKGM_013_OK [Documentation] TP_MEC_MEC010p2_MEO_PKGM_013_OK ... Check that MEO accepts application package when submitted - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.3 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.1.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.3 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.1.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an individual APP Package identified by ${APP_PKG_ID} Submit application package ${APP_PKG_ID} @@ -386,8 +386,8 @@ TC_MEC_MEC010p2_MEO_PKGM_013_OK TC_MEC_MEC010p2_MEO_PKGM_013_NF [Documentation] TP_MEC_MEC010p2_MEO_PKGM_013_NF ... Check that MEO returns an error when an application package with wrong id is submitted - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.3 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.1.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.3 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.1.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an individual APP Package identified by ${NOT_EXISTING_APP_PKG_ID} Submit application package ${NOT_EXISTING_APP_PKG_ID} diff --git a/MEC010p2/MEPM/LCM/PlatformConfiguration.robot b/MEC010p2/MEPM/LCM/PlatformConfiguration.robot index 1606af0..d9dbf77 100644 --- a/MEC010p2/MEPM/LCM/PlatformConfiguration.robot +++ b/MEC010p2/MEPM/LCM/PlatformConfiguration.robot @@ -13,8 +13,8 @@ Library OperatingSystem TC_MEC_MEC010p2_MEPM_LCM_001_OK [Documentation] TP_MEC_MEC010p2_MEPM_LCM_001_OK ... Check that MEC API provider has created the configuration information in AppD to the MEPM-V - ... ETSI GS MEC 010-2 3.1.1, clause 7.7.6.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.21.2 #ConfigPlatformForAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.7.6.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.21.2 #ConfigPlatformForAppRequest [Setup] Create new App Instance CreateAppInstanceRequest ${APPD_ID_SET} Get value entry from JSON file CreateAppInstanceRequest appDId Request to configure Platform ${APP_INSTANCE_ID} ConfigPlatformForAppRequest @@ -26,8 +26,8 @@ TC_MEC_MEC010p2_MEPM_LCM_001_OK TC_MEC_MEC010p2_MEPM_LCM_001_BR [Documentation] TP_MEC_MEC010p2_MEPM_LCM_001_BR ... Check that MEC API provider sends an error when it receives a malformed request for the configuration information in AppD to the MEPM-V - ... ETSI GS MEC 010-2 3.1.1, clause 7.7.6.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.21.2 #ConfigPlatformForAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.7.6.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.21.2 #ConfigPlatformForAppRequest Request to configure Platform ${APP_INSTANCE_ID} ConfigPlatformForAppRequestBadRequest Check HTTP Response Status Code Is 400 @@ -38,8 +38,8 @@ TC_MEC_MEC010p2_MEPM_LCM_001_NF [Documentation] TP_MEC_MEC010p2_MEPM_LCM_001_BR ... "Check that MEC API provider sends an error when it receives a request ... for the configuration information in AppD to the MEPM-V with not valid app instance ID - ... ETSI GS MEC 010-2 3.1.1, clause 7.7.6.3.1 - ... ETS3.1.1MEC 010-2 3.1.1, Table 6.2.2.21.2-1 #ConfigPlatformForAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.7.6.3.1 + ... ETS3.2.1MEC 010-2 3.2.1, Table 6.2.2.21.2-1 #ConfigPlatformForAppRequest Request to configure Platform ${NOT_EXISTING_APP_INSTANCE_ID} ConfigPlatformForAppRequest Check HTTP Response Status Code Is 404 diff --git a/MEC010p2/MEPM/PKGM/AppPkgMgt.robot b/MEC010p2/MEPM/PKGM/AppPkgMgt.robot index 5cfd565..f0710b1 100644 --- a/MEC010p2/MEPM/PKGM/AppPkgMgt.robot +++ b/MEC010p2/MEPM/PKGM/AppPkgMgt.robot @@ -14,8 +14,8 @@ Library libraries/Server.py TC_MEC_MEC010p2_MEPM_PKGM_001_01_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_001_01_OK ... Check that MEO creates a new App Package when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.2.2 ##AppPkgInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.2.2 ##AppPkgInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -31,8 +31,8 @@ TC_MEC_MEC010p2_MEPM_PKGM_001_01_OK TC_MEC_MEC010p2_MEPM_PKGM_001_02_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_002_01_OK ... Check that MEPM returns the list of on-boarded App Packages when requested - Note 3 - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.2.2 ##AppPkgInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.2.2 ##AppPkgInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Create new App Package CreateAppPackage.json @@ -53,7 +53,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_001_BR [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_001_BR ... Check that MEPM responds with an error when it receives ... a malformed request for requesting the list of existing App Packages - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.1.3.1 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -67,8 +67,8 @@ TC_MEC_MEC010p2_MEPM_PKGM_001_BR TC_MEC_MEC010p2_MEPM_PKGM_002_01_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_002_01_OK ... Check that MEPM returns the an App Package when requested - Note 3 - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.3.2 ##AppPkgInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.3.2 ##AppPkgInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -87,8 +87,8 @@ TC_MEC_MEC010p2_MEPM_PKGM_002_01_OK TC_MEC_MEC010p2_MEPM_PKGM_002_02_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_002_02_OK ... Check that MEPM returns the an on-boarded App Package when requested - Note 3 - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.3.2 ##AppPkgInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.3.2 ##AppPkgInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -107,7 +107,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_002_NF [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_002_NF ... Check that MEPM responds with an error when it receives ... a request for returning a App Package referred with a wrong ID - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.2.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete an individual APP Package identified by ID ${NON_EXISTENT_APP_PKG_ID} Get an individual APP Package identified by ID ${NON_EXISTENT_APP_PKG_ID} @@ -117,9 +117,9 @@ TC_MEC_MEC010p2_MEPM_PKGM_002_NF TC_MEC_MEC010p2_MEPM_PKGM_003_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_003_OK ... Check that MEPM service returns an application package subscription when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.3.3.1 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.7.2 ##AppPkgSubscription - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.4.2 ##AppPkgSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.3.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.7.2 ##AppPkgSubscription + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.4.2 ##AppPkgSubscriptionInfo [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Create a subscription AppPkgSubscription.json Set Suite Variable ${SUBSCRIPTION_ID} ${response['body']['id']} @@ -132,7 +132,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_003_BR [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_003_BR ... Check that MEPM service sends an error when it receives a ... malformed request for creating a new subscription on AppPackages - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.3.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.3.3.1 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS Create a subscription AppPkgSubscriptionBadRequest.json Check HTTP Response Status Code Is 400 @@ -141,7 +141,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_004_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_004_OK ... Check that MEPM service returns the list of Application ... Package Subscriptions when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.3.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.3.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Create a subscription AppPkgSubscription.json Set Suite Variable ${SUBSCRIPTION_ID} ${response['body']['id']} @@ -155,8 +155,8 @@ TC_MEC_MEC010p2_MEPM_PKGM_004_OK TC_MEC_MEC010p2_MEPM_PKGM_005_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_005_OK ... Check that MEPM service returns an Application Package Subscription when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.4.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.4.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.4.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.4.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Create a subscription AppPkgSubscription.json Set Suite Variable ${SUBSCRIPTION_ID} ${response['body']['id']} @@ -170,7 +170,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_005_NF [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_005_NF ... C"Check that MEPM service sends an error when ... it receives a query for a subscription on AppPackages with a wrong identifier - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.4.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.4.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete a subscription ${NON_EXISTENT_SUBSCRIPTION_ID} Get an individual subscription ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -180,7 +180,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_005_NF TC_MEC_MEC010p2_MEPM_PKGM_006_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_006_OK ... Check that MEPM service deletes an Application Package Subscription when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.4.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.4.3.4 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Create a subscription AppPkgSubscription.json Set Suite Variable ${SUBSCRIPTION_ID} ${response['body']['id']} @@ -192,7 +192,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_006_NF ... Check that MEPM service sends an error ... when it receives a deletion request for a subscription on AppPackages ... with a wrong identifier - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.4.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.4.3.4 [Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS [Setup] Delete a subscription ${NON_EXISTENT_SUBSCRIPTION_ID} Delete a subscription ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -203,8 +203,8 @@ TC_MEC_MEC010p2_MEPM_PKGM_007_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_007_OK ... Check that the MEPM service sends a application package notification ... if the MEPM service has an associated subscription and the event is generated - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.5.3.1, - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.3.6.2 ##AppPkgNotification + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.5.3.1, + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.3.6.2 ##AppPkgNotification [Tags] PIC_APP_PACKAGE_NOTIFICATIONS [Setup] Create a subscription AppPkgSubscription.json Set Suite Variable ${SUBSCRIPTION_ID} ${response['body']['id']} @@ -219,7 +219,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_008_NA [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_008_NA ... Check that MEPM responds with an error when it receives ... a POST request referring an application descriptor AppD - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.6.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.6.3.1 [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Create new App Package CreateAppPackage.json @@ -236,8 +236,8 @@ TC_MEC_MEC010p2_MEPM_PKGM_008_NA TC_MEC_MEC010p2_MEPM_PKGM_009_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_009_OK ... Check that MEPM returns the Application Descriptor contained on an on-boarded Application Package when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.6.3.2 - ... ETSI GS MEC 010-2 3.1.1, clause 6.2.1.2.2 ##AppD + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.6.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 6.2.1.2.2 ##AppD [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -251,7 +251,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_009_NF [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_009_NF ... Check that MEPM responds with an error when it receives ... a request for returning a App Descriptor referred with a wrong App Package ID - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.6.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.6.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Delete an AppD by ID ${NON_EXISTENT_APP_PKG_ID} Get an AppD identified by ${NON_EXISTENT_APP_PKG_ID} @@ -262,7 +262,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_010_FO [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_010_FO ... Check that MEPM responds with an error when it receives ... a PUT request referring an application descriptor AppD - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.6.3.3 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.6.3.3 [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -276,7 +276,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_011_NA [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_011_NA ... Check that MEPM responds with an error when it receives ... a DELETE request referring an application descriptor AppD - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.6.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.6.3.4 [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -289,7 +289,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_011_NA TC_MEC_MEC010p2_MEPM_PKGM_012_01_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_012_01_OK ... Check that MEPM fetches the on-boarded application package content identified by appPkgId when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -300,7 +300,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_012_01_OK TC_MEC_MEC010p2_MEPM_PKGM_012_02_OK [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_012_02_OK ... heck that MEPM fetches the on-boarded application package content identified by appDId when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} @@ -314,7 +314,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_012_02_OK TC_MEC_MEC010p2_MEPM_PKGM_012_01_NF [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_012_01_NF ... Check that MEPM fetches the on-boarded application package content identified by appPkgId when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Delete an individual APP Package identified by ID ${NON_EXISTENT_APP_PKG_ID} GET all app Packages content by appPkgId ${NON_EXISTENT_APP_PKG_ID} @@ -325,7 +325,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_012_01_NF TC_MEC_MEC010p2_MEPM_PKGM_012_02_NF [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_012_02_NF ... Check that MEPM service sends an error when it receives a query with an application package with a wrong identifier - ... ETSI GS MEC 010-2 3.1.1, clause 7.3.7.3.2 + ... ETSI GS MEC 010-2 3.2.1, clause 7.3.7.3.2 [Tags] PIC_APP_PACKAGE_MANAGEMENT [Setup] Delete an individual APP Package identified by ID ${NON_EXISTENT_APPD_ID} GET all app Packages content by appPkgId ${NON_EXISTENT_APPD_ID} diff --git a/MEC010p2/MEX/LCM/AppInstanceMgmt.robot b/MEC010p2/MEX/LCM/AppInstanceMgmt.robot index 302f017..f5f9406 100644 --- a/MEC010p2/MEX/LCM/AppInstanceMgmt.robot +++ b/MEC010p2/MEX/LCM/AppInstanceMgmt.robot @@ -14,9 +14,9 @@ Library String TC_MEC_MEC010p2_MEX_LCM_001_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_001_OK ... Check that MEC API provider creates a new App Package when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.3.2-1 #CreateAppInstanceRequest - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.4.2-1 #AppInstanceInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.3.2-1 #CreateAppInstanceRequest + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.4.2-1 #AppInstanceInfo Create new App Instance CreateAppInstanceRequest ${APPD_ID_SET} Get value entry from JSON file CreateAppInstanceRequest appDId Check HTTP Response Status Code Is 201 @@ -30,9 +30,9 @@ TC_MEC_MEC010p2_MEX_LCM_001_OK TC_MEC_MEC010p2_MEX_LCM_001_BR [Documentation] TP_MEC_MEC010p2_MEX_LCM_001_BR ... Check that MEC API provider sends an error when it receives a malformed request for the creation of a new App Instance - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.1.3.1 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.3.2-1 #CreateAppInstanceRequest - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.4.2-1 #AppInstanceInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.1.3.1 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.3.2-1 #CreateAppInstanceRequest + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.4.2-1 #AppInstanceInfo Create new App Instance CreateAppInstanceRequestBadRequest Check HTTP Response Status Code Is 400 @@ -40,8 +40,8 @@ TC_MEC_MEC010p2_MEX_LCM_001_BR TC_MEC_MEC010p2_MEX_LCM_002_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_002_OK ... Check that MEC API provider retrieves the list of App instances when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.1.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.4.2-1 #AppInstanceInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.1.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.4.2-1 #AppInstanceInfo [Setup] Create new App Instance CreateAppInstanceRequest Set Test Variable ${NEW_APP_INSTANCE_ID} ${response['body']['id']} GET all APP Instances @@ -61,8 +61,8 @@ TC_MEC_MEC010p2_MEX_LCM_002_OK TC_MEC_MEC010p2_MEX_LCM_003_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_003_OK ... Check that MEC API provider retrieves an App Package when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.2.3.2 - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.4.2-1 #AppInstanceInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.2.3.2 + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.4.2-1 #AppInstanceInfo [Setup] Create new App Instance CreateAppInstanceRequest Set Test Variable ${NEW_APP_INSTANCE_ID} ${response['body']['id']} GET APP Instance ${NEW_APP_INSTANCE_ID} @@ -75,7 +75,7 @@ TC_MEC_MEC010p2_MEX_LCM_003_OK TC_MEC_MEC010p2_MEX_LCM_003_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_003_NF ... Check that MEC API provider fails on deletion of an App Instance when requested using wrong appInstanceId - ... ETSI GS MEC 010-2 3.1.1, Table 6.2.2.4.2-1 #AppInstanceInfo + ... ETSI GS MEC 010-2 3.2.1, Table 6.2.2.4.2-1 #AppInstanceInfo [Setup] Delete APP Instance ${NOT_EXISTING_APP_INSTANCE_ID} GET APP Instance ${NOT_EXISTING_APP_INSTANCE_ID} Check HTTP Response Status Code Is 404 @@ -83,7 +83,7 @@ TC_MEC_MEC010p2_MEX_LCM_003_NF TC_MEC_MEC010p2_MEX_LCM_004_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_003_OK ... Check that MEC API provider service deletes an App Instance when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.2.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.2.3.4 [Setup] Create new App Instance CreateAppInstanceRequest Set Test Variable ${NEW_APP_INSTANCE_ID} ${response['body']['id']} Delete APP Instance ${NEW_APP_INSTANCE_ID} @@ -92,7 +92,7 @@ TC_MEC_MEC010p2_MEX_LCM_004_OK TC_MEC_MEC010p2_MEX_LCM_004_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_004_NF ... Check that MEC API provider fails on deletion of an App Instance when requested using wrong appInstanceId - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.2.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.2.3.4 [Setup] Delete APP Instance ${NOT_EXISTING_APP_INSTANCE_ID} Delete APP Instance ${NOT_EXISTING_APP_INSTANCE_ID} Check HTTP Response Status Code Is 404 @@ -101,8 +101,8 @@ TC_MEC_MEC010p2_MEX_LCM_004_NF TC_MEC_MEC010p2_MEX_LCM_005_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_005_OK ... Check that MEC API provider service instantiates an App Instance when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.6.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.7.2-1 #InstantiateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.6.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.7.2-1 #InstantiateAppRequest [Setup] Create new App Instance CreateAppInstanceRequest Set Test Variable ${NEW_APP_INSTANCE_ID} ${response['body']['id']} Instantiate App Request ${NEW_APP_INSTANCE_ID} InstantiateAppRequest @@ -114,8 +114,8 @@ TC_MEC_MEC010p2_MEX_LCM_005_OK TC_MEC_MEC010p2_MEX_LCM_005_BR [Documentation] TP_MEC_MEC010p2_MEX_LCM_005_BR ... Check that MEC API provider service fails to instantiate an App Instance when it receives a malformed request - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.6.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.7.2-1 #InstantiateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.6.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.7.2-1 #InstantiateAppRequest Instantiate App Request ${APP_INSTANCE_ID} InstantiateAppRequestBadRequest Check HTTP Response Status Code Is 400 @@ -124,8 +124,8 @@ TC_MEC_MEC010p2_MEX_LCM_005_BR TC_MEC_MEC010p2_MEX_LCM_005_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_005_NF ... Check that MEC API provider service fails to instantiate an App Instance when it receives a request related to a not existing App Instance - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.6.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.7.2-1 #InstantiateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.6.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.7.2-1 #InstantiateAppRequest [Setup] Delete APP Instance ${NOT_EXISTING_APP_INSTANCE_ID} Instantiate App Request ${NOT_EXISTING_APP_INSTANCE_ID} InstantiateAppRequest Check HTTP Response Status Code Is 404 @@ -135,8 +135,8 @@ TC_MEC_MEC010p2_MEX_LCM_005_NF TC_MEC_MEC010p2_MEX_LCM_006_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_006_OK ... Check that MEC API provider service terminates an App Instance when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.7.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.9.2-1 #TerminateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.7.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.9.2-1 #TerminateAppRequest [Setup] Create and Instantiate App Instance CreateAppInstanceRequest InstantiateAppRequest Sleep 5 ##Change it according to your need Terminate App Request ${APP_ID} TerminateAppRequest @@ -148,8 +148,8 @@ TC_MEC_MEC010p2_MEX_LCM_006_OK TC_MEC_MEC010p2_MEX_LCM_006_BR [Documentation] TP_MEC_MEC010p2_MEX_LCM_006_OK ... Check that MEC API provider service fails to terminate an App Instance when it receives a malformed request - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.7.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.9.2-1 #TerminateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.7.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.9.2-1 #TerminateAppRequest Terminate App Request ${APP_INSTANCE_ID} TerminateAppRequestBadRequest Check HTTP Response Status Code Is 400 @@ -157,8 +157,8 @@ TC_MEC_MEC010p2_MEX_LCM_006_BR TC_MEC_MEC010p2_MEX_LCM_006_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_006_NF ... Check that MEC API provider service fails to terminate an App Instance when it receives a request related to a not existing App Instance - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.7.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.9.2-1 #TerminateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.7.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.9.2-1 #TerminateAppRequest [Setup] Delete APP Instance ${NOT_EXISTING_APP_INSTANCE_ID} Terminate App Request ${NOT_EXISTING_APP_INSTANCE_ID} TerminateAppRequest Check HTTP Response Status Code Is 404 @@ -170,8 +170,8 @@ TC_MEC_MEC010p2_MEX_LCM_007_OK ... The following combinations INITIAL_STATE - FINAL_STATE are supported: ... - STARTED/STOP ... - STOPPED/STARTCheck that MEC API provider service terminates an App Instance when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.8.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.8.2-1 #OperateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.8.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.8.2-1 #OperateAppRequest [Setup] Create and Instantiate App Instance CreateAppInstanceRequest InstantiateAppRequest ##TODO sleep for a while because the instantiation is not immediate Operate App Request ${APP_INSTANCE_ID} OperateAppRequest @@ -183,16 +183,16 @@ TC_MEC_MEC010p2_MEX_LCM_007_OK TC_MEC_MEC010p2_MEX_LCM_007_BR [Documentation] TP_MEC_MEC010p2_MEX_LCM_007_BR ... Check that MEC API provider service fails to operate on an App Instance when it receives a malformed request - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.8.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.8.2-1 #OperateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.8.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.8.2-1 #OperateAppRequest Operate App Request ${APP_INSTANCE_ID} OperateAppRequestBadRequest Check HTTP Response Status Code Is 400 TC_MEC_MEC010p2_MEX_LCM_007_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_007_NF ... Check that MEC API provider service fails to change the status of an App Instance when it receives a request related to a not existing App Instance - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.8.3.1 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.8.2-1 #OperateAppRequest + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.8.3.1 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.8.2-1 #OperateAppRequest Operate App Request ${NOT_EXISTING_APP_INSTANCE_ID} OperateAppRequest Check HTTP Response Status Code Is 404 @@ -201,8 +201,8 @@ TC_MEC_MEC010p2_MEX_LCM_007_NF TC_MEC_MEC010p2_MEX_LCM_008_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_008_OK ... Check that MEC API provider service retrieves info about LCM Operation Occurrence on App Instances when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.9.3.2 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.13.2-1 #AppLcmOpOcc + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.9.3.2 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.13.2-1 #AppLcmOpOcc [Setup] Create and Instantiate App Instance CreateAppInstanceRequest InstantiateAppRequest GET all App LCM op Occs Check HTTP Response Status Code Is 200 @@ -214,8 +214,8 @@ TC_MEC_MEC010p2_MEX_LCM_008_OK TC_MEC_MEC010p2_MEX_LCM_009_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_009_OK ... Check that MEC API provider service retrieves info about LCM Operation Occurrence on an App Instance when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.10.3.2 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.13.2-1 #AppLcmOpOcc + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.10.3.2 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.13.2-1 #AppLcmOpOcc [Setup] Create and Instantiate App Instance CreateAppInstanceRequest InstantiateAppRequest GET App LCM op Occ ${APP_LCM_OP_OCCS_ID} Check HTTP Response Status Code Is 200 @@ -226,8 +226,8 @@ TC_MEC_MEC010p2_MEX_LCM_009_OK TC_MEC_MEC010p2_MEX_LCM_009_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_009_NF ... Check that MEC API provider service sends an error when it receives a query for a not existing LCM Operation Occurence - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.10.3.2 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.13.2-1 #AppLcmOpOcc + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.10.3.2 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.13.2-1 #AppLcmOpOcc GET App LCM op Occ ${NOT_EXISTING_APP_LCM_OP_OCC_ID} Check HTTP Response Status Code Is 404 @@ -238,15 +238,15 @@ TC_MEC_MEC010p2_MEX_LCM_010_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_010_OK ... Check that MEC API provider service creates a LCM Subscription when requested, where the subscription request can ... have SUBSCRIPTION_TYPE AppInstanceStateChangeSubscription or AppLcmOpOccStateChangeSubscription - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.3.3.1, - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.12.2-1 #AppInstSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.14.2-1 #AppLcmOpOccSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.25.2-1 #AppInstIdCreationSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.28.2-1 #AppInstIdDeletionSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.3.3.1, + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.12.2-1 #AppInstSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.14.2-1 #AppLcmOpOccSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.25.2-1 #AppInstIdCreationSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.28.2-1 #AppInstIdDeletionSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo Send a request for a subscription AppInstSubscriptionRequest Check HTTP Response Status Code Is 201 @@ -263,15 +263,15 @@ TC_MEC_MEC010p2_MEX_LCM_010_OK TC_MEC_MEC010p2_MEX_LCM_010_BR [Documentation] TP_MEC_MEC010p2_MEX_LCM_010_BR ... Check that MEC API provider service sends an error when it receives a malformed request to create a LCM Subscription - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.3.3.1, - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.12.2-1 #AppInstSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.14.2-1 #AppLcmOpOccSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.25.2-1 #AppInstIdCreationSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.28.2-1 #AppInstIdDeletionSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.3.3.1, + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.12.2-1 #AppInstSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.14.2-1 #AppLcmOpOccSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.25.2-1 #AppInstIdCreationSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.28.2-1 #AppInstIdDeletionSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo Send a request for a subscription AppInstSubscriptionRequestBadRequest Check HTTP Response Status Code Is 400 @@ -281,15 +281,15 @@ TC_MEC_MEC010p2_MEX_LCM_010_BR TC_MEC_MEC010p2_MEX_LCM_011_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_011_OK ... Check that MEC API provider service sends the list of LCM Subscriptions when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.3.3.2, - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.12.2-1 #AppInstSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.14.2-1 #AppLcmOpOccSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.25.2-1 #AppInstIdCreationSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.28.2-1 #AppInstIdDeletionSubscriptionRequest - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.3.3.2, + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.12.2-1 #AppInstSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.14.2-1 #AppLcmOpOccSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.25.2-1 #AppInstIdCreationSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.28.2-1 #AppInstIdDeletionSubscriptionRequest + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo [Setup] Send a request for a subscription AppInstSubscriptionRequest Set Test Variable ${SUB_ID} ${response['body']['id']} @@ -302,11 +302,11 @@ TC_MEC_MEC010p2_MEX_LCM_011_OK TC_MEC_MEC010p2_MEX_LCM_012_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_012_OK ... Check that MEC API provider service sends the information about an existing LCM subscription when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.4.3.2 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.4.3.2 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo [Setup] Send a request for a subscription AppInstSubscriptionRequest Set Test Variable ${SUB_ID} ${response['body']['id']} Send a request for retrieving a subscription ${SUB_ID} @@ -318,11 +318,11 @@ TC_MEC_MEC010p2_MEX_LCM_012_OK TC_MEC_MEC010p2_MEX_LCM_012_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_012_NF ... Check that MEC API provider service sends an error when it receives a query for a not existing LCM Subscription - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.4.3.2 - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.4.3.2 + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.10.2-1 #AppInstSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.15.2-1 #AppLcmOpOccSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.26.2-1 #AppInstIdCreationSubscriptionInfo + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.29.2-1 #AppInstIdDeletionSubscriptionInfo [Setup] Send a request for deleting a subscription ${NOT_EXISTING_SUBSCRIPTION_ID} Send a request for retrieving a subscription ${NOT_EXISTING_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 @@ -331,7 +331,7 @@ TC_MEC_MEC010p2_MEX_LCM_012_NF TC_MEC_MEC010p2_MEX_LCM_013_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_013_OK ... Check that MEC API provider service delete an existing LCM Subscription when requested - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.3.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.3.3.4 [Setup] Send a request for a subscription AppInstSubscriptionRequest Set Test Variable ${SUB_ID} ${response['body']['id']} @@ -342,7 +342,7 @@ TC_MEC_MEC010p2_MEX_LCM_013_OK TC_MEC_MEC010p2_MEX_LCM_013_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_013_NF ... Check that MEC API provider service sends an error when it receives a deletion request for a not existing LCM Subscription - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.3.3.4 + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.3.3.4 [Setup] Send a request for deleting a subscription ${NOT_EXISTING_SUBSCRIPTION_ID} Send a request for deleting a subscription ${NOT_EXISTING_SUBSCRIPTION_ID} @@ -353,8 +353,8 @@ TC_MEC_MEC010p2_MEX_LCM_013_NF TC_MEC_MEC010p2_MEX_LCM_014_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_014_OK ... Check that MEC API provider service cancels an on going LCM Operation - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.11.3.1", - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.32.2-1" #CancelMode + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.11.3.1", + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.32.2-1" #CancelMode [Setup] Create and Instantiate App Instance CreateAppInstanceRequest InstantiateAppRequest Cancel on going LCM Operation ${APP_LCM_OP_OCCS_ID} CancelMode Check HTTP Response Status Code Is 202 @@ -365,8 +365,8 @@ TC_MEC_MEC010p2_MEX_LCM_014_OK TC_MEC_MEC010p2_MEX_LCM_014_BR [Documentation] TP_MEC_MEC010p2_MEX_LCM_014_BR ... Check that MEC API provider service fails to cancel an on going LCM Operation when it receives a malformed request - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.11.3.1", - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.32.2-1" #CancelMode + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.11.3.1", + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.32.2-1" #CancelMode [Setup] Create and Instantiate App Instance CreateAppInstanceRequest InstantiateAppRequest Cancel on going LCM Operation ${APP_LCM_OP_OCCS_ID} CancelModeBadRequest Check HTTP Response Status Code Is 400 @@ -376,8 +376,8 @@ TC_MEC_MEC010p2_MEX_LCM_014_BR TC_MEC_MEC010p2_MEX_LCM_014_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_014_NF ... Check that MEC API provider service fails to cancel an on going LCM Operation when it receives a request related to a not existing application LCM Operation - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.11.3.1", - ... ETSI GS MEC 010-2 3.1.1, table 6.2.2.32.2-1" #CancelMode + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.11.3.1", + ... ETSI GS MEC 010-2 3.2.1, table 6.2.2.32.2-1" #CancelMode Cancel on going LCM Operation ${NOT_EXISTING_APP_LCM_OP_OCC_ID} CancelMode Check HTTP Response Status Code Is 404 @@ -386,7 +386,7 @@ TC_MEC_MEC010p2_MEX_LCM_014_NF TC_MEC_MEC010p2_MEX_LCM_015_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_015_OK ... Check that MEC API provider service makes failed an on going LCM Operation - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.12.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.12.3.1 [Setup] Create and Instantiate App Instance CreateAppInstanceRequest InstantiateAppRequest Fail on going LCM Operation ${APP_LCM_OP_OCCS_ID} Check HTTP Response Status Code Is 200 @@ -397,7 +397,7 @@ TC_MEC_MEC010p2_MEX_LCM_015_OK TC_MEC_MEC010p2_MEX_LCM_015_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_015_NF ... Check that MEC API provider service makes failed an on going LCM Operation - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.12.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.12.3.1 Fail on going LCM Operation ${NOT_EXISTING_APP_LCM_OP_OCC_ID} Check HTTP Response Status Code Is 404 @@ -405,7 +405,7 @@ TC_MEC_MEC010p2_MEX_LCM_015_NF TC_MEC_MEC010p2_MEX_LCM_016_OK [Documentation] TP_MEC_MEC010p2_MEX_LCM_016_OK ... Check that MEC API provider service retries an on going LCM Operation - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.13.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.13.3.1 [Setup] Create and Instantiate App Instance CreateAppInstanceRequest InstantiateAppRequest Retry on going LCM Operation ${APP_LCM_OP_OCC_ID} Check HTTP Response Status Code Is 202 @@ -415,7 +415,7 @@ TC_MEC_MEC010p2_MEX_LCM_016_OK TC_MEC_MEC010p2_MEX_LCM_016_NF [Documentation] TP_MEC_MEC010p2_MEX_LCM_016_NF ... Check that MEC API provider service fails to retry an LCM Operation when it receives a request related to a not existing application LCM Operation - ... ETSI GS MEC 010-2 3.1.1, clause 7.4.13.3.1 + ... ETSI GS MEC 010-2 3.2.1, clause 7.4.13.3.1 Retry on going LCM Operation ${NOT_EXISTING_APP_LCM_OP_OCC_ID} Check HTTP Response Status Code Is 404 -- GitLab From bfb22f31d763b898ee9a09dd6622a4971874ab05 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Thu, 8 May 2025 10:50:29 +0500 Subject: [PATCH 11/55] add json request bodies for MEC048 --- MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json | 3 +++ .../MEO/CSE/jsons/ResourceQuotaInfoUpdate.json | 5 +++++ MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json | 6 ++++++ MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json | 6 ++++++ MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json | 6 ++++++ MEC048/MEO/CSE/jsons/TenantInfo.json | 5 +++++ MEC048/MEO/CSE/jsons/TenantInfo2.json | 5 +++++ MEC048/MEO/CSE/jsons/TenantInfo3.json | 5 +++++ MEC048/MEO/CSE/jsons/TenantInfoBR.json | 16 ++++++++++++++++ MEC048/MEO/CSE/jsons/TenantInfoUpdate.json | 5 +++++ 10 files changed, 62 insertions(+) create mode 100644 MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json create mode 100644 MEC048/MEO/CSE/jsons/ResourceQuotaInfoUpdate.json create mode 100644 MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json create mode 100644 MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json create mode 100644 MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json create mode 100644 MEC048/MEO/CSE/jsons/TenantInfo.json create mode 100644 MEC048/MEO/CSE/jsons/TenantInfo2.json create mode 100644 MEC048/MEO/CSE/jsons/TenantInfo3.json create mode 100644 MEC048/MEO/CSE/jsons/TenantInfoBR.json create mode 100644 MEC048/MEO/CSE/jsons/TenantInfoUpdate.json diff --git a/MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json b/MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json new file mode 100644 index 0000000..fc360ad --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json @@ -0,0 +1,3 @@ +{ + "cpuQuota": "CPU_QUOTA" +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceQuotaInfoUpdate.json b/MEC048/MEO/CSE/jsons/ResourceQuotaInfoUpdate.json new file mode 100644 index 0000000..76275d1 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceQuotaInfoUpdate.json @@ -0,0 +1,5 @@ +{ + "cpuQuota": "NUMBER_OF_CPUS", + "memoryQuota": "MEMORY_IN_MB", + "diskQuota": "AMOUNT_OF_DISK_IN_GB" +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json new file mode 100644 index 0000000..775807b --- /dev/null +++ b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json @@ -0,0 +1,6 @@ +{ + "siteId": "SITE_ID", + "cpuQuota": "CPU_QUOTA", + "memoryQuota": "MEMORY_QUOTA", + "diskQuota": "DISK_QUOTA" +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json new file mode 100644 index 0000000..916067e --- /dev/null +++ b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json @@ -0,0 +1,6 @@ +{ + "siteId": "SITE_ID_2", + "cpuQuota": "CPU_QUOTA_2", + "memoryQuota": "MEMORY_QUOTA_2", + "diskQuota": "DISK_QUOTA_2" +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json new file mode 100644 index 0000000..6a91864 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json @@ -0,0 +1,6 @@ +{ + "siteId": "SITE_ID_3", + "cpuQuota": "CPU_QUOTA_3", + "memoryQuota": "MEMORY_QUOTA_3", + "diskQuota": "DISK_QUOTA_3" +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/TenantInfo.json b/MEC048/MEO/CSE/jsons/TenantInfo.json new file mode 100644 index 0000000..167b324 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/TenantInfo.json @@ -0,0 +1,5 @@ +{ + "customerId": "customerId", + "customerName": "customerName", + "tenantName": "tenantName" +} diff --git a/MEC048/MEO/CSE/jsons/TenantInfo2.json b/MEC048/MEO/CSE/jsons/TenantInfo2.json new file mode 100644 index 0000000..660ea32 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/TenantInfo2.json @@ -0,0 +1,5 @@ +{ + "customerId": "customerId2", + "customerName": "customerName2", + "tenantName": "tenantName2" +} diff --git a/MEC048/MEO/CSE/jsons/TenantInfo3.json b/MEC048/MEO/CSE/jsons/TenantInfo3.json new file mode 100644 index 0000000..5116f15 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/TenantInfo3.json @@ -0,0 +1,5 @@ +{ + "customerId": "customerId3", + "customerName": "customerName3", + "tenantName": "tenantName3" +} diff --git a/MEC048/MEO/CSE/jsons/TenantInfoBR.json b/MEC048/MEO/CSE/jsons/TenantInfoBR.json new file mode 100644 index 0000000..052e6b1 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/TenantInfoBR.json @@ -0,0 +1,16 @@ +{ + "customerId": "customerId", + "customerName": "customerName", + "tenantName": "tenantName", + "resourceUseInfo": { + "cpuQuota": 100 + }, + "siteList": [ + { + "siteId": "siteId", + "resourceInfo": { + "cpuQuota": 50 + } + } + ] +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/TenantInfoUpdate.json b/MEC048/MEO/CSE/jsons/TenantInfoUpdate.json new file mode 100644 index 0000000..e5d4088 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/TenantInfoUpdate.json @@ -0,0 +1,5 @@ +{ + "customerId": "NEW_CUSTOMER_ID", + "customerName": "NEW_CUSTOMER_NAME_1", + "tenantName": "NEW_TENANT_NAME" +} \ No newline at end of file -- GitLab From b36f6d2a19688c6d03afcae649ec643c331ceb7d Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Thu, 8 May 2025 10:54:12 +0500 Subject: [PATCH 12/55] add schemas response body validations for MEC048 --- .../CSE/schemas/ResourceQuotaInfo.schema.json | 15 +++++ .../schemas/SiteResourceQuotaInfo.schema.json | 21 +++++++ .../SiteResourceQuotaInfoList.schema.json | 24 ++++++++ MEC048/MEO/CSE/schemas/TenantInfo.schema.json | 58 ++++++++++++++++++ .../CSE/schemas/TenantInfoList.schema.json | 61 +++++++++++++++++++ 5 files changed, 179 insertions(+) create mode 100644 MEC048/MEO/CSE/schemas/ResourceQuotaInfo.schema.json create mode 100644 MEC048/MEO/CSE/schemas/SiteResourceQuotaInfo.schema.json create mode 100644 MEC048/MEO/CSE/schemas/SiteResourceQuotaInfoList.schema.json create mode 100644 MEC048/MEO/CSE/schemas/TenantInfo.schema.json create mode 100644 MEC048/MEO/CSE/schemas/TenantInfoList.schema.json diff --git a/MEC048/MEO/CSE/schemas/ResourceQuotaInfo.schema.json b/MEC048/MEO/CSE/schemas/ResourceQuotaInfo.schema.json new file mode 100644 index 0000000..a053304 --- /dev/null +++ b/MEC048/MEO/CSE/schemas/ResourceQuotaInfo.schema.json @@ -0,0 +1,15 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "cpuQuota": { + "type": "integer" + }, + "memoryQuota": { + "type": "integer" + }, + "diskQuota": { + "type": "integer" + } + } +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/SiteResourceQuotaInfo.schema.json b/MEC048/MEO/CSE/schemas/SiteResourceQuotaInfo.schema.json new file mode 100644 index 0000000..dd8201f --- /dev/null +++ b/MEC048/MEO/CSE/schemas/SiteResourceQuotaInfo.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "siteId": { + "type": "string" + }, + "cpuQuota": { + "type": "integer" + }, + "memoryQuota": { + "type": "integer" + }, + "diskQuota": { + "type": "integer" + } + }, + "required": [ + "siteId" + ] +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/SiteResourceQuotaInfoList.schema.json b/MEC048/MEO/CSE/schemas/SiteResourceQuotaInfoList.schema.json new file mode 100644 index 0000000..581dc86 --- /dev/null +++ b/MEC048/MEO/CSE/schemas/SiteResourceQuotaInfoList.schema.json @@ -0,0 +1,24 @@ +{ + "type": "array", + "items": { + "title": "SiteResourceQuotaInfo", + "type": "object", + "properties": { + "siteId": { + "type": "string" + }, + "cpuQuota": { + "type": "integer" + }, + "memoryQuota": { + "type": "integer" + }, + "diskQuota": { + "type": "integer" + } + }, + "required": [ + "siteId" + ] + } +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/TenantInfo.schema.json b/MEC048/MEO/CSE/schemas/TenantInfo.schema.json new file mode 100644 index 0000000..9e7c240 --- /dev/null +++ b/MEC048/MEO/CSE/schemas/TenantInfo.schema.json @@ -0,0 +1,58 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "customerName": { + "type": "string" + }, + "customerCategory": { + "type": "string" + }, + "tenantId": { + "type": "string" + }, + "tenantName": { + "type": "string" + }, + "resourceUseInfo": { + "type": "object", + "properties": { + "cpuQuota": { + "type": "integer" + }, + "cpuUsed": { + "type": "integer" + }, + "cpuRemain": { + "type": "integer" + }, + "memoryQuota": { + "type": "integer" + }, + "memoryUsed": { + "type": "integer" + }, + "memoryRemain": { + "type": "integer" + }, + "diskQuota": { + "type": "integer" + }, + "diskUsed": { + "type": "integer" + }, + "diskRemain": { + "type": "integer" + } + } + } + }, + "required": [ + "customerId", + "customerName", + "tenantName" + ] + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/TenantInfoList.schema.json b/MEC048/MEO/CSE/schemas/TenantInfoList.schema.json new file mode 100644 index 0000000..9c67d3a --- /dev/null +++ b/MEC048/MEO/CSE/schemas/TenantInfoList.schema.json @@ -0,0 +1,61 @@ +{ + "type": "array", + "items": { + "title": "TenantInfo", + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "customerName": { + "type": "string" + }, + "customerCategory": { + "type": "string" + }, + "tenantId": { + "type": "string" + }, + "tenantName": { + "type": "string" + }, + "resourceUseInfo": { + "type": "object", + "properties": { + "cpuQuota": { + "type": "integer" + }, + "cpuUsed": { + "type": "integer" + }, + "cpuRemain": { + "type": "integer" + }, + "memoryQuota": { + "type": "integer" + }, + "memoryUsed": { + "type": "integer" + }, + "memoryRemain": { + "type": "integer" + }, + "diskQuota": { + "type": "integer" + }, + "diskUsed": { + "type": "integer" + }, + "diskRemain": { + "type": "integer" + } + } + } + }, + "required": [ + "customerId", + "customerName", + "tenantName" + ] + } +} \ No newline at end of file -- GitLab From 12eea29b845758759ad8cc881d1b772dff436e62 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Thu, 8 May 2025 11:03:26 +0500 Subject: [PATCH 13/55] add environmental variables for MEC048 test suite --- MEC048/MEO/CSE/environment/variables.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 MEC048/MEO/CSE/environment/variables.txt diff --git a/MEC048/MEO/CSE/environment/variables.txt b/MEC048/MEO/CSE/environment/variables.txt new file mode 100644 index 0000000..385a44c --- /dev/null +++ b/MEC048/MEO/CSE/environment/variables.txt @@ -0,0 +1,18 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +#${HOST} 10.192.2.172 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} cse +${apiVersion} v1 + + +${REGISTER_ACTION} REGISTER +${REMOVE_ACTION} REMOVE +${NO_ACTION} NO_ACTION +${TENANT_ID_PLACEHOLDER} TENANT_ID_PLACEHOLDER +${NOT_EXISTING_TENANT_ID} NOT_EXISTING_TENANT_ID \ No newline at end of file -- GitLab From f09801d319815070e191aa21511cc831c93a04af Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Thu, 8 May 2025 11:53:58 +0500 Subject: [PATCH 14/55] add first 22 test cases to MEC048 test suite --- .../CSE/CustomerSelfServiceEnablement.robot | 481 ++++++++++++++++++ 1 file changed, 481 insertions(+) create mode 100644 MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot diff --git a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot new file mode 100644 index 0000000..831448a --- /dev/null +++ b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot @@ -0,0 +1,481 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./V2XInformationService.robot +... Test Suite to validate V2X Information Service API (VIS) operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../../pics.txt +Resource ../../../GenericKeywords.robot +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem +Library JSONLibrary + +*** Test Cases *** +TC_MEC_MEC048_MEO_CSE_001_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_001_OK + ... Check that the IUT responds with a list of all available tenantInfo when requested to a CSE - No query parameters + ... ETSI GS MEC 048 v3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 048 v3.1.1, clause 6.2.2 (TenantInfo) + [Tags] PIC_SERVICES + [Setup] Register mutiple tenant Info and get tenant Ids TenantInfo TenantInfo2 TenantInfo3 + Retrieve all tenant Info resources + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is TenantInfoList + [Teardown] Remove mutiple tenant Info ${TENANT_ID_1} ${TENANT_ID_2} ${TENANT_ID_3} + +TC_MEC_MEC048_MEO_CSE_001_OK_02 + [Documentation] TP_MEC_MEC048_MEO_CSE_001_OK_02 + ... Check that the IUT responds with a list of tenantInfo when queried with customerId as query parameter + ... ETSI GS MEC 048 v3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 048 v3.1.1, clause 6.2.2 (TenantInfo) + [Tags] PIC_SERVICES + [Setup] Register mutiple tenant Info and get tenant Ids TenantInfo TenantInfo2 TenantInfo3 + Retrieve all tenant info resources with query parameters customerId=${CUSTOMER_ID_1} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is TenantInfoList + FOR ${tenant} IN @{response['body']} + Should Be Equal As Strings ${tenant}[tenantId] ${TENANT_ID_1} + END + [Teardown] Remove mutiple tenant Info ${TENANT_ID_1} ${TENANT_ID_2} ${TENANT_ID_3} + +TC_MEC_MEC048_MEO_CSE_001_OK_03 + [Documentation] TP_MEC_MEC048_MEO_CSE_001_OK_03 + ... Check that the IUT responds with a list of tenantInfo when queried with customerName as query parameter + ... ETSI GS MEC 048 v3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 048 v3.1.1, clause 6.2.2 (TenantInfo) + [Tags] PIC_SERVICES + [Setup] Register mutiple tenant Info and get tenant Ids TenantInfo TenantInfo2 TenantInfo3 + Retrieve all tenant info resources with query parameters customerName=${CUSTOMER_NAME_1} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is TenantInfoList + FOR ${tenant} IN @{response['body']} + Should Be Equal As Strings ${tenant}[customerName] ${CUSTOMER_NAME_1} + END + [Teardown] Remove mutiple tenant Info ${TENANT_ID_1} ${TENANT_ID_2} ${TENANT_ID_3} + +TC_MEC_MEC048_MEO_CSE_002_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_002_OK + ... Check that the IUT creates a new tenantInfo when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.3.3.4 + ... ETSI GS MEC 048 v3.1.1, clause 6.2.2 (TenantInfo) + [Tags] PIC_SERVICES + ##No test setup needed because the tenantId is generated by IUT + Register Tenant Info TenantInfo + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is TenantInfo + ${CUSTOMER_ID_VALUE} Get value entry from JSON file TenantInfo customerId + ${TENANT_NAME_VALUE} Get value entry from JSON file TenantInfo tenantName + + Should Be Equal As Strings ${response['body']['customerId']} ${CUSTOMER_ID_VALUE} + Should Be Equal As Strings ${response['body']['tenantName']} ${TENANT_NAME_VALUE} + + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_002_BR + [Documentation] TP_MEC_MEC048_MEO_CSE_002_BR + ... Check that the IUT responds with an error on creating a tenantInfo with both resourceUseInfo and siteList + ... ETSI GS MEC 048 v3.1.1, clause 7.3.3.4 and 6.2.2 (TenantInfo) + [Tags] PIC_SERVICES + Register Tenant Info TenantInfoBR + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC048_MEO_CSE_003_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_003_OK + ... Check that the IUT responds with a specific tenantInfo when requested to a MEC Consumer + ... ETSI GS MEC 048 v3.1.1, clause 7.3.3.1 and 6.2.2 (TenantInfo) + [Tags] PIC_SERVICES + [Setup] Register Tenant Info TenantInfo + Retrieve specific tenant info resource ${TENANT_ID_1} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is TenantInfo + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_003_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_003_NF + ... Check that the IUT returns an error when requesting a non-existing tenantInfo to a MEC Consumer + ... ETSI GS MEC 048 v3.1.1, clause 7.4.3.1 and 6.2.2 + [Tags] PIC_SERVICES + Retrieve specific tenant info resource ${NOT_EXISTING_TENANT_ID} + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC048_MEO_CSE_004_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_004_OK + ... Check that the IUT updates an existing tenantInfo when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.4.3.5 and 6.2.2 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Update tenant Info ${TENANT_ID_1} TenantInfoUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is TenantInfo + ${CUSTOMER_ID_VALUE} Get value entry from JSON file TenantInfoUpdate customerId + ${TENANT_NAME_VALUE} Get value entry from JSON file TenantInfoUpdate tenantName + ${CUSTOMER_NAME_VALUE} Get value entry from JSON file TenantInfoUpdate customerName + + Should Be Equal As Strings ${response['body']['customerId']} ${CUSTOMER_ID_VALUE} + Should Be Equal As Strings ${response['body']['tenantName']} ${TENANT_NAME_VALUE} + Should Be Equal As Strings ${response['body']['customerName']} ${CUSTOMER_NAME_VALUE} + + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_004_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_004_NF + ... Check that the IUT returns an error on updating a not existing tenantInfo requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.4.3.5 and 6.2.2 + [Tags] PIC_SERVICES + Update tenant Info ${NOT_EXISTING_TENANT_ID} TenantInfoUpdate + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC048_MEO_CSE_004_BR + [Documentation] TP_MEC_MEC048_MEO_CSE_004_BR + ... Check that the IUT returns an error on updating with invalid values tenantInfo requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.4.3.2 and 6.2.2 + [Setup] Register tenant Info TenantInfo + Update tenant Info ${TENANT_ID_1} TenantInfoBR + Check HTTP Response Status Code Is 400 + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_005_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_005_OK + ... Check that the IUT removes a tenantInfo when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.4.3.5 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Remove specific tenant info resource ${TENANT_ID_1} + Check HTTP Response Status Code Is 204 + +TC_MEC_MEC048_MEO_CSE_005_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_005_NF + ... Check that the IUT returns an error on deleting a not existing tenantInfo when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.4.3.5 + [Tags] PIC_SERVICES + Remove specific tenant info resource ${NOT_EXISTING_TENANT_ID} + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC048_MEO_CSE_006_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_006_OK + ... Check that the IUT returns a resourceQuotaInfo for a specific tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.5.3.1, clause 6.2.3 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Register resource quota Info ${TENANT_ID_1} ResourceQuotaInfo + Retrieve specific resource quota info resource ${TENANT_ID_1} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ResourceQuotaInfo + Remove specific resource quota info resource ${TENANT_ID_1} + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_006_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_006_NF + ... Check that the IUT returns an error on retrieving resourceQuotaInfo for a not existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.5.3.1, clause 6.2.3 + [Tags] PIC_SERVICES + Retrieve specific resource quota info resource ${NOT_EXISTING_TENANT_ID} + Check HTTP Response Status Code Is 404 + +# TO DO +TC_MEC_MEC048_MEO_CSE_007_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_007_OK + ... Check that the IUT updates the resourceQuotaInfo for an existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.5.3.2, clause 6.2.3 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Register resource quota Info ${TENANT_ID_1} ResourceQuotaInfo + Update resource quota Info ${TENANT_ID_1} ResourceQuotaInfoUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ResourceQuotaInfo + + ${CPU_QUOTA_VALUE} Get value entry from JSON file ResourceQuotaInfoUpdate cpuQuota + ${MEMORY_QUOTA_VALUE} Get value entry from JSON file ResourceQuotaInfoUpdate memoryQuota + ${DISK_QUOTA_VALUE} Get value entry from JSON file ResourceQuotaInfoUpdate diskQuota + + Should Be Equal As Strings ${response['body']['cpuQuota']} ${CPU_QUOTA_VALUE} + Should Be Equal As Strings ${response['body']['memoryQuota']} ${MEMORY_QUOTA_VALUE} + Should Be Equal As Strings ${response['body']['diskQuota']} ${DISK_QUOTA_VALUE} + + Remove specific resource quota info resource ${TENANT_ID_1} + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +# TO DO +TC_MEC_MEC048_MEO_CSE_007_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_007_NF + ... Check that the IUT returns an error on updating the resourceQuotaInfo for a not existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.5.3.2, clause 6.2.3 + [Tags] PIC_SERVICES + Update resource quota Info ${NOT_EXISTING_TENANT_ID} ResourceQuotaInfoUpdate + Check HTTP Response Status Code Is 404 +TC_MEC_MEC048_MEO_CSE_008_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_008_OK + ... Check that the IUT creates the resourceQuotaInfo for an existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.5.3.4, clause 6.2.3 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Register resource quota Info ${TENANT_ID_1} ResourceQuotaInfo + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is ResourceQuotaInfo + Remove specific resource quota info resource ${TENANT_ID_1} + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_008_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_008_NF + ... Check that the IUT returns an error on creating the resourceQuotaInfo for a not existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.5.3.4, clause 6.2.3 + [Tags] PIC_SERVICES + Register resource quota Info ${NOT_EXISTING_TENANT_ID} ResourceQuotaInfo + Check HTTP Response Status Code Is 404 + +# MISATKE IN URL (TEST PURPOSE) ,TO DO +TC_MEC_MEC048_MEO_CSE_009_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_009_OK + ... Check that the IUT returns the list of per site resource quota for a specific tenant when requested to a CSE - No filter + ... ETSI GS MEC 048 v3.1.1, clause 7.6.3.1, clause 6.2.4 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Register mutiple site resource quota Info and get site Ids ${TENANT_ID_1} SiteResourceQuotaInfo SiteResourceQuotaInfo2 SiteResourceQuotaInfo3 + Retrieve all resource quota info resource ${TENANT_ID_1} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SiteResourceQuotaInfoList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[siteId] ${SITE_ID_1} + END + Remove mutiple site resource quota Info ${TENANT_ID_1} ${SITE_ID_1} ${SITE_ID_2} ${SITE_ID_3} + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_009_OK_01 + [Documentation] TP_MEC_MEC048_MEO_CSE_009_OK_01 + ... Check that the IUT returns the list of per site resource quota for a specific tenant when requested to a CSE - siteId filter + ... ETSI GS MEC 048 v3.1.1, clause 7.6.3.1, clause 6.2.4 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Register mutiple site resource quota Info and get site Ids ${TENANT_ID_1} SiteResourceQuotaInfo SiteResourceQuotaInfo2 SKIP + Retrieve all site resource quota info resource with query parameters ${TENANT_ID_1} siteId=${SITE_ID_1} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SiteResourceQuotaInfoList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[siteId] ${SITE_ID_1} + END + Remove mutiple site resource quota Info ${TENANT_ID_1} ${SITE_ID_1} ${SITE_ID_2} SKIP + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_009_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_009_NF + ... Check that the IUT returns an error on requesting site resource quota info on a not existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.6.3.1, clause 6.2.4 + [Tags] PIC_SERVICES + Retrieve all site resource quota info resource ${NOT_EXISTING_TENANT_ID} + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC048_MEO_CSE_010_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_010_OK + ... Check that the IUT creates a site resource quota info for an existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.6.3.4, clause 6.2.4 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Register site resource quota Info ${TENANT_ID_1} SiteResourceQuotaInfo + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is SiteResourceQuotaInfo + Remove specific site resource quota info resource ${TENANT_ID_1} ${response}[body][siteId] + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +*** Keywords *** + +Retrieve all tenant info resources + Log Getting all Tenant Info + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/tenants + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve specific tenant info resource + [Arguments] ${TEANNT_ID} + Log Getting Specific Tenant Info Resource + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/tenants/${TEANNT_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve all tenant info resources with query parameters + [Arguments] ${query_params} + Log Getting all Tenant Info with query parameter + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/tenants?${query_params} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Register tenant Info + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + POST ${apiRoot}/${apiName}/${apiVersion}/tenants ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + Set Suite Variable ${TENANT_ID_1} ${response}[body][tenantId] + +Update tenant Info + [Arguments] ${tenantId} ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + PUT ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId} + ${output}= Output response + Set Suite Variable ${response} ${output} + Set Suite Variable ${TENANT_ID} ${response}[body][tenantId] + +Update resource quota Info + [Arguments] ${tenantId} ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + PUT ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_system + ${output}= Output response + Set Suite Variable ${response} ${output} + Set Suite Variable ${TENANT_ID} ${response}[body][tenantId] + +Register mutiple tenant Info and get tenant Ids + [Arguments] ${content_01} ${content_02} ${content_03} + Register tenant Info ${content_01} + Set Suite Variable ${TENANT_ID_1} ${response}[body][tenantId] + Set Suite Variable ${CUSTOMER_ID_1} ${response}[body][customerId] + Set Suite Variable ${CUSTOMER_NAME_1} ${response}[body][customerName] + Register tenant Info ${content_02} + Set Suite Variable ${TENANT_ID_2} ${response}[body][tenantId] + Set Suite Variable ${CUSTOMER_ID_2} ${response}[body][customerId] + Set Suite Variable ${CUSTOMER_NAME_2} ${response}[body][customerName] + Register tenant Info ${content_03} + Set Suite Variable ${TENANT_ID_3} ${response}[body][tenantId] + Set Suite Variable ${CUSTOMER_ID_3} ${response}[body][customerId] + Set Suite Variable ${CUSTOMER_NAME_3} ${response}[body][customerName] + +Remove mutiple tenant Info + [Arguments] ${tenant_id_1} ${tenant_id_2} ${tenant_id_3} + Run Keyword If '${tenant_id_1}' != 'SKIP' Remove specific tenant info resource ${tenant_id_1} + Remove specific tenant info resource ${tenant_id_2} + Remove specific tenant info resource ${tenant_id_3} + +Remove specific tenant info resource + [Arguments] ${tenantId} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve specific resource quota info resource + [Arguments] ${TEANNT_ID} + Log Getting Specific Resource Quota Info + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/tenants/${TEANNT_ID}/resources/quota_in_system + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve all resource quota info resource + [Arguments] ${TEANNT_ID} + Log Getting All Resource Quota Info + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/tenants/${TEANNT_ID}/resources/quota_in_system + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve all site resource quota info resource + [Arguments] ${TEANNT_ID} + Log Getting All Site Resource Quota Info + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/tenants/${TEANNT_ID}/resources/quota_in_sites + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve all site resource quota info resource with query parameters + [Arguments] ${TEANNT_ID} ${query_params} + Log Getting All Site Resource Quota Info with query parameters + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/tenants/${TEANNT_ID}/resources/quota_in_sites?${query_params} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Register mutiple site resource quota Info and get site Ids + [Arguments] ${tenantId} ${content_01} ${content_02} ${content_03} + Register site resource quota Info ${tenantId} ${content_01} + Set Suite Variable ${SITE_ID_1} ${response}[body][siteId] + Register site resource quota Info ${tenantId} ${content_02} + Set Suite Variable ${SITE_ID_2} ${response}[body][siteId] + Run Keyword If '${content_03}' != 'SKIP' Register site resource quota Info ${tenantId} ${content_03} + Run Keyword If '${content_03}' != 'SKIP' Set Suite Variable ${SITE_ID_3} ${response}[body][siteId] + +Register resource quota Info + [Arguments] ${tenantId} ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + POST ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_system ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Register site resource quota Info + [Arguments] ${tenantId} ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + POST ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_sites ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove mutiple site resource quota Info + [Arguments] ${tenant_id_1} ${site_id_1} ${site_id_2} ${site_id_3} + Run Keyword If '${tenant_id_1}' != 'SKIP' Remove specific site resource quota info resource ${tenant_id_1} ${site_id_1} + Remove specific site resource quota info resource ${tenant_id_1} ${site_id_2} + Run Keyword If '${site_id_3}' != 'SKIP' Remove specific site resource quota info resource ${tenant_id_1} ${site_id_3} + +Remove specific resource quota info resource + [Arguments] ${tenantId} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_system + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove specific site resource quota info resource + [Arguments] ${tenantId} ${siteId} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_sites/${siteId} + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file -- GitLab From 4f086f94ef9de4384ed2a3315ccb8b8372415f63 Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Fri, 23 May 2025 11:20:04 +0500 Subject: [PATCH 15/55] Add Remaining TestCases For MEC048 Test Suite --- .../CSE/CustomerSelfServiceEnablement.robot | 846 +++++++++++++++++- MEC048/MEO/CSE/environment/variables.txt | 10 +- MEC048/MEO/CSE/jsons/ExpiryNotification.json | 9 + .../CSE/jsons/ResourceQuotaInfoUpdate.json | 6 +- .../CSE/jsons/ResourceUsageSubscription.json | 11 + .../CSE/jsons/ResourceUsageSubscription1.json | 11 + .../CSE/jsons/ResourceUsageSubscription2.json | 11 + .../jsons/ResourceUsageSubscriptionBR.json | 10 + .../ResourceUsageSubscriptionWithExpiry.json | 12 + .../MEO/CSE/jsons/SiteResourceQuotaInfo.json | 10 +- .../MEO/CSE/jsons/SiteResourceQuotaInfo2.json | 10 +- .../MEO/CSE/jsons/SiteResourceQuotaInfo3.json | 10 +- .../CSE/jsons/SiteResourceQuotaInfoBR.json | 3 + .../jsons/SiteResourceUsageSubscription.json | 12 + .../jsons/SiteResourceUsageSubscription1.json | 12 + .../SiteResourceUsageSubscriptionBR.json | 11 + .../SiteResourceUsageSubscriptionUpdate.json | 12 + MEC048/MEO/CSE/libraries/Server.py | 52 ++ MEC048/MEO/CSE/libraries/StressGenerator.py | 37 + .../__pycache__/Server.cpython-312.pyc | Bin 0 -> 3527 bytes .../StressGenerator.cpython-312.pyc | Bin 0 -> 1896 bytes .../schemas/ExpiryNotification.schema.json | 9 + .../ResourceUsageNotification.schema.json | 14 + .../ResourceUsageSubscription.schema.json | 60 ++ .../SiteResourceUsageNotification.schema.json | 56 ++ .../SiteResourceUsageSubscription.schema.json | 67 ++ .../schemas/SubscriptionLinkList.schema.json | 38 + 27 files changed, 1317 insertions(+), 22 deletions(-) create mode 100644 MEC048/MEO/CSE/jsons/ExpiryNotification.json create mode 100644 MEC048/MEO/CSE/jsons/ResourceUsageSubscription.json create mode 100644 MEC048/MEO/CSE/jsons/ResourceUsageSubscription1.json create mode 100644 MEC048/MEO/CSE/jsons/ResourceUsageSubscription2.json create mode 100644 MEC048/MEO/CSE/jsons/ResourceUsageSubscriptionBR.json create mode 100644 MEC048/MEO/CSE/jsons/ResourceUsageSubscriptionWithExpiry.json create mode 100644 MEC048/MEO/CSE/jsons/SiteResourceQuotaInfoBR.json create mode 100644 MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription.json create mode 100644 MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription1.json create mode 100644 MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionBR.json create mode 100644 MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionUpdate.json create mode 100644 MEC048/MEO/CSE/libraries/Server.py create mode 100644 MEC048/MEO/CSE/libraries/StressGenerator.py create mode 100644 MEC048/MEO/CSE/libraries/__pycache__/Server.cpython-312.pyc create mode 100644 MEC048/MEO/CSE/libraries/__pycache__/StressGenerator.cpython-312.pyc create mode 100644 MEC048/MEO/CSE/schemas/ExpiryNotification.schema.json create mode 100644 MEC048/MEO/CSE/schemas/ResourceUsageNotification.schema.json create mode 100644 MEC048/MEO/CSE/schemas/ResourceUsageSubscription.schema.json create mode 100644 MEC048/MEO/CSE/schemas/SiteResourceUsageNotification.schema.json create mode 100644 MEC048/MEO/CSE/schemas/SiteResourceUsageSubscription.schema.json create mode 100644 MEC048/MEO/CSE/schemas/SubscriptionLinkList.schema.json diff --git a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot index 831448a..cee7386 100644 --- a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot +++ b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot @@ -1,5 +1,5 @@ -Y''[Documentation] robot --outputdir ../../../outputs ./V2XInformationService.robot -... Test Suite to validate V2X Information Service API (VIS) operations. +Y''[Documentation] robot --outputdir ../../../outputs ./CustomerSelfServiceEnablement.robot +... Test Suite to validate CustomerSelfServiceEnablement Service API operations. *** Settings *** Resource environment/variables.txt @@ -7,7 +7,12 @@ Resource ../../../pics.txt Resource ../../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem -Library JSONLibrary +Library libraries/Server.py +Library libraries/StressGenerator.py +Library JSONLibrary +Library String +Library Collections +Library DateTime *** Test Cases *** TC_MEC_MEC048_MEO_CSE_001_OK @@ -275,8 +280,843 @@ TC_MEC_MEC048_MEO_CSE_010_OK Remove specific site resource quota info resource ${TENANT_ID_1} ${response}[body][siteId] [Teardown] Remove specific tenant info resource ${TENANT_ID_1} +TC_MEC_MEC048_MEO_CSE_010_BR + [Documentation] TP_MEC_MEC048_MEO_CSE_010_BR + ... Check that the IUT returns an error on creating a site resource quota with wrong parameters + ... ETSI GS MEC 048 v3.1.1, clause 7.6.3.4, clause 6.2.4 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Register site resource quota Info ${TENANT_ID_1} SiteResourceQuotaInfoBR + Check HTTP Response Status Code Is 400 + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_011_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_011_OK + ... Check that the IUT returns the site resource quota for a specific tenant and site identifier when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.7.3.1, clause 6.2.4 + [Tags] PIC_SERVICES + [Setup] Register multiple site resource quotas for tenant + Retrieve specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SiteResourceQuotaInfo + Should Be Equal As Strings ${response['body']['siteId']} ${SITE_ID_1} + Should Be Equal As Integers ${response['body']['cpuQuota']} ${CPU_QUOTA_1} + Should Be Equal As Integers ${response['body']['memoryQuota']} ${MEMORY_QUOTA_1} + Should Be Equal As Integers ${response['body']['diskQuota']} ${DISK_QUOTA_1} + [Teardown] Remove tenant and site resources + +TC_MEC_MEC048_MEO_CSE_011_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_011_NF + ... Check that the IUT returns an error on requesting the site resource quota for a specific tenant and a not existing site identifier when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.7.3.1, clause 6.2.4 + [Tags] PIC_SERVICES + [Setup] Register tenant Info TenantInfo + Retrieve specific site resource quota info resource ${TENANT_ID_1} ${NOT_EXISTING_TENANT_ID} + Check HTTP Response Status Code Is 404 + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_012_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_012_OK + ... Check that the IUT updates a site resource quota info for an existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.7.3.2, clause 6.2.4 + [Tags] PIC_SERVICES + [Setup] Register site resource quota for tenant + # Update the site resource quota with new values + Update site resource quota Info ${TENANT_ID_1} ${SITE_ID_1} SiteResourceQuotaInfoUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SiteResourceQuotaInfo + + # Verify the updated values match what we sent + ${CPU_QUOTA_VALUE} Get value entry from JSON file SiteResourceQuotaInfoUpdate cpuQuota + ${MEMORY_QUOTA_VALUE} Get value entry from JSON file SiteResourceQuotaInfoUpdate memoryQuota + ${DISK_QUOTA_VALUE} Get value entry from JSON file SiteResourceQuotaInfoUpdate diskQuota + + Should Be Equal As Strings ${response['body']['siteId']} ${SITE_ID_1} + Should Be Equal As Integers ${response['body']['cpuQuota']} ${CPU_QUOTA_VALUE} + Should Be Equal As Integers ${response['body']['memoryQuota']} ${MEMORY_QUOTA_VALUE} + Should Be Equal As Integers ${response['body']['diskQuota']} ${DISK_QUOTA_VALUE} + + [Teardown] Remove tenant and site resources + +TC_MEC_MEC048_MEO_CSE_012_BR + [Documentation] TP_MEC_MEC048_MEO_CSE_012_BR + ... Check that the IUT returns an error updating a site resource quota info for an existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.7.3.2, clause 6.2.4 + [Tags] PIC_SERVICES + [Setup] Register site resource quota for tenant + # Attempt to update the site resource quota with invalid data + Update site resource quota Info ${TENANT_ID_1} ${SITE_ID_1} SiteResourceQuotaInfoBR + Check HTTP Response Status Code Is 400 + [Teardown] Remove tenant and site resources + +TC_MEC_MEC048_MEO_CSE_012_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_012_NF + ... Check that the IUT returns an error updating a site resource quota info for a not existing tenant when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.7.3.2, clause 6.2.4 + [Tags] PIC_SERVICES + # No setup needed as we're testing with a non-existing tenant + Update site resource quota Info ${NOT_EXISTING_TENANT_ID} ${NOT_EXISTING_SITE_ID} SiteResourceQuotaInfoUpdate + Check HTTP Response Status Code Is 404 + # No teardown needed as no resources were created + +TC_MEC_MEC048_MEO_CSE_013_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_013_OK + ... Check that the IUT returns the list of subscriptions when requested to a CSE - no filter + ... ETSI GS MEC 048 v3.1.1, clause 7.8.3.1, clause 6.3.4 + [Tags] PIC_SERVICES + [Setup] Create test subscriptions + Retrieve all subscriptions + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SubscriptionLinkList + # Verify _links.self is present and correct + Should Be Equal As Strings ${response['body']['_links']['self']['href']} ${apiRoot}/${apiName}/${apiVersion}/subscriptions + # Verify subscription items exist + ${subscriptions}= Get From Dictionary ${response['body']} subscription + ${subscription_count}= Get Length ${subscriptions} + Should Be True ${subscription_count} >= 3 + # Verify the subscription types are as expected - at least one of each type + ${resource_type_count}= Count Subscriptions Of Type ${subscriptions} ResourceUsageSubscription + ${site_resource_type_count}= Count Subscriptions Of Type ${subscriptions} SiteResourceUsageSubscription + Should Be True ${resource_type_count} >= 2 Found only ${resource_type_count} ResourceUsageSubscription, expected at least 2 + Should Be True ${site_resource_type_count} >= 1 Found only ${site_resource_type_count} SiteResourceUsageSubscription, expected at least 1 + [Teardown] Remove test subscriptions + +TC_MEC_MEC048_MEO_CSE_013_OK_02 + [Documentation] TP_MEC_MEC048_MEO_CSE_013_OK_02 + ... Check that the IUT returns the list of subscriptions when requested to a CSE - subscription_type filter + ... ETSI GS MEC 048 v3.1.1, clause 7.8.3.1, clause 6.3.4 + [Tags] PIC_SERVICES + [Setup] Create test subscriptions + # Retrieve subscriptions with subscription_type filter + Retrieve subscriptions with filter subscription_type=ResourceUsageSubscription + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SubscriptionLinkList + # Verify _links.self is present and includes the query parameter + Should Be Equal As Strings ${response['body']['_links']['self']['href']} ${apiRoot}/${apiName}/${apiVersion}/subscriptions?subscription_type=ResourceUsageSubscription + # Verify subscription items exist + ${subscriptions}= Get From Dictionary ${response['body']} subscription + ${subscription_count}= Get Length ${subscriptions} + # Should have at least the ResourceUsageSubscription types we created + Should Be True ${subscription_count} >= 2 + # Verify ONLY ResourceUsageSubscription types are returned (no SiteResourceUsageSubscription) + FOR ${subscription} IN @{subscriptions} + Should Be Equal As Strings ${subscription['subscriptionType']} ResourceUsageSubscription + END + [Teardown] Remove test subscriptions + +TC_MEC_MEC048_MEO_CSE_014_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_014_OK + ... Check that the IUT creates a new subscription when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.8.3.4, clause 6.3.2, clause 6.3.3 + [Tags] PIC_SERVICES + + # Setup - Create a tenant to use for the subscription + [Setup] Register tenant Info TenantInfo + Set Suite Variable ${TENANT_ID_1} ${response['body']['tenantId']} + Set Suite Variable ${CUSTOMER_ID_1} ${response['body']['customerId']} + + # Create a new ResourceUsageSubscription + Create ResourceUsageSubscription ResourceUsageSubscription + + # Verify response status code + Check HTTP Response Status Code Is 201 + + # Verify response body schema + Check HTTP Response Body Json Schema Is ResourceUsageSubscription + + # Verify Location header (should contain the URI of the created subscription) + ${location_header}= Get From Dictionary ${response['headers']} Location + Should Not Be Empty ${location_header} + Should Match Regexp ${location_header} ${apiRoot}/${apiName}/${apiVersion}/subscriptions/\\w+ + + # Store subscription ID for cleanup + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + + # Verify response body content + Should Be Equal As Strings ${response['body']['subscriptionType']} ResourceUsageSubscription + Should Be Equal As Strings ${response['body']['customerId']} ${CUSTOMER_ID_1} + Should Be Equal As Strings ${response['body']['tenantId']} ${TENANT_ID_1} + Should Be Equal As Strings ${response['body']['callbackReference']} some/uri + + # Verify notification trigger details + Should Be Equal As Integers ${response['body']['notificationTrigger']['triggerType']} 10 + Should Be Equal As Integers ${response['body']['notificationTrigger']['threshold']} 4 + # In the schema, greaterOrLess is a boolean, but in the specification it's 0/1 + # This could be handled either way depending on your implementation + Should Be Equal ${response['body']['notificationTrigger']['greaterOrLess']} ${FALSE} + + # Verify self-link in response + Should Not Be Empty ${response['body']['_links']['self']['href']} + + # Teardown - clean up the created resources + [Teardown] Run Keywords + ... Delete Created Subscription AND + ... Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_014_OK_02 + [Documentation] TP_MEC_MEC048_MEO_CSE_014_OK_02 + ... Check that the IUT creates a new subscription when requested to a CSE - SiteResourceUsageSubscription + ... ETSI GS MEC 048 v3.1.1, clause 7.8.3.4, clause 6.3.2, clause 6.3.3 + [Tags] PIC_SERVICES + + # Setup - Create a tenant and site resources to use for the subscription + [Setup] Register site resource quota for tenant + + # Create a new SiteResourceUsageSubscription + Register subscription SiteResourceUsageSubscription1 + + # Verify response status code + Check HTTP Response Status Code Is 201 + + # Verify response body schema + Check HTTP Response Body Json Schema Is SiteResourceUsageSubscription + + # Verify Location header (should contain the URI of the created subscription) + ${location_header}= Get From Dictionary ${response['headers']} Location + Should Not Be Empty ${location_header} + Should Match Regexp ${location_header} ${apiRoot}/${apiName}/${apiVersion}/subscriptions/\\w+ + + # Store subscription ID for cleanup + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + + # Verify response body content + Should Be Equal As Strings ${response['body']['subscriptionType']} SiteResourceUsageSubscription + Should Be Equal As Strings ${response['body']['customerId']} ${CUSTOMER_ID_1} + Should Be Equal As Strings ${response['body']['tenantId']} ${TENANT_ID_1} + Should Be Equal As Strings ${response['body']['callbackReference']} some/uri + + # Verify siteList contains our test site + ${siteList}= Get From Dictionary ${response['body']} siteList + List Should Contain Value ${siteList} ${SITE_ID_1} + + # Verify notification trigger details + Should Be Equal As Integers ${response['body']['notificationTrigger']['triggerType']} 10 + Should Be Equal As Integers ${response['body']['notificationTrigger']['threshold']} 4 + Should Be Equal ${response['body']['notificationTrigger']['greaterOrLess']} ${FALSE} + + # Verify self-link in response + Should Not Be Empty ${response['body']['_links']['self']['href']} + + # Teardown - clean up the created resources + [Teardown] Run Keywords + ... Delete Created Subscription AND + ... Remove tenant and site resources + +TC_MEC_MEC048_MEO_CSE_014_BR + [Documentation] TP_MEC_MEC048_MEO_CSE_014_BR + ... Check that the IUT returns an error on creating a new subscription when requested to a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.8.3.4, clause 6.3.2, clause 6.3.3 + [Tags] PIC_SERVICES + + # Setup - Create a tenant to use for the subscription + [Setup] Register tenant Info TenantInfo + Set Suite Variable ${TENANT_ID_1} ${response['body']['tenantId']} + Set Suite Variable ${CUSTOMER_ID_1} ${response['body']['customerId']} + + # Attempt to create a subscription with missing required parameters + Register subscription ResourceUsageSubscriptionBR + + # Verify that a 400 Bad Request error is returned + Check HTTP Response Status Code Is 400 + + # Teardown - clean up the created tenant + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_015_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_015_OK + ... Check that the IUT returns a subscription when requested by a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.1, clause 6.3.2, clause 6.3.3 + [Tags] PIC_SERVICES + + # Setup - Create a tenant, site resources, and subscription + [Setup] Register site resource quota for tenant + + # Create a SiteResourceUsageSubscription + Register subscription SiteResourceUsageSubscription + + # Save the subscription ID for later retrieval and cleanup + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + + # Retrieve the specific subscription + Retrieve specific subscription ${subscription_id} + + # Verify response status code + Check HTTP Response Status Code Is 200 + + # Verify response body schema + Check HTTP Response Body Json Schema Is SiteResourceUsageSubscription + + # Verify response body content + Should Be Equal As Strings ${response['body']['subscriptionType']} SiteResourceUsageSubscription + Should Be Equal As Strings ${response['body']['customerId']} ${CUSTOMER_ID_1} + Should Be Equal As Strings ${response['body']['tenantId']} ${TENANT_ID_1} + Should Be Equal As Strings ${response['body']['callbackReference']} some/uri + + # Verify siteList contains our test site + ${siteList}= Get From Dictionary ${response['body']} siteList + List Should Contain Value ${siteList} ${SITE_ID_1} + + # Verify notification trigger details + Should Be Equal As Integers ${response['body']['notificationTrigger']['triggerType']} 10 + Should Be Equal As Integers ${response['body']['notificationTrigger']['threshold']} 4 + Should Be Equal ${response['body']['notificationTrigger']['greaterOrLess']} ${FALSE} + + # Verify self-link in response + Should Not Be Empty ${response['body']['_links']['self']['href']} + Should Be Equal As Strings ${response['body']['_links']['self']['href']} ${subscription_uri} + + # Teardown - clean up the created resources + [Teardown] Run Keywords + ... Delete Created Subscription AND + ... Remove tenant and site resources + +TC_MEC_MEC048_MEO_CSE_015_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_015_NF + ... Check that the IUT returns an error on requesting a not existing subscription when requested by a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.1, clause 6.3.2, clause 6.3.3 + [Tags] PIC_SERVICES + + # Attempt to retrieve a non-existent subscription + Retrieve specific subscription ${NOT_EXISTING_SUBSCRIPTION_ID} + + # Verify response status code is 404 Not Found + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC048_MEO_CSE_016_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_016_OK + ... Check that the IUT updates an existing subscription when requested by a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.2, clause 6.3.2, clause 6.3.3 + [Tags] PIC_SERVICES + + # Setup - Create a tenant, site resources, and subscription + [Setup] Register site resource quota for tenant + + # Create a SiteResourceUsageSubscription to be updated later + Register subscription SiteResourceUsageSubscription + + # Save the subscription ID for update and cleanup + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + Set Suite Variable ${OLD_CUSTOMER_ID} ${response['body']['customerId']} + + # Create another tenant to get a new customer ID + Register tenant Info TenantInfo2 + Set Suite Variable ${NEW_CUSTOMER_ID} ${response['body']['customerId']} + Set Suite Variable ${TENANT_ID_2} ${response['body']['tenantId']} + + # Update the subscription with the new customer ID + Update subscription ${subscription_id} SiteResourceUsageSubscriptionUpdate + + # Verify response status code + Check HTTP Response Status Code Is 200 + + # Verify response body schema + Check HTTP Response Body Json Schema Is SiteResourceUsageSubscription + + # Verify response body content - specifically that the customerId has been updated + Should Be Equal As Strings ${response['body']['subscriptionType']} SiteResourceUsageSubscription + Should Be Equal As Strings ${response['body']['customerId']} ${NEW_CUSTOMER_ID} + Should Not Be Equal As Strings ${response['body']['customerId']} ${OLD_CUSTOMER_ID} + Should Be Equal As Strings ${response['body']['tenantId']} ${TENANT_ID_1} + Should Be Equal As Strings ${response['body']['callbackReference']} some/uri/updated + + # Verify siteList contains our test site + ${siteList}= Get From Dictionary ${response['body']} siteList + List Should Contain Value ${siteList} ${SITE_ID_1} + + # Verify notification trigger details + Should Be Equal As Integers ${response['body']['notificationTrigger']['triggerType']} 10 + Should Be Equal As Integers ${response['body']['notificationTrigger']['threshold']} 4 + Should Be Equal ${response['body']['notificationTrigger']['greaterOrLess']} ${FALSE} + + # Verify self-link in response + Should Not Be Empty ${response['body']['_links']['self']['href']} + Should Be Equal As Strings ${response['body']['_links']['self']['href']} ${subscription_uri} + + # Teardown - clean up the created resources + [Teardown] Run Keywords + ... Delete Created Subscription AND + ... Remove tenant and site resources AND + ... Remove specific tenant info resource ${TENANT_ID_2} + +TC_MEC_MEC048_MEO_CSE_016_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_016_NF + ... Check that the IUT returns an error updating an not existing subscription when requested by a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.2, clause 6.3.2, clause 6.3.3 + [Tags] PIC_SERVICES + + # Setup - Create a tenant and site resources for the update request + [Setup] Register site resource quota for tenant + + # Create a JSON template for another tenant to get a customer ID + Register tenant Info TenantInfo2 + Set Suite Variable ${NEW_CUSTOMER_ID} ${response['body']['customerId']} + Set Suite Variable ${TENANT_ID_2} ${response['body']['tenantId']} + + # Attempt to update a non-existent subscription + Update subscription ${NOT_EXISTING_SUBSCRIPTION_ID} SiteResourceUsageSubscriptionUpdate + + # Verify response status code is 404 Not Found + Check HTTP Response Status Code Is 404 + + # Teardown - clean up the created resources + [Teardown] Run Keywords + ... Remove tenant and site resources AND + ... Remove specific tenant info resource ${TENANT_ID_2} + +TC_MEC_MEC048_MEO_CSE_016_BR + [Documentation] TP_MEC_MEC048_MEO_CSE_016_BR + ... Check that the IUT returns an error updating an existing subscription with wrong parameters when requested by a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.2, clause 6.3.2, clause 6.3.3 + [Tags] PIC_SERVICES + + # Setup - Create a tenant, site resources, and a valid subscription + [Setup] Register site resource quota for tenant + + # Create a SiteResourceUsageSubscription to be updated later + Register subscription SiteResourceUsageSubscription + + # Save the subscription ID for update and cleanup + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + + # Create another tenant to get a new customer ID for the update + Register tenant Info TenantInfo2 + Set Suite Variable ${NEW_CUSTOMER_ID} ${response['body']['customerId']} + Set Suite Variable ${TENANT_ID_2} ${response['body']['tenantId']} + + # Attempt to update the subscription with invalid parameters (missing both callbackReference and websockNotifConfig) + Update subscription ${subscription_id} SiteResourceUsageSubscriptionBR + + # Verify response status code is 400 Bad Request + Check HTTP Response Status Code Is 400 + + # Teardown - clean up the created resources + [Teardown] Run Keywords + ... Delete Created Subscription AND + ... Remove tenant and site resources AND + ... Remove specific tenant info resource ${TENANT_ID_2} + +TC_MEC_MEC048_MEO_CSE_017_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_017_OK + ... Check that the IUT deletes an existing subscription when requested by a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.2 + [Tags] PIC_SERVICES + + # Setup - Create a tenant, site resources, and subscription + [Setup] Register site resource quota for tenant + + # Create a SiteResourceUsageSubscription to be deleted + Register subscription SiteResourceUsageSubscription + + # Save the subscription ID for deletion + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ + + # Delete the subscription + Delete subscription ${subscription_id} + + # Verify response status code is 204 No Content + Check HTTP Response Status Code Is 204 + + # Verify the subscription no longer exists (optional) + Retrieve specific subscription ${subscription_id} + Check HTTP Response Status Code Is 404 + + # Teardown - clean up the created resources (only tenant and site as subscription is deleted) + [Teardown] Remove tenant and site resources + +TC_MEC_MEC048_MEO_CSE_017_NF + [Documentation] TP_MEC_MEC048_MEO_CSE_017_NF + ... Check that the IUT returns an error on a deletion of a not existing subscription when requested by a CSE + ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.2 + [Tags] PIC_SERVICES + + # Attempt to delete a non-existent subscription + Delete subscription ${NOT_EXISTING_SUBSCRIPTION_ID} + + # Verify response status code is 404 Not Found + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC048_MEO_CSE_018_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_018_OK + ... Check that the CSE sends a site resource usage notification if the CSE has an associated subscription and the event is generated + ... ETSI GS MEC 048 v3.1.1, clause 7.8.3.4, clause 6.4.3 + [Tags] PIC_SERVICES + + # Setup - Create a tenant and site resources + [Setup] Register site resource quota for tenant + + # Create a SiteResourceUsageSubscription with callback to our notification server + ${subscription_json}= Get File jsons/SiteResourceUsageSubscription.json + ${callback_url}= Set Variable http://${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT}${NOTIFICATION_SERVER_URI} + ${subscription_json}= Replace String ${subscription_json} "some/uri" "${callback_url}" + ${subscription_json}= Replace String ${subscription_json} "placeholder-tenant" "${TENANT_ID_1}" + ${subscription_json}= Replace String ${subscription_json} "placeholder-customer" "${CUSTOMER_ID_1}" + ${subscription_json}= Replace String ${subscription_json} ["placeholder-site"] ["${SITE_ID_1}"] + + # Register the subscription with our callback URL + Post Raw Subscription ${subscription_json} + Check HTTP Response Status Code Is 201 + + # Save the subscription ID for cleanup + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + + # Generate load to trigger the notification + Log Generating CPU load to trigger notification + ${result}= Generate CPU Load 60 4 + Log ${result} + + # Start the notification server to wait for and capture the notification + ${notification}= Spawn Notification Server + # Verify notification exists + Should Not Be Empty ${notification} + + # Verify notification content + Should Be Equal As Strings ${notification['notificationType']} SiteResourceUsageNotification + Should Be Equal As Strings ${notification['customerId']} ${CUSTOMER_ID_1} + Should Be Equal As Strings ${notification['tenantId']} ${TENANT_ID_1} + + # Verify resource usage information + ${site_info}= Get From List ${notification['resourceUseInfo']} 0 + Should Be Equal As Strings ${site_info['siteId']} ${SITE_ID_1} + Should Be Equal As Integers ${site_info['cpuUsed']} 5 + + # Teardown - clean up resources + [Teardown] Run Keywords + ... Delete Created Subscription AND + ... Remove tenant and site resources + +TC_MEC_MEC048_MEO_CSE_019_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_019_OK + ... Check that the CSE sends a resource usage notification if the CSE has an associated subscription and the event is generated + ... ETSI GS MEC 048 v3.1.1, clause 7.8.3.4, clause 6.4.2 + [Tags] PIC_SERVICES + + # Setup - Create a tenant for the subscription + [Setup] Register tenant Info TenantInfo + + # Create a ResourceUsageSubscription with callback to our notification server + ${subscription_json}= Get File jsons/ResourceUsageSubscription.json + ${callback_url}= Set Variable http://${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT}${NOTIFICATION_SERVER_URI} + ${subscription_json}= Replace String ${subscription_json} "some/uri" "${callback_url}" + ${subscription_json}= Replace String ${subscription_json} "tenant-123" "${TENANT_ID_1}" + ${subscription_json}= Replace String ${subscription_json} "customer-123" "${CUSTOMER_ID_1}" + + # Register the subscription with our callback URL + Post Raw Subscription ${subscription_json} + Check HTTP Response Status Code Is 201 + + # Save the subscription ID for cleanup + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + + # Generate load to trigger the notification + Log Generating CPU load to trigger notification + ${result}= Generate CPU Load 60 4 + Log ${result} + + # Start the notification server to wait for and capture the notification + ${notification}= Spawn Resource Notification Server + + # Verify notification exists + Should Not Be Empty ${notification} + + # Verify notification content + Should Be Equal As Strings ${notification['notificationType']} ResourceUsageNotification + Should Be Equal As Strings ${notification['customerId']} ${CUSTOMER_ID_1} + Should Be Equal As Strings ${notification['tenantId']} ${TENANT_ID_1} + + # Verify resource usage information + Should Be Equal As Integers ${notification['resourceUseInfo']['cpuUsed']} 5 + + # Teardown - clean up resources + [Teardown] Run Keywords + ... Delete Created Subscription AND + ... Remove specific tenant info resource ${TENANT_ID_1} + +TC_MEC_MEC048_MEO_CSE_020_OK + [Documentation] TP_MEC_MEC048_MEO_CSE_020_OK + ... Check that the CSE sends a notification on subscription expiration if the CSE has an associated subscription and the event is generated + ... ETSI GS MEC 048 v3.1.1, clause 7.8.3.4, clause 6.4.4 + [Tags] PIC_SERVICES + + # Setup - Create a tenant for the subscription + [Setup] Register tenant Info TenantInfo + + # Get the current time and add a short time for expiry deadline (10 seconds in the future) + ${current_time}= Get Current Date + ${expiry_time}= Add Time To Date ${current_time} 10 seconds + ${expiry_time_iso}= Convert Date ${expiry_time} result_format=%Y-%m-%dT%H:%M:%SZ + Set Suite Variable ${EXPIRY_DEADLINE} ${expiry_time_iso} + + # Create a ResourceUsageSubscription with a short expiry time and callback to our notification server + ${subscription_json}= Get File jsons/ResourceUsageSubscriptionWithExpiry.json + ${callback_url}= Set Variable http://${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT}${NOTIFICATION_SERVER_URI} + ${subscription_json}= Replace String ${subscription_json} "some/uri" "${callback_url}" + ${subscription_json}= Replace String ${subscription_json} "tenant-123" "${TENANT_ID_1}" + ${subscription_json}= Replace String ${subscription_json} "customer-123" "${CUSTOMER_ID_1}" + ${subscription_json}= Replace String ${subscription_json} "2099-12-31T23:59:59Z" "${EXPIRY_DEADLINE}" + + # Register the subscription with our callback URL + Post Raw Subscription ${subscription_json} + Check HTTP Response Status Code Is 201 + + # Save the subscription ID and HREF for verification + ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} + ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_id} + Set Suite Variable ${SUBSCRIPTION_HREF} ${subscription_uri} + + # Start the notification server to wait for and capture the expiry notification + # Need to wait for the subscription to expire (a bit longer than our expiry time) + ${notification}= Spawn Expiry Notification Server + + # Verify notification exists + Should Not Be Empty ${notification} + + # Verify notification content + Should Be Equal As Strings ${notification['notificationType']} ExpiryNotification + + # Verify subscription link in the notification + Should Be Equal As Strings ${notification['_links']['subscription']['href']} ${SUBSCRIPTION_HREF} + + # Verify expiry deadline matches what we set + Should Be Equal As Strings ${notification['expiryDeadline']} ${EXPIRY_DEADLINE} + + # Verify the subscription no longer exists/is expired + Retrieve specific subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + # Teardown - clean up tenant (subscription should be auto-removed after expiry) + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + *** Keywords *** +Spawn Expiry Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} for expiry notification + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Resource Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} SiteResourceUsageSubscription + [Return] ${notification} + +Post Raw Subscription + [Arguments] ${subscription_json} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${subscription_json} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Update subscription + [Arguments] ${subscription_id} ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + # Replace placeholder values in the JSON with actual test values + ${body}= Replace String ${body} "tenant-123" "${TENANT_ID_1}" + ${body}= Replace String ${body} "customer-new" "${NEW_CUSTOMER_ID}" + ${body}= Replace String ${body} "site-placeholder" "${SITE_ID_1}" + PUT ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscription_id} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve specific subscription + [Arguments] ${subscription_id} + Log Getting specific subscription: ${subscription_id} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscription_id} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Create ResourceUsageSubscription + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + # Replace placeholder values in the JSON with actual test values + ${body}= Replace String ${body} "placeholder" "${TENANT_ID_1}" count=1 + ${body}= Replace String ${body} "placeholder" "${CUSTOMER_ID_1}" count=1 + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Delete Created Subscription + ${sub_id}= Fetch From Right ${SUBSCRIPTION_ID} /subscriptions/ + Delete subscription ${sub_id} +Retrieve subscriptions with filter + [Arguments] ${query_params} + Log Getting subscriptions with filter: ${query_params} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${query_params} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Register subscription + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + # Replace placeholder values in the JSON with actual test values + ${body}= Replace String ${body} "tenant-123" "${TENANT_ID_1}" + ${body}= Replace String ${body} "customer-123" "${CUSTOMER_ID_1}" + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve all subscriptions + Log Getting all subscriptions + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove test subscriptions + # Extract subscription IDs from the hrefs + ${sub_id_1}= Fetch From Right ${SUBSCRIPTION_ID_1} /subscriptions/ + ${sub_id_2}= Fetch From Right ${SUBSCRIPTION_ID_2} /subscriptions/ + ${sub_id_3}= Fetch From Right ${SUBSCRIPTION_ID_3} /subscriptions/ + + # Delete the created subscriptions + Delete subscription ${sub_id_1} + Delete subscription ${sub_id_2} + Delete subscription ${sub_id_3} + + # Remove the tenant + Remove specific tenant info resource ${TENANT_ID_1} + +Delete subscription + [Arguments] ${subscription_id} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscription_id} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Count Subscriptions Of Type + [Arguments] ${subscriptions} ${subscription_type} + ${count}= Set Variable ${0} + FOR ${subscription} IN @{subscriptions} + ${type}= Get From Dictionary ${subscription} subscriptionType + ${count}= Run Keyword If '${type}' == '${subscription_type}' Evaluate ${count} + 1 ELSE Set Variable ${count} + END + [Return] ${count} + +Create test subscriptions + # First create a tenant for the subscriptions + Register tenant Info TenantInfo + Set Suite Variable ${TENANT_ID_1} ${response['body']['tenantId']} + Set Suite Variable ${CUSTOMER_ID_1} ${response['body']['customerId']} + + # Create ResourceUsageSubscription subscriptions + Register subscription ResourceUsageSubscription1 + Set Suite Variable ${SUBSCRIPTION_ID_1} ${response['body']['_links']['self']['href']} + Register subscription ResourceUsageSubscription2 + Set Suite Variable ${SUBSCRIPTION_ID_2} ${response['body']['_links']['self']['href']} + + # Create SiteResourceUsageSubscription subscription + Register subscription SiteResourceUsageSubscription + Set Suite Variable ${SUBSCRIPTION_ID_3} ${response['body']['_links']['self']['href']} + + +Register site resource quota for tenant + # Create tenant + Register tenant Info TenantInfo + Set Suite Variable ${TENANT_ID_1} ${response['body']['tenantId']} + # Create site resource quota + Register site resource quota Info ${TENANT_ID_1} SiteResourceQuotaInfo + Set Suite Variable ${SITE_ID_1} ${response['body']['siteId']} + +Update site resource quota Info + [Arguments] ${tenantId} ${siteId} ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + PUT ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_sites/${siteId} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Register multiple site resource quotas for tenant + # Create tenant + Register tenant Info TenantInfo + Set Suite Variable ${TENANT_ID_1} ${response['body']['tenantId']} + # Create three site resource quotas + Register site resource quota Info ${TENANT_ID_1} SiteResourceQuotaInfo + Set Suite Variable ${SITE_ID_1} ${response['body']['siteId']} + ${CPU_QUOTA}= Convert To Integer ${response['body']['cpuQuota']} + ${MEMORY_QUOTA}= Convert To Integer ${response['body']['memoryQuota']} + ${DISK_QUOTA}= Convert To Integer ${response['body']['diskQuota']} + Set Suite Variable ${CPU_QUOTA_1} ${CPU_QUOTA} + Set Suite Variable ${MEMORY_QUOTA_1} ${MEMORY_QUOTA} + Set Suite Variable ${DISK_QUOTA_1} ${DISK_QUOTA} + Register site resource quota Info ${TENANT_ID_1} SiteResourceQuotaInfo2 + Set Suite Variable ${SITE_ID_2} ${response['body']['siteId']} + Register site resource quota Info ${TENANT_ID_1} SiteResourceQuotaInfo3 + Set Suite Variable ${SITE_ID_3} ${response['body']['siteId']} + +Retrieve specific site resource quota info resource + [Arguments] ${tenantId} ${siteId} + Log Getting specific site resource quota for tenant ${tenantId} and site ${siteId} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_sites/${siteId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove tenant and site resources + # Remove site resource quotas + Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} + Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_2} + Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_3} + # Remove tenant + Remove specific tenant info resource ${TENANT_ID_1} + Retrieve all tenant info resources Log Getting all Tenant Info Set Headers {"Accept":"application/json"} diff --git a/MEC048/MEO/CSE/environment/variables.txt b/MEC048/MEO/CSE/environment/variables.txt index 385a44c..d66e161 100644 --- a/MEC048/MEO/CSE/environment/variables.txt +++ b/MEC048/MEO/CSE/environment/variables.txt @@ -15,4 +15,12 @@ ${REGISTER_ACTION} REGISTER ${REMOVE_ACTION} REMOVE ${NO_ACTION} NO_ACTION ${TENANT_ID_PLACEHOLDER} TENANT_ID_PLACEHOLDER -${NOT_EXISTING_TENANT_ID} NOT_EXISTING_TENANT_ID \ No newline at end of file +${NOT_EXISTING_TENANT_ID} NOT_EXISTING_TENANT_ID +${NOT_EXISTING_SITE_ID} NOT_EXISTING_SITE_ID +${NOT_EXISTING_SUBSCRIPTION_ID} NOT_EXISTING_SUBSCRIPTION_ID +# Notification Server variables +${NOTIFICATION_SERVER_IP} 127.0.0.1 +${NOTIFICATION_SERVER_PORT} 8888 +${NOTIFICATION_SERVER_TIMEOUT} 60 +${NOTIFICATION_SERVER_HTTP_METHOD} POST +${NOTIFICATION_SERVER_URI} /callback_url \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ExpiryNotification.json b/MEC048/MEO/CSE/jsons/ExpiryNotification.json new file mode 100644 index 0000000..8599a0e --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ExpiryNotification.json @@ -0,0 +1,9 @@ +{ + "notificationType": "ExpiryNotification", + "_links": { + "subscription": { + "href": "http://example.com/cse/v1/subscriptions/subscription-123" + } + }, + "expiryDeadline": "2099-12-31T23:59:59Z" + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceQuotaInfoUpdate.json b/MEC048/MEO/CSE/jsons/ResourceQuotaInfoUpdate.json index 76275d1..7765cdc 100644 --- a/MEC048/MEO/CSE/jsons/ResourceQuotaInfoUpdate.json +++ b/MEC048/MEO/CSE/jsons/ResourceQuotaInfoUpdate.json @@ -1,5 +1,5 @@ { - "cpuQuota": "NUMBER_OF_CPUS", - "memoryQuota": "MEMORY_IN_MB", - "diskQuota": "AMOUNT_OF_DISK_IN_GB" + "cpuQuota": 5, + "memoryQuota": 2192, + "diskQuota": 70 } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceUsageSubscription.json b/MEC048/MEO/CSE/jsons/ResourceUsageSubscription.json new file mode 100644 index 0000000..3a34bb5 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceUsageSubscription.json @@ -0,0 +1,11 @@ +{ + "subscriptionType": "ResourceUsageSubscription", + "callbackReference": "some/uri", + "customerId": "placeholder", + "tenantId": "placeholder", + "notificationTrigger": { + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceUsageSubscription1.json b/MEC048/MEO/CSE/jsons/ResourceUsageSubscription1.json new file mode 100644 index 0000000..3d14b06 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceUsageSubscription1.json @@ -0,0 +1,11 @@ +{ + "subscriptionType": "ResourceUsageSubscription", + "callbackReference": "http://example.org/callback1", + "customerId": "customer-123", + "tenantId": "tenant-123", + "notificationTrigger": { + "triggerType": 10, + "threshold": 80, + "greaterOrLess": true + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceUsageSubscription2.json b/MEC048/MEO/CSE/jsons/ResourceUsageSubscription2.json new file mode 100644 index 0000000..ee45945 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceUsageSubscription2.json @@ -0,0 +1,11 @@ +{ + "subscriptionType": "ResourceUsageSubscription", + "callbackReference": "http://example.org/callback2", + "customerId": "customer-123", + "tenantId": "tenant-123", + "notificationTrigger": { + "triggerType": 20, + "threshold": 75, + "greaterOrLess": true + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceUsageSubscriptionBR.json b/MEC048/MEO/CSE/jsons/ResourceUsageSubscriptionBR.json new file mode 100644 index 0000000..bc1b74d --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceUsageSubscriptionBR.json @@ -0,0 +1,10 @@ +{ + "subscriptionType": "ResourceUsageSubscription", + "customerId": "placeholder-customer", + "tenantId": "placeholder-tenant", + "notificationTrigger": { + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceUsageSubscriptionWithExpiry.json b/MEC048/MEO/CSE/jsons/ResourceUsageSubscriptionWithExpiry.json new file mode 100644 index 0000000..80a6eca --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceUsageSubscriptionWithExpiry.json @@ -0,0 +1,12 @@ +{ + "subscriptionType": "ResourceUsageSubscription", + "callbackReference": "some/uri", + "customerId": "customer-123", + "tenantId": "tenant-123", + "expiryDeadline": "2099-12-31T23:59:59Z", + "notificationTrigger": { + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json index 775807b..fb08665 100644 --- a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json +++ b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo.json @@ -1,6 +1,6 @@ { - "siteId": "SITE_ID", - "cpuQuota": "CPU_QUOTA", - "memoryQuota": "MEMORY_QUOTA", - "diskQuota": "DISK_QUOTA" -} \ No newline at end of file + "siteId": "site-12", + "cpuQuota": 2, + "memoryQuota": 7191, + "diskQuota": 91 + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json index 916067e..75f34c3 100644 --- a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json +++ b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo2.json @@ -1,6 +1,6 @@ { - "siteId": "SITE_ID_2", - "cpuQuota": "CPU_QUOTA_2", - "memoryQuota": "MEMORY_QUOTA_2", - "diskQuota": "DISK_QUOTA_2" -} \ No newline at end of file + "siteId": "site-1234", + "cpuQuota": 3, + "memoryQuota": 7192, + "diskQuota": 90 + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json index 6a91864..07a4247 100644 --- a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json +++ b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfo3.json @@ -1,6 +1,6 @@ { - "siteId": "SITE_ID_3", - "cpuQuota": "CPU_QUOTA_3", - "memoryQuota": "MEMORY_QUOTA_3", - "diskQuota": "DISK_QUOTA_3" -} \ No newline at end of file + "siteId": "site-123", + "cpuQuota": 4, + "memoryQuota": 8192, + "diskQuota": 100 + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfoBR.json b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfoBR.json new file mode 100644 index 0000000..d38c9da --- /dev/null +++ b/MEC048/MEO/CSE/jsons/SiteResourceQuotaInfoBR.json @@ -0,0 +1,3 @@ +{ + "siteId": "SITE_ID" +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription.json b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription.json new file mode 100644 index 0000000..63dc110 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription.json @@ -0,0 +1,12 @@ +{ + "subscriptionType": "SiteResourceUsageSubscription", + "callbackReference": "http://example.org/callback3", + "customerId": "customer-123", + "tenantId": "tenant-123", + "siteId": "site-456", + "notificationTrigger": { + "triggerType": 30, + "threshold": 90, + "greaterOrLess": true + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription1.json b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription1.json new file mode 100644 index 0000000..e2e941a --- /dev/null +++ b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription1.json @@ -0,0 +1,12 @@ +{ + "subscriptionType": "SiteResourceUsageSubscription", + "callbackReference": "some/uri", + "customerId": "placeholder-customer", + "tenantId": "placeholder-tenant", + "siteList": ["placeholder-site"], + "notificationTrigger": { + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionBR.json b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionBR.json new file mode 100644 index 0000000..c7d3aa4 --- /dev/null +++ b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionBR.json @@ -0,0 +1,11 @@ +{ + "subscriptionType": "SiteResourceUsageSubscription", + "customerId": "customer-new", + "tenantId": "tenant-123", + "siteList": ["site-placeholder"], + "notificationTrigger": { + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionUpdate.json b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionUpdate.json new file mode 100644 index 0000000..fbbdd8b --- /dev/null +++ b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionUpdate.json @@ -0,0 +1,12 @@ +{ + "subscriptionType": "SiteResourceUsageSubscription", + "callbackReference": "some/uri/updated", + "customerId": "customer-new", + "tenantId": "tenant-123", + "siteList": ["site-placeholder"], + "notificationTrigger": { + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/libraries/Server.py b/MEC048/MEO/CSE/libraries/Server.py new file mode 100644 index 0000000..b1b6c85 --- /dev/null +++ b/MEC048/MEO/CSE/libraries/Server.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 +# filepath: c:\Users\Ikram Laptop\ROBOT-Framework\gs032p3-robot-test-suite\MEC048\MEO\CSE\libraries\Server.py + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +class Server(object): + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server(self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class POST_Server(BaseHTTPRequestHandler): + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body = post_body + logging.info(f"Received notification: {post_body}") + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + self.handler = POST_Server(endpoint, resp_body) + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + logging.info(f"Starting notification server on {host}:{port} with timeout {timeout}") + self.app.handle_request() + self.app.server_close() + + if self.handler.get_req_body() is not None: + return json.loads(self.handler.get_req_body().decode("utf-8")) + return None \ No newline at end of file diff --git a/MEC048/MEO/CSE/libraries/StressGenerator.py b/MEC048/MEO/CSE/libraries/StressGenerator.py new file mode 100644 index 0000000..ae9419a --- /dev/null +++ b/MEC048/MEO/CSE/libraries/StressGenerator.py @@ -0,0 +1,37 @@ +import multiprocessing +import time + +class StressGenerator: + ROBOT_LIBRARY_VERSION = '0.0.1' + + def generate_cpu_load(self, duration=30, cpu_cores=None): + """ + Generate CPU load by spinning up processes that perform intensive calculations. + + Args: + duration: How long to run the stress test in seconds + cpu_cores: Number of CPU cores to use. If None, uses all available cores. + """ + if cpu_cores is None: + cpu_cores = multiprocessing.cpu_count() + + processes = [] + + def cpu_intensive_task(): + end_time = time.time() + duration + while time.time() < end_time: + # Perform CPU-intensive calculations + for i in range(10000000): + _ = i * i + + # Create and start processes + for _ in range(cpu_cores): + p = multiprocessing.Process(target=cpu_intensive_task) + p.start() + processes.append(p) + + # Wait for all processes to complete + for p in processes: + p.join() + + return f"Generated CPU load on {cpu_cores} cores for {duration} seconds" \ No newline at end of file diff --git a/MEC048/MEO/CSE/libraries/__pycache__/Server.cpython-312.pyc b/MEC048/MEO/CSE/libraries/__pycache__/Server.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..95b8591def7f8583ce0628c4f1a849f5887c88f6 GIT binary patch literal 3527 zcmX@j%ge>Uz`)S|Un^q@I|IXG5C?`?p^VRN3=9m@8B!Qh7;_kM8KW3;nWC5&L42kh z<|yVAh7_h8mM9i5%^Jm;!W_lM#Nf`5!qUQ!!kWsyni*nF6h|eKCfiF8N0aH6m{VeL zsz*pjKu~I7X=-taM`B(|PHNFDE|6GoYEfBgk>4*?13d#h!(@;a7-oVpK1+ZdmC6vs zn8Fanl)@OroWhdA+`<^eQpu#rdW#KWMiIype#z`mT_B2sfq?PRYOJQwch+^+xs9=oZ2xib^`=tX(ih9KbiRF3m<*7;W#o+XI}U3MxU)N>0qliI1-`g$fcCR(kRA5N)7jTMSB5KN=XG2#8K( zzbK%vK;?pf;R?0O0*0SKVVMld@*oBXgOVgD*?!go7a}!GH4O0}aWJl7M9$ItMwNI_YI163S!#+xUVcet8dR;7f+qJZ-s04}lz338$nUi{pr6@HqrAU&2f#DW=PJViNW?uR& zmdw1gd}wmJ#hnasZhTH^-Yw38{NfUDYD7tVx7bti<3Ytul?h2X4XR6ufq|hIR8KZA z+z=4CE}(Q#Kxu*T6#;cHPXUze&NGqcg1p&=$_?2UWSy=G zIAbPmP*Mg(?`M#^rh}3$B4**NV1^~$Q%ez&U zB!vsIR!|{b3`(yJ3^&B3r`Jxby&#}Mv7=;% zqw6NtT@X+OJ6e+yR4(Tw=BCES-{Ojo&&^LM%>l7_;^PZT6LTOkMWFBp7imQrpu$ZX zMCgJNDKE4xNlpco?3#>4f*`9vo^Sw{gSWUr=@44&6@i+e0w4vl3=9lES{S}CG4UFG z;$Y@g{lvw=>%#a+gppVE8yh398rX3~MhpxLRSLl+iA5!udFdz_P61NAD&*%W++wt< z;!`NkEXhzP$;?g7FD+51Vl6F6)3wm#D*_dBx7afv4bLJ_eOCmkY;Q3q78KlKhpI0E z#cGi%$U}S(rJ$q&YO&tpf!GtDoReRiS_Ja=Ef!F@aEmo3KQX2F7F$Yca(+sxCI>jh z-D1heFD|*oQjlL%QUq#G++xd3Ey>7FK~xi9PZfhoE(Iun1e5@JZCE9aBf>$|PVq?w z28ITPFDw$AYFDHTzA#8|s(mzJkWgM=u_E%axOoRl56>N8*%>8Ef>($vj=UhJzd>ZX z%to2Z!gd`jJsfwWOxTT1<{x*9I-bzctC2ebI4!hkiWvA2A^(7zzu%_Q<~p~^MQ)YL+-euN zjqV7GPq&(AH6vwy&di+aa^@H1%rDDXUYB#YDCclM{IZ2qTsel zypN|-kYi9}e3)xcu&2LYkv#(g!%7CQ1>kTl0=4161gLr{236B73^!zyFR(~{VNqih zfv5y2(&W6wol#O!pa)3-;FJVOK$al;nDUFk$>tV!e0*7IQE_H|UVQv5w)~{5)Z`Md z1x3yv$ARi2u+6tPY#_PIuE>LdfdQ09ij^4{7(OsFGBSSWU|_Vq&%l41f$sww1HV`U T_ZJpTMv;!NuMC=u5Jv$3fUF*n literal 0 HcmV?d00001 diff --git a/MEC048/MEO/CSE/libraries/__pycache__/StressGenerator.cpython-312.pyc b/MEC048/MEO/CSE/libraries/__pycache__/StressGenerator.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..25d11bd63c7c3d1a3c5808e96816d275e292f4b7 GIT binary patch literal 1896 zcmX@j%ge>Uz`$^lNju{W3j@Pr5C?`?pp4HN3=9m@8B!Qh7;_k+AT(nXBNKx=Lkd$1 zLkjb1CWy)?rbRAX9=)LsSHt!DGX6eDU4CfDJ&_>EsRktl}wtf zxA=ogic*V<-Ba^YixNxni>g=+^bGV2{gRnsCNVHDure?(fcT$z7#SGa8K*PUFg1vj zFv3)1!7PIbFfcHzhO%p!(iv)*I~da#Qy5z~YFSD^W`X5um{vngaAAnGWMHUeMKX~M ztOSLqVOay$QOj1tmc@x84d%dXWn`#f&f*3Op%67}FgqC;daPL(YM5OZVuctOz~=Fy zC+jW7cP!{>br3=C5lr!yeMGB}J; z30R1CGFLG$Fw_#Mx`rW}iGiU=uLNWp*uWGDI~ zW-eooZY4t{gC>(-X2Y}@44O>0SV}T;Q*W^rCFZ54YO>toNX<)$2MaM~-eQcu#Q}?z zVo;7&P*7<2m6dE26Iz^FR2<`(U6h!s;FDNTl3x%L;Q-Qv>BlGGSqS7!qgix^*5{}|_B*O;8lq@u*4%+%r-v<$3QPFJddD<@Ykh`1=O+u?CXNNl?1M9s(bBo?KomQ;zsvQ7#(?Sb5*ke{be#SKYZ3TgR83RN7i z1gyz^i$AwCrz8`apEC2(Z*hWLot$5qS5m~mz`$^eJphu|Zm|}ZBo>w2VoNM2NX<*R z#gdhunWxEqi={Xvj>)`yt!pbT4 zMSwv_d_v_lLB$ToI|B081=KGJs9(@`ydvP#;dq0Gx8J?fy~pzgkLYzCnTtF!GXk&j z$bVpG5K{Wg!yqILQR3F=*6Z>o#tO~_)f=>TWbBAKP;r4j-~vZL5kCV1 zgC^5UIR*v>KTXzK9P#maiMgrq@wd3*<8$*)MPFa z1O+xIc)&V}6hT~&+rUQM;;@0Z#jZ$+fq?;3Z4`?$Ffe>zW@Kc%%^-H0f%`j)B4Z%q KCk7A+HW&Z|Kh6^X literal 0 HcmV?d00001 diff --git a/MEC048/MEO/CSE/schemas/ExpiryNotification.schema.json b/MEC048/MEO/CSE/schemas/ExpiryNotification.schema.json new file mode 100644 index 0000000..8599a0e --- /dev/null +++ b/MEC048/MEO/CSE/schemas/ExpiryNotification.schema.json @@ -0,0 +1,9 @@ +{ + "notificationType": "ExpiryNotification", + "_links": { + "subscription": { + "href": "http://example.com/cse/v1/subscriptions/subscription-123" + } + }, + "expiryDeadline": "2099-12-31T23:59:59Z" + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/ResourceUsageNotification.schema.json b/MEC048/MEO/CSE/schemas/ResourceUsageNotification.schema.json new file mode 100644 index 0000000..664ee99 --- /dev/null +++ b/MEC048/MEO/CSE/schemas/ResourceUsageNotification.schema.json @@ -0,0 +1,14 @@ +{ + "notificationType": "ResourceUsageNotification", + "timeStamp": "2023-01-01T12:00:00Z", + "customerId": "customer-123", + "tenantId": "tenant-123", + "resourceUseInfo": { + "cpuUsed": 5, + "cpuRemain": 3, + "memoryUsed": 4096, + "memoryRemain": 2048, + "diskUsed": 50, + "diskRemain": 50 + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/ResourceUsageSubscription.schema.json b/MEC048/MEO/CSE/schemas/ResourceUsageSubscription.schema.json new file mode 100644 index 0000000..3b769ad --- /dev/null +++ b/MEC048/MEO/CSE/schemas/ResourceUsageSubscription.schema.json @@ -0,0 +1,60 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "subscriptionType": { + "type": "string", + "enum": ["ResourceUsageSubscription"] + }, + "callbackReference": { + "type": "string", + "format": "uri" + }, + "requestTestNotification": { + "type": "boolean" + }, + "websockNotifConfig": { + "type": "object" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + } + } + } + }, + "customerId": { + "type": "string" + }, + "tenantId": { + "type": "string" + }, + "notificationTrigger": { + "type": "object", + "properties": { + "triggerType": { + "type": "integer", + "enum": [10, 11, 20, 21, 30, 31] + }, + "threshold": { + "type": "integer" + }, + "greaterOrLess": { + "type": "boolean" + } + }, + "required": ["triggerType", "threshold", "greaterOrLess"] + }, + "expiryDeadline": { + "type": "string", + "format": "date-time" + } + }, + "required": ["subscriptionType", "customerId", "tenantId", "notificationTrigger"] + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/SiteResourceUsageNotification.schema.json b/MEC048/MEO/CSE/schemas/SiteResourceUsageNotification.schema.json new file mode 100644 index 0000000..bd054eb --- /dev/null +++ b/MEC048/MEO/CSE/schemas/SiteResourceUsageNotification.schema.json @@ -0,0 +1,56 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "required": [ + "notificationType", + "customerId", + "tenantId", + "resourceUseInfo" + ], + "properties": { + "notificationType": { + "type": "string", + "enum": ["SiteResourceUsageNotification"] + }, + "timeStamp": { + "type": "string", + "format": "date-time" + }, + "customerId": { + "type": "string" + }, + "tenantId": { + "type": "string" + }, + "resourceUseInfo": { + "type": "array", + "items": { + "type": "object", + "required": ["siteId"], + "properties": { + "siteId": { + "type": "string" + }, + "cpuUsed": { + "type": "integer" + }, + "cpuRemain": { + "type": "integer" + }, + "memoryUsed": { + "type": "integer" + }, + "memoryRemain": { + "type": "integer" + }, + "diskUsed": { + "type": "integer" + }, + "diskRemain": { + "type": "integer" + } + } + } + } + } + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/SiteResourceUsageSubscription.schema.json b/MEC048/MEO/CSE/schemas/SiteResourceUsageSubscription.schema.json new file mode 100644 index 0000000..339ae5b --- /dev/null +++ b/MEC048/MEO/CSE/schemas/SiteResourceUsageSubscription.schema.json @@ -0,0 +1,67 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "subscriptionType": { + "type": "string", + "enum": ["SiteResourceUsageSubscription"] + }, + "callbackReference": { + "type": "string", + "format": "uri" + }, + "requestTestNotification": { + "type": "boolean" + }, + "websockNotifConfig": { + "type": "object" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": ["href"] + } + } + }, + "customerId": { + "type": "string" + }, + "tenantId": { + "type": "string" + }, + "siteList": { + "type": "array", + "items": { + "type": "string" + } + }, + "notificationTrigger": { + "type": "object", + "properties": { + "triggerType": { + "type": "integer", + "enum": [10, 11, 20, 21, 30, 31] + }, + "threshold": { + "type": "integer" + }, + "greaterOrLess": { + "type": "boolean" + } + }, + "required": ["triggerType", "threshold", "greaterOrLess"] + }, + "expiryDeadline": { + "type": "string", + "format": "date-time" + } + }, + "required": ["subscriptionType", "customerId", "tenantId", "siteList", "notificationTrigger"] + } \ No newline at end of file diff --git a/MEC048/MEO/CSE/schemas/SubscriptionLinkList.schema.json b/MEC048/MEO/CSE/schemas/SubscriptionLinkList.schema.json new file mode 100644 index 0000000..5ac9f96 --- /dev/null +++ b/MEC048/MEO/CSE/schemas/SubscriptionLinkList.schema.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string" + } + }, + "required": ["href"] + } + }, + "required": ["self"] + }, + "subscription": { + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "type": "string" + }, + "subscriptionType": { + "type": "string", + "enum": ["ResourceUsageSubscription", "SiteResourceUsageSubscription"] + } + }, + "required": ["href", "subscriptionType"] + } + } + }, + "required": ["_links", "subscription"] + } \ No newline at end of file -- GitLab From b00741383c3c4ef8fa23b76bbd730119102d2b51 Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 2 Jul 2025 17:52:14 +0200 Subject: [PATCH 16/55] Updated TCs of MEC011v3.3.1 specification. --- MEC011/SRV/APPSAQ/PlatAppServices.robot | 70 +-- MEC011/SRV/APPSUB/PlatAppSubscriptions.robot | 32 +- MEC011/SRV/CAPIF/MecProfileCapif.robot | 539 ++++++++++++++++++ MEC011/SRV/CAPIF/environment/variables.txt | 24 + ...tConfirmation.robot => ConfirmTasks.robot} | 24 +- MEC011/SRV/DNS/PlatDnsRules.robot | 48 +- MEC011/SRV/MLS/Liveness.robot | 36 +- ...gApps.robot => RegisterAppsServices.robot} | 86 +-- MEC011/SRV/SAQ/PlatServices.robot | 24 +- MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot | 48 +- MEC011/SRV/TIME/PlatTiming.robot | 12 +- MEC011/SRV/TRAF/PlatTrafficRules.robot | 48 +- MEC011/SRV/TRANS/PlatTransport.robot | 6 +- 13 files changed, 780 insertions(+), 217 deletions(-) create mode 100644 MEC011/SRV/CAPIF/MecProfileCapif.robot create mode 100644 MEC011/SRV/CAPIF/environment/variables.txt rename MEC011/SRV/CONFTASK/{PlatConfirmation.robot => ConfirmTasks.robot} (87%) rename MEC011/SRV/REGAPPS/{RegApps.robot => RegisterAppsServices.robot} (79%) diff --git a/MEC011/SRV/APPSAQ/PlatAppServices.robot b/MEC011/SRV/APPSAQ/PlatAppServices.robot index 7781340..f1afa13 100644 --- a/MEC011/SRV/APPSAQ/PlatAppServices.robot +++ b/MEC011/SRV/APPSAQ/PlatAppServices.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_APPSAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -36,9 +36,9 @@ TC_MEC_MEC011_SRV_APPSAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI G3.2.1 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.1 + ... Reference ETSI G3.3.1 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES # Wrong query parameter name should trigger an error response. Get a list of mecService of an application instance with parameters ${APP_INSTANCE_ID} ${INSTANCE_ID} ${FAKE_INSTANCE_ID_VALUE} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_OK ... Check that the IUT notifies the authorised relevant (subscribed) application ... instances when a new service for a given application instance is registered ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -70,9 +70,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create new service ServiceInfoError ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 400 @@ -83,9 +83,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${NON_EXISTENT_APP_INSTANCE_ID} ${SERVICE_ID} Create new service ServiceInfo ${NON_EXISTENT_APP_INSTANCE_ID} @@ -97,9 +97,9 @@ TC_MEC_MEC011_SRV_APPSAQ_003_OK ... Check that the IUT responds with the information on a specific service ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -115,9 +115,9 @@ TC_MEC_MEC011_SRV_APPSAQ_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.5, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${NON_EXISTENT_APP_INSTANCE_ID} ${SERVICE_ID} Get individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} @@ -129,9 +129,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_OK ... Check that the IUT updates a service information for a given ... application instance when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.4, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -147,9 +147,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.4, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -163,9 +163,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.4, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Update service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} ServiceInfoUpdated @@ -177,9 +177,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.4, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -193,7 +193,7 @@ TC_MEC_MEC011_SRV_APPSAQ_005_OK ... Check that the IUT executes the deletion of a service ... for a given application instance when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 8.2.7.3.5 + ... Reference ETSI GS MEC 011 3.3.1, clause 8.2.7.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -206,7 +206,7 @@ TC_MEC_MEC011_SRV_APPSAQ_005_NF ... Check that the IUT responds with an error when ... a request for deletion of a unknown service is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 8.2.7.3.5 + ... Reference ETSI GS MEC 011 3.3.1, clause 8.2.7.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} diff --git a/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot b/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot index 80e7e90..964998f 100644 --- a/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot +++ b/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot @@ -18,8 +18,8 @@ TC_MEC_MEC011_SRV_APPSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.3.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -35,8 +35,8 @@ TC_MEC_MEC011_SRV_APPSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.3.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUB_ID} Get Subscriptions list ${NON_EXISTENT_APP_INSTANCE_ID} @@ -48,8 +48,8 @@ TC_MEC_MEC011_SRV_APPSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.3.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription @@ -69,8 +69,8 @@ TC_MEC_MEC011_SRV_APPSUB_002_BR ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.3.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscriptionBR Check HTTP Response Status Code Is 400 @@ -81,8 +81,8 @@ TC_MEC_MEC011_SRV_APPSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.4.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -98,8 +98,8 @@ TC_MEC_MEC011_SRV_APPSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.4.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -111,8 +111,8 @@ TC_MEC_MEC011_SRV_APPSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.4.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -126,8 +126,8 @@ TC_MEC_MEC011_SRV_APPSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.4.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID} Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot new file mode 100644 index 0000000..edfcc16 --- /dev/null +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -0,0 +1,539 @@ +*** Settings *** + +Documentation +... A test suite for validating Common API Framework (CAPIF) operations. + +Resource ../../../GenericKeywords.robot +Resource environment/variables_sandbox.txt +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem + +Default Tags TC_MEC_SRV_TRANS + + +*** Test Cases *** +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_01 + [Documentation] + ... Check that the IUT responds with all service APIs when + ... queried by a MEC Application - No filter + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get all services APIs + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_02 + [Documentation] + ... Check that the IUT responds with all service APIs when + ... queried by a MEC Application - Filter on apiName + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params apiName=${API_NAME_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[apiName] ${API_NAME_QUERY_PARAM} + END + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_03 + [Documentation] + ... Check that the IUT responds with all service APIs when + ... queried by a MEC Application - Filter on apiId + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params apiId=${API_ID_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[apiId] ${API_ID_QUERY_PARAM} + END + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_04 + [Documentation] + ... Check that the IUT responds with all service APIs when + ... queried by a MEC Application - Filter on apiId and apiName + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params apiId=${API_ID_QUERY_PARAM}&apiName=${API_NAME_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[apiId] ${API_ID_QUERY_PARAM} + Should Be Equal As Strings ${element}[apiName] ${API_NAME_QUERY_PARAM} + END + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_BR + [Documentation] + ... Check that the IUT responds with an error + ... when applying a malformed filter + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params badQueryParam=${API_ID_QUERY_PARAM} + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_NF + [Documentation] + ... Check that the IUT responds with an error + ... when applying a filter on an unknown apiName + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get services APIs with query params apiName=${UNKNOWN_MEC_SRV_SER_NAME} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_OK + [Documentation] + ... Check that the IUT responds with all service APIs + ... for a specific apfId when queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published services APIs ${MEC_SRV_INSTANCE_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescriptionList + FOR ${element} IN @{response['body']} + Should Be Equal As Strings ${element}[apiId] ${MEC_SRV_INSTANCE_ID} + END + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_NF + [Documentation] + ... Check that the IUT responds with an error when + ... applying a filter on an unknown apfId + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published services APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} + Check HTTP Response Status Code Is 404 + + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_OK + [Documentation] + ... Check that the IUT acknowledges the publishing of a new API when + ... queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is ServiceApiDescription + ${MEC_SRV_SER_NAME} Get value entry from JSON file ServiceApiDescription apiName + Check Response Contains ${response['body']} apiId ${MEC_SRV_SER_INSTANCE_ID} + Check Response Contains ${response['body']} apiName ${MEC_SRV_SER_NAME} + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_BR + [Documentation] + ... Check that the IUT responds with an error when incorrect parameters were sent by a MEC + ... Application - supportedFeatures shall be present + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0", + ... "ETSI GS MEC 011 3.3.1, clause 9.1.2.2", + ... "ETSI GS MEC 011 3.3.1, clause 9.2.4.3.4", + ... "ETSI TS 129 222 V18.6.0 (2024-07), Table 8.2.4.2.2-1: Definition of type ServiceAPIDescription + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescriptionBR + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_OK + [Documentation] + ... Check that the IUT responds with a serviceAPIDescription + ... when queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescription + Check Response Contains ${response['body']} apiId ${SERVICE_API_ID} + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_01 + [Documentation] + ... Check that the IUT responds with an error when + ... applying a filter on an unknown apfId + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} + Check HTTP Response Status Code Is 404 + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_02 + [Documentation] + ... Check that the IUT responds with an error + ... when applying a filter on an unknown serviceApiId + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Get published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF + [Documentation] + ... 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 + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update published APIs wrong HTTP method ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK + [Documentation] + ... Check that the IUT changes the publishing of a new API + ... when queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.3, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.3 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ServiceApiDescription + ${MEC_SRV_SER_NAME} Get value entry from JSON file ServiceApiDescription apiName + Check Response Contains ${response['body']} apiId ${MEC_SRV_SER_INSTANCE_ID} + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF + [Documentation] + ... 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 + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.3, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.3 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate + Check HTTP Response Status Code Is 404 + + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK + [Documentation] + ... Check that the IUT acknowledges the removing of a published API + ... when queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.5 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Remove published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} + Check HTTP Response Status Code Is 204 + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF + [Documentation] + ... 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 + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.5 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Remove published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK + [Documentation] + ... Check that the IUT acknowledges the publishing of a new API when + ... queried by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create CAPIF subscription ${MEC_SRV_INSTANCE_ID} eventSubscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF + [Documentation] + ... 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 + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create CAPIF subscription ${UNKNOWN_MEC_SRV_INSTANCE_ID} eventSubscription + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK + [Documentation] + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF + [Documentation] + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK + [Documentation] + ... Check that the IUT acknowledges the changes of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionPatch + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF + [Documentation] + ... Check that the IUT acknowledges the changes of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionPatch + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_OK + [Documentation] + ... Check that the IUT acknowledges the cancellation of a CAPIF subscription + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Delete existing CAPIF subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_NF + [Documentation] + ... 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 + ... + ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, + ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, + ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Delete existing CAPIF subscription ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + +*** Keywords *** +Get all services APIs + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Get ${apiRoot}/${apiName}/${apiVersion}/allServiceAPIs + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Get services APIs with query params + [Arguments] ${query_params} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Get ${apiRoot}/${apiName}/${apiVersion}/allServiceAPIs?${query_params} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Get published services APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Get ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Publish new APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Post ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Get published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Post ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update published APIs wrong HTTP method + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Put ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Patch ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Remove published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + + Delete ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Create CAPIF subscription + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + Post ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Replace existing CAPIF subscription + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + Put ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Modify existing CAPIF subscription + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + Patch ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + +Modify existing CAPIF subscription + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + Delete ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/environment/variables.txt b/MEC011/SRV/CAPIF/environment/variables.txt new file mode 100644 index 0000000..22d2b3d --- /dev/null +++ b/MEC011/SRV/CAPIF/environment/variables.txt @@ -0,0 +1,24 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} service-apis +${publApiName} published-apis +${capifSubApiName} capif-events +${apiVersion} v1 + +# Specific variables +${API_NAME_QUERY_PARAM} mec015-1 +${API_ID_QUERY_PARAM} mec015-1 +${UNKNOWN_MEC_SRV_SER_NAME} UNKNOWN_MEC_SRV_SER_NAME +${MEC_SRV_INSTANCE_ID} MEC_SRV_SER_INSTANCE_ID +${NOT_EXISTING_MEC_SRV_INSTANCE_ID} NOT_EXISTING_MEC_SRV_INSTANCE_ID +${SERVICE_API_ID} SERVICE_API_ID +${UNKNOWN_SERVICE_API_ID} UNKNOWN_SERVICE_API_ID +${UNKNOWN_MEC_SRV_INSTANCE_ID} UNKNOWN_MEC_SRV_INSTANCE_ID +${SUBSCRIPTION_ID} SUBSCRIPTION_ID +${UNKNOWN_SUBSCRIPTION_ID} UNKNOWN_SUBSCRIPTION_ID diff --git a/MEC011/SRV/CONFTASK/PlatConfirmation.robot b/MEC011/SRV/CONFTASK/ConfirmTasks.robot similarity index 87% rename from MEC011/SRV/CONFTASK/PlatConfirmation.robot rename to MEC011/SRV/CONFTASK/ConfirmTasks.robot index cc52e8b..f0827fc 100644 --- a/MEC011/SRV/CONFTASK/PlatConfirmation.robot +++ b/MEC011/SRV/CONFTASK/ConfirmTasks.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_CONFTASK_001_OK ... Check that the IUT responds that it has completed ... the application level termination ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Request termination of MEC Application ${APP_INSTANCE_ID} AppTerminationConfirmation @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_CONFTASK_001_NF ... Check that the IUT responds with an error ... when requested graceful termination/stop of an unknown MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Teardown] Delete MEC application instance profile ${NON_EXISTING_APP_INSTANCE_ID} Request termination of MEC Application ${NON_EXISTING_APP_INSTANCE_ID} AppTerminationConfirmation @@ -49,9 +49,9 @@ TC_MEC_MEC011_SRV_CONFTASK_002_OK ... Check that the IUT responds with an acknowledge ... when requested readiness status for a MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Request readiness status of MEC Application ${APP_INSTANCE_ID} AppReadyConfirmation @@ -64,9 +64,9 @@ TC_MEC_MEC011_SRV_CONFTASK_002_NF ... Check that the IUT responds with an error ... when requested readiness status for an unknown MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NON_EXISTING_APP_INSTANCE_ID} Request readiness status of MEC Application ${NON_EXISTING_APP_INSTANCE_ID} AppReadyConfirmation diff --git a/MEC011/SRV/DNS/PlatDnsRules.robot b/MEC011/SRV/DNS/PlatDnsRules.robot index 6776a15..1bf39a4 100644 --- a/MEC011/SRV/DNS/PlatDnsRules.robot +++ b/MEC011/SRV/DNS/PlatDnsRules.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_DNS_001_OK ... Check that the IUT responds with a list of active DNS rules ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.9.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Get list of active DNS rules ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_DNS_001_NF ... Check that the IUT responds with a list of active DNS rules ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.9.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTENT_APP_INSTANCE_ID} Get list of active DNS rules ${NOT_EXISTENT_APP_INSTANCE_ID} @@ -49,9 +49,9 @@ TC_MEC_MEC011_SRV_DNS_002_OK ... Check that the IUT responds with the information on a specific DNS rule ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Get individual DNS rule ${APP_INSTANCE_ID} ${DNS_RULE_ID} @@ -66,9 +66,9 @@ TC_MEC_MEC011_SRV_DNS_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual DNS rule ${APP_INSTANCE_ID} ${NON_ESISTENT_DNS_RULE_ID} Check HTTP Response Status Code Is 404 @@ -79,9 +79,9 @@ TC_MEC_MEC011_SRV_DNS_003_OK ... Check that the IUT responds with the information on a specific DNS rule ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Update a DNS Rule ${APP_INSTANCE_ID} ${DNS_RULE_ID} DnsRuleUpdate @@ -97,9 +97,9 @@ TC_MEC_MEC011_SRV_DNS_003_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -113,9 +113,9 @@ TC_MEC_MEC011_SRV_DNS_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -130,9 +130,9 @@ TC_MEC_MEC011_SRV_DNS_003_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Update a DNS Rule with invalid etag ${APP_INSTANCE_ID} ${DNS_RULE_ID} DnsRuleUpdate diff --git a/MEC011/SRV/MLS/Liveness.robot b/MEC011/SRV/MLS/Liveness.robot index 6f3906f..2b070ee 100644 --- a/MEC011/SRV/MLS/Liveness.robot +++ b/MEC011/SRV/MLS/Liveness.robot @@ -14,9 +14,9 @@ TC_MEC_MEC011_SRV_MSL_001_OK [Documentation] ... Check that the IUT responds with the liveness of a MEC service instance ... when queried by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.4", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.4", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Individual MEC service liveness ${LIVENESS_URI} @@ -30,9 +30,9 @@ TC_MEC_MEC011_SRV_MSL_001_NF ... 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 - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.4", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.4", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES Individual MEC service liveness ${NOT_EXISTING_URL_SERVICE_MEC_LIVENESS} Check HTTP Response Status Code Is 404 @@ -42,9 +42,9 @@ TC_MEC_MEC011_SRV_MSL_002_OK_01 [Documentation] ... Check that the IUT updates the liveness of a MEC service instance ... when requested by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdate .json @@ -61,9 +61,9 @@ TC_MEC_MEC011_SRV_MSL_002_OK_02 [Documentation] ... Check that the IUT updates the liveness of a MEC service instance ... when requested by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdate .json @@ -76,9 +76,9 @@ TC_MEC_MEC011_SRV_MSL_002_BR [Documentation] ... Check that the IUT responds with an error when ... incorrect parameters were sent by a MEC Application - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} @@ -93,9 +93,9 @@ TC_MEC_MEC011_SRV_MSL_002_NF ... 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 - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdateError .json diff --git a/MEC011/SRV/REGAPPS/RegApps.robot b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot similarity index 79% rename from MEC011/SRV/REGAPPS/RegApps.robot rename to MEC011/SRV/REGAPPS/RegisterAppsServices.robot index f6fcace..1326ea2 100644 --- a/MEC011/SRV/REGAPPS/RegApps.robot +++ b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_01 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo Check HTTP Response Status Code Is 201 @@ -35,9 +35,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_02 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo2 ${APP_INSTANCE_ID_REQ} Get value entry from JSON file AppInfo2 appInstanceId @@ -55,9 +55,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_03 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo3 ${APP_INSTANCE_ID_REQ} Get value entry from JSON file AppInfo3 appInstanceId @@ -78,9 +78,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_01 ... Check that the IUT responds with an error message when the IUT received a registration with ... missing fields from a MEC Application instantiated by the MEC platform ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR1 Check HTTP Response Status Code Is 400 @@ -91,9 +91,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_02 ... Check that the IUT responds with an error message ... when the IUT received by a MEC Application registration with missing endpoint ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR2 Check HTTP Response Status Code Is 400 @@ -104,9 +104,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_03 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appServiceRequired ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR3 Check HTTP Response Status Code Is 400 @@ -117,9 +117,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_04 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appServiceRequired ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR4 Check HTTP Response Status Code Is 400 @@ -130,9 +130,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_05 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appFeatureRequired ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR5 @@ -144,9 +144,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_06 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appFeatureOptional ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.2.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" + ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR6 @@ -159,9 +159,9 @@ TC_MEC_MEC011_SRV_REGAPPS_002_OK ... Check that the IUT responds with the AppInfo description ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -177,9 +177,9 @@ TC_MEC_MEC011_SRV_REGAPPS_002_NF ... Check that the IUT responds with an error ... when it receives a request for returning an AppInfo with a wrong ID ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} @@ -193,9 +193,9 @@ TC_MEC_MEC011_SRV_REGAPPS_003_OK ... Check that the IUT responds with 204 No Content ... when queried to update MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.2" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -211,7 +211,7 @@ TC_MEC_MEC011_SRV_REGAPPS_003_NF ... Check that the IUT responds with 204 No Content ... when queried to update MEC Application registration ... - ... Reference ETSI GS MEC 011 3.2.1, clause 7.2.14.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 7.2.14.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} @@ -225,9 +225,9 @@ TC_MEC_MEC011_SRV_REGAPPS_004_OK ... Check that the IUT responds with 204 No Content ... when queried to delete an existing MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -242,9 +242,9 @@ TC_MEC_MEC011_SRV_REGAPPS_004_NF ... Check that the IUT responds with an error when queried to ... delete an unknown MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.2.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 7.2.14.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", + ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} diff --git a/MEC011/SRV/SAQ/PlatServices.robot b/MEC011/SRV/SAQ/PlatServices.robot index afe9b9f..afaf846 100644 --- a/MEC011/SRV/SAQ/PlatServices.robot +++ b/MEC011/SRV/SAQ/PlatServices.robot @@ -16,9 +16,9 @@ TC_MEC_MEC011_SRV_SAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.5", - ... Reference "ETSI GS MEC 011 3.2.1, clause 8.1.2.2", - ... Reference "ETSI GS MEC 011 3.2.1, clause 8.2.3.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.5", + ... Reference "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", + ... Reference "ETSI GS MEC 011 3.3.1, clause 8.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_SAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.5", - ... Reference "ETSI GS MEC 011 3.2.1, clause 8.1.2.2", - ... Reference "ETSI GS MEC 011 3.2.1, clause 8.2.3.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.5", + ... Reference "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", + ... Reference "ETSI GS MEC 011 3.3.1, clause 8.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_SAQ_002_OK ... Check that the IUT responds with the information on a specific service ... when queried by a MEC Application ... - ... "ETSI GS MEC 011 3.2.1, clause 5.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.2", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.4.3.1" + ... "ETSI GS MEC 011 3.3.1, clause 5.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} ${SER_NAME} Get value entry from JSON file ServiceInfo serName @@ -67,9 +67,9 @@ TC_MEC_MEC011_SRV_SAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... "ETSI GS MEC 011 3.2.1, clause 5.2.5", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.2.2", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.4.3.1" + ... "ETSI GS MEC 011 3.3.1, clause 5.2.5", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [TearDown] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Get specific MEC service ${NON_EXISTENT_SERVICE_ID} diff --git a/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot b/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot index 405a2c2..fe25c15 100644 --- a/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot +++ b/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_SRVSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.8.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Get list of subscriptions ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_SRVSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.8.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove MEC application ${NON_EXISTENT_INSTANCE_ID} @@ -47,9 +47,9 @@ TC_MEC_MEC011_SRV_SRVSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.8.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo @@ -69,9 +69,9 @@ TC_MEC_MEC011_SRV_SRVSUB_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.8.3.4" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Create a new subscription ${APP_INSTANCE_ID} SerAvailabilityNotificationSubscriptionError @@ -84,9 +84,9 @@ TC_MEC_MEC011_SRV_SRVSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.9.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Get individual subscription ${APP_INSTANCE_ID} ${SUB_ID} @@ -103,9 +103,9 @@ TC_MEC_MEC011_SRV_SRVSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.9.3.1" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -117,9 +117,9 @@ TC_MEC_MEC011_SRV_SRVSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.9.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Remove subscription ${APP_INSTANCE_ID} ${SUB_ID} @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_SRVSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.2.1, clause 8.2.9.3.5" + ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", + ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", + ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [TearDown] Remove MEC application ${NON_EXISTENT_INSTANCE_ID} Remove subscription ${NON_EXISTENT_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/MEC011/SRV/TIME/PlatTiming.robot b/MEC011/SRV/TIME/PlatTiming.robot index f18f776..f024bb6 100644 --- a/MEC011/SRV/TIME/PlatTiming.robot +++ b/MEC011/SRV/TIME/PlatTiming.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_TIME_001_OK [Documentation] ... Check that the IUT responds with timing capabilities ... when queried by a MEC Application - ... ETSI GS MEC 011 3.2.1, clause 5.2.10.3, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.4, - ... ETSI GS MEC 011 3.2.1, clause 7.2.5.3.1 + ... ETSI GS MEC 011 3.3.1, clause 5.2.10.3, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.4, + ... ETSI GS MEC 011 3.3.1, clause 7.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get time capabilities Check HTTP Response Status Code Is 200 @@ -32,9 +32,9 @@ TC_MEC_MEC011_SRV_TIME_002_OK [Documentation] ... Check that the IUT responds with current time ... when queried by a MEC Application - ... ETSI GS MEC 011 3.2.1, clause 5.2.10.2, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.5, - ... ETSI GS MEC 011 3.2.1, clause 7.2.5.3.1 + ... ETSI GS MEC 011 3.3.1, clause 5.2.10.2, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.5, + ... ETSI GS MEC 011 3.3.1, clause 7.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get current time diff --git a/MEC011/SRV/TRAF/PlatTrafficRules.robot b/MEC011/SRV/TRAF/PlatTrafficRules.robot index af69463..ac781b1 100644 --- a/MEC011/SRV/TRAF/PlatTrafficRules.robot +++ b/MEC011/SRV/TRAF/PlatTrafficRules.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_TRAF_001_OK ... when queried by a MEC Application ... ... Reference - ... ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.7.3.1 + ... ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo @@ -36,9 +36,9 @@ TC_MEC_MEC011_SRV_TRAF_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.7.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove MEC application ${NON_EXISTENT_APP_INSTANCE_ID} @@ -51,9 +51,9 @@ TC_MEC_MEC011_SRV_TRAF_002_OK ... Check that the IUT responds with the information on a specific traffic rule ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Get individual traffic rule ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} @@ -68,9 +68,9 @@ TC_MEC_MEC011_SRV_TRAF_002_NF ... Check that the IUT responds with an error when a request for an unknown traffic rule ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual traffic rule ${APP_INSTANCE_ID} ${NON_EXISTENT_TRAFFIC_RULE_ID} @@ -83,9 +83,9 @@ TC_MEC_MEC011_SRV_TRAF_003_OK ... Check that the IUT updates a specific traffic rule ... when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo ${TRAFFIC_RULE_ID} Get value entry from JSON file TrafficRuleUpdate trafficRuleId @@ -101,9 +101,9 @@ TC_MEC_MEC011_SRV_TRAF_003_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} TrafficRuleUpdateError @@ -116,9 +116,9 @@ TC_MEC_MEC011_SRV_TRAF_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7", - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2", - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7", + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2", + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule ${APP_INSTANCE_ID} ${NON_EXISTENT_TRAFFIC_RULE_ID} TrafficRuleUpdate @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_TRAF_003_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.7, - ... ETSI GS MEC 011 3.2.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.2.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, + ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, + ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule with invalid etag ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} TrafficRuleUpdate diff --git a/MEC011/SRV/TRANS/PlatTransport.robot b/MEC011/SRV/TRANS/PlatTransport.robot index e2917b5..f95e42a 100644 --- a/MEC011/SRV/TRANS/PlatTransport.robot +++ b/MEC011/SRV/TRANS/PlatTransport.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_TRANS_001_OK ... Check that the IUT responds with a list of available transports ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.2.1, clause 5.2.9, - ... ETSI GS MEC 011 3.2.1, clause 8.1.2.3, - ... ETSI GS MEC 011 3.2.1, clause 8.2.5.3.1 + ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.9, + ... ETSI GS MEC 011 3.3.1, clause 8.1.2.3, + ... ETSI GS MEC 011 3.3.1, clause 8.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of available transports -- GitLab From dc4d1cf4fad1220bf0e7c09bb6b4ef178a267d97 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 10:41:03 +0200 Subject: [PATCH 17/55] Fixes on pipeline errors for MEC011 TCs --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index edfcc16..0c0f7e8 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -4,7 +4,7 @@ Documentation ... A test suite for validating Common API Framework (CAPIF) operations. Resource ../../../GenericKeywords.robot -Resource environment/variables_sandbox.txt +Resource environment/variables.txt Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem @@ -529,7 +529,7 @@ Modify existing CAPIF subscription -Modify existing CAPIF subscription +Delete existing CAPIF subscription [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} -- GitLab From e163ee4120898cf81f8d354dac55bf7b0660e38f Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 11:10:50 +0200 Subject: [PATCH 18/55] Fixes on MEC011 TCs. --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 160 ++++++++++++------------- 1 file changed, 80 insertions(+), 80 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 0c0f7e8..e37b2b6 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_01 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - No filter ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get all services APIs @@ -32,9 +32,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_02 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiName ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiName=${API_NAME_QUERY_PARAM} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_03 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiId ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiId=${API_ID_QUERY_PARAM} @@ -68,9 +68,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_04 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiId and apiName ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiId=${API_ID_QUERY_PARAM}&apiName=${API_NAME_QUERY_PARAM} @@ -86,9 +86,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_BR ... Check that the IUT responds with an error ... when applying a malformed filter ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params badQueryParam=${API_ID_QUERY_PARAM} @@ -100,9 +100,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_NF ... Check that the IUT responds with an error ... when applying a filter on an unknown apiName ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiName=${UNKNOWN_MEC_SRV_SER_NAME} @@ -114,9 +114,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_OK ... Check that the IUT responds with all service APIs ... for a specific apfId when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published services APIs ${MEC_SRV_INSTANCE_ID} @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_NF ... Check that the IUT responds with an error when ... applying a filter on an unknown apfId ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.1, + ... ETSI GS MEC 011, clause 9.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published services APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} @@ -146,9 +146,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_OK ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.4.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.4.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescription @@ -164,9 +164,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_BR ... Check that the IUT responds with an error when incorrect parameters were sent by a MEC ... Application - supportedFeatures shall be present ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0", - ... "ETSI GS MEC 011 3.3.1, clause 9.1.2.2", - ... "ETSI GS MEC 011 3.3.1, clause 9.2.4.3.4", + ... Reference ETSI GS MEC 011, clause 9.0", + ... "ETSI GS MEC 011, clause 9.1.2.2", + ... "ETSI GS MEC 011, clause 9.2.4.3.4", ... "ETSI TS 129 222 V18.6.0 (2024-07), Table 8.2.4.2.2-1: Definition of type ServiceAPIDescription [Tags] PIC_MEC_PLAT PIC_SERVICES @@ -179,9 +179,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_OK ... Check that the IUT responds with a serviceAPIDescription ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -195,9 +195,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_01 ... Check that the IUT responds with an error when ... applying a filter on an unknown apfId ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -208,9 +208,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_02 ... Check that the IUT responds with an error ... when applying a filter on an unknown serviceApiId ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -222,9 +222,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF ... 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 ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.2 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs wrong HTTP method ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -236,9 +236,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK ... Check that the IUT changes the publishing of a new API ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.3, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.3 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.3, + ... ETSI GS MEC 011, clause 9.2.5.3.3 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate @@ -253,9 +253,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF ... 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 ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.3, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.3 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.3, + ... ETSI GS MEC 011, clause 9.2.5.3.3 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate @@ -268,9 +268,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK ... Check that the IUT acknowledges the removing of a published API ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.5 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -281,9 +281,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF ... 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 ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 9.2.5.3.5 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.2.2, + ... ETSI GS MEC 011, clause 9.2.5.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -295,9 +295,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create CAPIF subscription ${MEC_SRV_INSTANCE_ID} eventSubscription @@ -310,9 +310,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF ... 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 ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create CAPIF subscription ${UNKNOWN_MEC_SRV_INSTANCE_ID} eventSubscription @@ -324,9 +324,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK ... Check that the IUT acknowledges the update of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate @@ -339,9 +339,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF ... Check that the IUT acknowledges the update of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate @@ -353,9 +353,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK ... Check that the IUT acknowledges the changes of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionPatch @@ -368,9 +368,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF ... Check that the IUT acknowledges the changes of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionPatch @@ -383,12 +383,12 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_OK ... Check that the IUT acknowledges the cancellation of a CAPIF subscription ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES - Delete existing CAPIF subscription ${SUBSCRIPTION_ID} + Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 @@ -397,12 +397,12 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_NF ... 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 ... - ... Reference ETSI GS MEC 011 3.3.1, clause 9.0, - ... ETSI GS MEC 011 3.3.1, clause 9.1.3.1, - ... ETSI GS MEC 011 3.3.1, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011, clause 9.0, + ... ETSI GS MEC 011, clause 9.1.3.1, + ... ETSI GS MEC 011, clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES - Delete existing CAPIF subscription ${UNKNOWN_SUBSCRIPTION_ID} + Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 -- GitLab From d7e0239c979c415aa88d6255a07a1978cee60d87 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 11:12:27 +0200 Subject: [PATCH 19/55] Minor --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 158 ++++++++++++------------- 1 file changed, 79 insertions(+), 79 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index e37b2b6..4b6751d 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_01 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - No filter ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get all services APIs @@ -32,9 +32,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_02 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiName ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiName=${API_NAME_QUERY_PARAM} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_03 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiId ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiId=${API_ID_QUERY_PARAM} @@ -68,9 +68,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_04 ... Check that the IUT responds with all service APIs when ... queried by a MEC Application - Filter on apiId and apiName ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiId=${API_ID_QUERY_PARAM}&apiName=${API_NAME_QUERY_PARAM} @@ -86,9 +86,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_BR ... Check that the IUT responds with an error ... when applying a malformed filter ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params badQueryParam=${API_ID_QUERY_PARAM} @@ -100,9 +100,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_NF ... Check that the IUT responds with an error ... when applying a filter on an unknown apiName ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.3.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get services APIs with query params apiName=${UNKNOWN_MEC_SRV_SER_NAME} @@ -114,9 +114,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_OK ... Check that the IUT responds with all service APIs ... for a specific apfId when queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.4.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published services APIs ${MEC_SRV_INSTANCE_ID} @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_002_NF ... Check that the IUT responds with an error when ... applying a filter on an unknown apfId ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.1, - ... ETSI GS MEC 011, clause 9.2.4.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.1 + ... ETSI GS MEC 011 clause 9.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published services APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} @@ -146,9 +146,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_OK ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.4.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.4.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescription @@ -164,10 +164,10 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_003_BR ... Check that the IUT responds with an error when incorrect parameters were sent by a MEC ... Application - supportedFeatures shall be present ... - ... Reference ETSI GS MEC 011, clause 9.0", - ... "ETSI GS MEC 011, clause 9.1.2.2", - ... "ETSI GS MEC 011, clause 9.2.4.3.4", - ... "ETSI TS 129 222 V18.6.0 (2024-07), Table 8.2.4.2.2-1: Definition of type ServiceAPIDescription + ... Reference ETSI GS MEC 011 clause 9.0" + ... "ETSI GS MEC 011 clause 9.1.2.2" + ... "ETSI GS MEC 011 clause 9.2.4.3.4" + ... "ETSI TS 129 222 V18.6.0 (2024-07) Table 8.2.4.2.2-1: Definition of type ServiceAPIDescription [Tags] PIC_MEC_PLAT PIC_SERVICES Publish new APIs ${MEC_SRV_INSTANCE_ID} serviceApiDescriptionBR @@ -179,9 +179,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_OK ... Check that the IUT responds with a serviceAPIDescription ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -195,9 +195,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_01 ... Check that the IUT responds with an error when ... applying a filter on an unknown apfId ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${NOT_EXISTING_MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -208,9 +208,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_02 ... Check that the IUT responds with an error ... when applying a filter on an unknown serviceApiId ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.1 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -222,9 +222,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF ... 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 ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.2 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs wrong HTTP method ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -236,9 +236,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK ... Check that the IUT changes the publishing of a new API ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.3, - ... ETSI GS MEC 011, clause 9.2.5.3.3 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.3 + ... ETSI GS MEC 011 clause 9.2.5.3.3 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate @@ -253,9 +253,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF ... 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 ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.3, - ... ETSI GS MEC 011, clause 9.2.5.3.3 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.3 + ... ETSI GS MEC 011 clause 9.2.5.3.3 [Tags] PIC_MEC_PLAT PIC_SERVICES Update published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate @@ -268,9 +268,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK ... Check that the IUT acknowledges the removing of a published API ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.5 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} @@ -281,9 +281,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF ... 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 ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.2.2, - ... ETSI GS MEC 011, clause 9.2.5.3.5 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.2.2 + ... ETSI GS MEC 011 clause 9.2.5.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} @@ -295,9 +295,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create CAPIF subscription ${MEC_SRV_INSTANCE_ID} eventSubscription @@ -310,9 +310,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF ... 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 ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create CAPIF subscription ${UNKNOWN_MEC_SRV_INSTANCE_ID} eventSubscription @@ -324,9 +324,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK ... Check that the IUT acknowledges the update of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate @@ -339,9 +339,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF ... Check that the IUT acknowledges the update of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate @@ -353,9 +353,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK ... Check that the IUT acknowledges the changes of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionPatch @@ -368,9 +368,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF ... Check that the IUT acknowledges the changes of a CAPIF subscription request ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.2 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionPatch @@ -383,9 +383,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_OK ... Check that the IUT acknowledges the cancellation of a CAPIF subscription ... when requested by a MEC Application ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} @@ -397,9 +397,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_NF ... 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 ... - ... Reference ETSI GS MEC 011, clause 9.0, - ... ETSI GS MEC 011, clause 9.1.3.1, - ... ETSI GS MEC 011, clause 9.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} -- GitLab From 38fe5511ad1f4056764655df73db4c9ff5f007e6 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Thu, 3 Jul 2025 14:35:03 +0500 Subject: [PATCH 20/55] correct test case TC_MEC_MEC010p2_MEPM_PKGM_002_02_OK --- MEC010p2/MEPM/PKGM/AppPkgMgt.robot | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/MEC010p2/MEPM/PKGM/AppPkgMgt.robot b/MEC010p2/MEPM/PKGM/AppPkgMgt.robot index f0710b1..65b4988 100644 --- a/MEC010p2/MEPM/PKGM/AppPkgMgt.robot +++ b/MEC010p2/MEPM/PKGM/AppPkgMgt.robot @@ -93,7 +93,7 @@ TC_MEC_MEC010p2_MEPM_PKGM_002_02_OK [Setup] Create new App Package CreateAppPackage.json Set Suite Variable ${APP_PKG_ID} ${response['body']['id']} Set Suite Variable ${APPD_ID} ${response['body']['appDId']} - Get an individual APP Package identified by ID ${APPD_ID} + Get an individual onboarded APP Package identified by ID ${APPD_ID} Check HTTP Response Status Code Is 200 Validate Json OnboardedAppPkgInfo.schema.json ${response['body']} Should Contain ${response['body']['_links']['self']['href']} ${APP_PKG_ID} @@ -417,6 +417,14 @@ Get an individual APP Package identified by ID ${output}= Output response Set Suite Variable ${response} ${output} +Get an individual onboarded APP Package identified by ID + [Arguments] ${identifier} + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/onboarded_app_packages/${identifier} + ${output}= Output response + Set Suite Variable ${response} ${output} GET all app Packages content by appPkgId -- GitLab From 8c02ded5dcc7cbd6e6d1432af198bf6b75296f7f Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:19:47 +0200 Subject: [PATCH 21/55] First version of TCs for MEC045 related to Event subscription of QoS --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 270 ++++++++++++++++++ MEC045/EVENTSUBNOT/environment/variables.txt | 15 + MEC045/EVENTSUBNOT/libraries/Server.py | 52 ++++ .../EVENTSUBNOT/libraries/StressGenerator.py | 37 +++ 4 files changed, 374 insertions(+) create mode 100644 MEC045/EVENTSUBNOT/QoSEventSubNot.robot create mode 100644 MEC045/EVENTSUBNOT/environment/variables.txt create mode 100644 MEC045/EVENTSUBNOT/libraries/Server.py create mode 100644 MEC045/EVENTSUBNOT/libraries/StressGenerator.py diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot new file mode 100644 index 0000000..3333358 --- /dev/null +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -0,0 +1,270 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot +... Test Suite to validate CustomerSelfServiceEnablement Service API operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../../pics.txt +Resource ../../../GenericKeywords.robot +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem +Library libraries/Server.py +Library libraries/StressGenerator.py +Library JSONLibrary +Library String +Library Collections +Library DateTime + +*** Test Cases *** +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_01 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_01 + ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscription + ${SUB_TYPE} Get value entry from JSON file QoSEventSubscription subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_02 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_02 + ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application - With thresholds + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionWithThreshold + ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionWithThreshold subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_01 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_01 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid SubscritionType + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_02 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_02 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Neither callbackReference nor websockNotifConfig provided + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR2 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_03 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_03 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Both callbackReference and websockNotifConfig provided + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR3 + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_04 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_04 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - users not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR4 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - flowFilter not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR5 + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - flowFilter not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR5 + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid flowFilter + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 6.4.3, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR6 + Check HTTP Response Status Code Is 400 + + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK + ... Check that the IUT acknowledges the changes of QoS event subscription request + ... when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 7.4.3.2 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription QoSEventSubscriptionUpdate ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is QoSEventSubscription + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_NF + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_NF + ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 7.4.3.2 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription QoSEventSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK + ... Check that the IUT acknowledges the cancellation of QoS event subscription when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 7.4.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF + ... Check that the IUT acknowledges the cancellation of QoS event subscription when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.3.3, + ... ETSI GS MEC 013 Clause 7.4.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_004_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_004_OK + ... Check that the IUT provides a test notification when requested by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.4.1, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionTestNotification + ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionTestNotification subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + + +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_005_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_005_OK + ... Check that the IUT terminates notifications when the expiry timer expires + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 013 Clause 6.4.1, + ... ETSI GS MEC 013 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionExpiryTimer + ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionExpiryTimer subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + + +*** Keywords *** +Spawn Expiry Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} for expiry notification + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Resource Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} SiteResourceUsageSubscription + [Return] ${notification} + +Create QoS Event Subscription + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update QoS Event Subscription + [Arguments] ${content} ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + +Delete QoS Event Subscription + [Arguments] ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} diff --git a/MEC045/EVENTSUBNOT/environment/variables.txt b/MEC045/EVENTSUBNOT/environment/variables.txt new file mode 100644 index 0000000..3cbcf8c --- /dev/null +++ b/MEC045/EVENTSUBNOT/environment/variables.txt @@ -0,0 +1,15 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +#${HOST} 10.192.2.172 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} qms +${apiVersion} v1 + + +##Specific +${SUBSCRIPTION_ID} subscription_id \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/libraries/Server.py b/MEC045/EVENTSUBNOT/libraries/Server.py new file mode 100644 index 0000000..b1b6c85 --- /dev/null +++ b/MEC045/EVENTSUBNOT/libraries/Server.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 +# filepath: c:\Users\Ikram Laptop\ROBOT-Framework\gs032p3-robot-test-suite\MEC048\MEO\CSE\libraries\Server.py + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +class Server(object): + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server(self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class POST_Server(BaseHTTPRequestHandler): + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body = post_body + logging.info(f"Received notification: {post_body}") + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + self.handler = POST_Server(endpoint, resp_body) + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + logging.info(f"Starting notification server on {host}:{port} with timeout {timeout}") + self.app.handle_request() + self.app.server_close() + + if self.handler.get_req_body() is not None: + return json.loads(self.handler.get_req_body().decode("utf-8")) + return None \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/libraries/StressGenerator.py b/MEC045/EVENTSUBNOT/libraries/StressGenerator.py new file mode 100644 index 0000000..ae9419a --- /dev/null +++ b/MEC045/EVENTSUBNOT/libraries/StressGenerator.py @@ -0,0 +1,37 @@ +import multiprocessing +import time + +class StressGenerator: + ROBOT_LIBRARY_VERSION = '0.0.1' + + def generate_cpu_load(self, duration=30, cpu_cores=None): + """ + Generate CPU load by spinning up processes that perform intensive calculations. + + Args: + duration: How long to run the stress test in seconds + cpu_cores: Number of CPU cores to use. If None, uses all available cores. + """ + if cpu_cores is None: + cpu_cores = multiprocessing.cpu_count() + + processes = [] + + def cpu_intensive_task(): + end_time = time.time() + duration + while time.time() < end_time: + # Perform CPU-intensive calculations + for i in range(10000000): + _ = i * i + + # Create and start processes + for _ in range(cpu_cores): + p = multiprocessing.Process(target=cpu_intensive_task) + p.start() + processes.append(p) + + # Wait for all processes to complete + for p in processes: + p.join() + + return f"Generated CPU load on {cpu_cores} cores for {duration} seconds" \ No newline at end of file -- GitLab From 2f6fbfd38536feb997dbf339004ccc65a6550c68 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:23:32 +0200 Subject: [PATCH 22/55] Fixes --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 84 ++++++++++---------- MEC045/EVENTSUBNOT/environment/variables.txt | 3 +- 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot index 3333358..fa9841f 100644 --- a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -1,10 +1,10 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot -... Test Suite to validate CustomerSelfServiceEnablement Service API operations. +... Test Suite to validate QoSEventSubNot Service API operations. *** Settings *** Resource environment/variables.txt -Resource ../../../pics.txt -Resource ../../../GenericKeywords.robot +Resource ../../../../pics.txt +Resource ../../../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py @@ -19,9 +19,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_01 [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_01 ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscription ${SUB_TYPE} Get value entry from JSON file QoSEventSubscription subscriptionType @@ -34,9 +34,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_02 [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_OK_02 ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application - With thresholds ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionWithThreshold ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionWithThreshold subscriptionType @@ -51,9 +51,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_01 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - Invalid SubscritionType ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR Check HTTP Response Status Code Is 400 @@ -64,9 +64,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_02 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - Neither callbackReference nor websockNotifConfig provided ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR2 Check HTTP Response Status Code Is 400 @@ -77,9 +77,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_03 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - Both callbackReference and websockNotifConfig provided ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR3 Check HTTP Response Status Code Is 400 @@ -89,9 +89,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_04 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - users not present (Note 2) ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR4 Check HTTP Response Status Code Is 400 @@ -102,9 +102,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - flowFilter not present (Note 2) ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR5 Check HTTP Response Status Code Is 400 @@ -114,9 +114,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - flowFilter not present (Note 2) ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR5 Check HTTP Response Status Code Is 400 @@ -126,9 +126,9 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 ... Check that the IUT responds with an error when a request with incorrect parameters is sent ... by a MEC Application - Invalid flowFilter ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 6.4.3, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 6.4.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionBR6 Check HTTP Response Status Code Is 400 @@ -140,8 +140,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK ... Check that the IUT acknowledges the changes of QoS event subscription request ... when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 7.4.3.2 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.4.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Update QoS Event Subscription QoSEventSubscriptionUpdate ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 @@ -152,8 +152,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_NF [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_NF ... Check that the IUT acknowledges the creation of QoS event subscription request when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 7.4.3.2 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.4.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Update QoS Event Subscription QoSEventSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 @@ -163,8 +163,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK ... Check that the IUT acknowledges the cancellation of QoS event subscription when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 7.4.3.5 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.4.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Update QoS Event Subscription ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 @@ -174,8 +174,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF ... Check that the IUT acknowledges the cancellation of QoS event subscription when commanded by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.3.3, - ... ETSI GS MEC 013 Clause 7.4.3.5 + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.4.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Update QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 @@ -185,8 +185,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_004_OK [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_004_OK ... Check that the IUT provides a test notification when requested by a MEC Application ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.4.1, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.4.1, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionTestNotification ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionTestNotification subscriptionType @@ -200,8 +200,8 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_005_OK [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_005_OK ... Check that the IUT terminates notifications when the expiry timer expires ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 013 Clause 6.4.1, - ... ETSI GS MEC 013 Clause 7.3.3.4 + ... ETSI GS MEC 045 Clause 6.4.1, + ... ETSI GS MEC 045 Clause 7.3.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create QoS Event Subscription QoSEventSubscriptionExpiryTimer ${SUB_TYPE} Get value entry from JSON file QoSEventSubscriptionExpiryTimer subscriptionType diff --git a/MEC045/EVENTSUBNOT/environment/variables.txt b/MEC045/EVENTSUBNOT/environment/variables.txt index 3cbcf8c..8a7f3b8 100644 --- a/MEC045/EVENTSUBNOT/environment/variables.txt +++ b/MEC045/EVENTSUBNOT/environment/variables.txt @@ -12,4 +12,5 @@ ${apiVersion} v1 ##Specific -${SUBSCRIPTION_ID} subscription_id \ No newline at end of file +${SUBSCRIPTION_ID} subscription_id +${UNKNOWN_SUBSCRIPTION_ID} unknown_sub_id \ No newline at end of file -- GitLab From 6eee358ba19bb9b5aefee853aacd3cfa2cb722a3 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:43:49 +0200 Subject: [PATCH 23/55] TCs for MEC045 for QkD Measurement subscription --- MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot | 263 ++++++++++++++++++ MEC045/MEASSUBNOT/environment/variables.txt | 16 ++ MEC045/MEASSUBNOT/libraries/Server.py | 52 ++++ .../MEASSUBNOT/libraries/StressGenerator.py | 37 +++ 4 files changed, 368 insertions(+) create mode 100644 MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot create mode 100644 MEC045/MEASSUBNOT/environment/variables.txt create mode 100644 MEC045/MEASSUBNOT/libraries/Server.py create mode 100644 MEC045/MEASSUBNOT/libraries/StressGenerator.py diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot new file mode 100644 index 0000000..0829568 --- /dev/null +++ b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot @@ -0,0 +1,263 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.robot +... Test Suite to validate QoSMeasurementSubNot Service API operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../../../pics.txt +Resource ../../../../GenericKeywords.robot +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem +Library libraries/Server.py +Library libraries/StressGenerator.py +Library JSONLibrary +Library String +Library Collections +Library DateTime + +*** Test Cases *** +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_01 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_01 + ... Check that the IUT acknowledges the creation of QoS measurement subscription request when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 6.4.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSMeasureSubscription + ${SUB_TYPE} Get value entry from JSON file QoSMeasureSubscription subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_02 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_02 + ... Check that the IUT acknowledges the creation of QoS measurement subscription request when commanded by a MEC Application - with reportingInterval + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 6.4.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSMeasureSubscriptionWithRepInterval + ${SUB_TYPE} Get value entry from JSON file QoSMeasureSubscriptionWithRepInterval subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_03 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_OK_03 + ... Check that the IUT acknowledges the creation of QoS measurement subscription request when commanded by a MEC Application - with numberOfReports + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 6.4.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSMeasureSubscriptionWithNumOfReports + ${SUB_TYPE} Get value entry from JSON file QoSMeasureSubscriptionWithNumOfReports subscriptionType + + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is QoSEventSubscription + Should Be Equal As Strings ${response['body']['subscriptionType']} ${SUB_TYPE} + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_01 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_01 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid subscriptionType + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_02 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_02 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Neither callbackReference nor websockNotifConfig provided + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR2 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_03 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_03 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Both callbackReference and websockNotifConfig provided + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR3 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_04 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_04 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - users not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR4 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_05 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_05 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - flowInfo not present (Note 2) + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR5 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_06 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_06 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid flowFilter + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR6 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_07 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_07 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid condition on reportingInterval/measuringPeriod + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR7 + Check HTTP Response Status Code Is 400 + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_08 + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_001_BR_08 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid condition on measuringArea + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSSubscriptionBR8 + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_OK + ... Check that the IUT acknowledges the changes of an existing QoS measurement subscription request when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.2 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription QoSEventSubscriptionUpdate ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is QoSEventSubscription + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_NF + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_NF + ... 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 + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.2 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Update QoS Event Subscription QoSEventSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is QoSEventSubscription + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_003_OK + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_003_OK + ... Check that the IUT acknowledges the cancellation of QoS measurement subscription when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Delete QoS Event Subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_003_NF + [Documentation] TP_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_003_NF + ... 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 + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Delete QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + +*** Keywords *** +Spawn Expiry Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} for expiry notification + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Resource Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ResourceUsageSubscription + [Return] ${notification} + +Spawn Notification Server + Log Starting notification server on ${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT} + ${notification}= Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} SiteResourceUsageSubscription + [Return] ${notification} + +Create QoS Event Subscription + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update QoS Event Subscription + [Arguments] ${content} ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + +Delete QoS Event Subscription + [Arguments] ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} diff --git a/MEC045/MEASSUBNOT/environment/variables.txt b/MEC045/MEASSUBNOT/environment/variables.txt new file mode 100644 index 0000000..8a7f3b8 --- /dev/null +++ b/MEC045/MEASSUBNOT/environment/variables.txt @@ -0,0 +1,16 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +#${HOST} 10.192.2.172 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} qms +${apiVersion} v1 + + +##Specific +${SUBSCRIPTION_ID} subscription_id +${UNKNOWN_SUBSCRIPTION_ID} unknown_sub_id \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/libraries/Server.py b/MEC045/MEASSUBNOT/libraries/Server.py new file mode 100644 index 0000000..b1b6c85 --- /dev/null +++ b/MEC045/MEASSUBNOT/libraries/Server.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 +# filepath: c:\Users\Ikram Laptop\ROBOT-Framework\gs032p3-robot-test-suite\MEC048\MEO\CSE\libraries\Server.py + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +class Server(object): + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server(self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class POST_Server(BaseHTTPRequestHandler): + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body = post_body + logging.info(f"Received notification: {post_body}") + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + self.handler = POST_Server(endpoint, resp_body) + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + logging.info(f"Starting notification server on {host}:{port} with timeout {timeout}") + self.app.handle_request() + self.app.server_close() + + if self.handler.get_req_body() is not None: + return json.loads(self.handler.get_req_body().decode("utf-8")) + return None \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/libraries/StressGenerator.py b/MEC045/MEASSUBNOT/libraries/StressGenerator.py new file mode 100644 index 0000000..ae9419a --- /dev/null +++ b/MEC045/MEASSUBNOT/libraries/StressGenerator.py @@ -0,0 +1,37 @@ +import multiprocessing +import time + +class StressGenerator: + ROBOT_LIBRARY_VERSION = '0.0.1' + + def generate_cpu_load(self, duration=30, cpu_cores=None): + """ + Generate CPU load by spinning up processes that perform intensive calculations. + + Args: + duration: How long to run the stress test in seconds + cpu_cores: Number of CPU cores to use. If None, uses all available cores. + """ + if cpu_cores is None: + cpu_cores = multiprocessing.cpu_count() + + processes = [] + + def cpu_intensive_task(): + end_time = time.time() + duration + while time.time() < end_time: + # Perform CPU-intensive calculations + for i in range(10000000): + _ = i * i + + # Create and start processes + for _ in range(cpu_cores): + p = multiprocessing.Process(target=cpu_intensive_task) + p.start() + processes.append(p) + + # Wait for all processes to complete + for p in processes: + p.join() + + return f"Generated CPU load on {cpu_cores} cores for {duration} seconds" \ No newline at end of file -- GitLab From c34c9612769bf960ae7b6a7f1da1bb658f1d7fbe Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:50:32 +0200 Subject: [PATCH 24/55] Fix on import paths --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 4 ++-- MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot index fa9841f..1ad93a2 100644 --- a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -3,8 +3,8 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot *** Settings *** Resource environment/variables.txt -Resource ../../../../pics.txt -Resource ../../../../GenericKeywords.robot +Resource ../../pics.txt +Resource ../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot index 0829568..7ce5343 100644 --- a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot +++ b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot @@ -3,8 +3,8 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.r *** Settings *** Resource environment/variables.txt -Resource ../../../../pics.txt -Resource ../../../../GenericKeywords.robot +Resource ../../pics.txt +Resource ../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py -- GitLab From db757954f41836687185091bdbd9bb49afbe2f87 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 12:50:32 +0200 Subject: [PATCH 25/55] Fix on import paths and TCs content --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 19 ++++--------------- MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot | 4 ++-- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot index fa9841f..2ff9682 100644 --- a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -3,8 +3,8 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot *** Settings *** Resource environment/variables.txt -Resource ../../../../pics.txt -Resource ../../../../GenericKeywords.robot +Resource ../../pics.txt +Resource ../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py @@ -109,17 +109,6 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 Create QoS Event Subscription QoSEventSubscriptionBR5 Check HTTP Response Status Code Is 400 -TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 - [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_05 - ... Check that the IUT responds with an error when a request with incorrect parameters is sent - ... by a MEC Application - flowFilter not present (Note 2) - ... ETSI GS MEC 045 Clause 5.2.2, - ... ETSI GS MEC 045 Clause 6.3.3, - ... ETSI GS MEC 045 Clause 6.4.3, - ... ETSI GS MEC 045 Clause 7.3.3.4 - [Tags] PIC_MEC_PLAT PIC_SERVICES - Create QoS Event Subscription QoSEventSubscriptionBR5 - Check HTTP Response Status Code Is 400 TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 @@ -166,7 +155,7 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_OK ... ETSI GS MEC 045 Clause 6.3.3, ... ETSI GS MEC 045 Clause 7.4.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update QoS Event Subscription ${SUBSCRIPTION_ID} + Delete QoS Event Subscription ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 @@ -177,7 +166,7 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_003_NF ... ETSI GS MEC 045 Clause 6.3.3, ... ETSI GS MEC 045 Clause 7.4.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} + Delete QoS Event Subscription ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot index 0829568..7ce5343 100644 --- a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot +++ b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot @@ -3,8 +3,8 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.r *** Settings *** Resource environment/variables.txt -Resource ../../../../pics.txt -Resource ../../../../GenericKeywords.robot +Resource ../../pics.txt +Resource ../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library libraries/Server.py -- GitLab From f8c8e3a1b89d49d6a24ee33f75c15a660aa35c9a Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 14:53:11 +0200 Subject: [PATCH 26/55] First implementation of TCs for QoS Subscription lookup for MEC045 spec. --- MEC045/SUBLOOKUP/QoSLookup.robot | 159 +++++++++++++++++++++ MEC045/SUBLOOKUP/environment/variables.txt | 21 +++ 2 files changed, 180 insertions(+) create mode 100644 MEC045/SUBLOOKUP/QoSLookup.robot create mode 100644 MEC045/SUBLOOKUP/environment/variables.txt diff --git a/MEC045/SUBLOOKUP/QoSLookup.robot b/MEC045/SUBLOOKUP/QoSLookup.robot new file mode 100644 index 0000000..0c94711 --- /dev/null +++ b/MEC045/SUBLOOKUP/QoSLookup.robot @@ -0,0 +1,159 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.robot +... Test Suite to validate QoSMeasurementSubNot Service API operations. + +*** Settings *** +Resource environment/variables.txt +Resource ../../pics.txt +Resource ../../GenericKeywords.robot +Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false +Library OperatingSystem +Library libraries/Server.py +Library libraries/StressGenerator.py +Library JSONLibrary +Library String +Library Collections +Library DateTime + +*** Test Cases *** +TC_MEC_MEC045_SRV_QOSLOOKUP_001_OK + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_001_OK + ... Check that the IUT responds with the list of QoS measurement subscriptions when queried by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.4, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve all subscriptions + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is SubscriptionList + + +TC_MEC_MEC045_SRV_QOSLOOKUP_001_BR + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_001_BR + ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.4, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${WRONG_QUERY_PARAM} + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC045_SRV_QOSLOOKUP_001_NF + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_001_NF + ... Check that the IUT responds with an error when no subscription are created + ... ETSI GS MEC 045 Clause 5.2.4, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve all subscriptions + Check HTTP Response Status Code Is 404 + + +TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_01 + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_OK_01 + ... Check that the IUT responds with the list of QoS measurement subscriptions when queried by a MEC Application - Filter on subscriptionId + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${SUB_ID_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SubscriptionList + + +TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_02 + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_OK_02 + ... Check that the IUT responds with the list of QoS measurement subscriptions when queried by a MEC Application - Filter on subscriptionType + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${SUB_TYPE_QUERY_PARAM} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SubscriptionList + +TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 + ... Check that the IUT responds with with an error when no subscription matches with the filter - Filter on subscriptionType + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${NF_SUB_TYPE_QUERY_PARAM} + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is SubscriptionList + + +TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_02 + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_NF_02 + ... Check that the IUT responds with with an error when no subscription matches with the filter - Filter on subscriptionId + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.1, + ... ETSI GS MEC 045 Clause 7.3.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${NF_SUB_TYPE_QUERY_PARAM} + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is SubscriptionList + + +TC_MEC_MEC045_SRV_QOSLOOKUP_003_OK + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_003_OK + ... Check that the IUT responds with a QoS measurement subscription when queried by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscription ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is QoSMeasurementSubscription + + +TC_MEC_MEC045_SRV_QOSLOOKUP_003_NF + [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_003_NF + ... 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 + ... ETSI GS MEC 045 Clause 5.2.5, + ... ETSI GS MEC 045 Clause 6.3.2, + ... ETSI GS MEC 045 Clause 7.4.3.1 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Retrieve Subscription ${UNKNOWN_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404ì + + +*** Keywords *** +Retrieve all subscriptions + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Retrieve Subscription + [Arguments] ${SUBSCRIPTION_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve Subscriptions with query params + [Arguments] ${SUBSCRIPTION_ID} ${QUERY_PARAMS} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${SUBSCRIPTION_ID}?${QUERY_PARAMS} + ${output}= Output response + Set Suite Variable ${response} ${output} + diff --git a/MEC045/SUBLOOKUP/environment/variables.txt b/MEC045/SUBLOOKUP/environment/variables.txt new file mode 100644 index 0000000..9b8c7d3 --- /dev/null +++ b/MEC045/SUBLOOKUP/environment/variables.txt @@ -0,0 +1,21 @@ +*** Variables *** +# Generic variables +${SCHEMA} http +${HOST} 127.0.0.1 +#${HOST} 10.192.2.172 +${PORT} 8081 +${response} {} +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} +${apiName} qms +${apiVersion} v1 + + +##Specific +${SUBSCRIPTION_ID} subscription_id +${UNKNOWN_SUBSCRIPTION_ID} unknown_sub_id +${WRONG_QUERY_PARAM} subscriptionIdentity=any_value +${SUB_ID_QUERY_PARAM} subscriptionId=HREF_VALUE_1&subscriptionId=HREF_VALUE_3 +${NF_SUB_ID_QUERY_PARAM} subscriptionId=UKNOWN_SUB_ID +${SUB_TYPE_QUERY_PARAM} subscriptionType=SUB_TYPE +${NF_SUB_TYPE_QUERY_PARAM} subscriptionType=QoSEventSubscription \ No newline at end of file -- GitLab From 53e2f41d65b9c25a3ccda784ad4d6c81cc601014 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 14:59:15 +0200 Subject: [PATCH 27/55] Fixes based on pipeline error --- MEC045/SUBLOOKUP/QoSLookup.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MEC045/SUBLOOKUP/QoSLookup.robot b/MEC045/SUBLOOKUP/QoSLookup.robot index 0c94711..d307e38 100644 --- a/MEC045/SUBLOOKUP/QoSLookup.robot +++ b/MEC045/SUBLOOKUP/QoSLookup.robot @@ -1,5 +1,5 @@ -Y''[Documentation] robot --outputdir ../../../outputs ./QoSMeasurementSubNot.robot -... Test Suite to validate QoSMeasurementSubNot Service API operations. +Y''[Documentation] robot --outputdir ../../../outputs ./QoSLookup.robot +... Test Suite to validate QoSLookup API operations. *** Settings *** Resource environment/variables.txt @@ -117,7 +117,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_003_NF ... ETSI GS MEC 045 Clause 7.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscription ${UNKNOWN_SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 404ì + Check HTTP Response Status Code Is 404 *** Keywords *** -- GitLab From 28508c643258794f98d22057358046ab35900c0d Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 15:06:37 +0200 Subject: [PATCH 28/55] Updated MEC033 TCs --- .../MEX/IOTS/IOTDEV/RegisteredDevices.robot | 42 +++++++++---------- .../IOTS/IOTPLAT/RegisteredIoTPlatform.robot | 28 ++++++------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot b/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot index ba938d8..4e52467 100644 --- a/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot +++ b/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot @@ -17,8 +17,8 @@ Test Teardown Test TearDown ${DEVICE_ID_PLACEHOLDER} DeviceInfo ${N TC_MEC_MEC033_IOTS_IOTDEV_001_OK_01 [Documentation] ... Check that the IUT responds with the list of registered IoT devices - ... when queried by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.1 + ... when queried by a Service Consumer - No Filter + ... ETSI GS MEC 033 clause 7.3.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} @@ -35,7 +35,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_001_OK_01 TC_MEC_MEC033_IOTS_IOTDEV_001_OK_02 [Documentation] ... "Check that the IUT responds with the list of registered IoT devices when queried using a filter by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 033 clause 7.3.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -51,8 +51,8 @@ TC_MEC_MEC033_IOTS_IOTDEV_001_OK_02 TC_MEC_MEC033_IOTS_IOTDEV_001_OK_03 [Documentation] - ... "Check that the IUT responds with the list of registered IoT devices when queried by a Service Consumer filtering one field - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.1 + ... "Check that the IUT responds with the list of registered IoT devices when queried by a Service Consumer, filtering one field + ... ETSI GS MEC 033 clause 7.3.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -63,8 +63,8 @@ TC_MEC_MEC033_IOTS_IOTDEV_001_OK_03 TC_MEC_MEC033_IOTS_IOTDEV_001_OK_04 [Documentation] - ... "Check that the IUT responds with the list of registered IoT devices when queried by a Service Consumer filtering one field - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.1 + ... "Check that the IUT responds with the list of registered IoT devices when queried by a Service Consumer, filtering one field + ... ETSI GS MEC 033 clause 7.3.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -80,7 +80,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_001_OK_04 TC_MEC_MEC033_IOTS_IOTDEV_002_OK [Documentation] ... Check that the IUT registers the information of an IoT device when requested by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.4 + ... ETSI GS MEC 033 clause 7.3.3.4 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${DEVICE_ID} ${None} ${REMOVE_ACTION} @@ -103,7 +103,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_002_OK TC_MEC_MEC033_IOTS_IOTDEV_002_BR [Documentation] ... Check that the IUT returns an error when Service Consumer request to register an IoT device with incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.3.3.4 + ... ETSI GS MEC 033 clause 7.3.3.4 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf ## No setup needed Register IOT Device information DeviceInfoBR @@ -113,7 +113,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_002_BR TC_MEC_MEC033_IOTS_IOTDEV_003_OK [Documentation] ... Check that the IUT returns the IoT device information when requested by Service Consumer specifying the device identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.1 + ... ETSI GS MEC 033 clause 7.4.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -127,7 +127,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_003_OK TC_MEC_MEC033_IOTS_IOTDEV_003_NF [Documentation] ... Check that the IUT returns error when Service Consumer request to retrieve a not registered IoT device - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.1 + ... ETSI GS MEC 033 clause 7.4.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_DEVICE_ID} ${None} ${REMOVE_ACTION} Retrieve specific registered IOT Device information ${NOT_EXISTING_DEVICE_ID} @@ -138,7 +138,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_003_NF TC_MEC_MEC033_IOTS_IOTDEV_004_OK [Documentation] ... Check that the IUT returns an error when Service Consumer request to register an IoT device with incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.2 + ... ETSI GS MEC 033 clause 7.4.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId @@ -159,7 +159,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_004_OK TC_MEC_MEC033_IOTS_IOTDEV_004_NF [Documentation] ... Check that the IUT returns an error when a Service Consumer requests to update a not registered IoT device - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.2 + ... ETSI GS MEC 033 clause 7.4.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_DEVICE_ID} ${None} ${REMOVE_ACTION} Update IOT Device information ${NOT_EXISTING_DEVICE_ID} DeviceInfoUpdate @@ -169,7 +169,7 @@ TC_MEC_MEC033_IOTS_IOTDEV_004_NF TC_MEC_MEC033_IOTS_IOTDEV_004_BR [Documentation] ... Check that the IUT returns an error when a Service Consumer requests to update an existing IoT device with incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.2 + ... ETSI GS MEC 033 clause 7.4.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_DEVICE_ID} ${None} ${REMOVE_ACTION} Update IOT Device information ${NOT_EXISTING_DEVICE_ID} DeviceInfoUpdateBR @@ -178,23 +178,23 @@ TC_MEC_MEC033_IOTS_IOTDEV_004_BR TC_MEC_MEC033_IOTS_IOTDEV_005_OK [Documentation] - ... Check that the IUT deregisters an IoT device information when requested by a Service Consumer specifying the IoT registered device identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.5 + ... Check that the IUT unregisters an IoT device information when requested by a Service Consumer specifying the IoT registered device identifier + ... ETSI GS MEC 033 clause 7.4.3.5 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} DeviceInfo ${REGISTER_ACTION} ${DEVICE_ID_VALUE} Get value entry from JSON file DeviceInfo deviceId - Deregister IOT Device information ${DEVICE_ID_VALUE} + Unregister IOT Device information ${DEVICE_ID_VALUE} Check HTTP Response Status Code Is 204 ## No Teardown needed TC_MEC_MEC033_IOTS_IOTDEV_005_NF [Documentation] - ... "Check that the IUT returns an error when a Service Consumer requests to deregisters an IoT device using incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.4.3.5 + ... "Check that the IUT returns an error when a Service Consumer requests to unregisters an IoT device using incorrect parameters + ... ETSI GS MEC 033 clause 7.4.3.5 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_DEVICE_ID} ${None} ${REMOVE_ACTION} - Deregister IOT Device information ${NOT_EXISTING_DEVICE_ID} + Unregister IOT Device information ${NOT_EXISTING_DEVICE_ID} Check HTTP Response Status Code Is 404 ##No tearDown needed @@ -294,7 +294,7 @@ Update IOT Device information Set Suite Variable ${response} ${output} -Deregister IOT Device information +Unregister IOT Device information [Arguments] ${deviceId} Should Be True ${PIC_MEC_PLAT} == 1 Should Be True ${PIC_SERVICES} == 1 diff --git a/MEC033/MEX/IOTS/IOTPLAT/RegisteredIoTPlatform.robot b/MEC033/MEX/IOTS/IOTPLAT/RegisteredIoTPlatform.robot index 664a174..43cb156 100644 --- a/MEC033/MEX/IOTS/IOTPLAT/RegisteredIoTPlatform.robot +++ b/MEC033/MEX/IOTS/IOTPLAT/RegisteredIoTPlatform.robot @@ -17,7 +17,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_001_OK [Documentation] ... Check that the IUT responds with the list of registered IoT platforms ... when queried by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 033 clause 7.5.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} IoTPlatformInfo ${REGISTER_ACTION} ${IOT_PLATFORM_ID_VALUE} Get value entry from JSON file IoTPlatformInfo iotPlatformId @@ -33,7 +33,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_002_OK [Documentation] ... Check that the IUT registers the information of a new IoT platform ... when requested by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.4 + ... ETSI GS MEC 033 clause 7.5.3.4 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${IOT_PLATFORM_ID} ${None} ${REMOVE_ACTION} @@ -55,7 +55,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_002_BR [Documentation] ... Check that the IUT returns an error ... when Service Consumer request to register an IoT device with incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.4 + ... ETSI GS MEC 033 clause 7.5.3.4 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf Register IOT Platform information IotPlatformInfoBR Check HTTP Response Status Code Is 400 @@ -65,7 +65,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_003_OK [Documentation] ... Check that the IUT returns the IoT platform information ... when requested by Service Consumer specifying the IoT platform identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 033 clause 7.5.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} IoTPlatformInfo ${REGISTER_ACTION} ${IOT_PLATFORM_ID_VALUE} Get value entry from JSON file IoTPlatformInfo iotPlatformId @@ -84,7 +84,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_003_NF [Documentation] ... Check that the IUT returns the IoT platform information ... when requested by Service Consumer specifying the IoT platform identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 033 clause 7.5.3.1 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_IOT_PLATFORM_ID} ${None} ${NOT_EXISTING_IOT_PLATFORM_ID} Retrieve specific registered IOT Platform information ${NOT_EXISTING_IOT_PLATFORM_ID} @@ -95,7 +95,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_004_OK [Documentation] ... Check that the IUT updates the information about a registered IoT platform ... when requested by a Service Consumer - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.2 + ... ETSI GS MEC 033 clause 7.5.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} IoTPlatformInfo ${REGISTER_ACTION} ${IOT_PLATFORM_ID_VALUE} Get value entry from JSON file IotPlatformInfoUpdate iotPlatformId @@ -114,7 +114,7 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_004_NF [Documentation] ... Check that the IUT returns an error ... when a Service Consumer requests to update a not registered IoT platform - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.2 + ... ETSI GS MEC 033 clause 7.5.3.2 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_IOT_PLATFORM_ID} ${None} ${NOT_EXISTING_IOT_PLATFORM_ID} Update registered IOT Platform information ${NOT_EXISTING_IOT_PLATFORM_ID} IotPlatformInfoUpdate @@ -123,13 +123,13 @@ TC_MEC_MEC033_MEX_IOTS_IOTPLAT_004_NF TP_MEC_MEC033_MEX_IOTS_IOTPLAT_005_OK [Documentation] - ... Check that the IUT deregisters an IoT platform information + ... Check that the IUT unregisters an IoT platform information ... when requested by a Service Consumer specifying the registered IoT platform identifier - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.5 + ... ETSI GS MEC 033 clause 7.5.3.5 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${None} IoTPlatformInfo ${REGISTER_ACTION} ${IOT_PLATFORM_ID_VALUE} Get value entry from JSON file IoTPlatformInfo iotPlatformId - Deregister IOT Platform information ${IOT_PLATFORM_ID} + Unregister IOT Platform information ${IOT_PLATFORM_ID} Check HTTP Response Status Code Is 204 [Teardown] Test TearDown ${IOT_PLATFORM_ID_VALUE} ${None} ${REMOVE_ACTION} @@ -137,11 +137,11 @@ TP_MEC_MEC033_MEX_IOTS_IOTPLAT_005_OK TC_MEC_MEC033_MEX_IOTS_IOTPLAT_005_NF [Documentation] ... Check that the IUT returns an error - ... when a Service Consumer request to deregister an IoT platform using incorrect parameters - ... ETSI GS MEC 033 V3.1.1, clause 7.5.3.5 + ... when a Service Consumer request to unregister an IoT platform using incorrect parameters + ... ETSI GS MEC 033 clause 7.5.3.5 ... https://www.etsi.org/deliver/etsi_gs/MEC/001_099/033/03.01.01_60/gs_MEC033v030101p.pdf [Setup] Test Setup ${NOT_EXISTING_IOT_PLATFORM_ID} ${None} ${NOT_EXISTING_IOT_PLATFORM_ID} - Deregister IOT Platform information ${NOT_EXISTING_IOT_PLATFORM_ID} + Unregister IOT Platform information ${NOT_EXISTING_IOT_PLATFORM_ID} Check HTTP Response Status Code Is 404 @@ -229,7 +229,7 @@ Register IOT Platform information Set Suite Variable ${response} ${output} - Deregister IOT Platform information +Unregister IOT Platform information [Arguments] ${registeredPlatformId} Should Be True ${PIC_MEC_PLAT} == 1 Should Be True ${PIC_SERVICES} == 1 -- GitLab From 7344ec8e83029de9bb418b3755950b5350773c2f Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 15:19:31 +0200 Subject: [PATCH 29/55] Removed specification version from MEC011 TCs --- MEC011/SRV/APPSAQ/PlatAppServices.robot | 70 +++++++-------- MEC011/SRV/APPSUB/PlatAppSubscriptions.robot | 32 +++---- MEC011/SRV/CONFTASK/ConfirmTasks.robot | 24 +++--- MEC011/SRV/DNS/PlatDnsRules.robot | 48 +++++------ MEC011/SRV/MLS/Liveness.robot | 36 ++++---- MEC011/SRV/REGAPPS/RegisterAppsServices.robot | 86 +++++++++---------- MEC011/SRV/SAQ/PlatServices.robot | 24 +++--- MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot | 48 +++++------ MEC011/SRV/TIME/PlatTiming.robot | 12 +-- MEC011/SRV/TRAF/PlatTrafficRules.robot | 48 +++++------ MEC011/SRV/TRANS/PlatTransport.robot | 6 +- 11 files changed, 217 insertions(+), 217 deletions(-) diff --git a/MEC011/SRV/APPSAQ/PlatAppServices.robot b/MEC011/SRV/APPSAQ/PlatAppServices.robot index f1afa13..1847fe8 100644 --- a/MEC011/SRV/APPSAQ/PlatAppServices.robot +++ b/MEC011/SRV/APPSAQ/PlatAppServices.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_APPSAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -36,9 +36,9 @@ TC_MEC_MEC011_SRV_APPSAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI G3.3.1 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.1 + ... Reference ETSI G3.3.1 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES # Wrong query parameter name should trigger an error response. Get a list of mecService of an application instance with parameters ${APP_INSTANCE_ID} ${INSTANCE_ID} ${FAKE_INSTANCE_ID_VALUE} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_OK ... Check that the IUT notifies the authorised relevant (subscribed) application ... instances when a new service for a given application instance is registered ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -70,9 +70,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES Create new service ServiceInfoError ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 400 @@ -83,9 +83,9 @@ TC_MEC_MEC011_SRV_APPSAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.6.3.4 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${NON_EXISTENT_APP_INSTANCE_ID} ${SERVICE_ID} Create new service ServiceInfo ${NON_EXISTENT_APP_INSTANCE_ID} @@ -97,9 +97,9 @@ TC_MEC_MEC011_SRV_APPSAQ_003_OK ... Check that the IUT responds with the information on a specific service ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -115,9 +115,9 @@ TC_MEC_MEC011_SRV_APPSAQ_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.5, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.5, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${NON_EXISTENT_APP_INSTANCE_ID} ${SERVICE_ID} Get individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} @@ -129,9 +129,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_OK ... Check that the IUT updates a service information for a given ... application instance when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.4, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -147,9 +147,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.4, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -163,9 +163,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.4, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Update service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} ServiceInfoUpdated @@ -177,9 +177,9 @@ TC_MEC_MEC011_SRV_APPSAQ_004_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.4, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 8.2.7.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.4, + ... ETSI GS MEC 011 clause 8.1.2.2, + ... ETSI GS MEC 011 clause 8.2.7.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -193,7 +193,7 @@ TC_MEC_MEC011_SRV_APPSAQ_005_OK ... Check that the IUT executes the deletion of a service ... for a given application instance when requested by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 8.2.7.3.5 + ... Reference ETSI GS MEC 011 clause 8.2.7.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Set Suite Variable ${SERVICE_ID} ${response['body']['serInstanceId']} @@ -206,7 +206,7 @@ TC_MEC_MEC011_SRV_APPSAQ_005_NF ... Check that the IUT responds with an error when ... a request for deletion of a unknown service is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 8.2.7.3.5 + ... Reference ETSI GS MEC 011 clause 8.2.7.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} diff --git a/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot b/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot index 964998f..9a77897 100644 --- a/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot +++ b/MEC011/SRV/APPSUB/PlatAppSubscriptions.robot @@ -18,8 +18,8 @@ TC_MEC_MEC011_SRV_APPSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -35,8 +35,8 @@ TC_MEC_MEC011_SRV_APPSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUB_ID} Get Subscriptions list ${NON_EXISTENT_APP_INSTANCE_ID} @@ -48,8 +48,8 @@ TC_MEC_MEC011_SRV_APPSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.3.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription @@ -69,8 +69,8 @@ TC_MEC_MEC011_SRV_APPSUB_002_BR ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.3.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.3.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscriptionBR Check HTTP Response Status Code Is 400 @@ -81,8 +81,8 @@ TC_MEC_MEC011_SRV_APPSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -98,8 +98,8 @@ TC_MEC_MEC011_SRV_APPSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -111,8 +111,8 @@ TC_MEC_MEC011_SRV_APPSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.4.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new subscription ${APP_INSTANCE_ID} AppTerminationNotificationSubscription ${elements} = Split String ${response['body']['_links']['self']['href']} / @@ -126,8 +126,8 @@ TC_MEC_MEC011_SRV_APPSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.4.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 7.2.4.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID} Remove subscription ${NON_EXISTENT_APP_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/MEC011/SRV/CONFTASK/ConfirmTasks.robot b/MEC011/SRV/CONFTASK/ConfirmTasks.robot index f0827fc..b2935a9 100644 --- a/MEC011/SRV/CONFTASK/ConfirmTasks.robot +++ b/MEC011/SRV/CONFTASK/ConfirmTasks.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_CONFTASK_001_OK ... Check that the IUT responds that it has completed ... the application level termination ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.3", + ... "ETSI GS MEC 011 clause 7.1.4.3", + ... "ETSI GS MEC 011 clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Request termination of MEC Application ${APP_INSTANCE_ID} AppTerminationConfirmation @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_CONFTASK_001_NF ... Check that the IUT responds with an error ... when requested graceful termination/stop of an unknown MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.3", + ... "ETSI GS MEC 011 clause 7.1.4.3", + ... "ETSI GS MEC 011 clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Teardown] Delete MEC application instance profile ${NON_EXISTING_APP_INSTANCE_ID} Request termination of MEC Application ${NON_EXISTING_APP_INSTANCE_ID} AppTerminationConfirmation @@ -49,9 +49,9 @@ TC_MEC_MEC011_SRV_CONFTASK_002_OK ... Check that the IUT responds with an acknowledge ... when requested readiness status for a MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.3", + ... "ETSI GS MEC 011 clause 7.1.4.3", + ... "ETSI GS MEC 011 clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Request readiness status of MEC Application ${APP_INSTANCE_ID} AppReadyConfirmation @@ -64,9 +64,9 @@ TC_MEC_MEC011_SRV_CONFTASK_002_NF ... Check that the IUT responds with an error ... when requested readiness status for an unknown MEC Application instance ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.4.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.11.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.3", + ... "ETSI GS MEC 011 clause 7.1.4.3", + ... "ETSI GS MEC 011 clause 7.2.11.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NON_EXISTING_APP_INSTANCE_ID} Request readiness status of MEC Application ${NON_EXISTING_APP_INSTANCE_ID} AppReadyConfirmation diff --git a/MEC011/SRV/DNS/PlatDnsRules.robot b/MEC011/SRV/DNS/PlatDnsRules.robot index 1bf39a4..4aa0927 100644 --- a/MEC011/SRV/DNS/PlatDnsRules.robot +++ b/MEC011/SRV/DNS/PlatDnsRules.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_DNS_001_OK ... Check that the IUT responds with a list of active DNS rules ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.9.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Get list of active DNS rules ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_DNS_001_NF ... Check that the IUT responds with a list of active DNS rules ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.9.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTENT_APP_INSTANCE_ID} Get list of active DNS rules ${NOT_EXISTENT_APP_INSTANCE_ID} @@ -49,9 +49,9 @@ TC_MEC_MEC011_SRV_DNS_002_OK ... Check that the IUT responds with the information on a specific DNS rule ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Get individual DNS rule ${APP_INSTANCE_ID} ${DNS_RULE_ID} @@ -66,9 +66,9 @@ TC_MEC_MEC011_SRV_DNS_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual DNS rule ${APP_INSTANCE_ID} ${NON_ESISTENT_DNS_RULE_ID} Check HTTP Response Status Code Is 404 @@ -79,9 +79,9 @@ TC_MEC_MEC011_SRV_DNS_003_OK ... Check that the IUT responds with the information on a specific DNS rule ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Update a DNS Rule ${APP_INSTANCE_ID} ${DNS_RULE_ID} DnsRuleUpdate @@ -97,9 +97,9 @@ TC_MEC_MEC011_SRV_DNS_003_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -113,9 +113,9 @@ TC_MEC_MEC011_SRV_DNS_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -130,9 +130,9 @@ TC_MEC_MEC011_SRV_DNS_003_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.8", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.3", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.10.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.8", + ... "ETSI GS MEC 011 clause 7.1.2.3", + ... "ETSI GS MEC 011 clause 7.2.10.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo Update a DNS Rule with invalid etag ${APP_INSTANCE_ID} ${DNS_RULE_ID} DnsRuleUpdate diff --git a/MEC011/SRV/MLS/Liveness.robot b/MEC011/SRV/MLS/Liveness.robot index 2b070ee..695c8e6 100644 --- a/MEC011/SRV/MLS/Liveness.robot +++ b/MEC011/SRV/MLS/Liveness.robot @@ -14,9 +14,9 @@ TC_MEC_MEC011_SRV_MSL_001_OK [Documentation] ... Check that the IUT responds with the liveness of a MEC service instance ... when queried by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.4", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.4", + ... "ETSI GS MEC 011 clause 8.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} Individual MEC service liveness ${LIVENESS_URI} @@ -30,9 +30,9 @@ TC_MEC_MEC011_SRV_MSL_001_NF ... 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 - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.4", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.4", + ... "ETSI GS MEC 011 clause 8.2.10.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES Individual MEC service liveness ${NOT_EXISTING_URL_SERVICE_MEC_LIVENESS} Check HTTP Response Status Code Is 404 @@ -42,9 +42,9 @@ TC_MEC_MEC011_SRV_MSL_002_OK_01 [Documentation] ... Check that the IUT updates the liveness of a MEC service instance ... when requested by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.5", + ... "ETSI GS MEC 011 clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdate .json @@ -61,9 +61,9 @@ TC_MEC_MEC011_SRV_MSL_002_OK_02 [Documentation] ... Check that the IUT updates the liveness of a MEC service instance ... when requested by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.5", + ... "ETSI GS MEC 011 clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdate .json @@ -76,9 +76,9 @@ TC_MEC_MEC011_SRV_MSL_002_BR [Documentation] ... Check that the IUT responds with an error when ... incorrect parameters were sent by a MEC Application - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.5", + ... "ETSI GS MEC 011 clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} @@ -93,9 +93,9 @@ TC_MEC_MEC011_SRV_MSL_002_NF ... 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 - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.12", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.10.3.3" + ... Reference "ETSI GS MEC 011 clause 5.2.12", + ... "ETSI GS MEC 011 clause 8.1.2.5", + ... "ETSI GS MEC 011 clause 8.2.10.3.3" [Tags] PIC_MEC_PLAT PIC_SERVICES Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ServiceLivenessUpdateError .json diff --git a/MEC011/SRV/REGAPPS/RegisterAppsServices.robot b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot index 1326ea2..964ad1b 100644 --- a/MEC011/SRV/REGAPPS/RegisterAppsServices.robot +++ b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot @@ -18,9 +18,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_01 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo Check HTTP Response Status Code Is 201 @@ -35,9 +35,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_02 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo2 ${APP_INSTANCE_ID_REQ} Get value entry from JSON file AppInfo2 appInstanceId @@ -55,9 +55,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_OK_03 ... Check that the IUT acknowledges the registration ... by a MEC Application to the MEC platform ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfo3 ${APP_INSTANCE_ID_REQ} Get value entry from JSON file AppInfo3 appInstanceId @@ -78,9 +78,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_01 ... Check that the IUT responds with an error message when the IUT received a registration with ... missing fields from a MEC Application instantiated by the MEC platform ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR1 Check HTTP Response Status Code Is 400 @@ -91,9 +91,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_02 ... Check that the IUT responds with an error message ... when the IUT received by a MEC Application registration with missing endpoint ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR2 Check HTTP Response Status Code Is 400 @@ -104,9 +104,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_03 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appServiceRequired ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR3 Check HTTP Response Status Code Is 400 @@ -117,9 +117,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_04 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appServiceRequired ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR4 Check HTTP Response Status Code Is 400 @@ -130,9 +130,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_05 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appFeatureRequired ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR5 @@ -144,9 +144,9 @@ TC_MEC_MEC011_SRV_REGAPPS_001_BR_06 ... Check that the IUT responds with an error message when the IUT received by a ... MEC Application registration with unexpected appFeatureOptional ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6" - ... "ETSI GS MEC 011 3.3.1, clause 7.2.13.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6" + ... "ETSI GS MEC 011 clause 7.2.13.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new MEC application instance profile AppInfoBR6 @@ -159,9 +159,9 @@ TC_MEC_MEC011_SRV_REGAPPS_002_OK ... Check that the IUT responds with the AppInfo description ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -177,9 +177,9 @@ TC_MEC_MEC011_SRV_REGAPPS_002_NF ... Check that the IUT responds with an error ... when it receives a request for returning an AppInfo with a wrong ID ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} @@ -193,9 +193,9 @@ TC_MEC_MEC011_SRV_REGAPPS_003_OK ... Check that the IUT responds with 204 No Content ... when queried to update MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.2" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.2" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -211,7 +211,7 @@ TC_MEC_MEC011_SRV_REGAPPS_003_NF ... Check that the IUT responds with 204 No Content ... when queried to update MEC Application registration ... - ... Reference ETSI GS MEC 011 3.3.1, clause 7.2.14.3.2 + ... Reference ETSI GS MEC 011 clause 7.2.14.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} @@ -225,9 +225,9 @@ TC_MEC_MEC011_SRV_REGAPPS_004_OK ... Check that the IUT responds with 204 No Content ... when queried to delete an existing MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile AppInfo @@ -242,9 +242,9 @@ TC_MEC_MEC011_SRV_REGAPPS_004_NF ... Check that the IUT responds with an error when queried to ... delete an unknown MEC Application registration ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.13", - ... "ETSI GS MEC 011 3.3.1, clause 7.1.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 7.2.14.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.13", + ... "ETSI GS MEC 011 clause 7.1.2.6", + ... "ETSI GS MEC 011 clause 7.2.14.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Delete MEC application instance profile ${NOT_EXISTING_APP_INSTANCE_ID} diff --git a/MEC011/SRV/SAQ/PlatServices.robot b/MEC011/SRV/SAQ/PlatServices.robot index afaf846..57a653f 100644 --- a/MEC011/SRV/SAQ/PlatServices.robot +++ b/MEC011/SRV/SAQ/PlatServices.robot @@ -16,9 +16,9 @@ TC_MEC_MEC011_SRV_SAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.5", - ... Reference "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", - ... Reference "ETSI GS MEC 011 3.3.1, clause 8.2.3.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.5", + ... Reference "ETSI GS MEC 011 clause 8.1.2.2", + ... Reference "ETSI GS MEC 011 clause 8.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_SAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.5", - ... Reference "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", - ... Reference "ETSI GS MEC 011 3.3.1, clause 8.2.3.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.5", + ... Reference "ETSI GS MEC 011 clause 8.1.2.2", + ... Reference "ETSI GS MEC 011 clause 8.2.3.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} @@ -50,9 +50,9 @@ TC_MEC_MEC011_SRV_SAQ_002_OK ... Check that the IUT responds with the information on a specific service ... when queried by a MEC Application ... - ... "ETSI GS MEC 011 3.3.1, clause 5.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.4.3.1" + ... "ETSI GS MEC 011 clause 5.2.5", + ... "ETSI GS MEC 011 clause 8.1.2.2", + ... "ETSI GS MEC 011 clause 8.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create new service ServiceInfo ${APP_INSTANCE_ID} ${SER_NAME} Get value entry from JSON file ServiceInfo serName @@ -67,9 +67,9 @@ TC_MEC_MEC011_SRV_SAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... "ETSI GS MEC 011 3.3.1, clause 5.2.5", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.2.2", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.4.3.1" + ... "ETSI GS MEC 011 clause 5.2.5", + ... "ETSI GS MEC 011 clause 8.1.2.2", + ... "ETSI GS MEC 011 clause 8.2.4.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [TearDown] Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} Get specific MEC service ${NON_EXISTENT_SERVICE_ID} diff --git a/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot b/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot index fe25c15..8836128 100644 --- a/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot +++ b/MEC011/SRV/SRVSUB/PlatSrvSubscriptions.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_SRVSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.8.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Get list of subscriptions ${APP_INSTANCE_ID} @@ -33,9 +33,9 @@ TC_MEC_MEC011_SRV_SRVSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.8.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove MEC application ${NON_EXISTENT_INSTANCE_ID} @@ -47,9 +47,9 @@ TC_MEC_MEC011_SRV_SRVSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.8.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo @@ -69,9 +69,9 @@ TC_MEC_MEC011_SRV_SRVSUB_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.8.3.4" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.8.3.4" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Create a new subscription ${APP_INSTANCE_ID} SerAvailabilityNotificationSubscriptionError @@ -84,9 +84,9 @@ TC_MEC_MEC011_SRV_SRVSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Get individual subscription ${APP_INSTANCE_ID} ${SUB_ID} @@ -103,9 +103,9 @@ TC_MEC_MEC011_SRV_SRVSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.1" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.9.3.1" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -117,9 +117,9 @@ TC_MEC_MEC011_SRV_SRVSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.9.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application instance profile and create subscription AppInfo SerAvailabilityNotificationSubscription Remove subscription ${APP_INSTANCE_ID} ${SUB_ID} @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_SRVSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference "ETSI GS MEC 011 3.3.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.3.1, clause 8.1.3", - ... "ETSI GS MEC 011 3.3.1, clause 8.2.9.3.5" + ... Reference "ETSI GS MEC 011 clause 5.2.6", + ... "ETSI GS MEC 011 clause 8.1.3", + ... "ETSI GS MEC 011 clause 8.2.9.3.5" [Tags] PIC_MEC_PLAT PIC_SERVICES [TearDown] Remove MEC application ${NON_EXISTENT_INSTANCE_ID} Remove subscription ${NON_EXISTENT_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/MEC011/SRV/TIME/PlatTiming.robot b/MEC011/SRV/TIME/PlatTiming.robot index f024bb6..a80dd3d 100644 --- a/MEC011/SRV/TIME/PlatTiming.robot +++ b/MEC011/SRV/TIME/PlatTiming.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_TIME_001_OK [Documentation] ... Check that the IUT responds with timing capabilities ... when queried by a MEC Application - ... ETSI GS MEC 011 3.3.1, clause 5.2.10.3, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.4, - ... ETSI GS MEC 011 3.3.1, clause 7.2.5.3.1 + ... ETSI GS MEC 011 clause 5.2.10.3, + ... ETSI GS MEC 011 clause 7.1.2.4, + ... ETSI GS MEC 011 clause 7.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get time capabilities Check HTTP Response Status Code Is 200 @@ -32,9 +32,9 @@ TC_MEC_MEC011_SRV_TIME_002_OK [Documentation] ... Check that the IUT responds with current time ... when queried by a MEC Application - ... ETSI GS MEC 011 3.3.1, clause 5.2.10.2, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.5, - ... ETSI GS MEC 011 3.3.1, clause 7.2.5.3.1 + ... ETSI GS MEC 011 clause 5.2.10.2, + ... ETSI GS MEC 011 clause 7.1.2.5, + ... ETSI GS MEC 011 clause 7.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get current time diff --git a/MEC011/SRV/TRAF/PlatTrafficRules.robot b/MEC011/SRV/TRAF/PlatTrafficRules.robot index ac781b1..5ffad06 100644 --- a/MEC011/SRV/TRAF/PlatTrafficRules.robot +++ b/MEC011/SRV/TRAF/PlatTrafficRules.robot @@ -19,9 +19,9 @@ TC_MEC_MEC011_SRV_TRAF_001_OK ... when queried by a MEC Application ... ... Reference - ... ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.7.3.1 + ... ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo @@ -36,9 +36,9 @@ TC_MEC_MEC011_SRV_TRAF_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.7.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Remove MEC application ${NON_EXISTENT_APP_INSTANCE_ID} @@ -51,9 +51,9 @@ TC_MEC_MEC011_SRV_TRAF_002_OK ... Check that the IUT responds with the information on a specific traffic rule ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Get individual traffic rule ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} @@ -68,9 +68,9 @@ TC_MEC_MEC011_SRV_TRAF_002_NF ... Check that the IUT responds with an error when a request for an unknown traffic rule ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual traffic rule ${APP_INSTANCE_ID} ${NON_EXISTENT_TRAFFIC_RULE_ID} @@ -83,9 +83,9 @@ TC_MEC_MEC011_SRV_TRAF_003_OK ... Check that the IUT updates a specific traffic rule ... when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo ${TRAFFIC_RULE_ID} Get value entry from JSON file TrafficRuleUpdate trafficRuleId @@ -101,9 +101,9 @@ TC_MEC_MEC011_SRV_TRAF_003_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} TrafficRuleUpdateError @@ -116,9 +116,9 @@ TC_MEC_MEC011_SRV_TRAF_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7", - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2", - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.7", + ... ETSI GS MEC 011 clause 7.1.2.2", + ... ETSI GS MEC 011 clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule ${APP_INSTANCE_ID} ${NON_EXISTENT_TRAFFIC_RULE_ID} TrafficRuleUpdate @@ -131,9 +131,9 @@ TC_MEC_MEC011_SRV_TRAF_003_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.7, - ... ETSI GS MEC 011 3.3.1, clause 7.1.2.2, - ... ETSI GS MEC 011 3.3.1, clause 7.2.8.3.2 + ... Reference ETSI GS MEC 011 clause 5.2.7, + ... ETSI GS MEC 011 clause 7.1.2.2, + ... ETSI GS MEC 011 clause 7.2.8.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new MEC application AppInfo Update a traffic rule with invalid etag ${APP_INSTANCE_ID} ${TRAFFIC_RULE_ID} TrafficRuleUpdate diff --git a/MEC011/SRV/TRANS/PlatTransport.robot b/MEC011/SRV/TRANS/PlatTransport.robot index f95e42a..5044f7d 100644 --- a/MEC011/SRV/TRANS/PlatTransport.robot +++ b/MEC011/SRV/TRANS/PlatTransport.robot @@ -17,9 +17,9 @@ TC_MEC_MEC011_SRV_TRANS_001_OK ... Check that the IUT responds with a list of available transports ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 3.3.1, clause 5.2.9, - ... ETSI GS MEC 011 3.3.1, clause 8.1.2.3, - ... ETSI GS MEC 011 3.3.1, clause 8.2.5.3.1 + ... Reference ETSI GS MEC 011 clause 5.2.9, + ... ETSI GS MEC 011 clause 8.1.2.3, + ... ETSI GS MEC 011 clause 8.2.5.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of available transports -- GitLab From b3273e2bc3b3197293e5e75a18381827419b953d Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 15:56:27 +0200 Subject: [PATCH 30/55] Added missing JSON schema and JSOn payloads --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 17 +++---- MEC011/SRV/CAPIF/jsons/eventSubscription.json | 9 ++++ .../CAPIF/jsons/eventSubscriptionUpdate.json | 9 ++++ .../CAPIF/jsons/serviceApiDescription.json | 11 +++++ .../CAPIF/jsons/serviceApiDescriptionBR.json | 8 ++++ .../schemas/EventSubscription.json.schema | 32 +++++++++++++ .../schemas/ServiceApiDescription.json.schema | 44 +++++++++++++++++ .../ServiceApiDescriptionList.json.schema | 48 +++++++++++++++++++ 8 files changed, 170 insertions(+), 8 deletions(-) create mode 100644 MEC011/SRV/CAPIF/jsons/eventSubscription.json create mode 100644 MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json create mode 100644 MEC011/SRV/CAPIF/jsons/serviceApiDescription.json create mode 100644 MEC011/SRV/CAPIF/jsons/serviceApiDescriptionBR.json create mode 100644 MEC011/SRV/CAPIF/schemas/EventSubscription.json.schema create mode 100644 MEC011/SRV/CAPIF/schemas/ServiceApiDescription.json.schema create mode 100644 MEC011/SRV/CAPIF/schemas/ServiceApiDescriptionList.json.schema diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 4b6751d..950122f 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -319,6 +319,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF Check HTTP Response Status Code Is 404 +##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK [Documentation] ... Check that the IUT acknowledges the update of a CAPIF subscription request @@ -333,7 +334,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription - +##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF [Documentation] ... Check that the IUT acknowledges the update of a CAPIF subscription request @@ -341,13 +342,13 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 - ... ETSI GS MEC 011 clause 9.2.6.3.4 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 404 - +##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK [Documentation] ... Check that the IUT acknowledges the changes of a CAPIF subscription request @@ -362,7 +363,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription - +##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF [Documentation] ... Check that the IUT acknowledges the changes of a CAPIF subscription request @@ -499,7 +500,7 @@ Create CAPIF subscription Set Headers {"Content-Type":"*/*"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - Post ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription ${body} + Post ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -511,7 +512,7 @@ Replace existing CAPIF subscription Set Headers {"Content-Type":"*/*"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - Put ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} ${body} + Put ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions/${SUBSCRIPTION_ID} ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -523,7 +524,7 @@ Modify existing CAPIF subscription Set Headers {"Content-Type":"*/*"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - Patch ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} ${body} + Patch ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions/${SUBSCRIPTION_ID} ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -534,6 +535,6 @@ Delete existing CAPIF subscription Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} Set Headers {"Content-Type":"*/*"} - Delete ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscription/${SUBSCRIPTION_ID} + Delete ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions/${SUBSCRIPTION_ID} ${output}= Output response Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscription.json b/MEC011/SRV/CAPIF/jsons/eventSubscription.json new file mode 100644 index 0000000..1e3e29c --- /dev/null +++ b/MEC011/SRV/CAPIF/jsons/eventSubscription.json @@ -0,0 +1,9 @@ +{ + "events": [ + "CAPIFEvent", + "CAPIFEvent", + "CAPIFEvent" + ], + "notificationDestination": "http://someurl.com/someuri", + "requestTestNotification": false, +} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json b/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json new file mode 100644 index 0000000..1e3e29c --- /dev/null +++ b/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json @@ -0,0 +1,9 @@ +{ + "events": [ + "CAPIFEvent", + "CAPIFEvent", + "CAPIFEvent" + ], + "notificationDestination": "http://someurl.com/someuri", + "requestTestNotification": false, +} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/serviceApiDescription.json b/MEC011/SRV/CAPIF/jsons/serviceApiDescription.json new file mode 100644 index 0000000..24134e0 --- /dev/null +++ b/MEC011/SRV/CAPIF/jsons/serviceApiDescription.json @@ -0,0 +1,11 @@ +{ + "apiName": "apiName", + "serviceAPICategory": "serviceAPICategory", + "apiId": "apiId", + "shareableInfo": {}, + "ccfId": "ccfId", + "apiSuppFeats": "apiSuppFeats", + "pubApiPath": "pubApiPath", + "apiStatus": "apiStatus", + "vendorSpecific-urn:etsi:mec:capifext:service-info": {} +} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/serviceApiDescriptionBR.json b/MEC011/SRV/CAPIF/jsons/serviceApiDescriptionBR.json new file mode 100644 index 0000000..a800f66 --- /dev/null +++ b/MEC011/SRV/CAPIF/jsons/serviceApiDescriptionBR.json @@ -0,0 +1,8 @@ +{ + "apiId": "apiId", + "apiName": "apiName", + "serviceAPICategory": "serviceAPICategory", + "aefProfiles": { + "aefProfile": "aefProfile" + } +} \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/schemas/EventSubscription.json.schema b/MEC011/SRV/CAPIF/schemas/EventSubscription.json.schema new file mode 100644 index 0000000..9ac3153 --- /dev/null +++ b/MEC011/SRV/CAPIF/schemas/EventSubscription.json.schema @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "EventSubscription", + "type": "object", + "properties": { + "events": { + "type": "array", + "description": "The applicable subset of values from 'CAPIFEvent' mapped to MEC event types as defined in clause 9.1.6.1.", + "items": { + "type": "string" + } + }, + "eventReq": { + "type": "object", + "description": "See note. Optional attribute." + }, + "notificationDestination": { + "type": "string", + "description": "Shall be set to the value of the 'callbackReference' attribute in the 'SerAvailabilityNotificationSubscription' structure as defined in clause 8.1.3.2.", + "format": "uri" + }, + "requestTestNotification": { + "type": "boolean", + "description": "Aligned with ETSI GS MEC 009 [5], refers to a 3GPP-related mechanism." + }, + "websocketNotifConfig": { + "type": "object", + "description": "Aligned with ETSI GS MEC 009 [5], refers to a 3GPP-related mechanism." + } + }, + "required": ["events", "notificationDestination"] +} diff --git a/MEC011/SRV/CAPIF/schemas/ServiceApiDescription.json.schema b/MEC011/SRV/CAPIF/schemas/ServiceApiDescription.json.schema new file mode 100644 index 0000000..444a7f0 --- /dev/null +++ b/MEC011/SRV/CAPIF/schemas/ServiceApiDescription.json.schema @@ -0,0 +1,44 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "ServiceInfo", + "type": "object", + "properties": { + "apiName": { + "type": "string", + "description": "Shall be set to the value of the 'serName' attribute as defined in clause 8.1.2.2." + }, + "apiId": { + "type": "string", + "description": "If present, shall be set to the value of the 'serInstanceId' attribute as defined in clause 8.1.2.2." + }, + "shareableInfo": { + "type": "object", + "description": "See note." + }, + "serviceAPICategory": { + "type": "string", + "description": "Shall be set to the same value as the attribute 'id' in 'CategoryRef'." + }, + "ccfId": { + "type": "string", + "description": "See note." + }, + "apiSuppFeats": { + "type": "string", + "description": "See note." + }, + "pubApiPath": { + "type": "string", + "description": "See note." + }, + "apiStatus": { + "type": "string", + "description": "See note." + }, + "vendorSpecific-urn:etsi:mec:capifext:service-info": { + "type": "object", + "description": "MecServiceInfoCapifExt used to carry MEC-specific extensions. Requires CAPIF feature 'VendorExt' as defined in clause 8.2.6 of ETSI TS 129 222 [21]." + } + }, + "required": ["apiName", "serviceAPICategory"] +} diff --git a/MEC011/SRV/CAPIF/schemas/ServiceApiDescriptionList.json.schema b/MEC011/SRV/CAPIF/schemas/ServiceApiDescriptionList.json.schema new file mode 100644 index 0000000..85b2e2e --- /dev/null +++ b/MEC011/SRV/CAPIF/schemas/ServiceApiDescriptionList.json.schema @@ -0,0 +1,48 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "ServiceInfoList", + "type": "array", + "items": { + "type": "object", + "title": "ServiceInfo", + "properties": { + "apiName": { + "type": "string", + "description": "Shall be set to the value of the 'serName' attribute as defined in clause 8.1.2.2." + }, + "apiId": { + "type": "string", + "description": "If present, shall be set to the value of the 'serInstanceId' attribute as defined in clause 8.1.2.2." + }, + "shareableInfo": { + "type": "object", + "description": "See note. Optional attribute." + }, + "serviceAPICategory": { + "type": "string", + "description": "Shall be set to the same value as the attribute 'id' in 'CategoryRef'." + }, + "ccfId": { + "type": "string", + "description": "See note. Optional attribute." + }, + "apiSuppFeats": { + "type": "string", + "description": "See note. Optional attribute." + }, + "pubApiPath": { + "type": "string", + "description": "See note. Optional attribute." + }, + "apiStatus": { + "type": "string", + "description": "See note. Optional attribute." + }, + "vendorSpecific-urn:etsi:mec:capifext:service-info": { + "type": "object", + "description": "MecServiceInfoCapifExt used to carry MEC-specific extensions. Requires CAPIF feature 'VendorExt' as defined in clause 8.2.6 of ETSI TS 129 222 [21]." + } + }, + "required": ["apiName", "serviceAPICategory"] + } +} -- GitLab From 7b04a65764b0caa5a08c88d2019623b8eacca617 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 16:57:26 +0200 Subject: [PATCH 31/55] Added JSON payloads and JSON schemas. --- MEC045/EVENTSUBNOT/QoSEventSubNot.robot | 16 +- .../jsons/QoSEventSubscription.json | 18 ++ .../jsons/QoSEventSubscriptionBR.json | 18 ++ .../jsons/QoSEventSubscriptionBR2.json | 17 ++ .../jsons/QoSEventSubscriptionBR3.json | 18 ++ .../jsons/QoSEventSubscriptionBR4.json | 14 ++ .../jsons/QoSEventSubscriptionBR5.json | 12 ++ .../jsons/QoSEventSubscriptionBR6.json | 14 ++ .../jsons/QoSEventSubscriptionBR7.json | 17 ++ .../QoSEventSubscriptionTestExpiryTimer.json | 20 +++ .../QoSEventSubscriptionTestNotification.json | 19 +++ .../jsons/QoSEventSubscriptionUpdate.json | 19 +++ .../QoSEventSubscriptionWithThreshold.json | 17 ++ .../schemas/QoSEventSubscription.json.schema | 157 ++++++++++++++++++ 14 files changed, 375 insertions(+), 1 deletion(-) create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR2.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR3.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR4.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR5.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR6.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR7.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestExpiryTimer.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestNotification.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionUpdate.json create mode 100644 MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionWithThreshold.json create mode 100644 MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot index 2ff9682..be13742 100644 --- a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -1,5 +1,5 @@ Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot -... Test Suite to validate QoSEventSubNot Service API operations. +... Test Suite to validate QoSEventSubNot API operations. *** Settings *** Resource environment/variables.txt @@ -124,6 +124,20 @@ TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_06 +TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_07 + [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_001_BR_07 + ... Check that the IUT responds with an error when a request with incorrect parameters is sent + ... by a MEC Application - Invalid condition on monitoringArea + ... by a MEC Application - Invalid flowFilter + ... ETSI GS MEC 045 Clause 5.2.2, + ... ETSI GS MEC 045 Clause 6.3.3, + ... ETSI GS MEC 045 Clause 7.3.3.4 + [Tags] PIC_MEC_PLAT PIC_SERVICES + Create QoS Event Subscription QoSEventSubscriptionBR7 + Check HTTP Response Status Code Is 400 + + + TC_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK [Documentation] TP_MEC_MEC045_SRV_QOS_EVENT_SUB_NOT_002_OK ... Check that the IUT acknowledges the changes of QoS event subscription request diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json new file mode 100644 index 0000000..e4dd1fc --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json @@ -0,0 +1,18 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR.json new file mode 100644 index 0000000..576bbe0 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR.json @@ -0,0 +1,18 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR2.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR2.json new file mode 100644 index 0000000..01ad9cb --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR2.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "XXX" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR3.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR3.json new file mode 100644 index 0000000..ac4481f --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR3.json @@ -0,0 +1,18 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "websockNotifConfig": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR4.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR4.json new file mode 100644 index 0000000..24dab32 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR4.json @@ -0,0 +1,14 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR5.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR5.json new file mode 100644 index 0000000..609f444 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR5.json @@ -0,0 +1,12 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR6.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR6.json new file mode 100644 index 0000000..1525670 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR6.json @@ -0,0 +1,14 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowInfo":{ + }, + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR7.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR7.json new file mode 100644 index 0000000..d2bc857 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionBR7.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowInfo":{ + }, + "reportingCtrl": {}, + "measuringPeriod": 1000, + "monitoringArea":{ + "areaInfo":"" + }, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestExpiryTimer.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestExpiryTimer.json new file mode 100644 index 0000000..94e6ae2 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestExpiryTimer.json @@ -0,0 +1,20 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "requestTestNotification": true, + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + }, + "expiryDeadline": "2020-01-01T00:00" +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestNotification.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestNotification.json new file mode 100644 index 0000000..362c452 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionTestNotification.json @@ -0,0 +1,19 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "requestTestNotification": true, + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT" + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionUpdate.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionUpdate.json new file mode 100644 index 0000000..b0aad3b --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionUpdate.json @@ -0,0 +1,19 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": "THROUGHPUT", + "upperThreshold":100000 + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionWithThreshold.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionWithThreshold.json new file mode 100644 index 0000000..9d80a98 --- /dev/null +++ b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscriptionWithThreshold.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSEventSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": ["ACR_SOME_IP"], + "flowFilter": [ + {"sourceIP":"ACR_SOME_IP"} + ], + "sourceIp": "ABCDEFGHIJKLMNOPQRS", + "reportingCtrl": {}, + "measuringPeriod": 1000, + "reportTrigger":{ + "metricType":"THROUGHPUT", + "upperThreshold":100000, + "lowerThreshold":1000 + + } +} \ No newline at end of file diff --git a/MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema b/MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema new file mode 100644 index 0000000..1187375 --- /dev/null +++ b/MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema @@ -0,0 +1,157 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "QoSEventSubscription", + "type": "object", + "properties": { + "subscriptionType": { + "type": "string", + "const": "QoSEventSubscription", + "description": "Shall be set to 'QoSEventSubscription'." + }, + "callbackReference": { + "type": "string", + "format": "uri", + "description": "URI exposed by the client to receive notifications via HTTP." + }, + "requestTestNotification": { + "type": "boolean", + "description": "If true, test notification shall be sent via HTTP as per ETSI GS MEC 009." + }, + "websocketNotifConfig": { + "$ref": "#/definitions/WebsocketNotifConfig" + }, + "_links": { + "type": "object", + "description": "Links to resources. Inline structure." + }, + "self": { + "type": "string", + "format": "uri", + "description": "URI of the subscription resource." + }, + "users": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "description": "List of user identifiers." + }, + "flowFilter": { + "type": "array", + "items": { + "type": "object", + "description": "Inline structure for traffic flow filtering criteria." + } + }, + "sourceIp": { + "type": "string", + "description": "IPv4/IPv6 address of the flow source." + }, + "sourcePort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "dstIp": { + "type": "string", + "description": "IPv4/IPv6 address of the flow destination." + }, + "dstPort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "protocol": { + "type": "integer" + }, + "dsField": { + "type": "integer" + }, + "trafficFilter": { + "type": "string" + }, + "eventTrigger": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "description": "Inline structure describing event trigger." + } + }, + "upperThreshold": { + "type": "integer" + }, + "lowerThreshold": { + "type": "integer" + }, + "reportingCtrl": { + "$ref": "#/definitions/ReportingCtrl" + }, + "measuringPeriod": { + "type": "integer" + }, + "monitoringArea": { + "type": "array", + "items": { + "$ref": "#/definitions/AreaInfo" + } + }, + "accessPointId": { + "type": "string" + }, + "zoneId": { + "type": "string" + }, + "timeSlot": { + "type": "array", + "items": { + "type": "object", + "description": "StartTime and EndTime range." + } + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "expiryDeadline": { + "type": "string", + "format": "date-time", + "description": "Expiration time of the subscription." + } + }, + "required": [ + "subscriptionType", + "eventTrigger", + "startTime", + "endTime" + ], + "anyOf": [ + { "required": ["callbackReference"] }, + { "required": ["websocketNotifConfig"] } + ], + "definitions": { + "WebsocketNotifConfig": { + "type": "object", + "description": "WebSocket config structure, aligns with ETSI GS MEC 009." + }, + "ReportingCtrl": { + "type": "object", + "description": "Reporting control structure as per ETSI." + }, + "AreaInfo": { + "type": "object", + "description": "Structure defining geographic or logical area for monitoring." + } + } +} -- GitLab From 3173a87c1901fb8356f8706eb387e7303042dfec Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 17:30:30 +0200 Subject: [PATCH 32/55] For MEC011 TCs made some fixes on TCs themselves and JSON payloads. --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 146 ++++++++++++------ MEC011/SRV/CAPIF/jsons/eventSubscription.json | 2 +- .../CAPIF/jsons/eventSubscriptionUpdate.json | 2 +- 3 files changed, 98 insertions(+), 52 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 950122f..f2d4b91 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -81,6 +81,9 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_OK_04 Should Be Equal As Strings ${element}[apiName] ${API_NAME_QUERY_PARAM} END + + + TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_001_BR [Documentation] ... Check that the IUT responds with an error @@ -217,52 +220,69 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF_02 Check HTTP Response Status Code Is 404 -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_004_NF + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK [Documentation] - ... 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 + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 - ... ETSI GS MEC 011 clause 9.1.2.2 - ... ETSI GS MEC 011 clause 9.2.5.3.2 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update published APIs wrong HTTP method ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF + [Documentation] + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 clause 9.0 + ... ETSI GS MEC 011 clause 9.1.3.1 + ... ETSI GS MEC 011 clause 9.2.6.3.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 404 -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_006_OK [Documentation] ... Check that the IUT changes the publishing of a new API ... when queried by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.2.3 - ... ETSI GS MEC 011 clause 9.2.5.3.3 + ... ETSI GS MEC 011 clause 9.2.5.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate + Replace published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} serviceApiDescriptionUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ServiceApiDescription ${MEC_SRV_SER_NAME} Get value entry from JSON file ServiceApiDescription apiName Check Response Contains ${response['body']} apiId ${MEC_SRV_SER_INSTANCE_ID} -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_006_NF [Documentation] ... 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 ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.2.3 - ... ETSI GS MEC 011 clause 9.2.5.3.3 + ... ETSI GS MEC 011 clause 9.2.5.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate + Replace published APIs ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SERVICE_API_ID} serviceApiDescriptionUpdate Check HTTP Response Status Code Is 404 + TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK [Documentation] ... Check that the IUT acknowledges the removing of a published API @@ -275,6 +295,8 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_OK [Tags] PIC_MEC_PLAT PIC_SERVICES Remove published APIs ${MEC_SRV_INSTANCE_ID} ${SERVICE_API_ID} Check HTTP Response Status Code Is 204 + + TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF [Documentation] @@ -290,7 +312,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_007_NF Check HTTP Response Status Code Is 404 -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_008_OK [Documentation] ... Check that the IUT acknowledges the publishing of a new API when ... queried by a MEC Application @@ -305,7 +327,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK Check HTTP Response Body Json Schema Is EventSubscription -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_008_NF [Documentation] ... 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 @@ -319,94 +341,91 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF Check HTTP Response Status Code Is 404 -##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_OK [Documentation] - ... Check that the IUT acknowledges the update of a CAPIF subscription request - ... when requested by a MEC Application + ... Check that the IUT acknowledges the update of a CAPIF subscription request + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription -##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_NF [Documentation] - ... Check that the IUT acknowledges the update of a CAPIF subscription request - ... when requested by a MEC Application + ... Check that the IUT acknowledges the changes of a CAPIF subscription request + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 - -##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_OK + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK [Documentation] - ... Check that the IUT acknowledges the changes of a CAPIF subscription request - ... when requested by a MEC Application + ... Check that the IUT acknowledges the changes of a CAPIF subscription request + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionPatch + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription -##TODO: MEC 011 clause 9.2.6.3.2 does not have such operation. To delete ? -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_012_NF + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF [Documentation] - ... Check that the IUT acknowledges the changes of a CAPIF subscription request - ... when requested by a MEC Application + ... 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 ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Modify existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionPatch + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 - Check HTTP Response Body Json Schema Is EventSubscription -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_OK +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_OK [Documentation] - ... Check that the IUT acknowledges the cancellation of a CAPIF subscription - ... when requested by a MEC Application + ... Check that the IUT acknowledges the cancellation of a CAPIF subscription + ... when requested by a MEC Application ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES - Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} + Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_013_NF +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_011_NF [Documentation] - ... 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 + ... 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 ... ... Reference ETSI GS MEC 011 clause 9.0 ... ETSI GS MEC 011 clause 9.1.3.1 ... ETSI GS MEC 011 clause 9.2.6.3.4 [Tags] PIC_MEC_PLAT PIC_SERVICES - Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} + Delete existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 - - + *** Keywords *** Get all services APIs Set Headers {"Accept":"application/json"} @@ -427,6 +446,7 @@ Get services APIs with query params Set Suite Variable ${response} ${output} +##Published APIs management Keywords Get published services APIs [Arguments] ${MEC_SRV_SER_INSTANCE_ID} Set Headers {"Accept":"application/json"} @@ -460,7 +480,7 @@ Get published APIs Set Suite Variable ${response} ${output} -Update published APIs wrong HTTP method +Replace published APIs wrong HTTP method [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} @@ -470,6 +490,30 @@ Update published APIs wrong HTTP method Set Suite Variable ${response} ${output} +Replace published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Put ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Replace published APIs + [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Set Headers {"Content-Type":"*/*"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + + Put ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + Update published APIs [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} Set Headers {"Accept":"application/json"} @@ -482,7 +526,7 @@ Update published APIs ${output}= Output response Set Suite Variable ${response} ${output} - + Remove published APIs [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} Set Headers {"Accept":"application/json"} @@ -492,7 +536,9 @@ Remove published APIs Delete ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${output}= Output response Set Suite Variable ${response} ${output} - + + +##CAPIF Subscription management Keywords Create CAPIF subscription [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${content} Set Headers {"Accept":"application/json"} @@ -503,7 +549,7 @@ Create CAPIF subscription Post ${apiRoot}/${capifSubApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} - + Replace existing CAPIF subscription [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} ${content} diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscription.json b/MEC011/SRV/CAPIF/jsons/eventSubscription.json index 1e3e29c..dfb5bc8 100644 --- a/MEC011/SRV/CAPIF/jsons/eventSubscription.json +++ b/MEC011/SRV/CAPIF/jsons/eventSubscription.json @@ -5,5 +5,5 @@ "CAPIFEvent" ], "notificationDestination": "http://someurl.com/someuri", - "requestTestNotification": false, + "requestTestNotification": false } \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json b/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json index 1e3e29c..dfb5bc8 100644 --- a/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json +++ b/MEC011/SRV/CAPIF/jsons/eventSubscriptionUpdate.json @@ -5,5 +5,5 @@ "CAPIFEvent" ], "notificationDestination": "http://someurl.com/someuri", - "requestTestNotification": false, + "requestTestNotification": false } \ No newline at end of file -- GitLab From 71c2960baa5a65c1038568fd2c2f519bcb672410 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 3 Jul 2025 18:00:29 +0200 Subject: [PATCH 33/55] Fix errors on pipeline. --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index f2d4b91..8b1803d 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -490,18 +490,6 @@ Replace published APIs wrong HTTP method Set Suite Variable ${response} ${output} -Replace published APIs - [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} - Set Headers {"Accept":"application/json"} - Set Headers {"Authorization":"${TOKEN}"} - Set Headers {"Content-Type":"*/*"} - ${file}= Catenate SEPARATOR= jsons/ ${content} .json - ${body}= Get File ${file} - - Put ${apiRoot}/${publApiName}/${apiVersion}/${MEC_SRV_SER_INSTANCE_ID}/service-apis/${SERVICE_API_ID} ${body} - ${output}= Output response - Set Suite Variable ${response} ${output} - Replace published APIs [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SERVICE_API_ID} ${content} Set Headers {"Accept":"application/json"} @@ -563,7 +551,7 @@ Replace existing CAPIF subscription Set Suite Variable ${response} ${output} -Modify existing CAPIF subscription +Update existing CAPIF subscription [Arguments] ${MEC_SRV_SER_INSTANCE_ID} ${SUBSCRIPTION_ID} ${content} Set Headers {"Accept":"application/json"} Set Headers {"Authorization":"${TOKEN}"} -- GitLab From 38a92a0275723244a7215f58eb134410efcdbd36 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 4 Jul 2025 09:18:17 +0200 Subject: [PATCH 34/55] Minor fixes for pipeline errors --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 8b1803d..aa84fa1 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -231,7 +231,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -246,7 +246,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 404 @@ -366,7 +366,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 @@ -380,7 +380,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -395,7 +395,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 -- GitLab From 6926a03209009f8ffe5467a1c7cc26d37233c040 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 4 Jul 2025 09:18:17 +0200 Subject: [PATCH 35/55] Minor fixes for pipeline errors --- MEC011/SRV/CAPIF/MecProfileCapif.robot | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MEC011/SRV/CAPIF/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot index 8b1803d..f906cc7 100644 --- a/MEC011/SRV/CAPIF/MecProfileCapif.robot +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -231,7 +231,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -246,7 +246,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscriptionUpdate Check HTTP Response Status Code Is 404 @@ -351,7 +351,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -366,7 +366,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription + Replace existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 @@ -380,7 +380,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_OK ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is EventSubscription @@ -395,7 +395,7 @@ TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_010_NF ... ETSI GS MEC 011 clause 9.2.6.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_ID} eventSubscription Check HTTP Response Status Code Is 404 -- GitLab From 4296d1e50ce3399e6fabbf7597a806cb81a5e26a Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 4 Jul 2025 09:41:19 +0200 Subject: [PATCH 36/55] Added missing JSON payload examples and schema --- MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot | 4 +- .../jsons/QoSMeasureSubscription.json | 17 ++ .../jsons/QoSMeasureSubscriptionBR.json | 16 ++ .../jsons/QoSMeasureSubscriptionBR2.json | 15 ++ .../jsons/QoSMeasureSubscriptionBR3.json | 17 ++ .../jsons/QoSMeasureSubscriptionBR4.json | 13 ++ .../jsons/QoSMeasureSubscriptionBR5.json | 16 ++ .../jsons/QoSMeasureSubscriptionBR6.json | 17 ++ .../jsons/QoSMeasureSubscriptionBR7.json | 19 +++ .../jsons/QoSMeasureSubscriptionBR8.json | 20 +++ .../jsons/QoSMeasureSubscriptionUpdate.json | 17 ++ ...oSMeasureSubscriptionWithNumOfReports.json | 17 ++ ...QoSMeasureSubscriptionWithRepInterval.json | 16 ++ .../schemas/QoSEventSubscription.json.schema | 157 ++++++++++++++++++ 14 files changed, 359 insertions(+), 2 deletions(-) create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR2.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR3.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR4.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR5.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR6.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR7.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR8.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionUpdate.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithNumOfReports.json create mode 100644 MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithRepInterval.json create mode 100644 MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot index 7ce5343..d126791 100644 --- a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot +++ b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot @@ -164,7 +164,7 @@ TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_OK ... ETSI GS MEC 045 Clause 6.3.2, ... ETSI GS MEC 045 Clause 7.4.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update QoS Event Subscription QoSEventSubscriptionUpdate ${SUBSCRIPTION_ID} + Update QoS Event Subscription QoSMeasureSubscriptionUpdate ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is QoSEventSubscription @@ -176,7 +176,7 @@ TC_MEC_MEC045_SRV_QOS_MEAS_SUB_NOT_002_NF ... ETSI GS MEC 045 Clause 6.3.2, ... ETSI GS MEC 045 Clause 7.4.3.2 [Tags] PIC_MEC_PLAT PIC_SERVICES - Update QoS Event Subscription QoSEventSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} + Update QoS Event Subscription QoSMeasureSubscriptionUpdate ${UNKNOWN_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is QoSEventSubscription diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json new file mode 100644 index 0000000..6d10f20 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[ "flowInfo1"], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR.json new file mode 100644 index 0000000..4a73528 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR.json @@ -0,0 +1,16 @@ +{ + "subscriptionType": "QoSSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR2.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR2.json new file mode 100644 index 0000000..b70e475 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR2.json @@ -0,0 +1,15 @@ +{ + "subscriptionType": "QoSSubscription", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR3.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR3.json new file mode 100644 index 0000000..bb7f8c2 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR3.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "websockNotifConfig":"websocketconfig", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR4.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR4.json new file mode 100644 index 0000000..14d5e5d --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR4.json @@ -0,0 +1,13 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR5.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR5.json new file mode 100644 index 0000000..a4d740e --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR5.json @@ -0,0 +1,16 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR6.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR6.json new file mode 100644 index 0000000..ee0664a --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR6.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR7.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR7.json new file mode 100644 index 0000000..56aeab2 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR7.json @@ -0,0 +1,19 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[ "flowInfo1"], + "measuringPeriod": 1000, + "reportingInterval":10, + "measuringPeriod":100, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR8.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR8.json new file mode 100644 index 0000000..af52efd --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionBR8.json @@ -0,0 +1,20 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[ "flowInfo1"], + "measuringPeriod": 1000, + "measuringArea":{ + "areaInfo":"" + }, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionUpdate.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionUpdate.json new file mode 100644 index 0000000..1daafec --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionUpdate.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "flowInfo":[ "flowInfo1"], + "measuringPeriod": 1000, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY","ERRROR_RATE"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithNumOfReports.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithNumOfReports.json new file mode 100644 index 0000000..1f2043f --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithNumOfReports.json @@ -0,0 +1,17 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "numberOfReports": 100, + "reportingInterval": 10, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithRepInterval.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithRepInterval.json new file mode 100644 index 0000000..2133f55 --- /dev/null +++ b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscriptionWithRepInterval.json @@ -0,0 +1,16 @@ +{ + "subscriptionType": "QoSMeasureSubscription", + "callbackReference": "http://someuri/someendpoint", + "users": [ + "ACR_SOME_IP" + ], + "flowFilter": [ + { + "sourceIP": "ACR_SOME_IP" + } + ], + "reportingInterval": 10, + "reportTrigger": { + "metricType": ["THROUGHPUT","LATENCY"] + } +} \ No newline at end of file diff --git a/MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema b/MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema new file mode 100644 index 0000000..1187375 --- /dev/null +++ b/MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema @@ -0,0 +1,157 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "QoSEventSubscription", + "type": "object", + "properties": { + "subscriptionType": { + "type": "string", + "const": "QoSEventSubscription", + "description": "Shall be set to 'QoSEventSubscription'." + }, + "callbackReference": { + "type": "string", + "format": "uri", + "description": "URI exposed by the client to receive notifications via HTTP." + }, + "requestTestNotification": { + "type": "boolean", + "description": "If true, test notification shall be sent via HTTP as per ETSI GS MEC 009." + }, + "websocketNotifConfig": { + "$ref": "#/definitions/WebsocketNotifConfig" + }, + "_links": { + "type": "object", + "description": "Links to resources. Inline structure." + }, + "self": { + "type": "string", + "format": "uri", + "description": "URI of the subscription resource." + }, + "users": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "description": "List of user identifiers." + }, + "flowFilter": { + "type": "array", + "items": { + "type": "object", + "description": "Inline structure for traffic flow filtering criteria." + } + }, + "sourceIp": { + "type": "string", + "description": "IPv4/IPv6 address of the flow source." + }, + "sourcePort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "dstIp": { + "type": "string", + "description": "IPv4/IPv6 address of the flow destination." + }, + "dstPort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "protocol": { + "type": "integer" + }, + "dsField": { + "type": "integer" + }, + "trafficFilter": { + "type": "string" + }, + "eventTrigger": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "description": "Inline structure describing event trigger." + } + }, + "upperThreshold": { + "type": "integer" + }, + "lowerThreshold": { + "type": "integer" + }, + "reportingCtrl": { + "$ref": "#/definitions/ReportingCtrl" + }, + "measuringPeriod": { + "type": "integer" + }, + "monitoringArea": { + "type": "array", + "items": { + "$ref": "#/definitions/AreaInfo" + } + }, + "accessPointId": { + "type": "string" + }, + "zoneId": { + "type": "string" + }, + "timeSlot": { + "type": "array", + "items": { + "type": "object", + "description": "StartTime and EndTime range." + } + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "expiryDeadline": { + "type": "string", + "format": "date-time", + "description": "Expiration time of the subscription." + } + }, + "required": [ + "subscriptionType", + "eventTrigger", + "startTime", + "endTime" + ], + "anyOf": [ + { "required": ["callbackReference"] }, + { "required": ["websocketNotifConfig"] } + ], + "definitions": { + "WebsocketNotifConfig": { + "type": "object", + "description": "WebSocket config structure, aligns with ETSI GS MEC 009." + }, + "ReportingCtrl": { + "type": "object", + "description": "Reporting control structure as per ETSI." + }, + "AreaInfo": { + "type": "object", + "description": "Structure defining geographic or logical area for monitoring." + } + } +} -- GitLab From f6015564ec062c35e88675cf95a04833a9214f83 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 4 Jul 2025 09:49:18 +0200 Subject: [PATCH 37/55] Added missing JSON schema and minor fix. --- MEC045/SUBLOOKUP/QoSLookup.robot | 10 +- .../NotificationSubscriptionList.json.schema | 211 ++++++++++++++++++ 2 files changed, 216 insertions(+), 5 deletions(-) create mode 100644 MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema diff --git a/MEC045/SUBLOOKUP/QoSLookup.robot b/MEC045/SUBLOOKUP/QoSLookup.robot index d307e38..8dcc0a7 100644 --- a/MEC045/SUBLOOKUP/QoSLookup.robot +++ b/MEC045/SUBLOOKUP/QoSLookup.robot @@ -24,7 +24,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_001_OK [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve all subscriptions Check HTTP Response Status Code Is 201 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_001_BR @@ -58,7 +58,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_01 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${SUB_ID_QUERY_PARAM} Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_02 @@ -70,7 +70,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_002_OK_02 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${SUB_TYPE_QUERY_PARAM} Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 [Documentation] TP_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 @@ -81,7 +81,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_01 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${NF_SUB_TYPE_QUERY_PARAM} Check HTTP Response Status Code Is 404 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_02 @@ -93,7 +93,7 @@ TC_MEC_MEC045_SRV_QOSLOOKUP_002_NF_02 [Tags] PIC_MEC_PLAT PIC_SERVICES Retrieve Subscriptions with query params ${SUBSCRIPTION_ID} ${NF_SUB_TYPE_QUERY_PARAM} Check HTTP Response Status Code Is 404 - Check HTTP Response Body Json Schema Is SubscriptionList + Check HTTP Response Body Json Schema Is NotificationSubscriptionList TC_MEC_MEC045_SRV_QOSLOOKUP_003_OK diff --git a/MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema b/MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema new file mode 100644 index 0000000..a1ad9ef --- /dev/null +++ b/MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema @@ -0,0 +1,211 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "QoSEventSubscription", + "type": "object", + "properties": { + "subscriptionType": { + "type": "string", + "const": "QoSEventSubscription" + }, + "callbackReference": { + "type": "string", + "format": "uri" + }, + "requestTestNotification": { + "type": "boolean" + }, + "websocketNotifConfig": { + "$ref": "#/definitions/WebsocketNotifConfig" + }, + "_links": { + "type": "object", + "description": "HATEOAS-style resource links." + }, + "self": { + "type": "string", + "format": "uri" + }, + "users": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "flowFilter": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowFilter" + } + }, + "sourceIp": { + "type": "string" + }, + "sourcePort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "dstIp": { + "type": "string" + }, + "dstPort": { + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 65535 + } + }, + "protocol": { + "type": "integer" + }, + "dsField": { + "type": "integer" + }, + "trafficFilter": { + "type": "string" + }, + "eventTrigger": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/EventTrigger" + } + }, + "upperThreshold": { + "type": "integer" + }, + "lowerThreshold": { + "type": "integer" + }, + "reportingCtrl": { + "$ref": "#/definitions/ReportingCtrl" + }, + "measuringPeriod": { + "type": "integer" + }, + "monitoringArea": { + "type": "array", + "items": { + "$ref": "#/definitions/AreaInfo" + } + }, + "accessPointId": { + "type": "string" + }, + "zoneId": { + "type": "string" + }, + "timeSlot": { + "type": "array", + "items": { + "$ref": "#/definitions/TimeSlot" + } + }, + "startTime": { + "type": "string", + "format": "date-time" + }, + "endTime": { + "type": "string", + "format": "date-time" + }, + "expiryDeadline": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "subscriptionType", + "eventTrigger", + "startTime", + "endTime" + ], + "anyOf": [ + { "required": ["callbackReference"] }, + { "required": ["websocketNotifConfig"] } + ], + "definitions": { + "WebsocketNotifConfig": { + "type": "object", + "properties": { + "websocketUri": { + "type": "string", + "format": "uri" + }, + "subprotocols": { + "type": "array", + "items": { "type": "string" } + } + }, + "required": ["websocketUri"] + }, + "FlowFilter": { + "type": "object", + "properties": { + "sourceIp": { "type": "string" }, + "destinationIp": { "type": "string" }, + "sourcePort": { + "type": "array", + "items": { "type": "integer", "minimum": 0, "maximum": 65535 } + }, + "destinationPort": { + "type": "array", + "items": { "type": "integer", "minimum": 0, "maximum": 65535 } + }, + "protocol": { "type": "integer" }, + "dsField": { "type": "integer" } + } + }, + "EventTrigger": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of event trigger, e.g., THRESHOLD_CROSSED" + }, + "params": { + "type": "object", + "description": "Additional trigger-specific parameters" + } + }, + "required": ["type"] + }, + "ReportingCtrl": { + "type": "object", + "properties": { + "reportingMode": { + "type": "string", + "enum": ["ONCE", "PERIODIC", "ON_EVENT"] + }, + "maxReports": { + "type": "integer", + "minimum": 1 + } + }, + "required": ["reportingMode"] + }, + "AreaInfo": { + "type": "object", + "properties": { + "zoneId": { "type": "string" }, + "locationList": { + "type": "array", + "items": { "type": "string" } + } + } + }, + "TimeSlot": { + "type": "object", + "properties": { + "start": { "type": "string", "format": "date-time" }, + "end": { "type": "string", "format": "date-time" } + }, + "required": ["start", "end"] + } + } +} -- GitLab From f7fa43c46a119730140db770bdfc352bd2de61a1 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 15 Jul 2025 12:47:16 +0500 Subject: [PATCH 38/55] modify ResorceQuotaInfo.json, add ResourceQuotaInfo2.json and ResourceQuotaInfo3.json --- MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json | 2 +- MEC048/MEO/CSE/jsons/ResourceQuotaInfo2.json | 3 +++ MEC048/MEO/CSE/jsons/ResourceQuotaInfo3.json | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 MEC048/MEO/CSE/jsons/ResourceQuotaInfo2.json create mode 100644 MEC048/MEO/CSE/jsons/ResourceQuotaInfo3.json diff --git a/MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json b/MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json index fc360ad..6025515 100644 --- a/MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json +++ b/MEC048/MEO/CSE/jsons/ResourceQuotaInfo.json @@ -1,3 +1,3 @@ { - "cpuQuota": "CPU_QUOTA" + "cpuQuota": 1 } \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceQuotaInfo2.json b/MEC048/MEO/CSE/jsons/ResourceQuotaInfo2.json new file mode 100644 index 0000000..d67bc4c --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceQuotaInfo2.json @@ -0,0 +1,3 @@ +{ + "cpuQuota": 2 +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/ResourceQuotaInfo3.json b/MEC048/MEO/CSE/jsons/ResourceQuotaInfo3.json new file mode 100644 index 0000000..6acfd3e --- /dev/null +++ b/MEC048/MEO/CSE/jsons/ResourceQuotaInfo3.json @@ -0,0 +1,3 @@ +{ + "cpuQuota": 3 +} \ No newline at end of file -- GitLab From 7a61e3757af8dd9d6eacb3fe87928b6d3e5ff218 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 15 Jul 2025 12:52:43 +0500 Subject: [PATCH 39/55] correct the retrieve function and remove the redundant check for TC_MEC_MEC048_MEO_CSE_009_OK --- MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot index cee7386..ade094b 100644 --- a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot +++ b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot @@ -235,12 +235,9 @@ TC_MEC_MEC048_MEO_CSE_009_OK [Tags] PIC_SERVICES [Setup] Register tenant Info TenantInfo Register mutiple site resource quota Info and get site Ids ${TENANT_ID_1} SiteResourceQuotaInfo SiteResourceQuotaInfo2 SiteResourceQuotaInfo3 - Retrieve all resource quota info resource ${TENANT_ID_1} + Retrieve all site resource quota info resource ${TENANT_ID_1} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is SiteResourceQuotaInfoList - FOR ${element} IN @{response['body']} - Should Be Equal As Strings ${element}[siteId] ${SITE_ID_1} - END Remove mutiple site resource quota Info ${TENANT_ID_1} ${SITE_ID_1} ${SITE_ID_2} ${SITE_ID_3} [Teardown] Remove specific tenant info resource ${TENANT_ID_1} -- GitLab From de95feaea50d1ed279b118723e2fdb9693f8e258 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 15 Jul 2025 13:02:33 +0500 Subject: [PATCH 40/55] update Register tenant Info function to only set suite variable if it's an individual call and the status code is not 400 --- MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot index ade094b..ef63413 100644 --- a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot +++ b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot @@ -1144,7 +1144,7 @@ Retrieve all tenant info resources with query parameters Set Suite Variable ${response} ${output} Register tenant Info - [Arguments] ${content} + [Arguments] ${content} ${is_individual_call}=${True} Should Be True ${PIC_MEC_PLAT} == 1 Should Be True ${PIC_SERVICES} == 1 Set Headers {"Accept":"application/json"} @@ -1155,7 +1155,7 @@ Register tenant Info POST ${apiRoot}/${apiName}/${apiVersion}/tenants ${body} ${output}= Output response Set Suite Variable ${response} ${output} - Set Suite Variable ${TENANT_ID_1} ${response}[body][tenantId] + Run Keyword If ${is_individual_call} and ${response}[status] != 400 Set Suite Variable ${TENANT_ID_1} ${response}[body][tenantId] Update tenant Info [Arguments] ${tenantId} ${content} -- GitLab From 6f1c80bbf0c0706349301306add5eadd12379999 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 15 Jul 2025 13:04:16 +0500 Subject: [PATCH 41/55] modify Update tenant Info function to send request body and only set suite variable if status code is not 400 and 404 --- MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot index ef63413..2216364 100644 --- a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot +++ b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot @@ -1166,10 +1166,10 @@ Update tenant Info Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - PUT ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId} + PUT ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId} ${body} ${output}= Output response Set Suite Variable ${response} ${output} - Set Suite Variable ${TENANT_ID} ${response}[body][tenantId] + Run Keyword If ${response['status']} != 400 and ${response['status']} != 404 Set Suite Variable ${TENANT_ID_1} ${response['body']['tenantId']} Update resource quota Info [Arguments] ${tenantId} ${content} -- GitLab From 86212b69b097fe87612e3c0ba173eca4287b5af7 Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 15 Jul 2025 13:05:47 +0500 Subject: [PATCH 42/55] correct Update resource quota Info function to send request body and remove the incorrect tenantId suite variable --- MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot index 2216364..7b9aafe 100644 --- a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot +++ b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot @@ -1180,10 +1180,9 @@ Update resource quota Info Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - PUT ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_system + PUT ${apiRoot}/${apiName}/${apiVersion}/tenants/${tenantId}/resources/quota_in_system ${body} ${output}= Output response Set Suite Variable ${response} ${output} - Set Suite Variable ${TENANT_ID} ${response}[body][tenantId] Register mutiple tenant Info and get tenant Ids [Arguments] ${content_01} ${content_02} ${content_03} -- GitLab From 2db18b993515cb2d720e6e0f0a2f5e18eab22a2d Mon Sep 17 00:00:00 2001 From: Umair Zafar Date: Tue, 15 Jul 2025 13:07:08 +0500 Subject: [PATCH 43/55] add logic to not set suite variable of tenantId if registering multiple tenant info in Register mutiple tenant Info and get tenant Ids function --- MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot index 7b9aafe..04219e5 100644 --- a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot +++ b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot @@ -1186,15 +1186,15 @@ Update resource quota Info Register mutiple tenant Info and get tenant Ids [Arguments] ${content_01} ${content_02} ${content_03} - Register tenant Info ${content_01} + Register tenant Info ${content_01} ${False} Set Suite Variable ${TENANT_ID_1} ${response}[body][tenantId] Set Suite Variable ${CUSTOMER_ID_1} ${response}[body][customerId] Set Suite Variable ${CUSTOMER_NAME_1} ${response}[body][customerName] - Register tenant Info ${content_02} + Register tenant Info ${content_02} ${False} Set Suite Variable ${TENANT_ID_2} ${response}[body][tenantId] Set Suite Variable ${CUSTOMER_ID_2} ${response}[body][customerId] Set Suite Variable ${CUSTOMER_NAME_2} ${response}[body][customerName] - Register tenant Info ${content_03} + Register tenant Info ${content_03} ${False} Set Suite Variable ${TENANT_ID_3} ${response}[body][tenantId] Set Suite Variable ${CUSTOMER_ID_3} ${response}[body][customerId] Set Suite Variable ${CUSTOMER_NAME_3} ${response}[body][customerName] -- GitLab From 880cacc4663b1890c6d3c7264e147ab551f7d3b3 Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Tue, 22 Jul 2025 16:13:23 +0500 Subject: [PATCH 44/55] update MTS session info JSON files for test validation --- MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecific.json | 3 ++- .../MTS/jsons/MtsSessionInfoApplicationSpecificUpdate.json | 2 +- MEC015/SRV/MTS/jsons/MtsSessionInfoSessionSpecific.json | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecific.json b/MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecific.json index 93cbbb0..3afd369 100644 --- a/MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecific.json +++ b/MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecific.json @@ -1,6 +1,7 @@ { - "appInsId": "81c51643-8c6f-4781-ad45-f8a457ca549b", + "appInsId": "f1e4d448-e277-496b-bf63-98391cfd20fb", "requestType": 0, + "appName": "appName", "qosD": { "minTpt": 10 }, diff --git a/MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecificUpdate.json b/MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecificUpdate.json index c113400..f94afa3 100644 --- a/MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecificUpdate.json +++ b/MEC015/SRV/MTS/jsons/MtsSessionInfoApplicationSpecificUpdate.json @@ -1,5 +1,5 @@ { - "appInsId": "81c51643-8c6f-4781-ad45-f8a457ca549b", + "appInsId": "f1e4d448-e277-496b-bf63-98391cfd20fb", "requestType": 0, "mtsMode": 0, "trafficDirection": "00" diff --git a/MEC015/SRV/MTS/jsons/MtsSessionInfoSessionSpecific.json b/MEC015/SRV/MTS/jsons/MtsSessionInfoSessionSpecific.json index 9308f2d..2514a92 100644 --- a/MEC015/SRV/MTS/jsons/MtsSessionInfoSessionSpecific.json +++ b/MEC015/SRV/MTS/jsons/MtsSessionInfoSessionSpecific.json @@ -1,6 +1,6 @@ { - "appInsId": "81c51643-8c6f-4781-ad45-f8a457ca549b", - "requestType": 1, + "appInsId": "f1e4d448-e277-496b-bf63-98391cfd20fb", + "requestType": 0, "mtsMode":4, "trafficDirection":"00", "qosD": { -- GitLab From efebddd7a0a08c3a1a91dddd4f07a45323349805 Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Tue, 22 Jul 2025 16:45:06 +0500 Subject: [PATCH 45/55] Validate test suite with MEC sandbox and fix multiple issues --- .../SRV/MTS/MultiAccessTrafficSteering.robot | 36 +++++++++++-------- .../SRV/MTS/environment/variables_sandbox.txt | 14 ++++---- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/MEC015/SRV/MTS/MultiAccessTrafficSteering.robot b/MEC015/SRV/MTS/MultiAccessTrafficSteering.robot index 7e10162..99ccac7 100644 --- a/MEC015/SRV/MTS/MultiAccessTrafficSteering.robot +++ b/MEC015/SRV/MTS/MultiAccessTrafficSteering.robot @@ -8,6 +8,7 @@ Resource ../../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library String +Library Collections *** Test Cases *** TC_MEC_MEC015_SRV_MTS_001_OK @@ -33,7 +34,7 @@ TC_MEC_MEC015_SRV_MTS_002_OK_01 ... ETSI GS MEC 015 v3.1.1, clause 9.3.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / - Set Suite Variable ${SESSION_ID} ${elements}[3] + Set Suite Variable ${SESSION_ID} ${elements}[-1] Retrieve MTS session list information Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is MtsSessionInfo @@ -50,8 +51,8 @@ TC_MEC_MEC015_SRV_MTS_002_OK_02 ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / - Set Suite Variable ${SESSION_ID} ${elements}[3] - Retrieve MTS session list information using filter ${APP_NAME_FILTER} ${APP_INSTANCE_ID} + Set Suite Variable ${SESSION_ID} ${elements}[-1] + Retrieve MTS session list information using filter ${CORRECT_FILTER} ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is MtsSessionInfo FOR ${mstSessionInfo} IN @{response['body']} @@ -70,7 +71,8 @@ TC_MEC_MEC015_SRV_MTS_002_OK_03 ... ETSI GS MEC 015 v3.1.1, clause 7.2.5, ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific - + ${elements} = Split String ${response['headers']['Location']} / + Set Suite Variable ${SESSION_ID} ${elements}[-1] Retrieve MTS session list information using filter ${APP_NAME_FILTER} ${APP_NAME} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is MtsSessionInfo @@ -85,6 +87,8 @@ TC_MEC_MEC015_SRV_MTS_002_OK_03 ... ETSI GS MEC 015 v3.1.1, clause 7.2.5, ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific + ${elements} = Split String ${response['headers']['Location']} / + Set Suite Variable ${SESSION_ID} ${elements}[-1] Retrieve MTS session list information using filter ${SESSION_ID_FILTER} ${SESSION_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is MtsSessionInfo @@ -102,7 +106,7 @@ TC_MEC_MEC015_SRV_MTS_002_BR ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / - Set Suite Variable ${SESSION_ID} ${elements}[3] + Set Suite Variable ${SESSION_ID} ${elements}[-1] Retrieve MTS session list information using filter ${BAD_FILTER} ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 400 @@ -153,8 +157,10 @@ TC_MEC_MEC015_SRV_MTS_003_OK_02 ... ETSI GS MEC 015 v3.1.1, clause 6.2.7 ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.2 - #[Setup] Create new App Instance CreateAppInstanceRequest + [Setup] Create new App Instance CreateAppInstanceRequest Register MTS session MtsSessionInfoSessionSpecific + ${elements} = Split String ${response['headers']['Location']} / + Set Suite Variable ${SESSION_ID} ${elements}[-1] Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is MtsSessionInfo ${appInsId} Get value entry from JSON file MtsSessionInfoSessionSpecific appInsId @@ -166,11 +172,13 @@ TC_MEC_MEC015_SRV_MTS_003_OK_02 Should Be Equal As Strings ${response['body']['appInsId']} ${appInsId} Should Be Equal As Strings ${response['body']['requestType']} ${requestType} - Should Be Equal As Strings ${response['body']['flowFilter']} ${flowFilter} + Dictionaries Should Be Equal ${response['body']['flowFilter'][0]} ${flowFilter}[0] Should Be Equal As Strings ${response['body']['qosD']} ${qosD} Should Be Equal As Strings ${response['body']['mtsMode']} ${mtsMode} Should Be Equal As Strings ${response['body']['trafficDirection']} ${trafficDirection} - [TearDown] Delete APP Instance ${APP_INSTANCE_ID} + [TearDown] Unregister from the MTS Service ${SESSION_ID} + Delete APP Instance ${APP_INSTANCE_ID} + TC_MEC_MEC015_SRV_MTS_003_BR [Documentation] @@ -180,7 +188,7 @@ TC_MEC_MEC015_SRV_MTS_003_BR ... ETSI GS MEC 015 v3.1.1, clause 6.2.7 ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 ... ETSI GS MEC 015 v3.1.1, clause 9.5.3.2 - [Setup] Create new App Instance CreateAppInstanceRequest + [Setup] Create new App Instance CreateAppInstanceRequest Register MTS session MtsSessionInfoApplicationSpecific_BR Check HTTP Response Status Code Is 400 [TearDown] Delete APP Instance ${APP_INSTANCE_ID} @@ -195,7 +203,7 @@ TC_MEC_MEC015_SRV_MTS_004_OK ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.1 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / - Set Suite Variable ${SESSION_ID} ${elements}[3] + Set Suite Variable ${SESSION_ID} ${elements}[-1] Retrieve single MTS session ${SESSION_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is MtsSessionInfo @@ -242,7 +250,7 @@ TC_MEC_MEC015_SRV_MTS_005_OK ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.2 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / - Set Suite Variable ${SESSION_ID} ${elements}[3] + Set Suite Variable ${SESSION_ID} ${elements}[-1] Update requested requirements on the MTS Service ${SESSION_ID} MtsSessionInfoApplicationSpecificUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is MtsSessionInfo @@ -266,7 +274,7 @@ TC_MEC_MEC015_SRV_MTS_005_BR ... https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.yaml [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / - Set Suite Variable ${SESSION_ID} ${elements}[3] + Set Suite Variable ${SESSION_ID} ${elements}[-1] Update requested requirements on the MTS Service ${SESSION_ID} MtsSessionInfoApplicationSpecificUpdate_BR Check HTTP Response Status Code Is 400 [TearDown] Unregister from the MTS Service And Delete APP Instance ${SESSION_ID} ${APP_INSTANCE_ID} @@ -279,7 +287,7 @@ TC_MEC_MEC015_SRV_MTS_005_NF ... ETSI GS MEC 015 v3.1.1, clause 7.2.5 ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.2 ... https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api/blob/master/BwManagementApi.yaml - #[Setup] Unregister from the MTS Service ${NOT_EXISTING_SESSION_ID} + [Setup] Unregister from the MTS Service ${NOT_EXISTING_SESSION_ID} Update requested requirements on the MTS Service ${NOT_EXISTING_SESSION_ID} MtsSessionInfoApplicationSpecificUpdate Check HTTP Response Status Code Is 404 @@ -294,7 +302,7 @@ TC_MEC_MEC015_SRV_MTS_006_OK ... ETSI GS MEC 015 v3.1.1, clause 9.4.3.3 [Setup] Create new App Instance and Register MTS session CreateAppInstanceRequest MtsSessionInfoApplicationSpecific ${elements} = Split String ${response['headers']['Location']} / - Set Suite Variable ${SESSION_ID} ${elements}[3] + Set Suite Variable ${SESSION_ID} ${elements}[-1] Unregister from the MTS Service ${SESSION_ID} Check HTTP Response Status Code Is 204 diff --git a/MEC015/SRV/MTS/environment/variables_sandbox.txt b/MEC015/SRV/MTS/environment/variables_sandbox.txt index 3901782..8ff761b 100644 --- a/MEC015/SRV/MTS/environment/variables_sandbox.txt +++ b/MEC015/SRV/MTS/environment/variables_sandbox.txt @@ -1,23 +1,23 @@ *** Variables *** # Generic variables ${SCHEMA} https -${HOST} try-mec.etsi.org +${HOST} 192.168.40.50 ${PORT} 443 ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l -${apiRoot} //mep1 +${apiRoot} sbxme1qzq4/mep1 ${apiName} mts ${apiVersion} v1 # Specific variables -${APP_INSTANCE_ID} 81c51643-8c6f-4781-ad45-f8a457ca549b +${APP_INSTANCE_ID} f1e4d448-e277-496b-bf63-98391cfd20fb ${NOT_EXISTING_APP_INSTANCE_ID} NOT_EXISTING_APP_INS_ID ${CORRECT_FILTER} app_instance_id ${APP_NAME_FILTER} app_name ${SESSION_ID_FILTER} session_id ${BAD_FILTER} appInsId -${APP_NAME} app_name +${APP_NAME} appName ${SESSION_ID} 5 ${WRONG_SESSION_ID} WRONG_SESSION_ID @@ -29,9 +29,9 @@ ${TRAFFIC_DIRECTION_DL} 00 ##Variables for App Instances management -${APP_INST_SCHEMA} https -${APP_INST_HOST} try-mec.etsi.org -${APP_INST_PORT} 443 +${APP_INST_SCHEMA} http +${APP_INST_HOST} 192.168.40.50 +${APP_INST_PORT} 80 ${apiRoot_APP_INST} ${apiName_APP_INST} app_lcm ${apiVersion_APP_INST} v1 -- GitLab From 5b8ac7d077906181fb21c16103824d85a0cc3888 Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Wed, 23 Jul 2025 13:11:24 +0500 Subject: [PATCH 46/55] Update TrafficManagement test suite and related resources for dynamic allocationId handling - Modified TrafficManagement.robot to inject allocationId into request bodies at runtime and fixed related test logic - Updated environment/variables_sandbox.txt for test execution compatibility - Updated BwInfoApplicationSpecific.json, BwInfoDeltas.json, and BwInfoUpdate.json to align with new runtime requirements --- MEC015/SRV/TM/TrafficManagement.robot | 20 ++++++++++++------- .../SRV/TM/environment/variables_sandbox.txt | 4 ++-- .../TM/jsons/BwInfoApplicationSpecific.json | 5 +++-- MEC015/SRV/TM/jsons/BwInfoDeltas.json | 2 +- MEC015/SRV/TM/jsons/BwInfoUpdate.json | 2 +- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/MEC015/SRV/TM/TrafficManagement.robot b/MEC015/SRV/TM/TrafficManagement.robot index 184f810..ffefc22 100644 --- a/MEC015/SRV/TM/TrafficManagement.robot +++ b/MEC015/SRV/TM/TrafficManagement.robot @@ -8,6 +8,7 @@ Resource ../../../GenericKeywords.robot Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library String +Library Collections *** Test Cases *** @@ -121,8 +122,10 @@ TC_MEC_MEC015_SRV_TM_002_OK ... ETSI GS MEC 015 v3.1.1, clause 6.2.2, ... ETSI GS MEC 015 v3.1.1, clause 7.2.2, ... ETSI GS MEC 015 v3.1.1, clause 8.4.3.4 - [Setup] Create new App Instance CreateAppInstanceRequest + [Setup] Create new App Instance CreateAppInstanceRequest Registration for bandwidth services ${APP_INSTANCE_ID} BwInfoApplicationSpecific + ${elements} = Split String ${response['headers']['Location']} / + Set Suite Variable ${ALLOCATION_ID} ${elements}[-1] Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is BwInfo ${appInsId} Get value entry from JSON file BwInfoApplicationSpecific appInsId @@ -133,7 +136,7 @@ TC_MEC_MEC015_SRV_TM_002_OK Should Be Equal As Strings ${response['body']['requestType']} ${requestType} Should Be Equal As Strings ${response['body']['fixedAllocation']} ${fixedAllocation} Should Be Equal As Strings ${response['body']['allocationDirection']} ${allocationDirection} - [TearDown] Delete App Instance ${APP_INSTANCE_ID} + [TearDown] Unregister bw Service And Delete APP Instance ${ALLOCATION_ID} ${APP_INSTANCE_ID} TC_MEC_MEC015_SRV_TM_002_BR_01 @@ -145,7 +148,7 @@ TC_MEC_MEC015_SRV_TM_002_BR_01 [Setup] Create new App Instance CreateAppInstanceRequest Registration for bandwidth services ${APP_INSTANCE_ID} BwInfo_BR Check HTTP Response Status Code Is 400 - [TearDown] Delete App Instance ${APP_INSTANCE_ID} + [TearDown] Delete App Instance ${APP_INSTANCE_ID} TC_MEC_MEC015_SRV_TM_002_BR_02 [Documentation] @@ -195,7 +198,7 @@ TC_MEC_MEC015_SRV_TM_004_OK ... ETSI GS MEC 015 v3.1.1, clause 6.2.4 ... ETSI GS MEC 015 v3.1.1, clause 7.2.2 ... ETSI GS MEC 015 v3.1.1, clause 8.3.3.2 - #[Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific + [Setup] Create new App Instance and Register for bw service CreateAppInstanceRequest BwInfoApplicationSpecific Update a bandwidth allocation ${ALLOCATION_ID} BwInfoUpdate ${appInsId} Get value entry from JSON file BwInfoUpdate appInsId ${fixedAllocation} Get value entry from JSON file BwInfoUpdate fixedAllocation @@ -205,7 +208,7 @@ TC_MEC_MEC015_SRV_TM_004_OK Should Be Equal As Strings ${response['body']['appInsId']} ${appInsId} Should Be Equal As Strings ${response['body']['fixedAllocation']} ${fixedAllocation} Should Be Equal As Strings ${response['body']['allocationDirection']} ${allocationDirection} - #[TearDown] Unregister bw Service And Delete APP Instance ${ALLOCATION_ID} ${APP_INSTANCE_ID} + [TearDown] Unregister bw Service And Delete APP Instance ${ALLOCATION_ID} ${APP_INSTANCE_ID} TC_MEC_MEC015_SRV_TM_004_BR_01 @@ -326,7 +329,7 @@ Create new App Instance and Register for bw service Create new App Instance ${appInstancePayload} Registration for bandwidth services ${APP_INSTANCE_ID} ${bwServicePayload} ${elements} = Split String ${response['headers']['Location']} / - Set Suite Variable ${ALLOCATION_ID} ${elements}[3] + Set Suite Variable ${ALLOCATION_ID} ${elements}[-1] @@ -446,7 +449,10 @@ Request a deltas changes Set Headers {"Authorization":"${TOKEN}"} ${path} Catenate SEPARATOR= jsons/ ${content}.json ${body} Get File ${path} - ${json_object}= Evaluate json.loads('''${body}''') json + ${json_object}= Evaluate json.loads('''${body}''') json + # Inject allocation_id into the JSON object + Set To Dictionary ${json_object} allocationId=${allocation_id} + ${body}= Evaluate json.dumps(${json_object}) json Patch ${apiRoot}/${apiName}/${apiVersion}/bw_allocations/${allocation_id} ${body} ${output}= Output response Set Suite Variable ${response} ${output} diff --git a/MEC015/SRV/TM/environment/variables_sandbox.txt b/MEC015/SRV/TM/environment/variables_sandbox.txt index 6e72164..f3856ea 100644 --- a/MEC015/SRV/TM/environment/variables_sandbox.txt +++ b/MEC015/SRV/TM/environment/variables_sandbox.txt @@ -6,7 +6,7 @@ ${HOST} try-mec.etsi.org ${PORT} 443 ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l -${apiRoot} //mep1 +${apiRoot} sbxme1qzq4/mep1 ${apiName} bwm ${apiVersion} v1 @@ -17,7 +17,7 @@ ${apiVersion} v1 ${CORRECT_FILTER} app_instance_id ${BAD_FILTER} appInsId -${APP_INSTANCE_ID} 81c51643-8c6f-4781-ad45-f8a457ca549b +${APP_INSTANCE_ID} f1e4d448-e277-496b-bf63-98391cfd20fb ${NON_EXISTENT_APP_INSTANCE_ID} NON_EXISTENT_INSTANCE_ID ${SESSION_ID} 5 ${APP_NAME_FILTER} app_name diff --git a/MEC015/SRV/TM/jsons/BwInfoApplicationSpecific.json b/MEC015/SRV/TM/jsons/BwInfoApplicationSpecific.json index a0688f8..5041a81 100644 --- a/MEC015/SRV/TM/jsons/BwInfoApplicationSpecific.json +++ b/MEC015/SRV/TM/jsons/BwInfoApplicationSpecific.json @@ -1,6 +1,7 @@ { - "appInsId": "81c51643-8c6f-4781-ad45-f8a457ca549b", + "appInsId": "f1e4d448-e277-496b-bf63-98391cfd20fb", "requestType": 0, "fixedAllocation": "32", - "allocationDirection": "00" + "allocationDirection": "00", + "appName": "appName" } \ No newline at end of file diff --git a/MEC015/SRV/TM/jsons/BwInfoDeltas.json b/MEC015/SRV/TM/jsons/BwInfoDeltas.json index d2d8d10..b061288 100644 --- a/MEC015/SRV/TM/jsons/BwInfoDeltas.json +++ b/MEC015/SRV/TM/jsons/BwInfoDeltas.json @@ -1,5 +1,5 @@ { -"appInsId": "81c51643-8c6f-4781-ad45-f8a457ca549b", +"appInsId": "f1e4d448-e277-496b-bf63-98391cfd20fb", "requestType": 0, "fixedAllocation": "32", "allocationDirection": "01" diff --git a/MEC015/SRV/TM/jsons/BwInfoUpdate.json b/MEC015/SRV/TM/jsons/BwInfoUpdate.json index d2d8d10..b061288 100644 --- a/MEC015/SRV/TM/jsons/BwInfoUpdate.json +++ b/MEC015/SRV/TM/jsons/BwInfoUpdate.json @@ -1,5 +1,5 @@ { -"appInsId": "81c51643-8c6f-4781-ad45-f8a457ca549b", +"appInsId": "f1e4d448-e277-496b-bf63-98391cfd20fb", "requestType": 0, "fixedAllocation": "32", "allocationDirection": "01" -- GitLab From 202519863d0ef414761d00178e47b5cfff934d88 Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Mon, 28 Jul 2025 16:27:12 +0500 Subject: [PATCH 47/55] validate and update MEC016 Device Application Interface test suite --- MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot | 4 +- MEC016/MEO/UEAPPCTX/environment/variables.txt | 9 ++- MEC016/MEO/UEAPPCTX/jsons/AppContext.json | 66 +++++++++++++---- MEC016/MEO/UEAPPCTX/jsons/AppContext_BR.json | 66 +++++++++++++---- .../MEO/UEAPPCTX/jsons/UpdateAppContext.json | 69 ++++++++++++++---- .../UEAPPCTX/jsons/UpdateAppContext_BR.json | 70 +++++++++++++++---- .../UEAPPLOC/SysUeApplicationsLocation.robot | 2 +- .../jsons/AppLocationAvailability.json | 36 ++++++++-- .../jsons/AppLocationAvailability_BR.json | 36 ++++++++-- 9 files changed, 288 insertions(+), 70 deletions(-) diff --git a/MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot b/MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot index 736322e..9db53e5 100644 --- a/MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot +++ b/MEC016/MEO/UEAPPCTX/SysUeAppsContext.robot @@ -155,12 +155,12 @@ Update application context Set Headers {"Content-Type":"application/json"} Set Headers {"Authorization":"${TOKEN}"} ${path} Catenate SEPARATOR= jsons/ ${content} - ${body} Get File ${path} + ${body_template} Get File ${path} + ${body} Replace String ${body_template} __CONTEXT_ID__ ${context_id} Put ${apiRoot}/${apiName}/${apiVersion}/app_contexts/${context_id} ${body} ${output}= Output response Set Suite Variable ${response} ${output} - Update application context using wrong endpoint [Arguments] ${context_id} ${content} Set Headers {"Content-Type":"application/json"} diff --git a/MEC016/MEO/UEAPPCTX/environment/variables.txt b/MEC016/MEO/UEAPPCTX/environment/variables.txt index 2d2e456..230fa06 100644 --- a/MEC016/MEO/UEAPPCTX/environment/variables.txt +++ b/MEC016/MEO/UEAPPCTX/environment/variables.txt @@ -1,11 +1,10 @@ *** Variables *** -${apiRoot} +${apiRoot} sbxme1qzq4/mep1 ${apiName} dev_app ${apiVersion} v1 - -${MEC-APP_SCHEMA} http -${MEC-APP_HOST} mockoon -${MEC-APP_PORT} 3003 +${MEC-APP_SCHEMA} https +${MEC-APP_HOST} 192.168.40.50 +${MEC-APP_PORT} 443 ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/MEC016/MEO/UEAPPCTX/jsons/AppContext.json b/MEC016/MEO/UEAPPCTX/jsons/AppContext.json index 38f4741..97d468c 100644 --- a/MEC016/MEO/UEAPPCTX/jsons/AppContext.json +++ b/MEC016/MEO/UEAPPCTX/jsons/AppContext.json @@ -1,13 +1,55 @@ { - "associateDevAppId":"MyNewWornderfulDevAppId", - "appInfo":{ - "appName":"MyNewWornderfulApp", - "appProvider":"TTF012", - "appDVersion":"v0.0.1", - "userAppInstanceInfo":[ - { - } - ] - } -} - + "associateDevAppId": "MyNewId", + "callbackReference": "http://www.umair.com", + "appInfo": { + "appDId": "onboarded-demo4", + "appName": "MyNewWornderfulApp", + "appProvider": "demo", + "appSoftVersion": "v0.1.0", + "appDVersion": "v0.1.0", + "appDescription": "Basic HTTP Ping Pong", + "userAppInstanceInfo": [ + { + "appInstanceId": "c5f834ae-db0c-4eec-bdfe-3dfc55f91b4a", + "appLocation": { + "area": { + "coordinates": [ + [ + [ + 2.302136, + 2.302136 + ], + [ + 2.302136, + 2.302136 + ] + ], + [ + [ + 2.302136, + 2.302136 + ], + [ + 2.302136, + 2.302136 + ] + ] + ] + }, + "countryCode": "US", + "civicAddressElement": [ + { + "caType": 7, + "caValue": "caValue" + }, + { + "caType": 7, + "caValue": "caValue" + } + ] + }, + "referenceURI": "http://example.com/aeiou" + } + ] + } +} \ No newline at end of file diff --git a/MEC016/MEO/UEAPPCTX/jsons/AppContext_BR.json b/MEC016/MEO/UEAPPCTX/jsons/AppContext_BR.json index 6186f6a..a5e7fc9 100644 --- a/MEC016/MEO/UEAPPCTX/jsons/AppContext_BR.json +++ b/MEC016/MEO/UEAPPCTX/jsons/AppContext_BR.json @@ -1,13 +1,55 @@ { - "associateDevAppId":"MyNewWornderfulDevAppId", - "appInfo":{ - "app":"MyNewWornderfulApp", - "appProvider":"TTF012", - "appDVersion":"v0.0.1", - "userAppInstanceInfo":[ - { - } - ] - } -} - + "associateDevAppId": "MyNewId", + "callbackReference": "http://www.umair.com", + "appInfo": { + "appDId": "onboarded-demo4", + "app": "MyNewWornderfulApp", + "appProvider": "demo", + "appSoftVersion": "v0.1.0", + "appDVersion": "v0.1.0", + "appDescription": "Basic HTTP Ping Pong", + "userAppInstanceInfo": [ + { + "appInstanceId": "c5f834ae-db0c-4eec-bdfe-3dfc55f91b4a", + "appLocation": { + "area": { + "coordinates": [ + [ + [ + 2.302136, + 2.302136 + ], + [ + 2.302136, + 2.302136 + ] + ], + [ + [ + 2.302136, + 2.302136 + ], + [ + 2.302136, + 2.302136 + ] + ] + ] + }, + "countryCode": "US", + "civicAddressElement": [ + { + "caType": 7, + "caValue": "caValue" + }, + { + "caType": 7, + "caValue": "caValue" + } + ] + }, + "referenceURI": "http://example.com/aeiou" + } + ] + } +} \ No newline at end of file diff --git a/MEC016/MEO/UEAPPCTX/jsons/UpdateAppContext.json b/MEC016/MEO/UEAPPCTX/jsons/UpdateAppContext.json index cd0f9ef..5857a00 100644 --- a/MEC016/MEO/UEAPPCTX/jsons/UpdateAppContext.json +++ b/MEC016/MEO/UEAPPCTX/jsons/UpdateAppContext.json @@ -1,15 +1,56 @@ { - "associateDevAppId":"MyNewWornderfulDevAppId", - "contextId": "1", - "callbackReference": "http://127.0.0.1/callbackuri", - "appInfo":{ - "appName":"MyNewWornderfulApp", - "appProvider":"TTF012", - "appDVersion":"v0.0.1", - "userAppInstanceInfo":[ - { - } - ] - } -} - + "contextId": "__CONTEXT_ID__", + "associateDevAppId": "MyNewId", + "callbackReference": "http://www.updated-callback.com", + "appInfo": { + "appDId": "onboarded-demo4", + "appName": "MyNewWornderfulApp", + "appProvider": "demo", + "appSoftVersion": "v0.1.0", + "appDVersion": "v0.1.0", + "appDescription": "Basic HTTP Ping Pong", + "userAppInstanceInfo": [ + { + "appInstanceId": "c5f834ae-db0c-4eec-bdfe-3dfc55f91b4a", + "appLocation": { + "area": { + "coordinates": [ + [ + [ + 2.302136, + 2.302136 + ], + [ + 2.302136, + 2.302136 + ] + ], + [ + [ + 2.302136, + 2.302136 + ], + [ + 2.302136, + 2.302136 + ] + ] + ] + }, + "countryCode": "US", + "civicAddressElement": [ + { + "caType": 7, + "caValue": "caValue" + }, + { + "caType": 7, + "caValue": "caValue" + } + ] + }, + "referenceURI": "http://example.com/aeiou" + } + ] + } +} \ No newline at end of file diff --git a/MEC016/MEO/UEAPPCTX/jsons/UpdateAppContext_BR.json b/MEC016/MEO/UEAPPCTX/jsons/UpdateAppContext_BR.json index dcdd441..40fa57b 100644 --- a/MEC016/MEO/UEAPPCTX/jsons/UpdateAppContext_BR.json +++ b/MEC016/MEO/UEAPPCTX/jsons/UpdateAppContext_BR.json @@ -1,15 +1,57 @@ { - "associateUeAppId":"MyNewWornderfulDevAppId", - "contextId": "1", - "callbackReference": "http://127.0.0.1/callbackuri", - "appInfo":{ - "appName":"MyNewWornderfulApp", - "appProvider":"TTF012", - "appDVersion":"v0.0.1", - "userAppInstanceInfo":[ - { - } - ] - } -} - + "contextId": "__CONTEXT_ID__", + "associateDevAppId": "MyNewId", + "associateUeAppId": "some_value", + "callbackReference": "http://www.updated-callback.com", + "appInfo": { + "appDId": "onboarded-demo4", + "appName": "MyNewWornderfulApp", + "appProvider": "demo", + "appSoftVersion": "v0.1.0", + "appDVersion": "v0.1.0", + "appDescription": "Basic HTTP Ping Pong", + "userAppInstanceInfo": [ + { + "appInstanceId": "c5f834ae-db0c-4eec-bdfe-3dfc55f91b4a", + "appLocation": { + "area": { + "coordinates": [ + [ + [ + 2.302136, + 2.302136 + ], + [ + 2.302136, + 2.302136 + ] + ], + [ + [ + 2.302136, + 2.302136 + ], + [ + 2.302136, + 2.302136 + ] + ] + ] + }, + "countryCode": "US", + "civicAddressElement": [ + { + "caType": 7, + "caValue": "caValue" + }, + { + "caType": 7, + "caValue": "caValue" + } + ] + }, + "referenceURI": "http://example.com/aeiou" + } + ] + } +} \ No newline at end of file diff --git a/MEC016/MEO/UEAPPLOC/SysUeApplicationsLocation.robot b/MEC016/MEO/UEAPPLOC/SysUeApplicationsLocation.robot index e58b290..f8626b5 100644 --- a/MEC016/MEO/UEAPPLOC/SysUeApplicationsLocation.robot +++ b/MEC016/MEO/UEAPPLOC/SysUeApplicationsLocation.robot @@ -20,7 +20,7 @@ TP_MEC_MEC016_MEO_UEAPPLOC_001_OK Obtain Application Location Availability Task AppLocationAvailability.json Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ApplicationLocationAvailability - Should Be Equal As Strings ${response['body']['appInfo']['appName']} MyNewWornderfulApp + Should Be Equal As Strings ${response['body']['appInfo']['appName']} onboarded-demo4 TP_MEC_MEC016_MEO_UEAPPLOC_001_BR diff --git a/MEC016/MEO/UEAPPLOC/jsons/AppLocationAvailability.json b/MEC016/MEO/UEAPPLOC/jsons/AppLocationAvailability.json index fdf8d3a..db0cf53 100644 --- a/MEC016/MEO/UEAPPLOC/jsons/AppLocationAvailability.json +++ b/MEC016/MEO/UEAPPLOC/jsons/AppLocationAvailability.json @@ -1,8 +1,34 @@ { - "associateDevAppId":"MyNewWornderfulDevAppId", + "associateDevAppId":"onboarded-demo4", "appInfo":{ - "appName":"MyNewWornderfulApp", - "appProvider":"TF012", - "appDVersion":"v0.0.1" - } + "appName": "onboarded-demo4", + "appProvider": "ETSI", + "appSoftVersion": "v0.1.0", + "appDVersion": "v0.1.0", + "appDescription": "Basic HTTP Ping Pong", + "availableLocations": [ + { + "appLocation": { + "countryCode": "492", + "civicAddressElement": [ + { "caType": 1, "caValue": "A1" }, + { "caType": 2, "caValue": "A2" } + ], + "area": { + "coordinates": [ + [ + [2.302136, 2.302136], + [2.302136, 2.302136] + ], + [ + [2.302136, 2.302136], + [2.302136, 2.302136] + ] + ] + } + } + } + ], + "appPackageSource": "http://example.com/aeiou" +} } \ No newline at end of file diff --git a/MEC016/MEO/UEAPPLOC/jsons/AppLocationAvailability_BR.json b/MEC016/MEO/UEAPPLOC/jsons/AppLocationAvailability_BR.json index d907dd4..c444b8f 100644 --- a/MEC016/MEO/UEAPPLOC/jsons/AppLocationAvailability_BR.json +++ b/MEC016/MEO/UEAPPLOC/jsons/AppLocationAvailability_BR.json @@ -1,8 +1,34 @@ { - "associateDevAppId":"MyNewWornderfulDevAppId", + "associateDevAppId":"onboarded-demo4", "appInfo":{ - "app":"MyNewWornderfulApp", - "appProvider":"TF012", - "appDVersion":"v0.0.1" - } + "app": "onboarded-demo4", + "appProvider": "ETSI", + "appSoftVersion": "v0.1.0", + "appDVersion": "v0.1.0", + "appDescription": "Basic HTTP Ping Pong", + "availableLocations": [ + { + "appLocation": { + "countryCode": "492", + "civicAddressElement": [ + { "caType": 1, "caValue": "A1" }, + { "caType": 2, "caValue": "A2" } + ], + "area": { + "coordinates": [ + [ + [2.302136, 2.302136], + [2.302136, 2.302136] + ], + [ + [2.302136, 2.302136], + [2.302136, 2.302136] + ] + ] + } + } + } + ], + "appPackageSource": "http://example.com/aeiou" +} } \ No newline at end of file -- GitLab From 4ab98dfe7efdfad1a55ae454759d8e68ac8b1376 Mon Sep 17 00:00:00 2001 From: Ikram Ul Haq Date: Wed, 30 Jul 2025 17:17:37 +0500 Subject: [PATCH 48/55] Validate MEC048 test suite and fix notification and teardown issues --- .../CSE/CustomerSelfServiceEnablement.robot | 197 ++++++++++-------- MEC048/MEO/CSE/environment/variables.txt | 4 +- .../jsons/SiteResourceUsageSubscription.json | 21 +- .../jsons/SiteResourceUsageSubscription1.json | 13 +- .../SiteResourceUsageSubscriptionBR.json | 10 +- .../SiteResourceUsageSubscriptionUpdate.json | 10 +- 6 files changed, 144 insertions(+), 111 deletions(-) diff --git a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot index 04219e5..9733c93 100644 --- a/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot +++ b/MEC048/MEO/CSE/CustomerSelfServiceEnablement.robot @@ -333,7 +333,7 @@ TC_MEC_MEC048_MEO_CSE_012_OK Should Be Equal As Integers ${response['body']['memoryQuota']} ${MEMORY_QUOTA_VALUE} Should Be Equal As Integers ${response['body']['diskQuota']} ${DISK_QUOTA_VALUE} - [Teardown] Remove tenant and site resources + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} TC_MEC_MEC048_MEO_CSE_012_BR [Documentation] TP_MEC_MEC048_MEO_CSE_012_BR @@ -344,7 +344,7 @@ TC_MEC_MEC048_MEO_CSE_012_BR # Attempt to update the site resource quota with invalid data Update site resource quota Info ${TENANT_ID_1} ${SITE_ID_1} SiteResourceQuotaInfoBR Check HTTP Response Status Code Is 400 - [Teardown] Remove tenant and site resources + [Teardown] Remove specific tenant info resource ${TENANT_ID_1} TC_MEC_MEC048_MEO_CSE_012_NF [Documentation] TP_MEC_MEC048_MEO_CSE_012_NF @@ -461,7 +461,7 @@ TC_MEC_MEC048_MEO_CSE_014_OK_02 [Setup] Register site resource quota for tenant # Create a new SiteResourceUsageSubscription - Register subscription SiteResourceUsageSubscription1 + Register site Resource subscription SiteResourceUsageSubscription1 # Verify response status code Check HTTP Response Status Code Is 201 @@ -499,8 +499,8 @@ TC_MEC_MEC048_MEO_CSE_014_OK_02 # Teardown - clean up the created resources [Teardown] Run Keywords ... Delete Created Subscription AND - ... Remove tenant and site resources - + ... Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} AND + ... Remove specific tenant info resource ${TENANT_ID_1} TC_MEC_MEC048_MEO_CSE_014_BR [Documentation] TP_MEC_MEC048_MEO_CSE_014_BR ... Check that the IUT returns an error on creating a new subscription when requested to a CSE @@ -527,16 +527,21 @@ TC_MEC_MEC048_MEO_CSE_015_OK ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.1, clause 6.3.2, clause 6.3.3 [Tags] PIC_SERVICES - # Setup - Create a tenant, site resources, and subscription - [Setup] Register site resource quota for tenant + # Setup - Create a tenant and site resources + [Setup] Run Keywords + ... Register site resource quota for tenant - # Create a SiteResourceUsageSubscription - Register subscription SiteResourceUsageSubscription + Register site Resource subscription SiteResourceUsageSubscription - # Save the subscription ID for later retrieval and cleanup + # Verify subscription creation + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is SiteResourceUsageSubscription + + # Save the subscription ID for retrieval and cleanup ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} - ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ - Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + ${subscription_id}= Evaluate "${subscription_uri}".split("/")[-1] + Run Keyword If '${subscription_id}' == '' Fail Failed to extract subscription ID from ${subscription_uri} + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_id} # Retrieve the specific subscription Retrieve specific subscription ${subscription_id} @@ -568,8 +573,9 @@ TC_MEC_MEC048_MEO_CSE_015_OK # Teardown - clean up the created resources [Teardown] Run Keywords - ... Delete Created Subscription AND - ... Remove tenant and site resources + ... Run Keyword If '${SUBSCRIPTION_ID}' != '' and '${SUBSCRIPTION_ID}' != 'None' Delete Created Subscription + ... AND Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} + ... AND Remove specific tenant info resource ${TENANT_ID_1} TC_MEC_MEC048_MEO_CSE_015_NF [Documentation] TP_MEC_MEC048_MEO_CSE_015_NF @@ -588,57 +594,35 @@ TC_MEC_MEC048_MEO_CSE_016_OK ... Check that the IUT updates an existing subscription when requested by a CSE ... ETSI GS MEC 048 v3.1.1, clause 7.9.3.2, clause 6.3.2, clause 6.3.3 [Tags] PIC_SERVICES - - # Setup - Create a tenant, site resources, and subscription [Setup] Register site resource quota for tenant - - # Create a SiteResourceUsageSubscription to be updated later - Register subscription SiteResourceUsageSubscription - - # Save the subscription ID for update and cleanup + Register site Resource subscription SiteResourceUsageSubscription ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} - ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ - Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + ${subscription_id}= Evaluate "${subscription_uri}".split("/")[-1] + Run Keyword If '${subscription_id}' == '' Fail Failed to extract subscription ID from ${subscription_uri} + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_id} Set Suite Variable ${OLD_CUSTOMER_ID} ${response['body']['customerId']} - - # Create another tenant to get a new customer ID - Register tenant Info TenantInfo2 + Register tenant Info TenantInfo2 ${True} TENANT_ID_2 Set Suite Variable ${NEW_CUSTOMER_ID} ${response['body']['customerId']} Set Suite Variable ${TENANT_ID_2} ${response['body']['tenantId']} - - # Update the subscription with the new customer ID Update subscription ${subscription_id} SiteResourceUsageSubscriptionUpdate - - # Verify response status code Check HTTP Response Status Code Is 200 - - # Verify response body schema Check HTTP Response Body Json Schema Is SiteResourceUsageSubscription - - # Verify response body content - specifically that the customerId has been updated Should Be Equal As Strings ${response['body']['subscriptionType']} SiteResourceUsageSubscription Should Be Equal As Strings ${response['body']['customerId']} ${NEW_CUSTOMER_ID} Should Not Be Equal As Strings ${response['body']['customerId']} ${OLD_CUSTOMER_ID} Should Be Equal As Strings ${response['body']['tenantId']} ${TENANT_ID_1} Should Be Equal As Strings ${response['body']['callbackReference']} some/uri/updated - - # Verify siteList contains our test site ${siteList}= Get From Dictionary ${response['body']} siteList List Should Contain Value ${siteList} ${SITE_ID_1} - - # Verify notification trigger details Should Be Equal As Integers ${response['body']['notificationTrigger']['triggerType']} 10 Should Be Equal As Integers ${response['body']['notificationTrigger']['threshold']} 4 Should Be Equal ${response['body']['notificationTrigger']['greaterOrLess']} ${FALSE} - - # Verify self-link in response Should Not Be Empty ${response['body']['_links']['self']['href']} Should Be Equal As Strings ${response['body']['_links']['self']['href']} ${subscription_uri} - - # Teardown - clean up the created resources [Teardown] Run Keywords ... Delete Created Subscription AND - ... Remove tenant and site resources AND + ... Run Keyword If '${SITE_ID_1}' != '' and '${SITE_ID_1}' != 'None' Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} AND + ... Remove specific tenant info resource ${TENANT_ID_1} AND ... Remove specific tenant info resource ${TENANT_ID_2} TC_MEC_MEC048_MEO_CSE_016_NF @@ -663,7 +647,8 @@ TC_MEC_MEC048_MEO_CSE_016_NF # Teardown - clean up the created resources [Teardown] Run Keywords - ... Remove tenant and site resources AND + ... Run Keyword If '${SITE_ID_1}' != '' and '${SITE_ID_1}' != 'None' Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} AND + ... Remove specific tenant info resource ${TENANT_ID_1} AND ... Remove specific tenant info resource ${TENANT_ID_2} TC_MEC_MEC048_MEO_CSE_016_BR @@ -681,10 +666,10 @@ TC_MEC_MEC048_MEO_CSE_016_BR # Save the subscription ID for update and cleanup ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ - Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_id} # Create another tenant to get a new customer ID for the update - Register tenant Info TenantInfo2 + Register tenant Info TenantInfo2 ${True} TENANT_ID_2 Set Suite Variable ${NEW_CUSTOMER_ID} ${response['body']['customerId']} Set Suite Variable ${TENANT_ID_2} ${response['body']['tenantId']} @@ -696,9 +681,10 @@ TC_MEC_MEC048_MEO_CSE_016_BR # Teardown - clean up the created resources [Teardown] Run Keywords - ... Delete Created Subscription AND - ... Remove tenant and site resources AND - ... Remove specific tenant info resource ${TENANT_ID_2} + ... Run Keyword If '${SUBSCRIPTION_ID}' != '' and '${SUBSCRIPTION_ID}' != 'None' Delete Created Subscription AND + ... Run Keyword If '${SITE_ID_1}' != '' and '${SITE_ID_1}' != 'None' Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} AND + ... Run Keyword If '${TENANT_ID_1}' != '' and '${TENANT_ID_1}' != 'None' Remove specific tenant info resource ${TENANT_ID_1} AND + ... Run Keyword If '${TENANT_ID_2}' != '' and '${TENANT_ID_2}' != 'None' Remove specific tenant info resource ${TENANT_ID_2} TC_MEC_MEC048_MEO_CSE_017_OK [Documentation] TP_MEC_MEC048_MEO_CSE_017_OK @@ -727,7 +713,9 @@ TC_MEC_MEC048_MEO_CSE_017_OK Check HTTP Response Status Code Is 404 # Teardown - clean up the created resources (only tenant and site as subscription is deleted) - [Teardown] Remove tenant and site resources + [Teardown] Run Keywords + ... Run Keyword If '${SITE_ID_1}' != '' and '${SITE_ID_1}' != 'None' Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} AND + ... Run Keyword If '${TENANT_ID_1}' != '' and '${TENANT_ID_1}' != 'None' Remove specific tenant info resource ${TENANT_ID_1} TC_MEC_MEC048_MEO_CSE_017_NF [Documentation] TP_MEC_MEC048_MEO_CSE_017_NF @@ -765,11 +753,11 @@ TC_MEC_MEC048_MEO_CSE_018_OK # Save the subscription ID for cleanup ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ - Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_id} # Generate load to trigger the notification Log Generating CPU load to trigger notification - ${result}= Generate CPU Load 60 4 + ${result}= Generate CPU Load 60 5 Log ${result} # Start the notification server to wait for and capture the notification @@ -789,8 +777,9 @@ TC_MEC_MEC048_MEO_CSE_018_OK # Teardown - clean up resources [Teardown] Run Keywords - ... Delete Created Subscription AND - ... Remove tenant and site resources + ... Run Keyword If '${SUBSCRIPTION_ID}' != '' and '${SUBSCRIPTION_ID}' != 'None' Delete Created Subscription AND + ... Run Keyword If '${SITE_ID_1}' != '' and '${SITE_ID_1}' != 'None' Remove specific site resource quota info resource ${TENANT_ID_1} ${SITE_ID_1} AND + ... Run Keyword If '${TENANT_ID_1}' != '' and '${TENANT_ID_1}' != 'None' Remove specific tenant info resource ${TENANT_ID_1} TC_MEC_MEC048_MEO_CSE_019_OK [Documentation] TP_MEC_MEC048_MEO_CSE_019_OK @@ -801,29 +790,29 @@ TC_MEC_MEC048_MEO_CSE_019_OK # Setup - Create a tenant for the subscription [Setup] Register tenant Info TenantInfo - # Create a ResourceUsageSubscription with callback to our notification server + # Create a ResourceUsageSubscription with callback to notification server ${subscription_json}= Get File jsons/ResourceUsageSubscription.json ${callback_url}= Set Variable http://${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT}${NOTIFICATION_SERVER_URI} ${subscription_json}= Replace String ${subscription_json} "some/uri" "${callback_url}" - ${subscription_json}= Replace String ${subscription_json} "tenant-123" "${TENANT_ID_1}" + ${subscription_json}= Replace String ${subscription_json} "tenant-123" "${TENANT_ID_1}" ${subscription_json}= Replace String ${subscription_json} "customer-123" "${CUSTOMER_ID_1}" - # Register the subscription with our callback URL + # Register the subscription Post Raw Subscription ${subscription_json} Check HTTP Response Status Code Is 201 # Save the subscription ID for cleanup ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ - Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_uri} + Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_id} - # Generate load to trigger the notification - Log Generating CPU load to trigger notification - ${result}= Generate CPU Load 60 4 + # Generate CPU load to trigger the notification + Log Generating CPU load to trigger notification (cpuUsed: 5) + ${result}= Generate CPU Load 60 5 Log ${result} - # Start the notification server to wait for and capture the notification - ${notification}= Spawn Resource Notification Server + # Start the notification server to capture the notification + ${notification}= Spawn Notification Server # Verify notification exists Should Not Be Empty ${notification} @@ -838,8 +827,8 @@ TC_MEC_MEC048_MEO_CSE_019_OK # Teardown - clean up resources [Teardown] Run Keywords - ... Delete Created Subscription AND - ... Remove specific tenant info resource ${TENANT_ID_1} + ... Run Keyword If '${SUBSCRIPTION_ID}' != '' and '${SUBSCRIPTION_ID}' != 'None' Delete Created Subscription AND + ... Run Keyword If '${TENANT_ID_1}' != '' and '${TENANT_ID_1}' != 'None' Remove specific tenant info resource ${TENANT_ID_1} TC_MEC_MEC048_MEO_CSE_020_OK [Documentation] TP_MEC_MEC048_MEO_CSE_020_OK @@ -850,52 +839,51 @@ TC_MEC_MEC048_MEO_CSE_020_OK # Setup - Create a tenant for the subscription [Setup] Register tenant Info TenantInfo - # Get the current time and add a short time for expiry deadline (10 seconds in the future) + # Get the current time and add a short expiry deadline (10 seconds in the future) ${current_time}= Get Current Date ${expiry_time}= Add Time To Date ${current_time} 10 seconds ${expiry_time_iso}= Convert Date ${expiry_time} result_format=%Y-%m-%dT%H:%M:%SZ Set Suite Variable ${EXPIRY_DEADLINE} ${expiry_time_iso} - # Create a ResourceUsageSubscription with a short expiry time and callback to our notification server + # Create a ResourceUsageSubscription with expiry ${subscription_json}= Get File jsons/ResourceUsageSubscriptionWithExpiry.json ${callback_url}= Set Variable http://${NOTIFICATION_SERVER_IP}:${NOTIFICATION_SERVER_PORT}${NOTIFICATION_SERVER_URI} ${subscription_json}= Replace String ${subscription_json} "some/uri" "${callback_url}" - ${subscription_json}= Replace String ${subscription_json} "tenant-123" "${TENANT_ID_1}" + ${subscription_json}= Replace String ${subscription_json} "tenant-123" "${TENANT_ID_1}" ${subscription_json}= Replace String ${subscription_json} "customer-123" "${CUSTOMER_ID_1}" ${subscription_json}= Replace String ${subscription_json} "2099-12-31T23:59:59Z" "${EXPIRY_DEADLINE}" - # Register the subscription with our callback URL + # Register the subscription Post Raw Subscription ${subscription_json} Check HTTP Response Status Code Is 201 - # Save the subscription ID and HREF for verification + # Save the subscription ID and HREF ${subscription_uri}= Set Variable ${response['body']['_links']['self']['href']} ${subscription_id}= Fetch From Right ${subscription_uri} /subscriptions/ Set Suite Variable ${SUBSCRIPTION_ID} ${subscription_id} Set Suite Variable ${SUBSCRIPTION_HREF} ${subscription_uri} - # Start the notification server to wait for and capture the expiry notification - # Need to wait for the subscription to expire (a bit longer than our expiry time) - ${notification}= Spawn Expiry Notification Server + # Trigger subscription expiry + Log Waiting for subscription to expire + Sleep 12s # Wait past the 10-second expiry deadline + + # Start the notification server to capture the expiry notification + ${notification}= Spawn Notification Server # Verify notification exists Should Not Be Empty ${notification} # Verify notification content Should Be Equal As Strings ${notification['notificationType']} ExpiryNotification - - # Verify subscription link in the notification Should Be Equal As Strings ${notification['_links']['subscription']['href']} ${SUBSCRIPTION_HREF} - - # Verify expiry deadline matches what we set Should Be Equal As Strings ${notification['expiryDeadline']} ${EXPIRY_DEADLINE} - # Verify the subscription no longer exists/is expired + # Verify the subscription no longer exists Retrieve specific subscription ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 - # Teardown - clean up tenant (subscription should be auto-removed after expiry) - [Teardown] Remove specific tenant info resource ${TENANT_ID_1} + # Teardown - clean up tenant (subscription auto-removed after expiry) + [Teardown] Run Keyword If '${TENANT_ID_1}' != '' and '${TENANT_ID_1}' != 'None' Remove specific tenant info resource ${TENANT_ID_1} *** Keywords *** @@ -934,10 +922,11 @@ Update subscription Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - # Replace placeholder values in the JSON with actual test values - ${body}= Replace String ${body} "tenant-123" "${TENANT_ID_1}" + Log Variables - TENANT_ID_1: ${TENANT_ID_1}, TENANT_ID_2: ${TENANT_ID_2}, NEW_CUSTOMER_ID: ${NEW_CUSTOMER_ID}, SITE_ID_1: ${SITE_ID_1} + ${body}= Replace String ${body} "placeholder-tenant" "${TENANT_ID_1}" ${body}= Replace String ${body} "customer-new" "${NEW_CUSTOMER_ID}" ${body}= Replace String ${body} "site-placeholder" "${SITE_ID_1}" + Log Request body after replacements: ${body} PUT ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscription_id} ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -950,6 +939,7 @@ Retrieve specific subscription Set Headers {"Authorization":"${TOKEN}"} GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscription_id} ${output}= Output response + Log GET Response: ${output} Set Suite Variable ${response} ${output} Create ResourceUsageSubscription @@ -981,6 +971,36 @@ Retrieve subscriptions with filter ${output}= Output response Set Suite Variable ${response} ${output} +Register site Resource subscription + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 msg=PIC_MEC_PLAT must be 1 + Should Be True ${PIC_SERVICES} == 1 msg=PIC_SERVICES must be 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + Log Loading JSON file: ${file} + ${file_exists}= Run Keyword And Return Status File Should Exist ${file} + Run Keyword If not ${file_exists} Fail JSON file not found: ${file} + ${body}= Get File ${file} + Log Request Body Before Replacement: ${body} + # Validate variables + Should Not Be Empty ${TENANT_ID_1} msg=TENANT_ID_1 is not defined + Should Not Be Empty ${CUSTOMER_ID_1} msg=CUSTOMER_ID_1 is not defined + Should Not Be Empty ${SITE_ID_1} msg=SITE_ID_1 is not defined + # Replace placeholders + ${body}= Replace String ${body} "placeholder-tenant" "${TENANT_ID_1}" + ${body}= Replace String ${body} "placeholder-customer" "${CUSTOMER_ID_1}" + ${body}= Replace String ${body} "placeholder-site" "${SITE_ID_1}" + Log Request Body After Replacement: ${body} + # Validate JSON using Collections + # ${json_dict}= Evaluate json.loads($body) modules=json + # Should Be True isinstance($json_dict, dict) msg=JSON is not a valid dictionary: ${body} + POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${output}= Output response + Log POST Response: ${output} + Set Suite Variable ${response} ${output} + Run Keyword If ${response['status']} != 201 Fail Subscription creation failed: ${response['body']['error']} status=${response['status']} Register subscription [Arguments] ${content} Should Be True ${PIC_MEC_PLAT} == 1 @@ -990,9 +1010,11 @@ Register subscription Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - # Replace placeholder values in the JSON with actual test values - ${body}= Replace String ${body} "tenant-123" "${TENANT_ID_1}" - ${body}= Replace String ${body} "customer-123" "${CUSTOMER_ID_1}" + Log Variables - TENANT_ID_1: ${TENANT_ID_1}, CUSTOMER_ID_1: ${CUSTOMER_ID_1}, SITE_ID_1: ${SITE_ID_1} + ${body}= Replace String ${body} "placeholder-tenant" "${TENANT_ID_1}" + ${body}= Replace String ${body} "placeholder-customer" "${CUSTOMER_ID_1}" + ${body}= Replace String ${body} "placeholder-site" "${SITE_ID_1}" + Log Request body after replacements: ${body} POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -1061,6 +1083,7 @@ Register site resource quota for tenant # Create tenant Register tenant Info TenantInfo Set Suite Variable ${TENANT_ID_1} ${response['body']['tenantId']} + Set Suite Variable ${CUSTOMER_ID_1} ${response['body']['customerId']} # Create site resource quota Register site resource quota Info ${TENANT_ID_1} SiteResourceQuotaInfo Set Suite Variable ${SITE_ID_1} ${response['body']['siteId']} @@ -1144,7 +1167,7 @@ Retrieve all tenant info resources with query parameters Set Suite Variable ${response} ${output} Register tenant Info - [Arguments] ${content} ${is_individual_call}=${True} + [Arguments] ${content} ${is_individual_call}=${True} ${tenant_var}=TENANT_ID_1 Should Be True ${PIC_MEC_PLAT} == 1 Should Be True ${PIC_SERVICES} == 1 Set Headers {"Accept":"application/json"} @@ -1155,7 +1178,7 @@ Register tenant Info POST ${apiRoot}/${apiName}/${apiVersion}/tenants ${body} ${output}= Output response Set Suite Variable ${response} ${output} - Run Keyword If ${is_individual_call} and ${response}[status] != 400 Set Suite Variable ${TENANT_ID_1} ${response}[body][tenantId] + Run Keyword If ${is_individual_call} and ${response}[status] != 400 Set Suite Variable \${${tenant_var}} ${response}[body][tenantId] Update tenant Info [Arguments] ${tenantId} ${content} diff --git a/MEC048/MEO/CSE/environment/variables.txt b/MEC048/MEO/CSE/environment/variables.txt index d66e161..1b69a94 100644 --- a/MEC048/MEO/CSE/environment/variables.txt +++ b/MEC048/MEO/CSE/environment/variables.txt @@ -3,10 +3,10 @@ ${SCHEMA} http ${HOST} 127.0.0.1 #${HOST} 10.192.2.172 -${PORT} 8081 +${PORT} 5000 ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l -${apiRoot} +${apiRoot} ${apiName} cse ${apiVersion} v1 diff --git a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription.json b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription.json index 63dc110..f4f9e39 100644 --- a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription.json +++ b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription.json @@ -1,12 +1,17 @@ { "subscriptionType": "SiteResourceUsageSubscription", - "callbackReference": "http://example.org/callback3", - "customerId": "customer-123", - "tenantId": "tenant-123", - "siteId": "site-456", + "callbackReference": "some/uri", + "_links": { + "self": { + "href": "LINK_TO_THE_RESOURCE" + } + }, + "customerId": "placeholder-customer", + "tenantId": "placeholder-tenant", + "siteList": ["placeholder-site"], "notificationTrigger": { - "triggerType": 30, - "threshold": 90, - "greaterOrLess": true + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false } - } \ No newline at end of file +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription1.json b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription1.json index e2e941a..f4f9e39 100644 --- a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription1.json +++ b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscription1.json @@ -1,12 +1,17 @@ { "subscriptionType": "SiteResourceUsageSubscription", "callbackReference": "some/uri", + "_links": { + "self": { + "href": "LINK_TO_THE_RESOURCE" + } + }, "customerId": "placeholder-customer", "tenantId": "placeholder-tenant", "siteList": ["placeholder-site"], "notificationTrigger": { - "triggerType": 10, - "threshold": 4, - "greaterOrLess": false + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false } - } \ No newline at end of file +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionBR.json b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionBR.json index c7d3aa4..26d0e34 100644 --- a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionBR.json +++ b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionBR.json @@ -1,11 +1,11 @@ { "subscriptionType": "SiteResourceUsageSubscription", "customerId": "customer-new", - "tenantId": "tenant-123", + "tenantId": "placeholder-tenant", "siteList": ["site-placeholder"], "notificationTrigger": { - "triggerType": 10, - "threshold": 4, - "greaterOrLess": false + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false } - } \ No newline at end of file +} \ No newline at end of file diff --git a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionUpdate.json b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionUpdate.json index fbbdd8b..723aa32 100644 --- a/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionUpdate.json +++ b/MEC048/MEO/CSE/jsons/SiteResourceUsageSubscriptionUpdate.json @@ -2,11 +2,11 @@ "subscriptionType": "SiteResourceUsageSubscription", "callbackReference": "some/uri/updated", "customerId": "customer-new", - "tenantId": "tenant-123", + "tenantId": "placeholder-tenant", "siteList": ["site-placeholder"], "notificationTrigger": { - "triggerType": 10, - "threshold": 4, - "greaterOrLess": false + "triggerType": 10, + "threshold": 4, + "greaterOrLess": false } - } \ No newline at end of file +} \ No newline at end of file -- GitLab From 4926ea62bcf7088d2e7d60202e5066e4e2b84b6c Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 22 Aug 2025 15:17:30 +0200 Subject: [PATCH 49/55] Fix typo --- MEC021/SRV/AMS/AMSService.robot | 46 ++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 8f9cc70..6b75058 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -18,7 +18,7 @@ Library Collections TC_MEC_MEC021_SRV_AMS_001_OK_01 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -51,7 +51,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_01 TC_MEC_MEC021_SRV_AMS_001_OK_02 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -76,7 +76,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_02 TC_MEC_MEC021_SRV_AMS_001_OK_03 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -98,7 +98,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_03 TC_MEC_MEC021_SRV_AMS_001_OK_04 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -118,7 +118,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 #TC_MEC_MEC021_SRV_AMS_001_OK_05 # [Documentation] Request Registered AMS information # ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service -# ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 +# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 # ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml # [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -127,7 +127,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 TC_MEC_MEC021_SRV_AMS_001_BR [Documentation] Request Registered AMS information using bad parameters ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Registered AMS information using bad parameters @@ -138,7 +138,7 @@ TC_MEC_MEC021_SRV_AMS_001_BR TC_MEC_MEC021_SRV_AMS_002_OK [Documentation] Register a new application mobility services ... Check that the AMS service creates a new application mobility services when requested - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} @@ -152,7 +152,7 @@ TC_MEC_MEC021_SRV_AMS_002_OK #TC_MEC_MEC021_SRV_AMS_002_BR # [Documentation] Request Registered AMS information using bad parameters # ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters -# ... ETSI GS MEC 021 3.3.1, clause 8.3.3.4 +# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 # ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml # [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS @@ -162,7 +162,7 @@ TC_MEC_MEC021_SRV_AMS_002_OK TC_MEC_MEC021_SRV_AMS_003_BR [Documentation] Register an UE Identity Tag using invalid parameter ... Check that the AMS service sends an error when it receives a malformed request to create a new application mobility service - ... ETSI GS MEC 021 3.3.1, clause 8.3.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${MALFORMED_APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} @@ -176,7 +176,7 @@ TC_MEC_MEC021_SRV_AMS_004_OK ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.3.1, clause 8.6.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS @@ -188,7 +188,7 @@ TC_MEC_MEC021_SRV_AMS_004_OK TC_MEC_MEC021_SRV_AMS_004_BR [Documentation] Request Subscription List for registered AMS Services using wrong attribute parameters ... Check that the AMS service sends an error when it receives a malformed query about the available subscriptions - ... ETSI GS MEC 021 3.3.1, clause 8.6.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS with wrong attbirube parameter @@ -202,7 +202,7 @@ TC_MEC_MEC021_SRV_AMS_005_OK ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.3.1, clause 8.6.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscription @@ -216,7 +216,7 @@ TC_MEC_MEC021_SRV_AMS_005_BR ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.3.1, clause 8.6.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscriptionError @@ -230,7 +230,7 @@ TC_MEC_MEC021_SRV_AMS_006_OK ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${SUBSCRIPTION_ID} @@ -242,7 +242,7 @@ TC_MEC_MEC021_SRV_AMS_006_OK TC_MEC_MEC021_SRV_AMS_006_NF [Documentation] Request a specific subscription using wrong identifier ... Check that the AMS service returns an error when receives a query about a not existing subscription - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.1 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -256,7 +256,7 @@ TC_MEC_MEC021_SRV_AMS_007_OK ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscription @@ -271,7 +271,7 @@ TC_MEC_MEC021_SRV_AMS_007_BR ... Permitted SUBSCRIPTION_TYPE are: ... - MobilityProcedureSubscription ... - AdjacentAppInfoSubscription - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionError @@ -281,7 +281,7 @@ TC_MEC_MEC021_SRV_AMS_007_BR TP_MEC_MEC021_SRV_AMS_007_NF [Documentation] Modify a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a modify request for a not existing subscription. - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} NotificationSubscription @@ -292,7 +292,7 @@ TP_MEC_MEC021_SRV_AMS_007_NF TC_MEC_MEC021_SRV_AMS_008_OK [Documentation] Remove a specific subscription ... Check that the AMS service deletes a given subscription when requested - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.5 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete individual subscription for AMS services ${SUBSCRIPTION_ID} @@ -302,7 +302,7 @@ TC_MEC_MEC021_SRV_AMS_008_OK TC_MEC_MEC021_SRV_AMS_008_NF [Documentation] Remove a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription - ... ETSI GS MEC 021 3.3.1, clause 8.7.3.5 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -314,7 +314,7 @@ TC_MEC_MEC021_SRV_AMS_009_OK [Documentation] Post Mobility Procedure Notification ... Check that the AMS service sends an AMS notification about a mobility procedure ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.3.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Log TBD @@ -335,7 +335,7 @@ TC_MEC_MEC021_SRV_AMS_010_OK [Documentation] Post Adjacent Application Info Notification ... Check that the AMS service sends an AMS notification about adjacent application instances ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.3.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Log TBD @@ -356,7 +356,7 @@ TC_MEC_MEC021_SRV_AMS_011_OK [Documentation] Post Expire Notification ... Check that the AMS service sends an AMS notification on subscription expiration ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.3.1, clause 7.4.4 + ... ETSI GS MEC 021 3.1.1, clause 7.4.4 ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Log TBD -- GitLab From 61bfd880712a99335d5b9b465afa25855afcd3a0 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 22 Aug 2025 17:23:46 +0200 Subject: [PATCH 50/55] Updated TCs related MEC021v3.1.1 --- MEC021/SRV/AMS/AMSService.robot | 430 ++++++++++-------- .../AMS/json/AdjacentAppInfoNotification.json | 11 + MEC021/SRV/AMS/json/ExpiryNotification.json | 12 + .../json/MobilityProcedureNotification.json | 16 + .../AMS/json/NotificationSubscription.json | 4 +- .../AMS/json/NotificationSubscription2.json | 16 + ...ationSubscriptionWithTestNotification.json | 16 + MEC021/SRV/AMS/json/TestNotification.json | 8 + MEC021/SRV/AMS/libraries/Server.py | 148 ++++++ ...djacentAppInfoInstanceInfoList.json.schema | 74 +++ .../AdjacentAppInfoNotification.schema.json | 95 ++++ .../AdjacentAppInstanceInfo.json.schema | 65 +++ .../schemas/ExpiryNotification.schema.json | 80 ++++ .../MobilityProcedureNotification.schema.json | 99 ++++ .../AMS/schemas/TestNotification.schema.json | 43 ++ 15 files changed, 925 insertions(+), 192 deletions(-) create mode 100644 MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json create mode 100644 MEC021/SRV/AMS/json/ExpiryNotification.json create mode 100644 MEC021/SRV/AMS/json/MobilityProcedureNotification.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscription2.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json create mode 100644 MEC021/SRV/AMS/json/TestNotification.json create mode 100644 MEC021/SRV/AMS/libraries/Server.py create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema create mode 100644 MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json create mode 100644 MEC021/SRV/AMS/schemas/TestNotification.schema.json diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 6b75058..fb2498a 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -18,12 +18,11 @@ Library Collections TC_MEC_MEC021_SRV_AMS_001_OK_01 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} - Get Registered AMS information Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfos @@ -51,8 +50,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_01 TC_MEC_MEC021_SRV_AMS_001_OK_02 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -76,8 +75,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_02 TC_MEC_MEC021_SRV_AMS_001_OK_03 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -98,8 +97,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_03 TC_MEC_MEC021_SRV_AMS_001_OK_04 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -115,20 +114,22 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 [TearDown] Delete two specific AMS services ${APP_MOBILITY_SERVICE_ID} ${APP_MOBILITY_SERVICE_ID2} -#TC_MEC_MEC021_SRV_AMS_001_OK_05 -# [Documentation] Request Registered AMS information -# ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service -# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 -# ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml -# [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS +TC_MEC_MEC021_SRV_AMS_001_OK_05 + [Documentation] Request Registered AMS information + ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 + Get Registered AMS information + Check HTTP Response Status Code Is 200 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS TC_MEC_MEC021_SRV_AMS_001_BR [Documentation] Request Registered AMS information using bad parameters ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Registered AMS information using bad parameters Check HTTP Response Status Code Is 400 @@ -138,8 +139,9 @@ TC_MEC_MEC021_SRV_AMS_001_BR TC_MEC_MEC021_SRV_AMS_002_OK [Documentation] Register a new application mobility services ... Check that the AMS service creates a new application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 6.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} Check HTTP Response Status Code Is 201 @@ -148,90 +150,75 @@ TC_MEC_MEC021_SRV_AMS_002_OK Should Be Equal As Strings ${response['body']['serviceConsumerId']['appInstanceId']} ${APP_INS_ID} -# This test case is incomplete -#TC_MEC_MEC021_SRV_AMS_002_BR -# [Documentation] Request Registered AMS information using bad parameters -# ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters -# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 -# ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml -# [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - - - - -TC_MEC_MEC021_SRV_AMS_003_BR +TC_MEC_MEC021_SRV_AMS_002_BR [Documentation] Register an UE Identity Tag using invalid parameter ... Check that the AMS service sends an error when it receives a malformed request to create a new application mobility service + ... ETSI GS MEC 021 3.1.1, clause 6.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${MALFORMED_APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} Check HTTP Response Status Code Is 400 # Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions -TC_MEC_MEC021_SRV_AMS_004_OK +TC_MEC_MEC021_SRV_AMS_003_OK [Documentation] Request Subscriptions List for the registered AMS services ... Check that the AMS service returns information about the available subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.4 ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is SubscriptionLinkList - -TC_MEC_MEC021_SRV_AMS_004_BR +TC_MEC_MEC021_SRV_AMS_003_BR [Documentation] Request Subscription List for registered AMS Services using wrong attribute parameters ... Check that the AMS service sends an error when it receives a malformed query about the available subscriptions - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS with wrong attbirube parameter Check HTTP Response Status Code Is 400 # Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions -TC_MEC_MEC021_SRV_AMS_005_OK +TC_MEC_MEC021_SRV_AMS_004_OK [Documentation] Create a notification subscription ... Check that the AMS service creates a notification subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscription Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is NotificationSubscription -TC_MEC_MEC021_SRV_AMS_005_BR +TC_MEC_MEC021_SRV_AMS_004_BR [Documentation] Create a notification subscription with wrong attribute parameter ... Check that the AMS service creates a notification subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscriptionError Check HTTP Response Status Code Is 400 # Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} -TC_MEC_MEC021_SRV_AMS_006_OK +TC_MEC_MEC021_SRV_AMS_005_OK [Documentation] Request a specific subscription ... Check that the AMS service returns information about a given subscription when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 @@ -239,25 +226,51 @@ TC_MEC_MEC021_SRV_AMS_006_OK -TC_MEC_MEC021_SRV_AMS_006_NF +TC_MEC_MEC021_SRV_AMS_005_NF [Documentation] Request a specific subscription using wrong identifier ... Check that the AMS service returns an error when receives a query about a not existing subscription - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 +# Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} +TC_MEC_MEC021_SRV_AMS_006_OK + [Documentation] Remove a specific subscription + ... Check that the AMS service deletes a given subscription when requested + ... ETSI GS MEC 021 3.1.1, clause 6.7 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC021_SRV_AMS_006_NF + [Documentation] Remove a specific subscription using wrong identifier + ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription + ... ETSI GS MEC 021 3.1.1, clause 6.7 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 + + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + ... + ... # Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${identifier} TC_MEC_MEC021_SRV_AMS_007_OK [Documentation] Modify a specific subscription ... Check that the AMS service modifies a given subscription when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscription Check HTTP Response Status Code Is 200 @@ -268,11 +281,9 @@ TC_MEC_MEC021_SRV_AMS_007_OK TC_MEC_MEC021_SRV_AMS_007_BR [Documentation] Modify a specific subscription using malformed request ... Check that the AMS service sends an error when it receives a malformed modify request for a given subscription. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionError Check HTTP Response Status Code Is 400 @@ -281,103 +292,61 @@ TC_MEC_MEC021_SRV_AMS_007_BR TP_MEC_MEC021_SRV_AMS_007_NF [Documentation] Modify a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a modify request for a not existing subscription. + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} NotificationSubscription Check HTTP Response Status Code Is 404 -# Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} -TC_MEC_MEC021_SRV_AMS_008_OK - [Documentation] Remove a specific subscription - ... Check that the AMS service deletes a given subscription when requested - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Delete individual subscription for AMS services ${SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 204 - -TC_MEC_MEC021_SRV_AMS_008_NF - [Documentation] Remove a specific subscription using wrong identifier - ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml +TC_MEC_MEC021_SRV_AMS_008_OK + [Documentation] Post Mobility Procedure Notification + ... Check that the AMS service sends an AMS notification about a mobility procedure + ... if the AMS service has an associated subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 404 - + + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server MobilityProcedureNotification + Validate Json MobilityProcedureNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} TC_MEC_MEC021_SRV_AMS_009_OK - [Documentation] Post Mobility Procedure Notification - ... Check that the AMS service sends an AMS notification about a mobility procedure - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/MobilityProcedureNotification.schema.json -# Log Creating mock request and response to handle Mobility Procedure Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} + [Documentation] Adjacent App Info Notification + ... Check that the AMS service sends an AMS notification about adjacent application instances if the AMS service has an associated + ... subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server AdjacentAppInfoNotification + Validate Json AdjacentAppInfoNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} TC_MEC_MEC021_SRV_AMS_010_OK - [Documentation] Post Adjacent Application Info Notification - ... Check that the AMS service sends an AMS notification about adjacent application instances - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.3 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + [Documentation] Post Expire Notification + ... Check that the AMS service sends an AMS notification on subscription expiration if the AMS service has an associated subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.4 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/AdjacentAppInfoNotification.schema.json -# Log Creating mock request and response to handle Adjacent Application Info Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} - + + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server ExpiryNotification + Validate Json ExpiryNotification.schema.json ${payload_notification} +# Get ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${APP_MOBILITY_SERVICE_ID_1} TC_MEC_MEC021_SRV_AMS_011_OK - [Documentation] Post Expire Notification - ... Check that the AMS service sends an AMS notification on subscription expiration - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/ExpiryNotification.schema.json -# Log Creating mock request and response to handle Expire Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} - - -# Get ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_012_OK [Documentation] Request a specific AMS service ... Check that the AMS service returns information about this individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 200 @@ -385,118 +354,172 @@ TC_MEC_MEC021_SRV_AMS_012_OK -TC_MEC_MEC021_SRV_AMS_012_NF +TC_MEC_MEC021_SRV_AMS_011_NF [Documentation] Request a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when receives a query about a not existing individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 # Put ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_013_OK +TC_MEC_MEC021_SRV_AMS_012_OK [Documentation] Modify a specific AMS service ... Check that the AMS service modifies the individual application mobility service when requested - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfo Should Be Equal As Strings ${response['body']['appMobilityServiceId']} ${APP_MOBILITY_SERVICE_ID} Should Be Equal As Strings ${response['body']['serviceConsumerId']['appInstanceId']} ${APP_MOBILITY_SERVICE_ID} # from req - #Check Result Contains ${response['registeredAppMobilityService']['serviceConsumerId']} appInstanceId ${APP_INS_ID} - -#ensure that { -# when { -# the IUT entity receives a vPUT containing -# uri indicating value "/amsi/v1/app_mobility_services/{APP_MOBILITY_SERVICE_ID_1}", -# body containing -# RegistrationInfo containing -# serviceConsumerId containing -# appInstanceId indicating value NEW_APP_INS_ID_NEW_1;;;; -# from the AMS_CLIENT entity -# } -# then { -# the IUT entity sends a HTTP_RESPONSE containing -# status set to "200 OK", -# body containing -# RegistrationInfo containing -# appMobilityServiceId indicating value APP_MOBILITY_SERVICE_ID_1, -# serviceConsumerId containing -# appInstanceId indicating value NEW_APP_INS_ID_NEW_1;;;; -# to the AMS_CLIENT entity -# } -#} - -TC_MEC_MEC021_SRV_AMS_013_NF +TC_MEC_MEC021_SRV_AMS_012_NF [Documentation] Modify a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when receives a request to modify a not existing individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 404 -TC_MEC_MEC021_SRV_AMS_013_BR +TC_MEC_MEC021_SRV_AMS_012_BR [Documentation] Modify a specific AMS Service using bad parameters ... Check that the AMS service sends an error when receives a request to modify a individual application mobility service using bad parameters - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfoWithError Check HTTP Response Status Code Is 400 # Delete ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_014_OK +TC_MEC_MEC021_SRV_AMS_013_OK [Documentation] Remove a specific AMS service ... Check that the AMS service de-register the individual application mobility service and delete the resource ... that represents the individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.3 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.5 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC021_SRV_AMS_014_NF +TC_MEC_MEC021_SRV_AMS_013_NF [Documentation] Remove a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when is requested to delete the resource ... that represents the individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.3 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.5 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 # POST ${apiRoot}/${apiName}/${apiVersion}/appMobilityServices/${amsId}/deregisterTask -TC_MEC_MEC021_SRV_AMS_015_OK +TC_MEC_MEC021_SRV_AMS_014_OK [Documentation] Request to deregister a specific AMS service ... Check that the AMS service deregister an individual application mobility service on expiry of the timer associated with the service - ... ETSI GS MEC 021 2.0.10, clause 8.5.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... that represents the individual application mobility service + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.5.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Deregister specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC021_SRV_AMS_015_NF +TC_MEC_MEC021_SRV_AMS_014_NF [Documentation] Request to deregister a specific AMS service using non existent identifier ... Check that the AMS service send an error when is requested to deregister a not existent individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.5.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.5.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Deregister specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 + +TC_MEC_MEC021_SRV_AMS_015_OK_01 + [Documentation] + ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service + + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + +TC_MEC_MEC021_SRV_AMS_015_OK_02 + [Documentation] + ... Check that the AMS service returns information about the adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (eq,appInstanceId,{APP_INSTANCE_ID_1}) + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_OK_03 + [Documentation] + ... Check that the AMS service returns information about a specified adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (eq,appInstanceId,{APP_INSTANCE_ID_1})&filter(eq,appDId,{APP_ID_3}) + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_OK_04 + [Documentation] + ... Check that the AMS service returns information about a specified adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_BR + [Documentation] + ... Check that the AMS service sends an error about a specified adjacent application instances when request is inconsistent + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (appInstanceId,eq,{APP_INSTANCE_ID_1}) + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC021_SRV_UETESTNOT_001_OK + [Documentation] + ... Check that the IUT provides a test notification when requested by a MEC Application + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + [Setup] Post a new notification subscription NotificationSubscriptionWithTestNotification + Spawn Notification Server MobilityProcedureNotification + Validate Json MobilityProcedureNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + Spawn Notification Server TestNotification + Validate Json TestNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + + *** Keywords *** Get Registered AMS information Set Headers {"Accept":"application/json"} @@ -571,7 +594,8 @@ Deregister specific AMS service ${output}= Output response Set Suite Variable ${response} ${output} - + + Create a new application mobility service [Arguments] ${appMobilityServiceId} ${appInstanceId} Set Headers {"Accept":"application/json"} @@ -587,6 +611,8 @@ Create a new application mobility service ${output}= Output response Set Suite Variable ${response} ${output} + + Create two new application mobility service [Arguments] ${appMobilityServiceId} ${appInstanceId} ${appMobilityServiceId2} ${appInstanceId2} Set Headers {"Accept":"application/json"} @@ -675,4 +701,28 @@ Update individual subscription for AMS services Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${identifier} ${body} ${output}= Output response Set Suite Variable ${response} ${output} - \ No newline at end of file + + +Spawn Notification Server + [Arguments] ${payload_notification} + ${output} Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ${payload_notification} + ${length} = Get Length ${output} + Set Suite Variable ${payload_notification} ${output} + Run Keyword If ${length} == 0 Skip + + +Retrieve info about registered app mobility service + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/amsi/v1/queries/adjacent_app_instances + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve info about registered app mobility service with filter + [Arguments] ${filter} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/amsi/v1/queries/adjacent_app_instances?filter${filter} + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json new file mode 100644 index 0000000..601777c --- /dev/null +++ b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json @@ -0,0 +1,11 @@ +{ + "notificationType": "AdjacentAppInfoNotification", + "timeStamp": "sample string", + "adjacentAppInfo": [ + "sample string", + "sample string" + ], + "_links": { + "subscription": null + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/ExpiryNotification.json b/MEC021/SRV/AMS/json/ExpiryNotification.json new file mode 100644 index 0000000..602c492 --- /dev/null +++ b/MEC021/SRV/AMS/json/ExpiryNotification.json @@ -0,0 +1,12 @@ +{ + "_links": null, + "expiryDeadline": { + "nanoSeconds": 11, + "seconds": 11 + }, + "timeStamp": { + "nanoSeconds": 11, + "seconds": 11 + }, + "notificationType": "ExpiryNotification" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/MobilityProcedureNotification.json b/MEC021/SRV/AMS/json/MobilityProcedureNotification.json new file mode 100644 index 0000000..0b34631 --- /dev/null +++ b/MEC021/SRV/AMS/json/MobilityProcedureNotification.json @@ -0,0 +1,16 @@ +{ + "notificationType": "MobilityProcedureNotification", + "timeStamp": "s", + "associateId": [ + {}, + {} + ], + "mobilityStatus": 11, + "targetAppInfo": { + "appInstanceId": "sample string", + "commInterface": null + }, + "_links": { + "subscription": null + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription.json b/MEC021/SRV/AMS/json/NotificationSubscription.json index 9c2ed02..536bcc2 100644 --- a/MEC021/SRV/AMS/json/NotificationSubscription.json +++ b/MEC021/SRV/AMS/json/NotificationSubscription.json @@ -1,6 +1,6 @@ { "callbackReference": "http://example.com/callback", - "requestTestNotification": true, + "requestTestNotification": false, "websockNotifConfig": { "websocketUri": "ws://example.com/websocket", "requestWebsocketUri": true @@ -12,5 +12,5 @@ "filterCriteria": { "appInstanceId": "app-123" }, - "subscriptionType": "AdjacentAppInfoSubscription" + "subscriptionType": "MobilityProcedureSubscription" } \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription2.json b/MEC021/SRV/AMS/json/NotificationSubscription2.json new file mode 100644 index 0000000..fa161b7 --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscription2.json @@ -0,0 +1,16 @@ +{ + "callbackReference": "http://example.com/callback", + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 1644691200, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "app-123" + }, + "subscriptionType": "AdjacentAppInfoSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json new file mode 100644 index 0000000..536bcc2 --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json @@ -0,0 +1,16 @@ +{ + "callbackReference": "http://example.com/callback", + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 1644691200, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "app-123" + }, + "subscriptionType": "MobilityProcedureSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/TestNotification.json b/MEC021/SRV/AMS/json/TestNotification.json new file mode 100644 index 0000000..75ae598 --- /dev/null +++ b/MEC021/SRV/AMS/json/TestNotification.json @@ -0,0 +1,8 @@ +{ + "_links": { + "self": { + "href": "https://someurl.com/subscriptions/users/subscriptionId" + } + }, + "notificationType": "TestNotification" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/libraries/Server.py b/MEC021/SRV/AMS/libraries/Server.py new file mode 100644 index 0000000..fb64670 --- /dev/null +++ b/MEC021/SRV/AMS/libraries/Server.py @@ -0,0 +1,148 @@ +#!/usr/bin/python3 + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +def import_notification_json(subscription_type): + notification_type = subscription_type.split("Subscription")[0] + file_path = "./jsons/"+notification_type+".json" + logging.info(file_path) + logging.info(os.listdir()) + try: + with open(file_path, 'r') as json_file: + # Load the JSON data + data = json.load(json_file) + logging.info(data) + return data + except FileNotFoundError: + logging.error(f"Error: File not found at {file_path}") + + +class Server ( object ): + + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server (self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class GET_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_GET(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + class POST_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + #if self.path == self.endpoint: + # self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + #else: + # self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body=post_body + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + + class PUT_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_PUT(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + class DELETE_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_DELETE(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + if method == "GET": + self.handler = GET_Server(endpoint, resp_body) + elif method == "POST": + self.handler = POST_Server(endpoint, resp_body) + elif method == "PUT": + self.handler = PUT_Server(endpoint, resp_body) + elif method == "DELETE": + self.handler = DELETE_Server(endpoint, resp_body) + else: + logging.info("Error, unknown endpoint") + exit(1) + + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + + self.app.handle_request() + self.app.server_close() + logging.info(self.handler.get_resp_body()) + ## If a notification is received, then is returned. Otherwise an empty dictionary. + if(self.handler.get_req_body()!=None): + return json.loads(self.handler.get_req_body().decode("windows-1252")) + + ##OLD mechanism commented: if no response is received, then read the Notification JSON file and return it. + notification_json= import_notification_json(self.handler.get_resp_body()) + #return notification_json ##Decomment if you want to use the notification read from file + return {} + diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema b/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema new file mode 100644 index 0000000..1519407 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema @@ -0,0 +1,74 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInstanceInfoList", + "type": "array", + "description": "A list of AdjacentAppInstanceInfo objects.", + "items": { + "$ref": "#/$defs/AdjacentAppInstanceInfo" + }, + "minItems": 1, + "$defs": { + "AdjacentAppInstanceInfo": { + "title": "AdjacentAppInstanceInfo", + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the application instance." + }, + "appDId": { + "type": "string", + "description": "Identifier of the application descriptor." + }, + "appInstanceCommLink": { + "type": "array", + "minItems": 1, + "description": "It specifies the communication interface of application instance.", + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "mecHostInformation": { + "description": "It specifies the communication interface of application instance.", + "$ref": "#/$defs/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId" + ] + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "MECHostInformation": { + "type": "object", + "properties": { + "hostName": { + "type": "string" + }, + "hostId": { + "type": "string" + } + }, + "required": [ + "hostId" + ] + } + } +} diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json b/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json new file mode 100644 index 0000000..b0d3d1b --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json @@ -0,0 +1,95 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInfoNotification", + "type": "object", + "properties": { + "notificationType": { + "type": "string", + "const": "AdjacentAppInfoNotification", + "description": "Shall be set to 'MobilityProcedureNotification'." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the generation of the notification." + }, + "adjacentAppInfo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Identifier of the adjacent application instance" + }, + "_links": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/$defs/LinkType" + } + }, + "required": [ + "subscription" + ], + "additionalProperties": false, + "description": "Object containing hyperlinks related to the resource." + } + }, + "required": [ + "notificationType", + "_links" + ], + "$defs": { + "AdjacentAppInfo": { + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the adjacent application instance. " + }, + "communicationInterface": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + } + }, + "required": [ + "appInstanceId" + ] + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "LinkType": { + "type": "object", + "description": "Represents a type of link.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "URI referring to a resource." + } + }, + "required": [ + "href" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema b/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema new file mode 100644 index 0000000..5a5fd0a --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema @@ -0,0 +1,65 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInstanceInfo", + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the application instance. " + }, + "appDId": { + "type": "string", + "description": "Identifier of the application descriptor. " + }, + "appInstanceCommLink": { + "type": "array", + "minItem": 1, + "description": "It specifies the communication interface of application instance.", + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "mecHostInformation": { + "description": "It specifies the communication interface of application instance.", + "$ref": "#/$defs/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId" + ], + "$defs": { + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "MECHostInformation": { + "type": "object", + "properties": { + "hostName": { + "type": "string" + }, + "hostId": { + "type": "string" + } + }, + "required": [ + "hostId" + ] + } + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json b/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json new file mode 100644 index 0000000..cce3149 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json @@ -0,0 +1,80 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "ExpiryNotification", + "type": "object", + "properties": { + "_links": { + "title": "Links2", + "required": [ + "subscription" + ], + "properties": { + "subscription": { + "description": "URI identifying the subscription which has expired.", + "title": "LinkType", + "required": [ + "href" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "URI referring to a resource" + } + } + } + }, + "description": "List of hyperlinks related to the resource." + }, + "expiryDeadline": { + "title": "TimeStamp", + "required": [ + "nanoSeconds", + "seconds" + ], + "type": "object", + "properties": { + "nanoSeconds": { + "type": "integer", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + }, + "seconds": { + "type": "integer", + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + } + } + }, + "timeStamp": { + "description": "Time stamp of the notification.", + "title": "TimeStamp", + "required": [ + "nanoSeconds", + "seconds" + ], + "type": "object", + "properties": { + "nanoSeconds": { + "type": "integer", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + }, + "seconds": { + "type": "integer", + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + } + } + }, + "notificationType": { + "description": "Shall be set to \"ExpiryNotification\"", + "type": "string" + } + }, + "required": [ + "_links", + "expiryDeadline", + "notificationType" + ] +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json b/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json index e69de29..201b539 100644 --- a/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json +++ b/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json @@ -0,0 +1,99 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "MobilityProcedureNotification", + "type": "object", + "properties": { + "notificationType": { + "type": "string", + "const": "MobilityProcedureNotification", + "description": "Shall be set to 'MobilityProcedureNotification'." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the generation of the notification." + }, + "associateId": { + "type": "array", + "items": { + "type": "object" + }, + "minItems": 1, + "description": "1 to N identifiers to associate the information for specific UE(s) and flow(s)." + }, + "mobilityStatus": { + "type": "integer", + "enum": [1, 2, 3], + "description": "Status of the UE mobility. 1 = INTERHOST_MOVEOUT_TRIGGERED, 2 = INTERHOST_MOVEOUT_COMPLETED, 3 = INTERHOST_MOVEOUT_FAILED. Other values are reserved." + }, + "targetAppInfo": { + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the target application instance." + }, + "commInterface": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "required": ["appInstanceId"], + "additionalProperties": false, + "description": "Identifiers to associate the information of target application instance." + }, + "_links": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/$defs/LinkType" + } + }, + "required": ["subscription"], + "additionalProperties": false, + "description": "Object containing hyperlinks related to the resource." + } + }, + "required": ["notificationType", "associateId", "mobilityStatus", "_links"], + "additionalProperties": false, + "$defs": { + "AssociateId": { + "type": "object", + "description": "Identifier for UE(s) and flow(s).", + "properties": { + "id": { + "type": "string" + } + }, + "required": ["id"], + "additionalProperties": true + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": ["interfaceType", "endpoint"], + "additionalProperties": true + }, + "LinkType": { + "type": "object", + "description": "Represents a type of link.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "URI referring to a resource." + } + }, + "required": ["href"], + "additionalProperties": false + } + } +} diff --git a/MEC021/SRV/AMS/schemas/TestNotification.schema.json b/MEC021/SRV/AMS/schemas/TestNotification.schema.json new file mode 100644 index 0000000..af01800 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/TestNotification.schema.json @@ -0,0 +1,43 @@ +{ + "properties": { + "_links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "properties": { + "self": { + "properties": { + "href": { + "description": "URI referring to a resource.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uri" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.7.2" + } + }, + "required": [ + "self" + ], + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "notificationType": { + "description": "Shall be set to \"TestNotification\".", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "notificationType", + "_links" + ], + "type": "object", + "x-etsi-ref": "6.4.3" + } \ No newline at end of file -- GitLab From 03ce7b5a4218d8cd8af5271111ee877fa86857d3 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 22 Aug 2025 17:23:46 +0200 Subject: [PATCH 51/55] Updated TCs related MEC021v3.1.1 --- MEC021/SRV/AMS/AMSService.robot | 430 ++++++++++-------- .../AMS/json/AdjacentAppInfoNotification.json | 11 + MEC021/SRV/AMS/json/ExpiryNotification.json | 12 + .../json/MobilityProcedureNotification.json | 16 + .../AMS/json/NotificationSubscription.json | 4 +- .../AMS/json/NotificationSubscription2.json | 16 + ...ationSubscriptionWithTestNotification.json | 16 + MEC021/SRV/AMS/json/TestNotification.json | 8 + MEC021/SRV/AMS/libraries/Server.py | 148 ++++++ ...djacentAppInfoInstanceInfoList.json.schema | 74 +++ .../AdjacentAppInfoNotification.schema.json | 95 ++++ .../AdjacentAppInstanceInfo.json.schema | 65 +++ .../schemas/ExpiryNotification.schema.json | 80 ++++ .../MobilityProcedureNotification.schema.json | 99 ++++ .../AMS/schemas/TestNotification.schema.json | 43 ++ MEC029/SRV/FAIS/PlatFixedAcessInfo.robot | 32 +- 16 files changed, 927 insertions(+), 222 deletions(-) create mode 100644 MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json create mode 100644 MEC021/SRV/AMS/json/ExpiryNotification.json create mode 100644 MEC021/SRV/AMS/json/MobilityProcedureNotification.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscription2.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json create mode 100644 MEC021/SRV/AMS/json/TestNotification.json create mode 100644 MEC021/SRV/AMS/libraries/Server.py create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json create mode 100644 MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema create mode 100644 MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json create mode 100644 MEC021/SRV/AMS/schemas/TestNotification.schema.json diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 6b75058..dcd58e8 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -7,6 +7,7 @@ Resource ../../../pics.txt Resource ../../../GenericKeywords.robot Library REST ${AMS_SCHEMA}://${AMS_HOST}:${AMS_PORT} ssl_verify=false Library BuiltIn +Library libraries/Server.py Library OperatingSystem Library MockServerLibrary Library Collections @@ -18,12 +19,11 @@ Library Collections TC_MEC_MEC021_SRV_AMS_001_OK_01 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} - Get Registered AMS information Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfos @@ -51,8 +51,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_01 TC_MEC_MEC021_SRV_AMS_001_OK_02 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -76,8 +76,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_02 TC_MEC_MEC021_SRV_AMS_001_OK_03 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -98,8 +98,8 @@ TC_MEC_MEC021_SRV_AMS_001_OK_03 TC_MEC_MEC021_SRV_AMS_001_OK_04 [Documentation] Request Registered AMS information ... Check that the AMS service returns information about the a specific registered application mobility service when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS [Setup] Create two new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} ${APP_MOBILITY_SERVICE_ID2} ${APP_INS_ID} @@ -115,20 +115,22 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 [TearDown] Delete two specific AMS services ${APP_MOBILITY_SERVICE_ID} ${APP_MOBILITY_SERVICE_ID2} -#TC_MEC_MEC021_SRV_AMS_001_OK_05 -# [Documentation] Request Registered AMS information -# ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service -# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 -# ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml -# [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS +TC_MEC_MEC021_SRV_AMS_001_OK_05 + [Documentation] Request Registered AMS information + ... Check that the AMS service returns information about the registered application mobility services when requested - No registered application mobility service + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 + Get Registered AMS information + Check HTTP Response Status Code Is 200 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS TC_MEC_MEC021_SRV_AMS_001_BR [Documentation] Request Registered AMS information using bad parameters ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Registered AMS information using bad parameters Check HTTP Response Status Code Is 400 @@ -138,8 +140,9 @@ TC_MEC_MEC021_SRV_AMS_001_BR TC_MEC_MEC021_SRV_AMS_002_OK [Documentation] Register a new application mobility services ... Check that the AMS service creates a new application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 6.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} Check HTTP Response Status Code Is 201 @@ -148,90 +151,75 @@ TC_MEC_MEC021_SRV_AMS_002_OK Should Be Equal As Strings ${response['body']['serviceConsumerId']['appInstanceId']} ${APP_INS_ID} -# This test case is incomplete -#TC_MEC_MEC021_SRV_AMS_002_BR -# [Documentation] Request Registered AMS information using bad parameters -# ... Check that the AMS service returns an error when receives a query about a registered application mobility service with wrong parameters -# ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 -# ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml -# [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - - - - -TC_MEC_MEC021_SRV_AMS_003_BR +TC_MEC_MEC021_SRV_AMS_002_BR [Documentation] Register an UE Identity Tag using invalid parameter ... Check that the AMS service sends an error when it receives a malformed request to create a new application mobility service + ... ETSI GS MEC 021 3.1.1, clause 6.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Create a new application mobility service ${MALFORMED_APP_MOBILITY_SERVICE_ID} ${APP_INS_ID} Check HTTP Response Status Code Is 400 # Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions -TC_MEC_MEC021_SRV_AMS_004_OK +TC_MEC_MEC021_SRV_AMS_003_OK [Documentation] Request Subscriptions List for the registered AMS services ... Check that the AMS service returns information about the available subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.4 ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is SubscriptionLinkList - -TC_MEC_MEC021_SRV_AMS_004_BR +TC_MEC_MEC021_SRV_AMS_003_BR [Documentation] Request Subscription List for registered AMS Services using wrong attribute parameters ... Check that the AMS service sends an error when it receives a malformed query about the available subscriptions - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.4 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Subscriptions for registered AMS with wrong attbirube parameter Check HTTP Response Status Code Is 400 # Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions -TC_MEC_MEC021_SRV_AMS_005_OK +TC_MEC_MEC021_SRV_AMS_004_OK [Documentation] Create a notification subscription ... Check that the AMS service creates a notification subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscription Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is NotificationSubscription -TC_MEC_MEC021_SRV_AMS_005_BR +TC_MEC_MEC021_SRV_AMS_004_BR [Documentation] Create a notification subscription with wrong attribute parameter ... Check that the AMS service creates a notification subscriptions when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Post a new notification subscription NotificationSubscriptionError Check HTTP Response Status Code Is 400 # Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} -TC_MEC_MEC021_SRV_AMS_006_OK +TC_MEC_MEC021_SRV_AMS_005_OK [Documentation] Request a specific subscription ... Check that the AMS service returns information about a given subscription when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription" - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 @@ -239,25 +227,50 @@ TC_MEC_MEC021_SRV_AMS_006_OK -TC_MEC_MEC021_SRV_AMS_006_NF +TC_MEC_MEC021_SRV_AMS_005_NF [Documentation] Request a specific subscription using wrong identifier ... Check that the AMS service returns an error when receives a query about a not existing subscription - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.4.2 + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 +# Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} +TC_MEC_MEC021_SRV_AMS_006_OK + [Documentation] Remove a specific subscription + ... Check that the AMS service deletes a given subscription when requested + ... ETSI GS MEC 021 3.1.1, clause 6.7 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_MEC021_SRV_AMS_006_NF + [Documentation] Remove a specific subscription using wrong identifier + ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription + ... ETSI GS MEC 021 3.1.1, clause 6.7 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + # Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${identifier} TC_MEC_MEC021_SRV_AMS_007_OK [Documentation] Modify a specific subscription ... Check that the AMS service modifies a given subscription when requested. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscription Check HTTP Response Status Code Is 200 @@ -268,11 +281,9 @@ TC_MEC_MEC021_SRV_AMS_007_OK TC_MEC_MEC021_SRV_AMS_007_BR [Documentation] Modify a specific subscription using malformed request ... Check that the AMS service sends an error when it receives a malformed modify request for a given subscription. - ... Permitted SUBSCRIPTION_TYPE are: - ... - MobilityProcedureSubscription - ... - AdjacentAppInfoSubscription + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionError Check HTTP Response Status Code Is 400 @@ -281,103 +292,61 @@ TC_MEC_MEC021_SRV_AMS_007_BR TP_MEC_MEC021_SRV_AMS_007_NF [Documentation] Modify a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a modify request for a not existing subscription. + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} NotificationSubscription Check HTTP Response Status Code Is 404 -# Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${content} -TC_MEC_MEC021_SRV_AMS_008_OK - [Documentation] Remove a specific subscription - ... Check that the AMS service deletes a given subscription when requested - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Delete individual subscription for AMS services ${SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 204 - -TC_MEC_MEC021_SRV_AMS_008_NF - [Documentation] Remove a specific subscription using wrong identifier - ... Check that the AMS service sends an error when it receives a delete request for a not existing subscription - ... ETSI GS MEC 021 3.1.1, clause 8.7.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml +TC_MEC_MEC021_SRV_AMS_008_OK + [Documentation] Post Mobility Procedure Notification + ... Check that the AMS service sends an AMS notification about a mobility procedure + ... if the AMS service has an associated subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Delete individual subscription for AMS services ${NON_EXISTENT_SUBSCRIPTION_ID} - Check HTTP Response Status Code Is 404 - + + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server MobilityProcedureNotification + Validate Json MobilityProcedureNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} TC_MEC_MEC021_SRV_AMS_009_OK - [Documentation] Post Mobility Procedure Notification - ... Check that the AMS service sends an AMS notification about a mobility procedure - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/MobilityProcedureNotification.schema.json -# Log Creating mock request and response to handle Mobility Procedure Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} + [Documentation] Adjacent App Info Notification + ... Check that the AMS service sends an AMS notification about adjacent application instances if the AMS service has an associated + ... subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.3 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server AdjacentAppInfoNotification + Validate Json AdjacentAppInfoNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} TC_MEC_MEC021_SRV_AMS_010_OK - [Documentation] Post Adjacent Application Info Notification - ... Check that the AMS service sends an AMS notification about adjacent application instances - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.3 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + [Documentation] Post Expire Notification + ... Check that the AMS service sends an AMS notification on subscription expiration if the AMS service has an associated subscription and the event is generated + ... ETSI GS MEC 021 3.1.1, clause 7.4.4 + ... ETSI GS MEC 021 3.1.1, clause 8.9.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/AdjacentAppInfoNotification.schema.json -# Log Creating mock request and response to handle Adjacent Application Info Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} - + + [Setup] Post a new notification subscription NotificationSubscription + Spawn Notification Server ExpiryNotification + Validate Json ExpiryNotification.schema.json ${payload_notification} +# Get ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${APP_MOBILITY_SERVICE_ID_1} TC_MEC_MEC021_SRV_AMS_011_OK - [Documentation] Post Expire Notification - ... Check that the AMS service sends an AMS notification on subscription expiration - ... if the AMS service has an associated subscription and the event is generated - ... ETSI GS MEC 021 3.1.1, clause 7.4.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml - [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Log TBD -# ${json}= Get File schemas/ExpiryNotification.schema.json -# Log Creating mock request and response to handle Expire Notification -# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json} -# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204 -# Create Mock Expectation ${req} ${rsp} -# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req} -# Log Verifying results -# Verify Mock Expectation ${req} -# Log Cleaning the endpoint -# Clear Requests ${callback_endpoint} - - -# Get ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_012_OK [Documentation] Request a specific AMS service ... Check that the AMS service returns information about this individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 200 @@ -385,118 +354,172 @@ TC_MEC_MEC021_SRV_AMS_012_OK -TC_MEC_MEC021_SRV_AMS_012_NF +TC_MEC_MEC021_SRV_AMS_011_NF [Documentation] Request a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when receives a query about a not existing individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.1 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 # Put ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_013_OK +TC_MEC_MEC021_SRV_AMS_012_OK [Documentation] Modify a specific AMS service ... Check that the AMS service modifies the individual application mobility service when requested - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfo Should Be Equal As Strings ${response['body']['appMobilityServiceId']} ${APP_MOBILITY_SERVICE_ID} Should Be Equal As Strings ${response['body']['serviceConsumerId']['appInstanceId']} ${APP_MOBILITY_SERVICE_ID} # from req - #Check Result Contains ${response['registeredAppMobilityService']['serviceConsumerId']} appInstanceId ${APP_INS_ID} - -#ensure that { -# when { -# the IUT entity receives a vPUT containing -# uri indicating value "/amsi/v1/app_mobility_services/{APP_MOBILITY_SERVICE_ID_1}", -# body containing -# RegistrationInfo containing -# serviceConsumerId containing -# appInstanceId indicating value NEW_APP_INS_ID_NEW_1;;;; -# from the AMS_CLIENT entity -# } -# then { -# the IUT entity sends a HTTP_RESPONSE containing -# status set to "200 OK", -# body containing -# RegistrationInfo containing -# appMobilityServiceId indicating value APP_MOBILITY_SERVICE_ID_1, -# serviceConsumerId containing -# appInstanceId indicating value NEW_APP_INS_ID_NEW_1;;;; -# to the AMS_CLIENT entity -# } -#} - -TC_MEC_MEC021_SRV_AMS_013_NF +TC_MEC_MEC021_SRV_AMS_012_NF [Documentation] Modify a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when receives a request to modify a not existing individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 404 -TC_MEC_MEC021_SRV_AMS_013_BR +TC_MEC_MEC021_SRV_AMS_012_BR [Documentation] Modify a specific AMS Service using bad parameters ... Check that the AMS service sends an error when receives a request to modify a individual application mobility service using bad parameters - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.2 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.4 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfoWithError Check HTTP Response Status Code Is 400 # Delete ${apiRoot}/${apiName}/${apiVersion}/app_mobility_services/${amsId} -TC_MEC_MEC021_SRV_AMS_014_OK +TC_MEC_MEC021_SRV_AMS_013_OK [Documentation] Remove a specific AMS service ... Check that the AMS service de-register the individual application mobility service and delete the resource ... that represents the individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.3 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.5 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC021_SRV_AMS_014_NF +TC_MEC_MEC021_SRV_AMS_013_NF [Documentation] Remove a specific AMS Service using non existent identifier ... Check that the AMS service sends an error when is requested to delete the resource ... that represents the individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.4.3.5 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 6.3 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.4.3.5 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Delete specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 # POST ${apiRoot}/${apiName}/${apiVersion}/appMobilityServices/${amsId}/deregisterTask -TC_MEC_MEC021_SRV_AMS_015_OK +TC_MEC_MEC021_SRV_AMS_014_OK [Documentation] Request to deregister a specific AMS service ... Check that the AMS service deregister an individual application mobility service on expiry of the timer associated with the service - ... ETSI GS MEC 021 2.0.10, clause 8.5.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... that represents the individual application mobility service + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.5.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Deregister specific AMS service ${APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 204 -TC_MEC_MEC021_SRV_AMS_015_NF +TC_MEC_MEC021_SRV_AMS_014_NF [Documentation] Request to deregister a specific AMS service using non existent identifier ... Check that the AMS service send an error when is requested to deregister a not existent individual application mobility service - ... ETSI GS MEC 021 2.0.10, clause 8.5.3.4 - ... Reference https://forge.etsi.org/rep/mec/gs021-amsi-api/-/blob/master/MEC021_AppMobilityService.yaml + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.5.3.4 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Deregister specific AMS service ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} Check HTTP Response Status Code Is 404 + +TC_MEC_MEC021_SRV_AMS_015_OK_01 + [Documentation] + ... Check that the AMS service returns information about the registered application mobility services when requested + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service + + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + +TC_MEC_MEC021_SRV_AMS_015_OK_02 + [Documentation] + ... Check that the AMS service returns information about the adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (eq,appInstanceId,{APP_INSTANCE_ID_1}) + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_OK_03 + [Documentation] + ... Check that the AMS service returns information about a specified adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (eq,appInstanceId,{APP_INSTANCE_ID_1})&filter(eq,appDId,{APP_ID_3}) + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_OK_04 + [Documentation] + ... Check that the AMS service returns information about a specified adjacent application instances when requested - filter + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service + Check HTTP Response Body Json Schema Is AdjacentAppInstanceInfoList + Check HTTP Response Status Code Is 200 + + +TC_MEC_MEC021_SRV_AMS_015_BR + [Documentation] + ... Check that the AMS service sends an error about a specified adjacent application instances when request is inconsistent + ... ETSI GS MEC 021 3.1.1, clause 7.2.3 + ... ETSI GS MEC 021 3.1.1, clause 8.8.3.1 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + Retrieve info about registered app mobility service with filter (appInstanceId,eq,{APP_INSTANCE_ID_1}) + Check HTTP Response Status Code Is 400 + + +TC_MEC_MEC021_SRV_UETESTNOT_001_OK + [Documentation] + ... Check that the IUT provides a test notification when requested by a MEC Application + ... ETSI GS MEC 021 3.1.1, clause 6.9 + ... ETSI GS MEC 021 3.1.1, clause 7.3.2 + ... ETSI GS MEC 021 3.1.1, clause 7.3.3 + ... ETSI GS MEC 021 3.1.1, clause 8.6.3.4 + [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS + [Setup] Post a new notification subscription NotificationSubscriptionWithTestNotification + Spawn Notification Server MobilityProcedureNotification + Validate Json MobilityProcedureNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + Spawn Notification Server TestNotification + Validate Json TestNotification.schema.json ${payload_notification} + [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + + *** Keywords *** Get Registered AMS information Set Headers {"Accept":"application/json"} @@ -571,7 +594,8 @@ Deregister specific AMS service ${output}= Output response Set Suite Variable ${response} ${output} - + + Create a new application mobility service [Arguments] ${appMobilityServiceId} ${appInstanceId} Set Headers {"Accept":"application/json"} @@ -587,6 +611,8 @@ Create a new application mobility service ${output}= Output response Set Suite Variable ${response} ${output} + + Create two new application mobility service [Arguments] ${appMobilityServiceId} ${appInstanceId} ${appMobilityServiceId2} ${appInstanceId2} Set Headers {"Accept":"application/json"} @@ -675,4 +701,28 @@ Update individual subscription for AMS services Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${identifier} ${body} ${output}= Output response Set Suite Variable ${response} ${output} - \ No newline at end of file + + +Spawn Notification Server + [Arguments] ${payload_notification} + ${output} Spawn Web Server ${NOTIFICATION_SERVER_IP} ${NOTIFICATION_SERVER_PORT} ${NOTIFICATION_SERVER_TIMEOUT} ${NOTIFICATION_SERVER_HTTP_METHOD} ${NOTIFICATION_SERVER_URI} ${payload_notification} + ${length} = Get Length ${output} + Set Suite Variable ${payload_notification} ${output} + Run Keyword If ${length} == 0 Skip + + +Retrieve info about registered app mobility service + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/amsi/v1/queries/adjacent_app_instances + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve info about registered app mobility service with filter + [Arguments] ${filter} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Get ${apiRoot}/${apiName}/${apiVersion}/amsi/v1/queries/adjacent_app_instances?filter${filter} + ${output}= Output response + Set Suite Variable ${response} ${output} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json new file mode 100644 index 0000000..601777c --- /dev/null +++ b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json @@ -0,0 +1,11 @@ +{ + "notificationType": "AdjacentAppInfoNotification", + "timeStamp": "sample string", + "adjacentAppInfo": [ + "sample string", + "sample string" + ], + "_links": { + "subscription": null + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/ExpiryNotification.json b/MEC021/SRV/AMS/json/ExpiryNotification.json new file mode 100644 index 0000000..602c492 --- /dev/null +++ b/MEC021/SRV/AMS/json/ExpiryNotification.json @@ -0,0 +1,12 @@ +{ + "_links": null, + "expiryDeadline": { + "nanoSeconds": 11, + "seconds": 11 + }, + "timeStamp": { + "nanoSeconds": 11, + "seconds": 11 + }, + "notificationType": "ExpiryNotification" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/MobilityProcedureNotification.json b/MEC021/SRV/AMS/json/MobilityProcedureNotification.json new file mode 100644 index 0000000..0b34631 --- /dev/null +++ b/MEC021/SRV/AMS/json/MobilityProcedureNotification.json @@ -0,0 +1,16 @@ +{ + "notificationType": "MobilityProcedureNotification", + "timeStamp": "s", + "associateId": [ + {}, + {} + ], + "mobilityStatus": 11, + "targetAppInfo": { + "appInstanceId": "sample string", + "commInterface": null + }, + "_links": { + "subscription": null + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription.json b/MEC021/SRV/AMS/json/NotificationSubscription.json index 9c2ed02..536bcc2 100644 --- a/MEC021/SRV/AMS/json/NotificationSubscription.json +++ b/MEC021/SRV/AMS/json/NotificationSubscription.json @@ -1,6 +1,6 @@ { "callbackReference": "http://example.com/callback", - "requestTestNotification": true, + "requestTestNotification": false, "websockNotifConfig": { "websocketUri": "ws://example.com/websocket", "requestWebsocketUri": true @@ -12,5 +12,5 @@ "filterCriteria": { "appInstanceId": "app-123" }, - "subscriptionType": "AdjacentAppInfoSubscription" + "subscriptionType": "MobilityProcedureSubscription" } \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription2.json b/MEC021/SRV/AMS/json/NotificationSubscription2.json new file mode 100644 index 0000000..fa161b7 --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscription2.json @@ -0,0 +1,16 @@ +{ + "callbackReference": "http://example.com/callback", + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 1644691200, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "app-123" + }, + "subscriptionType": "AdjacentAppInfoSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json new file mode 100644 index 0000000..536bcc2 --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json @@ -0,0 +1,16 @@ +{ + "callbackReference": "http://example.com/callback", + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 1644691200, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "app-123" + }, + "subscriptionType": "MobilityProcedureSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/TestNotification.json b/MEC021/SRV/AMS/json/TestNotification.json new file mode 100644 index 0000000..75ae598 --- /dev/null +++ b/MEC021/SRV/AMS/json/TestNotification.json @@ -0,0 +1,8 @@ +{ + "_links": { + "self": { + "href": "https://someurl.com/subscriptions/users/subscriptionId" + } + }, + "notificationType": "TestNotification" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/libraries/Server.py b/MEC021/SRV/AMS/libraries/Server.py new file mode 100644 index 0000000..fb64670 --- /dev/null +++ b/MEC021/SRV/AMS/libraries/Server.py @@ -0,0 +1,148 @@ +#!/usr/bin/python3 + +from http.server import BaseHTTPRequestHandler, HTTPServer +import json, os +import logging + +# Library version +__version__ = '0.0.1' + +def import_notification_json(subscription_type): + notification_type = subscription_type.split("Subscription")[0] + file_path = "./jsons/"+notification_type+".json" + logging.info(file_path) + logging.info(os.listdir()) + try: + with open(file_path, 'r') as json_file: + # Load the JSON data + data = json.load(json_file) + logging.info(data) + return data + except FileNotFoundError: + logging.error(f"Error: File not found at {file_path}") + + +class Server ( object ): + + ROBOT_LIBRARY_VERSION = '0.0.1' + + def spawn_web_server (self, host="127.0.0.1", port=8080, timeout=15, method="POST", endpoint="/callback_url", resp_body=None): + + class GET_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_GET(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + class POST_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + self.req_body = None + + + def do_POST(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + + #if self.path == self.endpoint: + # self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + #else: + # self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + content_len = int(self.headers.get('Content-Length')) + post_body = self.rfile.read(content_len) + self.req_body=post_body + + def get_req_body(self): + return self.req_body + + def get_resp_body(self): + return self.resp_body + + + class PUT_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_PUT(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + class DELETE_Server(BaseHTTPRequestHandler): + + def __call__(self, *args, **kwargs): + """Handle a request.""" + super().__init__(*args, **kwargs) + + def __init__(self, endpoint, resp_body): + self.resp_body = resp_body + self.endpoint = endpoint + + def do_DELETE(self): + self.send_response(200) + self.send_header('Content-Type', 'application/json') + self.end_headers() + if self.path == self.endpoint: + self.wfile.write(json.dumps(self.resp_body).encode(encoding='utf_8')) + else: + self.wfile.write(json.dumps("wrong endpoint").encode(encoding='utf_8')) + + if method == "GET": + self.handler = GET_Server(endpoint, resp_body) + elif method == "POST": + self.handler = POST_Server(endpoint, resp_body) + elif method == "PUT": + self.handler = PUT_Server(endpoint, resp_body) + elif method == "DELETE": + self.handler = DELETE_Server(endpoint, resp_body) + else: + logging.info("Error, unknown endpoint") + exit(1) + + self.app = HTTPServer((host, int(port)), self.handler) + self.app.timeout = int(timeout) + + + self.app.handle_request() + self.app.server_close() + logging.info(self.handler.get_resp_body()) + ## If a notification is received, then is returned. Otherwise an empty dictionary. + if(self.handler.get_req_body()!=None): + return json.loads(self.handler.get_req_body().decode("windows-1252")) + + ##OLD mechanism commented: if no response is received, then read the Notification JSON file and return it. + notification_json= import_notification_json(self.handler.get_resp_body()) + #return notification_json ##Decomment if you want to use the notification read from file + return {} + diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema b/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema new file mode 100644 index 0000000..1519407 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInfoInstanceInfoList.json.schema @@ -0,0 +1,74 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInstanceInfoList", + "type": "array", + "description": "A list of AdjacentAppInstanceInfo objects.", + "items": { + "$ref": "#/$defs/AdjacentAppInstanceInfo" + }, + "minItems": 1, + "$defs": { + "AdjacentAppInstanceInfo": { + "title": "AdjacentAppInstanceInfo", + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the application instance." + }, + "appDId": { + "type": "string", + "description": "Identifier of the application descriptor." + }, + "appInstanceCommLink": { + "type": "array", + "minItems": 1, + "description": "It specifies the communication interface of application instance.", + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "mecHostInformation": { + "description": "It specifies the communication interface of application instance.", + "$ref": "#/$defs/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId" + ] + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "MECHostInformation": { + "type": "object", + "properties": { + "hostName": { + "type": "string" + }, + "hostId": { + "type": "string" + } + }, + "required": [ + "hostId" + ] + } + } +} diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json b/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json new file mode 100644 index 0000000..b0d3d1b --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInfoNotification.schema.json @@ -0,0 +1,95 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInfoNotification", + "type": "object", + "properties": { + "notificationType": { + "type": "string", + "const": "AdjacentAppInfoNotification", + "description": "Shall be set to 'MobilityProcedureNotification'." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the generation of the notification." + }, + "adjacentAppInfo": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Identifier of the adjacent application instance" + }, + "_links": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/$defs/LinkType" + } + }, + "required": [ + "subscription" + ], + "additionalProperties": false, + "description": "Object containing hyperlinks related to the resource." + } + }, + "required": [ + "notificationType", + "_links" + ], + "$defs": { + "AdjacentAppInfo": { + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the adjacent application instance. " + }, + "communicationInterface": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + } + }, + "required": [ + "appInstanceId" + ] + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "LinkType": { + "type": "object", + "description": "Represents a type of link.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "URI referring to a resource." + } + }, + "required": [ + "href" + ], + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema b/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema new file mode 100644 index 0000000..5a5fd0a --- /dev/null +++ b/MEC021/SRV/AMS/schemas/AdjacentAppInstanceInfo.json.schema @@ -0,0 +1,65 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "AdjacentAppInstanceInfo", + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the application instance. " + }, + "appDId": { + "type": "string", + "description": "Identifier of the application descriptor. " + }, + "appInstanceCommLink": { + "type": "array", + "minItem": 1, + "description": "It specifies the communication interface of application instance.", + "items": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "mecHostInformation": { + "description": "It specifies the communication interface of application instance.", + "$ref": "#/$defs/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId" + ], + "$defs": { + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "interfaceType", + "endpoint" + ], + "additionalProperties": true + }, + "MECHostInformation": { + "type": "object", + "properties": { + "hostName": { + "type": "string" + }, + "hostId": { + "type": "string" + } + }, + "required": [ + "hostId" + ] + } + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json b/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json new file mode 100644 index 0000000..cce3149 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/ExpiryNotification.schema.json @@ -0,0 +1,80 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "ExpiryNotification", + "type": "object", + "properties": { + "_links": { + "title": "Links2", + "required": [ + "subscription" + ], + "properties": { + "subscription": { + "description": "URI identifying the subscription which has expired.", + "title": "LinkType", + "required": [ + "href" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "URI referring to a resource" + } + } + } + }, + "description": "List of hyperlinks related to the resource." + }, + "expiryDeadline": { + "title": "TimeStamp", + "required": [ + "nanoSeconds", + "seconds" + ], + "type": "object", + "properties": { + "nanoSeconds": { + "type": "integer", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + }, + "seconds": { + "type": "integer", + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + } + } + }, + "timeStamp": { + "description": "Time stamp of the notification.", + "title": "TimeStamp", + "required": [ + "nanoSeconds", + "seconds" + ], + "type": "object", + "properties": { + "nanoSeconds": { + "type": "integer", + "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + }, + "seconds": { + "type": "integer", + "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.", + "contentEncoding": "int32" + } + } + }, + "notificationType": { + "description": "Shall be set to \"ExpiryNotification\"", + "type": "string" + } + }, + "required": [ + "_links", + "expiryDeadline", + "notificationType" + ] +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json b/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json index e69de29..201b539 100644 --- a/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json +++ b/MEC021/SRV/AMS/schemas/MobilityProcedureNotification.schema.json @@ -0,0 +1,99 @@ +{ + "$schema": "http://json-schema.org/draft/2020-12/schema#", + "title": "MobilityProcedureNotification", + "type": "object", + "properties": { + "notificationType": { + "type": "string", + "const": "MobilityProcedureNotification", + "description": "Shall be set to 'MobilityProcedureNotification'." + }, + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the generation of the notification." + }, + "associateId": { + "type": "array", + "items": { + "type": "object" + }, + "minItems": 1, + "description": "1 to N identifiers to associate the information for specific UE(s) and flow(s)." + }, + "mobilityStatus": { + "type": "integer", + "enum": [1, 2, 3], + "description": "Status of the UE mobility. 1 = INTERHOST_MOVEOUT_TRIGGERED, 2 = INTERHOST_MOVEOUT_COMPLETED, 3 = INTERHOST_MOVEOUT_FAILED. Other values are reserved." + }, + "targetAppInfo": { + "type": "object", + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the target application instance." + }, + "commInterface": { + "$ref": "#/$defs/CommunicationInterface" + } + }, + "required": ["appInstanceId"], + "additionalProperties": false, + "description": "Identifiers to associate the information of target application instance." + }, + "_links": { + "type": "object", + "properties": { + "subscription": { + "$ref": "#/$defs/LinkType" + } + }, + "required": ["subscription"], + "additionalProperties": false, + "description": "Object containing hyperlinks related to the resource." + } + }, + "required": ["notificationType", "associateId", "mobilityStatus", "_links"], + "additionalProperties": false, + "$defs": { + "AssociateId": { + "type": "object", + "description": "Identifier for UE(s) and flow(s).", + "properties": { + "id": { + "type": "string" + } + }, + "required": ["id"], + "additionalProperties": true + }, + "CommunicationInterface": { + "type": "object", + "description": "Communication interface of the application instance.", + "properties": { + "interfaceType": { + "type": "string" + }, + "endpoint": { + "type": "string", + "format": "uri" + } + }, + "required": ["interfaceType", "endpoint"], + "additionalProperties": true + }, + "LinkType": { + "type": "object", + "description": "Represents a type of link.", + "properties": { + "href": { + "type": "string", + "format": "uri", + "description": "URI referring to a resource." + } + }, + "required": ["href"], + "additionalProperties": false + } + } +} diff --git a/MEC021/SRV/AMS/schemas/TestNotification.schema.json b/MEC021/SRV/AMS/schemas/TestNotification.schema.json new file mode 100644 index 0000000..af01800 --- /dev/null +++ b/MEC021/SRV/AMS/schemas/TestNotification.schema.json @@ -0,0 +1,43 @@ +{ + "properties": { + "_links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "properties": { + "self": { + "properties": { + "href": { + "description": "URI referring to a resource.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Uri" + } + }, + "required": [ + "href" + ], + "type": "object", + "x-etsi-ref": "6.7.2" + } + }, + "required": [ + "self" + ], + "type": "object", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Structure (inlined)" + }, + "notificationType": { + "description": "Shall be set to \"TestNotification\".", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "notificationType", + "_links" + ], + "type": "object", + "x-etsi-ref": "6.4.3" + } \ No newline at end of file diff --git a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot index 68ff057..b646515 100644 --- a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot +++ b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot @@ -20,9 +20,7 @@ TC_MEC_MEC029_SRV_FAIS_001_OK [Documentation] ... Check that the IUT responds with the current status of the fixed access information ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get fixed access information details Check HTTP Response Status Code Is 200 @@ -33,9 +31,7 @@ TC_MEC_MEC029_SRV_FAIS_001_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... - ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 - + ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get fixed access information details using query prameters interface ${INTERFACE_ID} Check HTTP Response Status Code Is 400 @@ -45,9 +41,7 @@ TC_MEC_MEC029_SRV_FAIS_001_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... - ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 - + ... Reference ETSI GS MEC 029 V2.2.1, clause 7.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get fixed access information details using query prameters interfaceType ${NON_EXISTENT_INTERFACE_ID} Check HTTP Response Status Code Is 404 @@ -57,9 +51,7 @@ TC_MEC_MEC029_SRV_FAIS_002_OK [Documentation] ... Check that the IUT responds with the current status of the device information ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.4.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of device information Check HTTP Response Status Code Is 200 @@ -70,9 +62,7 @@ TC_MEC_MEC029_SRV_FAIS_002_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.4.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of device information using query prameters device ${DEVICE_ID} Check HTTP Response Status Code Is 400 @@ -82,9 +72,7 @@ TC_MEC_MEC029_SRV_FAIS_002_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.4.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of device information using query prameters deviceId ${NON_EXISTENT_DEVICE_ID} Check HTTP Response Status Code Is 404 @@ -94,9 +82,7 @@ TC_MEC_MEC029_SRV_FAIS_003_OK [Documentation] ... Check that the IUT responds with the current status of the cable line information ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.5.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the cable line information Check HTTP Response Status Code Is 200 @@ -107,9 +93,7 @@ TC_MEC_MEC029_SRV_FAIS_003_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.5.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the cable line information using query parameters cm ${CABLE_MODEM_ID} Check HTTP Response Status Code Is 400 @@ -119,9 +103,7 @@ TC_MEC_MEC029_SRV_FAIS_003_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.5.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the cable line information using query parameters cmId ${NON_EXISTING_FAI_CM_ID} Check HTTP Response Status Code Is 404 @@ -131,9 +113,7 @@ TC_MEC_MEC029_SRV_FAIS_004_OK [Documentation] ... Check that the IUT responds with the current status of the optical network information ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.6.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the opentical network information Check HTTP Response Status Code Is 200 @@ -144,9 +124,7 @@ TC_MEC_MEC029_SRV_FAIS_004_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.6.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the opentical network information using query parameters onu ${ONU_ID} Check HTTP Response Status Code Is 400 @@ -156,9 +134,7 @@ TC_MEC_MEC029_SRV_FAIS_004_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.6.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get status of the opentical network information using query parameters onuId ${NON_EXISTING_FAI_ONU_ID} Check HTTP Response Status Code Is 404 @@ -168,9 +144,7 @@ TC_MEC_MEC029_SRV_FAIS_005_OK [Documentation] ... Check that the IUT responds with the subscriptions for fixed access information notifications ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new subscription OnuAlarmSubscription @@ -187,9 +161,7 @@ TC_MEC_MEC029_SRV_FAIS_005_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of subscriptions using query parameters subscription ${SUBSCRIPTION_TYPE} Check HTTP Response Status Code Is 400 -- GitLab From 2cbd06e44e3cfc20493f714f8e0b679d294ae52d Mon Sep 17 00:00:00 2001 From: piscione Date: Tue, 26 Aug 2025 14:48:57 +0200 Subject: [PATCH 52/55] Updates on MEC029 TCs --- MEC029/SRV/FAIS/PlatFixedAcessInfo.robot | 42 +++++++---------------- MEC029/SRV/FAIS/environment/variables.txt | 1 + 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot index b646515..9f06821 100644 --- a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot +++ b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot @@ -9,8 +9,6 @@ Resource environment/variables.txt Library REST ${SCHEMA}://${HOST}:${PORT} ssl_verify=false Library OperatingSystem Library MockServerLibrary - - Default Tags TC_MEC_SRV_FAIS @@ -171,11 +169,8 @@ TC_MEC_MEC029_SRV_FAIS_005_NF [Documentation] ... Check that the IUT responds with an error when ... a request for non-existing data is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES - Get list of subscriptions using query parameters subscriptionType ${NON_EXISTENT_SUBSCRIPTION_TYPE} Check HTTP Response Status Code Is 404 @@ -184,9 +179,7 @@ TC_MEC_MEC029_SRV_FAIS_006_OK [Documentation] ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on Optical Network Unit alarm events - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.4 - [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new subscription OnuAlarmSubscription Check HTTP Response Status Code Is 201 @@ -198,9 +191,7 @@ TC_MEC_MEC029_SRV_FAIS_006_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.4 - [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new subscription OnuAlarmSubscriptionError Check HTTP Response Status Code Is 400 @@ -210,9 +201,7 @@ TC_MEC_MEC029_SRV_FAIS_007_OK [Documentation] ... Check that the IUT responds with the information on a given subscription ... when queried by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new subscription OnuAlarmSubscription @@ -230,9 +219,7 @@ TC_MEC_MEC029_SRV_FAIS_007_NF [Documentation] ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.1 - [Tags] PIC_MEC_PLAT PIC_SERVICES Get an individual subscription ${NON_ESISTENT_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 404 @@ -242,9 +229,7 @@ TC_MEC_MEC029_SRV_FAIS_008_OK [Documentation] ... Check that the IUT updates an existing subscription ... when commanded by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.2 - [Tags] PIC_MEC_PLAT PIC_SERVICES [Setup] Create a new subscription OnuAlarmSubscription @@ -262,9 +247,7 @@ TC_MEC_MEC029_SRV_FAIS_008_BR [Documentation] ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.2 - [Tags] PIC_MEC_PLAT PIC_SERVICES Update subscription ${ONU_ALARM_SUBSCRIPTION_ID} OnuAlarmSubscriptionUpdateError Check HTTP Response Status Code Is 400 @@ -274,13 +257,9 @@ TC_MEC_MEC029_SRV_FAIS_008_NF [Documentation] ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.2 - [Tags] PIC_MEC_PLAT PIC_SERVICES - [Setup] Remove subscription ${NON_ESISTENT_SUBSCRIPTION_ID} - Update subscription ${NON_ESISTENT_SUBSCRIPTION_ID} OnuAlarmSubscriptionUpdate Check HTTP Response Status Code Is 404 @@ -289,9 +268,7 @@ TC_MEC_MEC029_SRV_FAIS_008_PF [Documentation] ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.2 - [Tags] PIC_MEC_PLAT PIC_SERVICES Update subscription using invalid etag ${ONU_ALARM_SUBSCRIPTION_ID} OnuAlarmSubscriptionUpdate Check HTTP Response Status Code Is 412 @@ -301,25 +278,31 @@ TC_MEC_MEC029_SRV_FAIS_009_OK [Documentation] ... Check that the IUT cancels an existing subscription ... when commanded by a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.5 - [Tags] PIC_MEC_PLAT PIC_SERVICES - [Setup] Create a new subscription OnuAlarmSubscription Set Suite Variable ${subscriptionUrl} ${response['body']['_links']['self']['href']} - Remove subscription ${ONU_ALARM_SUBSCRIPTION_ID} Check HTTP Response Status Code Is 204 +TC_MEC_MEC029_SRV_FAIS_009_NF + [Documentation] + ... Check that the IUT cancels an existing subscription + ... when commanded by a MEC Application + ... Reference ETSI GS MEC 029 V2.2.1, clause 7.8.3.5 + [Tags] PIC_MEC_PLAT PIC_SERVICES + [Setup] Create a new subscription OnuAlarmSubscription + Set Suite Variable ${subscriptionUrl} ${response['body']['_links']['self']['href']} + Remove subscription ${NOT_EXISTING_ONU_ALARM_SUBSCRIPTION_ID} + Check HTTP Response Status Code Is 404 + + TC_MEC_MEC029_SRV_FAIS_010_OK [Documentation] ... Check that the IUT sends notification on expiry of Fixed Access Information event subscription ... to a MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 7.7.3.4 - [Tags] PIC_MEC_PLAT PIC_SERVICES ${json}= Get File schemas/DevInfoSubscription.schema.json Log Creating mock request and response to handle Device Information Notifications @@ -337,7 +320,6 @@ TC_MEC_MEC029_SRV_FAIS_011_OK [Documentation] ... Check that the IUT sends notifications on Fixed Access Information events ... to a subscribed MEC Application - ... ... Reference ETSI GS MEC 029 V2.2.1, clause 5.2.7 [Tags] PIC_MEC_PLAT PIC_SERVICES diff --git a/MEC029/SRV/FAIS/environment/variables.txt b/MEC029/SRV/FAIS/environment/variables.txt index e84f497..592e228 100644 --- a/MEC029/SRV/FAIS/environment/variables.txt +++ b/MEC029/SRV/FAIS/environment/variables.txt @@ -21,6 +21,7 @@ ${NON_EXISTING_FAI_ONU_ID} NON_EXISTING_FAI_ONU_ID ${SUBSCRIPTION_TYPE} DEVICE_ABNORMAL_ALERT ${NON_EXISTENT_SUBSCRIPTION_TYPE} NON_EXISTENT_SUBSCRIPTION_TYPE ${ONU_ALARM_SUBSCRIPTION_ID} 6cd12d29-30c7-4c8c-bf51-846daa51bab0 +${NOT_EXISTING_ONU_ALARM_SUBSCRIPTION_ID} NOT_EXISTING_ONU_ALARM_SUBSCRIPTION_ID ${NON_ESISTENT_SUBSCRIPTION_ID} NON_ESISTENT_SUBSCRIPTION_ID ${INVALID_ETAG} INVALID_ETAG -- GitLab From 8185e575dbc18921c1cc77cd06a8fc36ae931226 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Mon, 15 Sep 2025 13:47:21 +0000 Subject: [PATCH 53/55] updated tests --- .gitignore | 4 + MEC012/SRV/RNIS/environment/variables.txt | 4 +- .../__pycache__/Server.cpython-310.pyc | Bin 0 -> 5070 bytes .../__pycache__/Server.cpython-36.pyc | Bin 0 -> 5798 bytes MEC013/SRV/RLOCLOOK/environment/variables.txt | 4 +- .../SRV/UEAREALOOK/environment/variables.txt | 4 +- .../SRV/UEAREASUB/environment/variables.txt | 4 +- .../SRV/UEDISTLOOK/environment/variables.txt | 6 +- .../SRV/UEDISTSUB/environment/variables.txt | 4 +- .../SRV/UEINFOLOOK/environment/variables.txt | 4 +- .../SRV/UEINFOSUB/environment/variables.txt | 4 +- .../SRV/UELOCLOOK/environment/variables.txt | 4 +- MEC013/SRV/UELOCSUB/environment/variables.txt | 4 +- .../SRV/UETESTNOT/environment/variables.txt | 4 +- .../SRV/UEZONELOOK/environment/variables.txt | 4 +- .../SRV/UEZONESUB/environment/variables.txt | 4 +- MEC028/WAI/AP_INFO/environment/variables.txt | 4 +- MEC028/WAI/EXT_SUB/environment/variables.txt | 5 +- MEC028/WAI/MEAS/environment/variables.txt | 5 +- MEC028/WAI/STA_INFO/environment/variables.txt | 5 +- MEC028/WAI/SUB/environment/variables.txt | 5 +- MEC030/SRV/V2X/V2XInformationService.robot | 94 +++++++------- MEC030/SRV/V2X/environment/variables.txt | 4 +- MEC040/SRV/MEF/FederationEnablement.robot | 116 +++++++++--------- MEC040/SRV/MEF/environment/variables.txt | 4 +- 25 files changed, 153 insertions(+), 147 deletions(-) create mode 100644 .gitignore create mode 100644 MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-310.pyc create mode 100644 MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-36.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47ba44a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +log.html +output.xml +report.html +k3s_build_and_import.sh \ No newline at end of file diff --git a/MEC012/SRV/RNIS/environment/variables.txt b/MEC012/SRV/RNIS/environment/variables.txt index e494041..1dbe6c1 100644 --- a/MEC012/SRV/RNIS/environment/variables.txt +++ b/MEC012/SRV/RNIS/environment/variables.txt @@ -1,7 +1,7 @@ *** Variables *** ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} 127.0.0.1 -${MEC-APP_PORT} 8085 +${MEC-APP_HOST} %{MEC_APP_HOST=127.0.0.1} +${MEC-APP_PORT} %{MEC_APP_PORT=8085} ${apiRoot} ${apiName} rni ${apiVersion} v2 diff --git a/MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-310.pyc b/MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aabe5718fde3113af54f20866db0a7822446cef9 GIT binary patch literal 5070 zcmd1j<>g{vU|^7Xxi4dq2m`}o5C<8vFfcGUFfcF_doVCCq%fo~<}lQOqd}DNH#mQ7mAZHHtNbIf^ZXC55$xA&T9dA%!i4y@er#J(Z)GIf^rdDVRZ% z<0Z%rO{QC7PKm{-9w8wCL8*nMsl_E8iFqkGsYSQAKw`nEMP;c)e!o}^^bGV2lNmvJ zpqQ0`fq{d8fx#K%v_%XI3^fc37*ZG)GNv#|GSo7rFxN1OGo-MHGt@GbFfL%KVOq$@ z$N*xMFfU+P$N=J1sg|(TFr~0IGxdwsGMBI|V6S0b$XLq)QdPqOQc=Sa&cMWw!ob47 z!qCjj$PmsD%wWh+Y+laD$N++o3?Q)-hF}I3h7yj-0FW5i7S0s58m8F{bHTPoGJsT+ zGib8=MezieCKV?aWfqiV=I0fGJXFP@r=L}vpI5A3#i|El++r-Ml5{O9$}h4~aLdd| zRmjUPQAo=#%}Y^8EK$(py2V;tkds+*i#;blJv}oo{T54RURwSwru^bt>^YgmB`KLj zw^;HEQuA)HfQ@6x$xlqVB?vOgFTcbMWDwZ&Tdb)dOEg)d1dEXz6<<%(b9&&z!>2!jQrO z=5x3+q_C#2wJ@Zxf%%;73@Pj>94!nf9AG|I4ND4VHdB#y4SNl14O=r)4MRL*o>mP@ z3RgB$ky#A~lBj$QOA2>3Q;}m0Cz7a04ND47HdB#L4HuFqX9?2+<`iB~axP&>;cEtE z1J)YG61EzqX2vw88ip)JuwCpWY&Fcyj5Q2d?C~5RaslT;21W)jiwnd8nFCV2fE$v1 zz-*p{3@HrR%tc)#ybJhXA`AFa_!lxRWDI5~5de#EFJx$DtmUrZ4rb64@WUE$ppgBn z!@$4*i@0`%G)8cMazrtwfCDm$1rmT!tnCae3{h;s44Uj!+K{N!D=tVZ&xBYC$vdcmAO2%89@$tzyiN(e7@!(8SBm_!d9P#m>q!k~p2(q4ufq_AcsmcW6Orrdv z2QwfU-GAtNmssN}|1SKPe8b(lJ0+m8589{F6EJ`gdh)>E-sl3IJnwL_L zpP5&(lDP=vmLgCb6lpUsK(aK#$wi=mQU#d{3NZ|^cE6V=Kt&dhbADb)YF>$MNM%9lFM-5@f*fe6rw=NOZn2h@q{Ulk zGJ*msIX@*cFTIMdyeK~}T>&0&+_!j(Q}a^dL4lf|SDbo_8_dl}O-xBGy2TBWg0PEk zv4DzCa1ckamV?Vr*7BmvlGGwlX>yA-r8Kvo7##Sw*i!S7^HWk+GD2bnRJcHuo3z7Rk`aXlIYz_t zmLgYNr8p=l7uyh77(hzVD7F;N6fRJE16(+8fXewQ9fBbND&`554n@)+@5q1%SrDNB zBEVh*dluwRaLAZ|#MK!X7^+N3v6pa8E(R4(H7Gf`h9RB_l*)@hNkEesoMyo3>J~>) zY9Tml7wLlB19l>q0J{?u2^OFx6B`2q0~;ea88O;*1mLy#YgK!hTO-w0rXJBB^gp_nq+{uuvAD@$&7sXkS zUt9tSH*jcy2~d#TVo%AB2PG3bP_Q8~n*ckgbwWfL2+|8pVtP=cFv>tsIS2~7&!A|j zVaQ?#W`M*jBiO}7AiE*iAK@;Z^wg4gSY-QvN&-;H&&F6~NmA-VHU+1g;0WYKiUCkkDh5R&q!8j@9!rLP0(PmnDQ7 z1qf>i7bQg+AcH{>S)>JG;VL5{L6Uk53=G61aJaYiV2vS+gaoVPi}XPT8-NHi5P>Zj zfhxCv(2!V=JgDbMM1_VF1fVPy8luULJKY3<491ySxDaN6a%7PkNHvIsv)KwuAbJFo zxr?ihYlthfFhB_-SOE$upNUN)p!QM`IE|Q-W;6AYNe(D*z{!MkCt#^YK*b;_DTOm7 zKOPdM1t5oj6N?3jVF5P+Uy=y{8ILo`@Iu@Gjn_1gT5zfXW#U`R?yez465zTiAT%V3 z4WhP69NY)jQ7FyJ&dV>)gSRGMg2JGRr#v$+CBM8_*U-q+NK>!~RI=Y<&wz}L6oI;- zMWB|{Etb@Z%#tEd;wb_R&qOgN78KlKFUibJ%`Yv9;)7@aRT7|~l_(xa*C;+YC%-tg z2wZ4_i%(E_c#9P@Oi+A_EhQDy?gaO+HF>~|&s!`R`Nbu-SU}zNqG*s$*m6@#GV)Wv z4Gu_k0BXvCi_s!bRw)Ac9Bm8%)S5;rp1~!v0D7+t)V?YPr6&O<0bv0}0bvedK1L2k z1miukxi4dq2m`}o1|-13z`)?Zz`#)K!N9Rk0fA8R!`%GlKLmFfgz( zFfi~lFfcfSoYlp^z)-`G#gM|-%$UL?$xzFf!d$~B&XB?)&QQx#!kEQW!_>^k$N*xM zFlVteGk|!NdL^tiOew6*O#M=|%q47D>^02IjI}HvRW&Ri6*Vlu41o+m3=s_B40$Rn z3?&@dTtzL63?Nv-n8lgGR>L%#VJ_J0NQOM72!<4fU29} zkfWsS0`dB?@WzrFkg|i6sh}T(?+@ z3vx0`Zn5X&r>AG;rQc%7%uCC^#gt!si#;c^xFjXB=oU+UL2BMD7O-(FIr)hxw*)~( z`Q?|mfeZqhev35~WQitglwdKEqvA^{3sR#5^YTkF(=wA2LGFYIai(SFq{bH{mSjY6 zf((ua@o%xDB$gzuWGE6~U|{&ArC*X-TvDv>>*{P^Xrvz;6s8~K=NYV@lbKYMSd^Js ztPhDby@JYH5}COL`9&r1C>DXtZ3VSevCig8ii1pAk^NZ8a$XpMc zd|pnFXJB{19O+Zk9GqS!#Ws7f0W zje5leiRF3m<*7;W#o)p~&n727IWec$PS4#nBp#v&UNC?x1Yvnl@&cuy5{71mEXEqf z8m2x*Murr|Uy?A%PfhH*JQrMQkN=M%mt-$21YhUQr!v(BY41r3OSHbV7I0r zmB@^sWX71nl)~K11ZFdV5?l>K7IO_l7E3l$kw*v9*W^sWkj$TGk za?X=N$fmHN%7H_G-S6cI1_p*I9_ReLlGMBs-H^(H)GC3*f`S}qxdtwGZ?Tq^q{Ulk zGJ=9AIX@*cFTIMdyeK~}T>&0s+_!j(Q}a^dLBW}ySDbo_8_dl}O-xBGy2TBWg0PEk zv49FlaNyozEeDs7tmQ?SC8Qkq*(3=Z~NY^iz4`6;QIjF9+1jfGomDf#j4 zt|6MBhyWEj42)ciJd7NSJdAQoRYs&F9;iX=pmdm*n420Oe~T+VJ~uz5GzY}yiH|QV zP0WGF6oGOFI0Y2xg51jsP0z`xIXSR24RWX^W04#v>44KW7b3TTv=@WQV-6-B77mso zBlNNwlyE@_xY&lsY!4|dqu5e7Q@B7a25>RJ0V>U_bO?q5s3@mmIZz}C@-rxZz%r2x zNI;f>fdLjEpuhp=dT>aZfMO4nPZ^l1Oi6JqfgBI29Z_?94MRK=IMp-yX)=S;7bFdG z6r~n|3jmml@n(Aqkb6PV2g>$rj3m1mE$4$G8-&3*--Te#F9GNKEY=hjP$g2!Si_J7 zYI`v@GuASJeaiv%A*)}J5)t{jiVv3WeNyw%OENS$i$JAXks2t<)Io`xIWw>17CS8C zGN-4OM6niuvn)$dYGO)}F(_UkrDYU%GNcfR&q>XT;w;E7E&+!sq}YT<`Yra9{CH5J zvjYVrQnqCmVB{gD90loxCRjbFQ7Gjos4NACCMc3XE!$uQO-4UWMu=Onmn1ytsU`8S zWZ(mG7&t{TR#}piB9ToY&P|}o1xM+|3o#8^Ir$?w%8Cp}L5Z%D!z(A?NM-X#>TJcn>TwHxzLtLT7GrR}{Rd65-Dr<^K>sOGR8#6!=0xrFos?14qFP$=E4#f1r~t97$aL+keD9e#^KAHpmq$t%*hLJ5j0PL z3QgqJzdg8>!~l;&@-XF$gPia@nmC%-tg2;2|=Hwi!m<1JRuFj?^}wv<#*uM9lOq{##Bn%!c_ z$S*Fr#R3|xDslz+ge^Cps;U=&~!W8`D362}qwnruZP zpaNeMM1Xn?;Fu_qU|?YI(_}>}ly8X!`8)ZC#QS(U1vv&q#)r8E1$+AY6?ua+gB^_^ zK+Z1`W?*0db%}~W8J>fQg$XR8$rZ(&QBqQ%2MKL(+(DuU6wXB)Ak#oGc#AtezAUw< yI5R&lJ{}z2x7hNNvQm>vz{Vhj71&ykjkh>#ApKT5P?UpPW}qP8U}j Date: Tue, 30 Sep 2025 10:27:30 +0200 Subject: [PATCH 54/55] Included env var file for CAPIF MEC011 TCs and minor on JSON payload. --- ...ppTerminationNotificationSubscription.json | 4 +-- .../CAPIF/environment/variables_sandbox.txt | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 MEC011/SRV/CAPIF/environment/variables_sandbox.txt diff --git a/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json b/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json index 2975227..b8d9ad2 100644 --- a/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json +++ b/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json @@ -1,10 +1,10 @@ { - "subscriptionType": "AppTerminationNotificationSubscription", + "subscriptionType": "SerAvailabilityNotificationSubscription", "callbackReference": "https://somewhere.com/mecAppSuptApi/example", "_links": { "self": { "href": "https://somewhere.com/mecAppSuptApi/example" } }, - "appInstanceId": "f1e4d448-e277-496b-bf63-98391cfd20fb" + "appInstanceId": "298b2c0c-7efa-45d3-8b47-8ab3c009b845" } \ No newline at end of file diff --git a/MEC011/SRV/CAPIF/environment/variables_sandbox.txt b/MEC011/SRV/CAPIF/environment/variables_sandbox.txt new file mode 100644 index 0000000..b90d130 --- /dev/null +++ b/MEC011/SRV/CAPIF/environment/variables_sandbox.txt @@ -0,0 +1,30 @@ +*** Variables *** + + +####Env variable for the ETSI MEC Sandbox +${SCHEMA} https +${HOST} try-mec.etsi.org +${PORT} 443 +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${apiRoot} /sbxnr8fp0o/mep1 +${apiName} service-apis +${apiVersion} v1 + + + +# Generic variables +${response} {} +${capifSubApiName} capif-events +${apiVersion} v1 + +# Specific variables +${API_NAME_QUERY_PARAM} mec015-1 +${API_ID_QUERY_PARAM} mec015-1 +${UNKNOWN_MEC_SRV_SER_NAME} UNKNOWN_MEC_SRV_SER_NAME +${MEC_SRV_INSTANCE_ID} MEC_SRV_SER_INSTANCE_ID +${NOT_EXISTING_MEC_SRV_INSTANCE_ID} NOT_EXISTING_MEC_SRV_INSTANCE_ID +${SERVICE_API_ID} SERVICE_API_ID +${UNKNOWN_SERVICE_API_ID} UNKNOWN_SERVICE_API_ID +${UNKNOWN_MEC_SRV_INSTANCE_ID} UNKNOWN_MEC_SRV_INSTANCE_ID +${SUBSCRIPTION_ID} SUBSCRIPTION_ID +${UNKNOWN_SUBSCRIPTION_ID} UNKNOWN_SUBSCRIPTION_ID -- GitLab From f1416a4e379e99a136b3c0d9278c918f0f7f2a89 Mon Sep 17 00:00:00 2001 From: piscione Date: Tue, 30 Sep 2025 10:32:47 +0200 Subject: [PATCH 55/55] Minor: fixes on typo, minor updates on payload and included variable sanbox env var for validation tests --- MEC021/SRV/AMS/AMSService.robot | 15 ++++--- .../SRV/AMS/environment/variables_sandbox.txt | 44 +++++++++++++++++++ .../AMS/json/AppMobilityServiceUpdate.json | 24 ++++++++++ .../AMS/json/NotificationSubscription.json | 4 +- .../json/NotificationSubscriptionUpdate.json | 21 +++++++++ MEC021/SRV/AMS/json/RegistrationInfo.json | 3 +- 6 files changed, 101 insertions(+), 10 deletions(-) create mode 100644 MEC021/SRV/AMS/environment/variables_sandbox.txt create mode 100644 MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json create mode 100644 MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 28210e9..3f39f86 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -2,14 +2,15 @@ ... Test Suite to validate UE Identity Tag (UETAG) operations. *** Settings *** -Resource environment/variables.txt +#Resource environment/variables.txt +Resource environment/variables_sandbox.txt Resource ../../../pics.txt Resource ../../../GenericKeywords.robot Library REST ${AMS_SCHEMA}://${AMS_HOST}:${AMS_PORT} ssl_verify=false Library BuiltIn Library libraries/Server.py Library OperatingSystem -Library MockServerLibrary +#Library MockServerLibrary Library Collections @@ -106,7 +107,7 @@ TC_MEC_MEC021_SRV_AMS_001_OK_04 Get Registered AMS information using attribute-selector filter ${APP_MOBILITY_SERVICE_FILTER_EXCLUDE_FIELDS} Check HTTP Response Status Code Is 200 - #Check HTTP Response Body Json Schema Is AppMobilityServiceInfos + Check HTTP Response Body Json Schema Is AppMobilityServiceInfos FOR ${app} IN @{response['body']} Should Be Equal As Strings ${app['appMobilityServiceId']} ${APP_MOBILITY_SERVICE_ID} @@ -274,7 +275,7 @@ TC_MEC_MEC021_SRV_AMS_007_OK ... ETSI GS MEC 021 3.1.1, clause 7.3.3 ... ETSI GS MEC 021 3.1.1, clause 8.7.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscription + Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionUpdate Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is NotificationSubscription @@ -291,7 +292,7 @@ TC_MEC_MEC021_SRV_AMS_007_BR Check HTTP Response Status Code Is 400 -TP_MEC_MEC021_SRV_AMS_007_NF +TC_MEC_MEC021_SRV_AMS_007_NF [Documentation] Modify a specific subscription using wrong identifier ... Check that the AMS service sends an error when it receives a modify request for a not existing subscription. ... ETSI GS MEC 021 3.1.1, clause 7.3.2 @@ -374,7 +375,7 @@ TC_MEC_MEC021_SRV_AMS_012_OK ... ETSI GS MEC 021 3.1.1, clause 7.2.2 ... ETSI GS MEC 021 3.1.1, clause 8.4.3.2 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS - Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfo + Modify a specific AMS service ${APP_MOBILITY_SERVICE_ID} RegistrationInfo Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is AppMobilityServiceInfo Should Be Equal As Strings ${response['body']['appMobilityServiceId']} ${APP_MOBILITY_SERVICE_ID} @@ -519,6 +520,8 @@ TC_MEC_MEC021_SRV_UETESTNOT_001_OK Spawn Notification Server TestNotification Validate Json TestNotification.schema.json ${payload_notification} [TearDown] Delete individual subscription for AMS services ${SUBSCRIPTION_ID} + + *** Keywords *** Get Registered AMS information Set Headers {"Accept":"application/json"} diff --git a/MEC021/SRV/AMS/environment/variables_sandbox.txt b/MEC021/SRV/AMS/environment/variables_sandbox.txt new file mode 100644 index 0000000..e0837e3 --- /dev/null +++ b/MEC021/SRV/AMS/environment/variables_sandbox.txt @@ -0,0 +1,44 @@ +*** Variables *** +# Generic variables +#${AMS_SCHEMA} http +#${AMS_HOST} mockoon +#${AMS_PORT} 3006 +#${response} {} +#${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +#${apiRoot} +#${apiName} amsi +#${apiVersion} v1 + + +####Env variable for the ETSI MEC Sandbox +${AMS_SCHEMA} https +${AMS_HOST} try-mec.etsi.org +${AMS_PORT} 443 +${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l +${response} {} +${apiRoot} //mep1 +${apiName} amsi +${apiVersion} v1 + +# Specific variables +${APP_MOBILITY_SERVICE_ID} -4P-3piNHphgT_GF +${APP_MOBILITY_SERVICE_ID2} APP_MOBILITY_SERVICE_ID2 +${MALFORMED_APP_MOBILITY_SERVICE_ID} MALFORMED_APP_MOBILITY_SERVICE_ID +${APP_MOBILITY_SERVICE_FILTER_APP_MOBILITY_SERVICE_ID} (eq,appMobilityServiceId,ca29c5a5-f471-4098-abcb-d55d83410087) +${APP_MOBILITY_SERVICE_FILTER_SERVICE_CONSUMER_ID} (eq,serviceConsumerId[appInstanceId],5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f) +${APP_MOBILITY_SERVICE_FILTER_EXCLUDE_FIELDS} (eq,appMobilityServiceId,APP_MOBILITY_SERVICE_ID)&exclude_fields=[serviceConsumerId] +${APP_INS_ID} ca29c5a5-f471-4098-abcb-d55d83410087 +${SUBSCRIPTION_TYPE} MobilityProcedureSubscription +${SUBSCRIPTION_ID} sub-DjA60j9KKidfITKs +${NON_EXISTENT_SUBSCRIPTION_ID} NON_EXISTENT_SUBSCRIPTION_ID +${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} NON_EXISTENT_APP_MOBILITY_SERVICE_ID + +# Notifications variables +${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar + +${callback_port} 9091 +${callback_uri} http://172.22.1.7:${callback_port} +${callback_endpoint} /amsi/subscriptions +${callback_endpoint_error} /subs_404 +${total_polling_time} 2 min +${polling_interval} 10 sec diff --git a/MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json b/MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json new file mode 100644 index 0000000..2fe7b06 --- /dev/null +++ b/MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json @@ -0,0 +1,24 @@ +{ + "deviceInformation": [ + { + "associateId": { + "type": "UE_IPv4_ADDRESS", + "value": "192.168.1.100" + }, + "appMobilityServiceLevel": "APP_MOBILITY_NOT_ALLOWED", + "contextTransferState": "NOT_TRANSFERRED" + }, + { + "associateId": { + "type": "UE_IPV6_ADDRESS", + "value": "2001:0db8:85a3:0000:0000:8a2e:0370:7334" + }, + "appMobilityServiceLevel": "APP_MOBILITY_WITH_CONFIRMATION", + "contextTransferState": "USER_CONTEXT_TRANSFER_COMPLETED" + } + ], + "expiryTime": 3600, + "serviceConsumerId": { + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" + } +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscription.json b/MEC021/SRV/AMS/json/NotificationSubscription.json index 536bcc2..bbc76b3 100644 --- a/MEC021/SRV/AMS/json/NotificationSubscription.json +++ b/MEC021/SRV/AMS/json/NotificationSubscription.json @@ -6,11 +6,11 @@ "requestWebsocketUri": true }, "expiryDeadline": { - "seconds": 1644691200, + "seconds": 2077353600, "nanoSeconds": 0 }, "filterCriteria": { - "appInstanceId": "app-123" + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" }, "subscriptionType": "MobilityProcedureSubscription" } \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json b/MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json new file mode 100644 index 0000000..f33e02b --- /dev/null +++ b/MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json @@ -0,0 +1,21 @@ +{ + "callbackReference": "http://example.com/callback", + "_links": { + "self": { + "href": "https://try-mec.etsi.org/sbxnr8fp0o/mep1/amsi/v1/subscriptions/sub-DjA60j9KKidfITKs" + } + }, + "requestTestNotification": false, + "websockNotifConfig": { + "websocketUri": "ws://example.com/websocket", + "requestWebsocketUri": true + }, + "expiryDeadline": { + "seconds": 2077353600, + "nanoSeconds": 0 + }, + "filterCriteria": { + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" + }, + "subscriptionType": "MobilityProcedureSubscription" +} \ No newline at end of file diff --git a/MEC021/SRV/AMS/json/RegistrationInfo.json b/MEC021/SRV/AMS/json/RegistrationInfo.json index ac38cbf..2583998 100644 --- a/MEC021/SRV/AMS/json/RegistrationInfo.json +++ b/MEC021/SRV/AMS/json/RegistrationInfo.json @@ -1,7 +1,6 @@ { "serviceConsumerId": { - "appInstanceId": "exampleAppInstanceId", - "mepId": "exampleMepId" + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" }, "appMobilityServiceId": "exampleAppMobilityServiceId", "deviceInformation": [ -- GitLab