diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..47ba44a94df30072aa20e571ac8488ec85970baf --- /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/MEC011/SRV/APPSAQ/PlatAppServices.robot b/MEC011/SRV/APPSAQ/PlatAppServices.robot index 77813400d2356413c3c765be4244f5d49a18793f..1847fe8324b7e1f344733f7eacec3088ba297ced 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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.2.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.2.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 80e7e909d031a9b5c0737b2a722438fa55146199..9a778972fb8167d249938c11a4e8fe27385b3417 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 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.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.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.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.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.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.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.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.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.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.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.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.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.2.1, clause 5.2.6", - ... "ETSI GS MEC 011 3.2.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/APPSUB/jsons/AppTerminationNotificationSubscription.json b/MEC011/SRV/APPSUB/jsons/AppTerminationNotificationSubscription.json index 29752270fb5e785e3eb16b002764590fe6c954a7..b8d9ad2c8c19cbad6a15b93b50ef02a8b48c781b 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/MecProfileCapif.robot b/MEC011/SRV/CAPIF/MecProfileCapif.robot new file mode 100644 index 0000000000000000000000000000000000000000..f906cc7bef860143c749024c3e5fcaaf7d7dbaf4 --- /dev/null +++ b/MEC011/SRV/CAPIF/MecProfileCapif.robot @@ -0,0 +1,574 @@ +*** Settings *** + +Documentation +... A test suite for validating Common API Framework (CAPIF) operations. + +Resource ../../../GenericKeywords.robot +Resource environment/variables.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 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 + 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 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} + 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 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} + 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 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} + 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 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} + 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 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} + 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 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} + 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 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} + 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 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 + 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 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 + 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 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} + 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 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} + 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 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} + Check HTTP Response Status Code Is 404 + + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_005_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 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 + 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_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.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + 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_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.2 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + 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 + ... 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 + + [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 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} + Check HTTP Response Status Code Is 404 + + +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 + ... + ... 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 + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is EventSubscription + + +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 + ... + ... 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 + Check HTTP Response Status Code Is 404 + + +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 + ... + ... 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} eventSubscription + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is EventSubscription + + +TC_MEC_MEC011_SRV_MEC_PROFILE_FOR_CAPIF_009_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 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} eventSubscription + Check HTTP Response Status Code Is 404 + + +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 + ... + ... 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 + 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 + + +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 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 + Update existing CAPIF subscription ${MEC_SRV_INSTANCE_ID} ${UNKNOWN_SUBSCRIPTION_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 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} + Check HTTP Response Status Code Is 204 + + +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 + ... + ... 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} + 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} + + +##Published APIs management Keywords +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} + + +Replace 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} + + +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"} + 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} + + +##CAPIF Subscription management Keywords +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}/subscriptions ${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}/subscriptions/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update 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}/subscriptions/${SUBSCRIPTION_ID} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + + +Delete 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}/subscriptions/${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 0000000000000000000000000000000000000000..22d2b3d9b38d825fb5f3d1b4b3a1435b93ff0431 --- /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/CAPIF/environment/variables_sandbox.txt b/MEC011/SRV/CAPIF/environment/variables_sandbox.txt new file mode 100644 index 0000000000000000000000000000000000000000..b90d130477ddd16f67a9810c87faf99b4b6a12ba --- /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 diff --git a/MEC011/SRV/CAPIF/jsons/eventSubscription.json b/MEC011/SRV/CAPIF/jsons/eventSubscription.json new file mode 100644 index 0000000000000000000000000000000000000000..dfb5bc80957670eea2eed47488990918ad3605d8 --- /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 0000000000000000000000000000000000000000..dfb5bc80957670eea2eed47488990918ad3605d8 --- /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 0000000000000000000000000000000000000000..24134e0000991bff2a7511d65e73595e815ea7d8 --- /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 0000000000000000000000000000000000000000..a800f66a89afa19f67b082d5b09a9783a18b1632 --- /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 0000000000000000000000000000000000000000..9ac3153f68aa710b08b2337e1b3d0aea9fa34f09 --- /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 0000000000000000000000000000000000000000..444a7f024a71412989365791943bb955f2dd4de9 --- /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 0000000000000000000000000000000000000000..85b2e2ec165c54896f69abf8281c40f4450a1893 --- /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"] + } +} 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 cc52e8b39916f4024aa9e39981ed3fabc1324661..b2935a93eba8af4c1bde459949a577b67495b882 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 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.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 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.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 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.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 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 6776a153ac90bc6188f2cc08fef42451f8f6b3f3..4aa092751512d6a62858460013f1c46e23372f04 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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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 6f3906fd9b454d43fef359b608e8e66c5d9825bd..695c8e6e1f943b53933236282af9cd89586488cc 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 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.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 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.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 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.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 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.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 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.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 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/RegApps.robot b/MEC011/SRV/REGAPPS/RegisterAppsServices.robot similarity index 78% rename from MEC011/SRV/REGAPPS/RegApps.robot rename to MEC011/SRV/REGAPPS/RegisterAppsServices.robot index f6fcace4ee30e0faf9e6aff48313bf103c13674a..964ad1b20813e205e603a54b811ce5bf29392109 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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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.2.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.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 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.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 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 afe9b9fcd014a6da6ee20304e7966a25c7ea1546..57a653fff9ccf24d0a99998e18deb9857e0f609d 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 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.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 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.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 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.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 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 405a2c26c186b52a2db38ce20231b54a018f78f4..8836128e07a5916a6d6fbe50e66e4c96310cfe5e 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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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 f18f776342e25bf11ebc294c5a0e8d664d05c107..a80dd3d4e4e59dcfb05c539954c89a86ac0416a7 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 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.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 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 af694633d011b860b18910f9ec4967e9a977f449..5ffad06bffe8979b615440ae66b5663895351b8b 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 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.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 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.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 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.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 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.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 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.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 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.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 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.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 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 e2917b5e1ae2baa578472f3c512e52f22a199ff6..5044f7d030c7f2608569e38e5027113903835e95 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 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 diff --git a/MEC012/SRV/RNIS/environment/variables.txt b/MEC012/SRV/RNIS/environment/variables.txt index e49404199e1183d923e0a7f517e15e6ed6b39acc..1dbe6c1e4a0747a0fabb760e967f9d61438d5716 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 Binary files /dev/null and b/MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-310.pyc differ diff --git a/MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-36.pyc b/MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..beae636c6a2bf96769046b3415054aca1b27c63c Binary files /dev/null and b/MEC012/SRV/RNIS/libraries/__pycache__/Server.cpython-36.pyc differ diff --git a/MEC013/SRV/RLOCLOOK/environment/variables.txt b/MEC013/SRV/RLOCLOOK/environment/variables.txt index 58b70406b3a4892714c95f4a3cbfea992eb05c70..5f71cca05298ad03a58125f3c9bd11dc2cfb09f2 100644 --- a/MEC013/SRV/RLOCLOOK/environment/variables.txt +++ b/MEC013/SRV/RLOCLOOK/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UEAREALOOK/environment/variables.txt b/MEC013/SRV/UEAREALOOK/environment/variables.txt index 1956375a166b73927cc7afff63d7eb7e7d2c2438..d0df5ff842492e198a54d9f12df69d85031a10ec 100644 --- a/MEC013/SRV/UEAREALOOK/environment/variables.txt +++ b/MEC013/SRV/UEAREALOOK/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UEAREASUB/environment/variables.txt b/MEC013/SRV/UEAREASUB/environment/variables.txt index f9812b80c0b21a468b1f417fb258d79dea6e51b7..6ff26a6b609752ddfc744d7b98c572f813309c29 100644 --- a/MEC013/SRV/UEAREASUB/environment/variables.txt +++ b/MEC013/SRV/UEAREASUB/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UEDISTLOOK/environment/variables.txt b/MEC013/SRV/UEDISTLOOK/environment/variables.txt index 87fa46bd909160ebe688745567419e699420b282..a3c54385adbdb31c1e3b9ef644e3b1c3f689c870 100644 --- a/MEC013/SRV/UEDISTLOOK/environment/variables.txt +++ b/MEC013/SRV/UEDISTLOOK/environment/variables.txt @@ -1,10 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 - - -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UEDISTSUB/environment/variables.txt b/MEC013/SRV/UEDISTSUB/environment/variables.txt index 8e9b1912427ae523af3d053cc87a0693c7352209..a344ae839e26f318f887a972296034336358430c 100644 --- a/MEC013/SRV/UEDISTSUB/environment/variables.txt +++ b/MEC013/SRV/UEDISTSUB/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UEINFOLOOK/environment/variables.txt b/MEC013/SRV/UEINFOLOOK/environment/variables.txt index 08f06f5883183e44788e02ce7ccf7da152a1f03c..ef841f44b02d8c0093d99b83057e7e209cf45ad2 100644 --- a/MEC013/SRV/UEINFOLOOK/environment/variables.txt +++ b/MEC013/SRV/UEINFOLOOK/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UEINFOSUB/environment/variables.txt b/MEC013/SRV/UEINFOSUB/environment/variables.txt index 56b79c19706916d2368d912731af35b66bcca897..2d25c9837e856ef1235d1d3309f5566ada53f184 100644 --- a/MEC013/SRV/UEINFOSUB/environment/variables.txt +++ b/MEC013/SRV/UEINFOSUB/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 10.192.2.172 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UELOCLOOK/environment/variables.txt b/MEC013/SRV/UELOCLOOK/environment/variables.txt index 0d2e21a2e8f87a395cd13180ed1c3cfd1736d911..b493443ee273bb75a5fe9556067cc53afaba9b1e 100644 --- a/MEC013/SRV/UELOCLOOK/environment/variables.txt +++ b/MEC013/SRV/UELOCLOOK/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.2 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UELOCSUB/environment/variables.txt b/MEC013/SRV/UELOCSUB/environment/variables.txt index 9ba08ce20b37b1e5e6c4581adda8c944d299db7f..65dc73e9c7d5dcca415885160e19e45da65da682 100644 --- a/MEC013/SRV/UELOCSUB/environment/variables.txt +++ b/MEC013/SRV/UELOCSUB/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UETESTNOT/environment/variables.txt b/MEC013/SRV/UETESTNOT/environment/variables.txt index 50c62aa7d4a5cb1359c29a8d03d4c1e668ffafee..843b342b939ee0f87f65e45ff804b3ba93aecfc8 100644 --- a/MEC013/SRV/UETESTNOT/environment/variables.txt +++ b/MEC013/SRV/UETESTNOT/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UEZONELOOK/environment/variables.txt b/MEC013/SRV/UEZONELOOK/environment/variables.txt index 585984a3819f9c80c71bfa055580b9fe5d80cba4..a39ae299d4f8089deb5030001fc48b274d611ba9 100644 --- a/MEC013/SRV/UEZONELOOK/environment/variables.txt +++ b/MEC013/SRV/UEZONELOOK/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC013/SRV/UEZONESUB/environment/variables.txt b/MEC013/SRV/UEZONESUB/environment/variables.txt index ed7a7f5cf0c87504e4418d9c5d111ae80f58ac14..3a55157466610deda2dac95b18eb96936dc12ae0 100644 --- a/MEC013/SRV/UEZONESUB/environment/variables.txt +++ b/MEC013/SRV/UEZONESUB/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8081 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8081} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC021/SRV/AMS/AMSService.robot b/MEC021/SRV/AMS/AMSService.robot index 8f9cc705c7f8994031456a7536707503b835583c..3f39f867f06397bbb4bcefebc21bdb417f80ec7a 100644 --- a/MEC021/SRV/AMS/AMSService.robot +++ b/MEC021/SRV/AMS/AMSService.robot @@ -2,13 +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 @@ -18,12 +20,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.3.1, clause 8.3.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.3.3.1 [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 +52,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.3.1, clause 8.3.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.3.3.1 [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 +77,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.3.1, clause 8.3.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.3.3.1 [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,15 +99,15 @@ 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 - ... 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.3.3.1 [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 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} @@ -115,20 +116,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.3.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.3.1, clause 8.3.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.3.3.1 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Get Registered AMS information using bad parameters Check HTTP Response Status Code Is 400 @@ -138,8 +141,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.3.1, clause 8.3.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.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 [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 +152,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.3.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.3.1, clause 8.3.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.2 + ... ETSI GS MEC 021 3.1.1, clause 7.2.2 + ... ETSI GS MEC 021 3.1.1, clause 8.3.3.4 [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.3.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 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.3.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.3.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.3.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.3.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,27 +228,54 @@ 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.3.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.3.1, clause 8.7.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 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 [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 @@ -268,116 +284,72 @@ 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.3.1, clause 8.7.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 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 [Tags] PIC_AMS INCLUDE_UNDEFINED_SCHEMAS Update individual subscription for AMS services ${SUBSCRIPTION_ID} NotificationSubscriptionError 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.3.1, clause 8.7.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 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 [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.3.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.3.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.3.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.3.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 -# ${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} - + [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 + + [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.3.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 +357,171 @@ 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 + 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 +596,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 +613,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 +703,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} diff --git a/MEC021/SRV/AMS/environment/variables_sandbox.txt b/MEC021/SRV/AMS/environment/variables_sandbox.txt new file mode 100644 index 0000000000000000000000000000000000000000..e0837e34a95586e369bd2b3bce6f1691f8065d35 --- /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/AdjacentAppInfoNotification.json b/MEC021/SRV/AMS/json/AdjacentAppInfoNotification.json new file mode 100644 index 0000000000000000000000000000000000000000..601777c50a934cd0053998b21dd2a6b58ab0669c --- /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/AppMobilityServiceUpdate.json b/MEC021/SRV/AMS/json/AppMobilityServiceUpdate.json new file mode 100644 index 0000000000000000000000000000000000000000..2fe7b064ee8b5f1b0b7888197d986356bcf3c1e8 --- /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/ExpiryNotification.json b/MEC021/SRV/AMS/json/ExpiryNotification.json new file mode 100644 index 0000000000000000000000000000000000000000..602c49234c3d11f5b0252cab83e750c51c67f09d --- /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 0000000000000000000000000000000000000000..0b34631c710b930c27801246c48ec1cd3a9b6a80 --- /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 9c2ed02195d97b75b2a0d9e4c75f31912348447c..bbc76b3ec6964f15be903f9dcde0b75d7ae6f00b 100644 --- a/MEC021/SRV/AMS/json/NotificationSubscription.json +++ b/MEC021/SRV/AMS/json/NotificationSubscription.json @@ -1,16 +1,16 @@ { "callbackReference": "http://example.com/callback", - "requestTestNotification": true, + "requestTestNotification": false, "websockNotifConfig": { "websocketUri": "ws://example.com/websocket", "requestWebsocketUri": true }, "expiryDeadline": { - "seconds": 1644691200, + "seconds": 2077353600, "nanoSeconds": 0 }, "filterCriteria": { - "appInstanceId": "app-123" + "appInstanceId": "ca29c5a5-f471-4098-abcb-d55d83410087" }, - "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 0000000000000000000000000000000000000000..fa161b770d56c79ea0b1a99adb00687554855829 --- /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/NotificationSubscriptionUpdate.json b/MEC021/SRV/AMS/json/NotificationSubscriptionUpdate.json new file mode 100644 index 0000000000000000000000000000000000000000..f33e02b796ceada0dc9065407dcf3565435379c9 --- /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/NotificationSubscriptionWithTestNotification.json b/MEC021/SRV/AMS/json/NotificationSubscriptionWithTestNotification.json new file mode 100644 index 0000000000000000000000000000000000000000..536bcc2e50766291d04af8185c79906ae25157aa --- /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/RegistrationInfo.json b/MEC021/SRV/AMS/json/RegistrationInfo.json index ac38cbfb1997b8e5607d4a586a7cf7ce54409525..25839989d9a2c91de5723c27e57c9eb32f81eb91 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": [ diff --git a/MEC021/SRV/AMS/json/TestNotification.json b/MEC021/SRV/AMS/json/TestNotification.json new file mode 100644 index 0000000000000000000000000000000000000000..75ae5984ef0d53ccd89aff5bc851d803a1881194 --- /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 0000000000000000000000000000000000000000..fb646702b03e99229758efb85e78ebb9114bcbc5 --- /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 0000000000000000000000000000000000000000..1519407ab8329f7708e8664323c4bdaf9ba4872d --- /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 0000000000000000000000000000000000000000..b0d3d1b890e3f0eb49247ed4a777c486da2d45ec --- /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 0000000000000000000000000000000000000000..5a5fd0a4137d32f89124047e028cfe40c9e31857 --- /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 0000000000000000000000000000000000000000..cce314925afe2729ccc84bd442804c832d42b86a --- /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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..201b5391a187fe58790322eb0c464d739c9d1274 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 0000000000000000000000000000000000000000..af01800c08deace52ef379d411abec9994efd4ae --- /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/MEC028/WAI/AP_INFO/environment/variables.txt b/MEC028/WAI/AP_INFO/environment/variables.txt index c19b668f78e9eae4c6961493f8d16599d6325db6..c3c9659cd8f8231cd3e9714d4ae064b0a89a4bb8 100644 --- a/MEC028/WAI/AP_INFO/environment/variables.txt +++ b/MEC028/WAI/AP_INFO/environment/variables.txt @@ -4,8 +4,8 @@ ${apiName} wai ${apiVersion} v2 ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} mockoon -${MEC-APP_PORT} 3001 +${MEC-APP_HOST} %{MEC_APP_HOST=127.0.0.1} +${MEC-APP_PORT} %{MEC_APP_PORT=3001} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/MEC028/WAI/EXT_SUB/environment/variables.txt b/MEC028/WAI/EXT_SUB/environment/variables.txt index 7bf7a4bbbf0552db5c80009c89f1f86f4191627f..a0cca77e37f280c88a2a90037f9074e26942d98e 100644 --- a/MEC028/WAI/EXT_SUB/environment/variables.txt +++ b/MEC028/WAI/EXT_SUB/environment/variables.txt @@ -4,8 +4,9 @@ ${apiName} wai ${apiVersion} v2 ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} mockoon -${MEC-APP_PORT} 3001 +${MEC-APP_HOST} %{MEC_APP_HOST=127.0.0.1} +${MEC-APP_PORT} %{MEC_APP_PORT=3001} + ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/MEC028/WAI/MEAS/environment/variables.txt b/MEC028/WAI/MEAS/environment/variables.txt index becba2157fa10a0fb7e7f1b437123486e38333d9..f9f470d8b65372223376c9a718e71111d2d1663f 100644 --- a/MEC028/WAI/MEAS/environment/variables.txt +++ b/MEC028/WAI/MEAS/environment/variables.txt @@ -4,8 +4,9 @@ ${apiName} wai ${apiVersion} v2 ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} mockoon -${MEC-APP_PORT} 3001 +${MEC-APP_HOST} %{MEC_APP_HOST=127.0.0.1} +${MEC-APP_PORT} %{MEC_APP_PORT=3001} + ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/MEC028/WAI/STA_INFO/environment/variables.txt b/MEC028/WAI/STA_INFO/environment/variables.txt index 042ce8f7ad34afda3bd7f7faba05256dbb20bb3c..93cfd0e9b0d62ed90ef280b3b6ff0c202a8c05b5 100644 --- a/MEC028/WAI/STA_INFO/environment/variables.txt +++ b/MEC028/WAI/STA_INFO/environment/variables.txt @@ -4,8 +4,9 @@ ${apiName} wai ${apiVersion} v2 ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} mockoon -${MEC-APP_PORT} 3001 +${MEC-APP_HOST} %{MEC_APP_HOST=127.0.0.1} +${MEC-APP_PORT} %{MEC_APP_PORT=3001} + ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/MEC028/WAI/SUB/environment/variables.txt b/MEC028/WAI/SUB/environment/variables.txt index 963ae9f4054dbe730c9c973913599dd0dd4377e0..47db09f13573159fe744b37d9e743a99453f30f5 100644 --- a/MEC028/WAI/SUB/environment/variables.txt +++ b/MEC028/WAI/SUB/environment/variables.txt @@ -4,8 +4,9 @@ ${apiName} wai ${apiVersion} v2 ${MEC-APP_SCHEMA} http -${MEC-APP_HOST} mockoon -${MEC-APP_PORT} 3001 +${MEC-APP_HOST} %{MEC_APP_HOST=127.0.0.1} +${MEC-APP_PORT} %{MEC_APP_PORT=3001} + ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l diff --git a/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot b/MEC029/SRV/FAIS/PlatFixedAcessInfo.robot index 68ff0575430fd1ae78ae8189fb7f90f91e964cf2..9f06821c2d26a7eb162687be4407fd4c1441be7f 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 @@ -20,9 +18,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 +29,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 +39,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 +49,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 +60,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 +70,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 +80,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 +91,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 +101,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 +111,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 +122,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 +132,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 +142,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 +159,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 @@ -199,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 @@ -212,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 @@ -226,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 @@ -238,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 @@ -258,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 @@ -270,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 @@ -290,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 @@ -302,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 @@ -317,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 @@ -329,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 @@ -365,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 e84f497951fefe33e8e85bc5e4ef5f57f44f36e9..592e22804ca0129daaad3bf460d4b580472fbd54 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 diff --git a/MEC030/SRV/V2X/V2XInformationService.robot b/MEC030/SRV/V2X/V2XInformationService.robot index c6449e1eab0dbc086dc43a68835f3c9a62572f86..ea7482f2803aba0089ae8ad1f8e7fc43138b82f8 100644 --- a/MEC030/SRV/V2X/V2XInformationService.robot +++ b/MEC030/SRV/V2X/V2XInformationService.robot @@ -13,7 +13,7 @@ Library OperatingSystem TC_MEC_MEC030_SRV_V2X_001_OK_01 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu unicast when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.3.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over Uu unicast using ecgi filter ${ECGI} Check HTTP Response Status Code Is 200 @@ -23,7 +23,7 @@ TC_MEC_MEC030_SRV_V2X_001_OK_01 TC_MEC_MEC030_SRV_V2X_001_OK_02 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu unicast when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.3.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over Uu unicast using geographical filter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 200 @@ -32,7 +32,7 @@ TC_MEC_MEC030_SRV_V2X_001_OK_02 TC_MEC_MEC030_SRV_V2X_001_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 030 v3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.3.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over Uu unicast using geographical filter wrong parameter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 400 @@ -42,7 +42,7 @@ TC_MEC_MEC030_SRV_V2X_001_BR TC_MEC_MEC030_SRV_V2X_001_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.3.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.3.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over Uu unicast using ecgi filter ${UNKNOWN_ECGI} Check HTTP Response Status Code Is 404 @@ -53,7 +53,7 @@ TC_MEC_MEC030_SRV_V2X_001_NF TC_MEC_MEC030_SRV_V2X_002_OK_01 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu MBM when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.4.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.4.3.1 Retrieve configured provisioning information over Uu MBM using ecgi filter ${ECGI} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is UuMbmsProvisioningInfo @@ -61,7 +61,7 @@ TC_MEC_MEC030_SRV_V2X_002_OK_01 TC_MEC_MEC030_SRV_V2X_002_OK_02 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu MBMS when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.4.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.4.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over Uu MBM using geographical filter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 200 @@ -70,7 +70,7 @@ TC_MEC_MEC030_SRV_V2X_002_OK_02 TC_MEC_MEC030_SRV_V2X_002_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 030 v3.1.1, clause 7.4.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.4.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over Uu MBM using geographical filter wrong parameter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 400 @@ -78,7 +78,7 @@ TC_MEC_MEC030_SRV_V2X_002_BR TC_MEC_MEC030_SRV_V2X_002_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.4.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.4.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over Uu MBM using geographical filter ${UNKNOWN_LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 404 @@ -89,7 +89,7 @@ TC_MEC_MEC030_SRV_V2X_002_NF TC_MEC_MEC030_SRV_V2X_003_OK_01 [Documentation] ... Check that the IUT responds with a configured provisioning information over PC5 when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.5.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over PC5 using ecgi filter ${ECGI} Check HTTP Response Status Code Is 200 @@ -98,7 +98,7 @@ TC_MEC_MEC030_SRV_V2X_003_OK_01 TC_MEC_MEC030_SRV_V2X_003_OK_02 [Documentation] ... Check that the IUT responds with a configured provisioning information over Uu MBMS when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.5.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over PC5 using geographical filter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 200 @@ -107,7 +107,7 @@ TC_MEC_MEC030_SRV_V2X_003_OK_02 TC_MEC_MEC030_SRV_V2X_003_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 030 v3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.5.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over PC5 using geographical filter wrong parameter ${LAT_VALUE} ${LON_VALUE} Check HTTP Response Status Code Is 400 @@ -116,7 +116,7 @@ TC_MEC_MEC030_SRV_V2X_003_BR TC_MEC_MEC030_SRV_V2X_003_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.5.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.5.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Retrieve configured provisioning information over PC5 using ecgi filter ${UNKNOWN_ECGI} Check HTTP Response Status Code Is 404 @@ -126,7 +126,7 @@ TC_MEC_MEC030_SRV_V2X_003_NF TC_MEC_MEC030_SRV_V2X_004_OK [Documentation] ... Check that the IUT processes properly a request to information of V2X Message Distribution servers - ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Request v2x message distribution servers V2XDistributionServers Check HTTP Response Body Json Schema Is V2XDistributionServers @@ -135,7 +135,7 @@ TC_MEC_MEC030_SRV_V2X_004_OK TC_MEC_MEC030_SRV_V2X_004_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 030 v3.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Request v2x message distribution servers V2XDistributionServers_BR Check HTTP Response Status Code Is 400 @@ -144,7 +144,7 @@ TC_MEC_MEC030_SRV_V2X_004_BR TC_MEC_MEC030_SRV_V2X_004_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Request v2x message distribution servers V2XDistributionServers_NF Check HTTP Response Status Code Is 404 @@ -154,7 +154,7 @@ TC_MEC_MEC030_SRV_V2X_004_NF TC_MEC_MEC030_SRV_V2X_005_OK [Documentation] ... Check that the IUT sends a request about QoS information for a vehicular UE when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Request predicted QoS PredictedQoS.json Check HTTP Response Body Json Schema Is PredictedQoS @@ -164,7 +164,7 @@ TC_MEC_MEC030_SRV_V2X_005_OK TC_MEC_MEC030_SRV_V2X_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 030 v3.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml ##Wrong parameter into JSON: locality instead of locationGranularity Request predicted QoS PredictedQoS_BR.json @@ -173,7 +173,7 @@ TC_MEC_MEC030_SRV_V2X_005_BR TC_MEC_MEC030_SRV_V2X_005_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.6.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.6.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Request predicted QoS PredictedQoS_NF.json Check HTTP Response Status Code Is 404 @@ -184,7 +184,7 @@ TC_MEC_MEC030_SRV_V2X_005_NF TC_MEC_MEC030_SRV_V2X_006_OK [Documentation] ... Check that the IUT processes properly a request to publish a V2X message - ... ETSI GS MEC 030 v3.1.1, clause 7.7.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.7.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Publish V2X message V2xMsgPublication.json Check HTTP Response Status Code Is 204 @@ -192,7 +192,7 @@ TC_MEC_MEC030_SRV_V2X_006_OK TC_MEC_MEC030_SRV_V2X_006_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 030 v3.1.1, clause 7.7.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.7.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Publish V2X message V2xMsgPublication_BR.json Check HTTP Response Status Code Is 400 @@ -203,7 +203,7 @@ TC_MEC_MEC030_SRV_V2X_006_BR TC_MEC_MEC030_SRV_V2X_007_OK_01 [Documentation] ... Check that the IUT responds with the requested list of subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -220,7 +220,7 @@ TC_MEC_MEC030_SRV_V2X_007_OK_01 TC_MEC_MEC030_SRV_V2X_007_OK_02 [Documentation] ... Check that the IUT responds with the requested list of subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -237,7 +237,7 @@ TC_MEC_MEC030_SRV_V2X_007_OK_02 TC_MEC_MEC030_SRV_V2X_007_OK_03 [Documentation] ... Check that the IUT responds with the requested list of subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -254,7 +254,7 @@ TC_MEC_MEC030_SRV_V2X_007_OK_03 TC_MEC_MEC030_SRV_V2X_008_OK_04 [Documentation] ... Check that the IUT responds with the requested list of subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -272,7 +272,7 @@ TC_MEC_MEC030_SRV_V2X_008_OK_04 TC_MEC_MEC030_SRV_V2X_008_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 030 v3.1.1, clause 7.8.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -284,7 +284,7 @@ TC_MEC_MEC030_SRV_V2X_008_BR TC_MEC_MEC030_SRV_V2X_009_OK_01 [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -302,7 +302,7 @@ TC_MEC_MEC030_SRV_V2X_009_OK_01 TC_MEC_MEC030_SRV_V2X_009_OK_02 [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -321,7 +321,7 @@ TC_MEC_MEC030_SRV_V2X_009_OK_02 TC_MEC_MEC030_SRV_V2X_009_OK_03 [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -339,7 +339,7 @@ TC_MEC_MEC030_SRV_V2X_009_OK_03 TC_MEC_MEC030_SRV_V2X_009_OK_04 [Documentation] ... Check that the IUT responds with the requested to create a subscription - ... ETSI GS MEC 030 v3.1.1, clause 7.8.3.4 + ... ETSI GS MEC 030 v3.3.1, clause 7.8.3.4 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 @@ -359,7 +359,7 @@ TC_MEC_MEC030_SRV_V2X_009_OK_04 TC_MEC_MEC030_SRV_V2X_009_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 030 V3.1.1, clause 7.10.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.10.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -371,7 +371,7 @@ TC_MEC_MEC030_SRV_V2X_009_BR TC_MEC_MEC030_SRV_V2X_010_OK_01 [Documentation] ... Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -386,7 +386,7 @@ TC_MEC_MEC030_SRV_V2X_010_OK_01 TC_MEC_MEC030_SRV_V2X_010_OK_02 [Documentation] ... Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -402,7 +402,7 @@ TC_MEC_MEC030_SRV_V2X_010_OK_02 TC_MEC_MEC030_SRV_V2X_010_OK_03 [Documentation] ... Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -417,7 +417,7 @@ TC_MEC_MEC030_SRV_V2X_010_OK_03 TC_MEC_MEC030_SRV_V2X_010_OK_04 [Documentation] ... Check that the IUT responds with the requested of subscription information when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -432,7 +432,7 @@ TC_MEC_MEC030_SRV_V2X_010_OK_04 TC_MEC_MEC030_SRV_V2X_010_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 030 v3.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -443,7 +443,7 @@ TC_MEC_MEC030_SRV_V2X_010_BR TC_MEC_MEC030_SRV_V2X_010_NF [Documentation] ... Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.1 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.1 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -456,7 +456,7 @@ TC_MEC_MEC030_SRV_V2X_010_NF TC_MEC_MEC030_SRV_V2X_011_OK_01 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -474,7 +474,7 @@ TC_MEC_MEC030_SRV_V2X_011_OK_01 TC_MEC_MEC030_SRV_V2X_011_OK_02 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -492,7 +492,7 @@ TC_MEC_MEC030_SRV_V2X_011_OK_02 TC_MEC_MEC030_SRV_V2X_011_OK_03 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -510,7 +510,7 @@ TC_MEC_MEC030_SRV_V2X_011_OK_03 TC_MEC_MEC030_SRV_V2X_011_OK_04 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -528,7 +528,7 @@ TC_MEC_MEC030_SRV_V2X_011_OK_04 TC_MEC_MEC030_SRV_V2X_011_BR [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -541,7 +541,7 @@ TC_MEC_MEC030_SRV_V2X_011_BR TC_MEC_MEC030_SRV_V2X_011_NF [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -556,7 +556,7 @@ TC_MEC_MEC030_SRV_V2X_011_NF TC_MEC_MEC030_SRV_V2X_012_OK_01 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -566,7 +566,7 @@ TC_MEC_MEC030_SRV_V2X_012_OK_01 TC_MEC_MEC030_SRV_V2X_012_OK_02 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -576,7 +576,7 @@ TC_MEC_MEC030_SRV_V2X_012_OK_02 TC_MEC_MEC030_SRV_V2X_012_OK_03 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -586,7 +586,7 @@ TC_MEC_MEC030_SRV_V2X_012_OK_03 TC_MEC_MEC030_SRV_V2X_012_OK_04 [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 @@ -597,7 +597,7 @@ TC_MEC_MEC030_SRV_V2X_012_OK_04 TC_MEC_MEC030_SRV_V2X_012_NF [Documentation] ... Check that the IUT responds with the requested of updating subscription when queried by a MEC Application - ... ETSI GS MEC 030 v3.1.1, clause 7.9.3.2 + ... ETSI GS MEC 030 v3.3.1, clause 7.9.3.2 ... https://forge.etsi.org/rep/mec/gs030-vis-api/-/blob/master/MEC030_V2XInformationServices.yaml Should Be True ${PIC_MEC_SYSTEM} == 1 Should Be True ${PIC_SERVICES} == 1 diff --git a/MEC030/SRV/V2X/environment/variables.txt b/MEC030/SRV/V2X/environment/variables.txt index c4ad9e416d570953495d4c3bb3aae6af04823394..9842a6a17300b24770ec2e66082557ff3360ccf7 100644 --- a/MEC030/SRV/V2X/environment/variables.txt +++ b/MEC030/SRV/V2X/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} mockoon -${PORT} 3005 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=3005} ${response} {} ${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot b/MEC033/MEX/IOTS/IOTDEV/RegisteredDevices.robot index ba938d8dd0c1c022fdd7417382631990850299c3..4e52467f2940ad2728a052a9bb4393cb0d363df6 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 664a174b8b8368a887f6e7473d0fb149fd5da915..43cb156e9fcbb9c5c74621b3071cd867d17dcbca 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 diff --git a/MEC040/SRV/MEF/FederationEnablement.robot b/MEC040/SRV/MEF/FederationEnablement.robot index f89104b7f20cb4e6de871829b92fea6aefc07567..d4f1a287b237061cf05d4f2a652475fbe9647417 100644 --- a/MEC040/SRV/MEF/FederationEnablement.robot +++ b/MEC040/SRV/MEF/FederationEnablement.robot @@ -19,8 +19,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK [Documentation] ... Check that the IUT responds with a list of all available systemInfo ... when requested by a MEC Orchestrator - No query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Retrieve all system info resources Check HTTP Response Status Code Is 200 @@ -33,8 +33,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_02 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - SystemId query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Retrieve all system info resources with query params ${SYSTEM_ID_QUERY_PARAM} Check HTTP Response Status Code Is 200 @@ -48,8 +48,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_03 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - Multiple SystemId query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 @@ -74,8 +74,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_04 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - Empty SystemId query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Retrieve all system info resources @@ -88,8 +88,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_05 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - SystemName query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 ${SYSTEM_NAME_VALUE} Get value entry from JSON file SystemInfo systemName @@ -105,8 +105,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_06 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - Multiple SystemName query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 ${SYSTEM_NAME_VALUE} Get value entry from JSON file SystemInfo systemName ${SYSTEM_NAME_VALUE_2} Get value entry from JSON file SystemInfo2 systemName @@ -131,8 +131,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_07 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - Empty SystemName query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Retrieve all system info resources with query params ${EMPTY_SYSTEM_NAME_QUERY_PARAM} @@ -145,8 +145,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_08 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - systemProvider query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 ${SYS_PROVIDER_VALUE} Get value entry from JSON file SystemInfo systemProvider @@ -163,8 +163,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_09 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - Multiple systemProvider query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Retrieve all system info resources with query params ${MUTIPLE_SYS_PROVIDER_QUERY_PAR} Check HTTP Response Status Code Is 200 @@ -190,8 +190,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_10 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - Empty systemProvider query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Retrieve all system info resources with query params ${EMPTY_SYSTEM_PROVIDER_QUERY_PARAM} Check HTTP Response Status Code Is 200 @@ -206,8 +206,8 @@ TC_MEC_MEC040_SRV_MEF_001_OK_11 [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - Multiple query parameters - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 ${SYS_NAME_VALUE} Get value entry from JSON file SystemInfo systemName ${SYS_ID} Get value entry from JSON file SystemInfo systemName @@ -235,8 +235,8 @@ TC_MEC_MEC040_SRV_MEF_001_NF_01 [Documentation] ... Check that the IUT responds with an error ... when selection is not applicable - SystemId - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Remove specific system info resource ${NOT_EXT_SYSTEM_ID_QUERY_PARAM} Retrieve all system info resources with query params ${NOT_EXT_SYSTEM_ID_QUERY_PARAM} Check HTTP Response Status Code Is 404 @@ -245,8 +245,8 @@ TC_MEC_MEC040_SRV_MEF_001_NF_02 [Documentation] ... Check that the IUT responds with an error ... when selection is not applicable - SystemName - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf ##Test setup not applicable because systemInfo cannot be deleted by systemName Retrieve all system info resources with query params ${NOT_EXT_SYSTEM_NAME_QUERY_PARAM} Check HTTP Response Status Code Is 404 @@ -256,8 +256,8 @@ TC_MEC_MEC040_SRV_MEF_001_NF_03 [Documentation] ... Check that the IUT responds with an error ... when selection is not applicable - SystemProvider - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf ##Test setup not applicable because systemInfo cannot be deleted by systemProvider Retrieve all system info resources with query params ${NOT_EXT_SYS_PROVIDER_QUERY_PARAM} Check HTTP Response Status Code Is 404 @@ -266,16 +266,16 @@ TC_MEC_MEC040_SRV_MEF_001_NF_03 TC_MEC_MEC040_SRV_MEF_001_BR [Documentation] ... Check that the IUT responds with an error when request is malformed - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.1, clause 5.2.2.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.1, clause 5.2.2.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf Retrieve all system info resources wrong URL #Check HTTP Response Status Code Is 400 TC_MEC_MEC040_SRV_MEF_002_OK [Documentation] ... Check that the IUT creates a new systemInfo when requested by a MEC Orchestrator - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.4, clause 5.2.2.1.1 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.4, clause 5.2.2.1.1 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf ##No test setup needed because the systemId is generated by IUT Register System Info SystemInfo Check HTTP Response Status Code Is 201 @@ -293,8 +293,8 @@ TC_MEC_MEC040_SRV_MEF_002_OK TC_MEC_MEC040_SRV_MEF_002_BR_01 [Documentation] ... Check that the IUT responds with an error on creating an existing systemInfo - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.4, clause 5.2.2.1.1 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.4, clause 5.2.2.1.1 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf Register System Info SystemInfoBR Check HTTP Response Status Code Is 400 @@ -303,8 +303,8 @@ TC_MEC_MEC040_SRV_MEF_002_BR_01 TC_MEC_MEC040_SRV_MEF_002_BR_02 [Documentation] ... Check that the IUT responds with an error on providing inconsistent data - ... ETSI GS MEC 040 V3.1.1, clause 7.3.3.4, clause 5.2.2.1.1 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.3.3.4, clause 5.2.2.1.1 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf Register System Info SystemInfoBR Check HTTP Response Status Code Is 400 @@ -312,8 +312,8 @@ TC_MEC_MEC040_SRV_MEF_003_OK [Documentation] ... Check that the IUT responds with a selection of all available systemInfo ... when requested by a MEC Orchestrator - ... ETSI GS MEC 040 V3.1.1, clause 7.4.3.1, clause 5.2.2.1.1 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.4.3.1, clause 5.2.2.1.1 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Retrieve specific system info resource ${SYSTEM_ID_1} Check HTTP Response Status Code Is 200 @@ -325,8 +325,8 @@ TC_MEC_MEC040_SRV_MEF_003_NF [Documentation] ... Check that the IUT responds with an error ... when it receives a request for returning a systemInfo referred with a wrong systemId - ... ETSI GS MEC 040 V3.1.1, clause 7.4.3.1, clause 5.2.2.1.1 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.4.3.1, clause 5.2.2.1.1 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Remove specific system info resource ${NOT_EXISTING_SYSTEM_ID} Retrieve specific system info resource ${NOT_EXISTING_SYSTEM_ID} Check HTTP Response Status Code Is 404 @@ -336,16 +336,16 @@ TC_MEC_MEC040_SRV_MEF_003_BR [Documentation] ... Check that the IUT responds with an error ... when it receives a request for returning a systemInfo referred with a wrong systemId - ... ETSI GS MEC 040 V3.1.1, clause 7.4.3.1, clause 5.2.2.1.1 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause 7.4.3.1, clause 5.2.2.1.1 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf Retrieve specific system info resource ${NOT_EXISTING_SYSTEM_ID} #Check HTTP Response Status Code Is 400 TC_MEC_MEC040_SRV_MEF_004_OK_01 [Documentation] ... Check that the IUT updates the systemInfo when requested by a MEC Orchestrator - ... ETSI GS MEC 040 V3.1.1, clause clause 7.4.3.3, clause 5.2.2.1.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause clause 7.4.3.3, clause 5.2.2.1.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 ${SYS_PROVIDER} Get value entry from JSON file SystemInfoUpdate endpoint Update specific system info resource ${SYSTEM_ID_1} SystemInfoUpdate @@ -357,8 +357,8 @@ TC_MEC_MEC040_SRV_MEF_004_OK_01 TC_MEC_MEC040_SRV_MEF_004_OK_02 [Documentation] ... Check that the IUT updates the systemInfo when requested by a MEC Orchestrator - ... ETSI GS MEC 040 V3.1.1, clause clause 7.4.3.3, clause 5.2.2.1.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause clause 7.4.3.3, clause 5.2.2.1.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Update specific system info resource ${SYSTEM_ID_1} SystemInfoUpdate2 ${SYS_NAME} Get value entry from JSON file SystemInfoUpdate2 systemName @@ -371,8 +371,8 @@ TC_MEC_MEC040_SRV_MEF_004_OK_02 TC_MEC_MEC040_SRV_MEF_004_OK_03 [Documentation] ... Check that the IUT updates the systemInfo when requested by a MEC Orchestrator - ... ETSI GS MEC 040 V3.1.1, clause clause 7.4.3.3, clause 5.2.2.1.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause clause 7.4.3.3, clause 5.2.2.1.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Update specific system info resource ${SYSTEM_ID_1} SystemInfoUpdate3 Check HTTP Response Status Code Is 200 @@ -387,8 +387,8 @@ TC_MEC_MEC040_SRV_MEF_004_OK_03 TC_MEC_MEC040_SRV_MEF_004_NF [Documentation] ... Check that the IUT responds with an error when requested to update an unknown systemInfo - ... ETSI GS MEC 040 V3.1.1, clause clause 7.4.3.3, clause 5.2.2.1.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause clause 7.4.3.3, clause 5.2.2.1.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Remove specific system info resource ${NOT_EXISTING_SYSTEM_ID} Update specific system info resource ${NOT_EXISTING_SYSTEM_ID} SystemInfoUpdate3 Check HTTP Response Status Code Is 404 @@ -397,16 +397,16 @@ TC_MEC_MEC040_SRV_MEF_004_NF TC_MEC_MEC040_SRV_MEF_004_BR_01 [Documentation] ... Check that the IUT responds with an error when requested to update with an inconsistant URI - ... ETSI GS MEC 040 V3.1.1, clause clause 7.4.3.3, clause 5.2.2.1.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause clause 7.4.3.3, clause 5.2.2.1.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf Update specific system info resource ${NOT_EXISTING_SYSTEM_ID} SystemInfoUpdate3 Check HTTP Response Status Code Is 400 TC_MEC_MEC040_SRV_MEF_004_BR_02 [Documentation] ... Check that the IUT responds with an error when requested to update with no data provided - ... ETSI GS MEC 040 V3.1.1, clause clause 7.4.3.3, clause 5.2.2.1.2 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause clause 7.4.3.3, clause 5.2.2.1.2 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Update specific system info resource ${EXPECTED_SYSTEM_ID} SystemInfoUpdateBR Check HTTP Response Status Code Is 400 @@ -416,8 +416,8 @@ TC_MEC_MEC040_SRV_MEF_004_BR_02 TC_MEC_MEC040_SRV_MEF_005_OK [Documentation] ... Check that the IUT responds with an error when requested to delete an unknown systemInfo - ... ETSI GS MEC 040 V3.1.1, clause clause 7.4.3.5, clause 5.2.2.1.3 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause clause 7.4.3.5, clause 5.2.2.1.3 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Register mutiple system Info and get system Ids SystemInfo SystemInfo2 SystemInfo3 Remove specific system info resource ${SYSTEM_ID_1} Check HTTP Response Status Code Is 204 @@ -426,8 +426,8 @@ TC_MEC_MEC040_SRV_MEF_005_OK TC_MEC_MEC040_SRV_MEF_005_NF [Documentation] ... Check that the IUT responds with an error when requested to delete an unknown systemInfo - ... ETSI GS MEC 040 V3.1.1, clause clause 7.4.3.5, clause 5.2.2.1.3 - ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.01.01_60/gs_mec040v030101p.pdf + ... ETSI GS MEC 040 V3.2.1, clause clause 7.4.3.5, clause 5.2.2.1.3 + ... https://www.etsi.org/deliver/etsi_gs/mec/001_099/040/03.02.01_60/gs_mec040v030201p.pdf [Setup] Remove specific system info resource ${NOT_EXISTING_SYSTEM_ID} Remove specific system info resource ${NOT_EXISTING_SYSTEM_ID} Check HTTP Response Status Code Is 404 diff --git a/MEC040/SRV/MEF/environment/variables.txt b/MEC040/SRV/MEF/environment/variables.txt index 8ac81d51a9ec07c2783ac53729289c441cebac8e..ff8e47aa0ee45fda766d9083ac7dd0547dc77b69 100644 --- a/MEC040/SRV/MEF/environment/variables.txt +++ b/MEC040/SRV/MEF/environment/variables.txt @@ -1,8 +1,8 @@ *** Variables *** # Generic variables ${SCHEMA} http -${HOST} 127.0.0.1 -${PORT} 8084 +${HOST} %{MEC_APP_HOST=127.0.0.1} +${PORT} %{MEC_APP_PORT=8084} ${response} {} ${TOKEN} YWxhZGRpbjpvcGVuc2VzYW1l ${apiRoot} diff --git a/MEC045/EVENTSUBNOT/QoSEventSubNot.robot b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot new file mode 100644 index 0000000000000000000000000000000000000000..be1374293f6c926acc50d5966cb308fc109c7051 --- /dev/null +++ b/MEC045/EVENTSUBNOT/QoSEventSubNot.robot @@ -0,0 +1,273 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./QoSEventSubNot.robot +... Test Suite to validate QoSEventSubNot 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 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 + + 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 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 + + 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 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 + + +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 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 + + +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 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 + +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 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 + + +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 + ... 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.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 + + + +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 + ... when commanded by a MEC Application + ... ETSI GS MEC 045 Clause 5.2.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 + 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 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 + + +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 045 Clause 6.3.3, + ... 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_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 045 Clause 6.3.3, + ... 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 + + +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 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 + + 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 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 + + 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 0000000000000000000000000000000000000000..8a7f3b8d08f306b709789c8df488b460dff9aec6 --- /dev/null +++ b/MEC045/EVENTSUBNOT/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/EVENTSUBNOT/jsons/QoSEventSubscription.json b/MEC045/EVENTSUBNOT/jsons/QoSEventSubscription.json new file mode 100644 index 0000000000000000000000000000000000000000..e4dd1fc673ab5eeb61c495b979ef81ee4e1b8e4b --- /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 0000000000000000000000000000000000000000..576bbe0397c5ba0880b2dfb7f263d35b36ba1db4 --- /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 0000000000000000000000000000000000000000..01ad9cbcaaf2a6259378c790679a629ae7582bca --- /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 0000000000000000000000000000000000000000..ac4481fc08e6f79a4e1a089086c61336c5d64e2b --- /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 0000000000000000000000000000000000000000..24dab325f045dda79edddf9c3d13db8e2cc05515 --- /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 0000000000000000000000000000000000000000..609f444f3168772246f7eb65f28cf261ea77bd7a --- /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 0000000000000000000000000000000000000000..1525670f2f5e0e3fa11fb205fb766d9acb48b25f --- /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 0000000000000000000000000000000000000000..d2bc857f532dde25999bdf193f0740cf7550970a --- /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 0000000000000000000000000000000000000000..94e6ae2f7deb20eb941b13ae23ed50715a136567 --- /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 0000000000000000000000000000000000000000..362c452e31a7caccba32d3b216ad862b8d1b5d29 --- /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 0000000000000000000000000000000000000000..b0aad3b087e110917a06eb991726c5e13d126f2c --- /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 0000000000000000000000000000000000000000..9d80a98ed247c3d0a651c63fd5aa121dff20b109 --- /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/libraries/Server.py b/MEC045/EVENTSUBNOT/libraries/Server.py new file mode 100644 index 0000000000000000000000000000000000000000..b1b6c850cbd73a60579b7a647347e25624c05c49 --- /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 0000000000000000000000000000000000000000..ae9419a1e461eeb5b0364d682b763fb97fe10635 --- /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 diff --git a/MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema b/MEC045/EVENTSUBNOT/schemas/QoSEventSubscription.json.schema new file mode 100644 index 0000000000000000000000000000000000000000..1187375cb68a5104423781e5f00435b919c51de7 --- /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." + } + } +} diff --git a/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot b/MEC045/MEASSUBNOT/QoSMeasurementSubNot.robot new file mode 100644 index 0000000000000000000000000000000000000000..d126791e7f4d22725191045c53e4d7d5e9154101 --- /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 QoSMeasureSubscriptionUpdate ${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 QoSMeasureSubscriptionUpdate ${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 0000000000000000000000000000000000000000..8a7f3b8d08f306b709789c8df488b460dff9aec6 --- /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/jsons/QoSMeasureSubscription.json b/MEC045/MEASSUBNOT/jsons/QoSMeasureSubscription.json new file mode 100644 index 0000000000000000000000000000000000000000..6d10f20d65f4e016d7514d3a1d0b6d14128ccc9a --- /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 0000000000000000000000000000000000000000..4a73528ae5903e05d50edad19709434e3fd177fa --- /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 0000000000000000000000000000000000000000..b70e475a8abde4f847316534c19fefb480115cbc --- /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 0000000000000000000000000000000000000000..bb7f8c22dc0b9f03e4ff4c3efd9fa5b0ef4dc70f --- /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 0000000000000000000000000000000000000000..14d5e5daa495652c1e27562f13a6e99a44a75d83 --- /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 0000000000000000000000000000000000000000..a4d740e163f882ad1b41fee96c15002cb10d0d30 --- /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 0000000000000000000000000000000000000000..ee0664afe8183844148a11714e317c507b98357b --- /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 0000000000000000000000000000000000000000..56aeab2ce7f33506bfa8d511fefc1725d411a11c --- /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 0000000000000000000000000000000000000000..af52efd474bd8270f0cdd782091b28ed92e364c6 --- /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 0000000000000000000000000000000000000000..1daafec114fd92fdba82c324d8f044d57be1bc46 --- /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 0000000000000000000000000000000000000000..1f2043f311c494459e999e5a01b4e82cb7603f5a --- /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 0000000000000000000000000000000000000000..2133f556f0ebfd6169bfc3600719f1a80f1280d1 --- /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/libraries/Server.py b/MEC045/MEASSUBNOT/libraries/Server.py new file mode 100644 index 0000000000000000000000000000000000000000..b1b6c850cbd73a60579b7a647347e25624c05c49 --- /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 0000000000000000000000000000000000000000..ae9419a1e461eeb5b0364d682b763fb97fe10635 --- /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 diff --git a/MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema b/MEC045/MEASSUBNOT/schemas/QoSEventSubscription.json.schema new file mode 100644 index 0000000000000000000000000000000000000000..1187375cb68a5104423781e5f00435b919c51de7 --- /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." + } + } +} diff --git a/MEC045/SUBLOOKUP/QoSLookup.robot b/MEC045/SUBLOOKUP/QoSLookup.robot new file mode 100644 index 0000000000000000000000000000000000000000..8dcc0a7d12b4134f3c9cb1253c2419225a7ce8c1 --- /dev/null +++ b/MEC045/SUBLOOKUP/QoSLookup.robot @@ -0,0 +1,159 @@ +Y''[Documentation] robot --outputdir ../../../outputs ./QoSLookup.robot +... Test Suite to validate QoSLookup 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 NotificationSubscriptionList + + +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 NotificationSubscriptionList + + +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 NotificationSubscriptionList + +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 NotificationSubscriptionList + + +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 NotificationSubscriptionList + + +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 0000000000000000000000000000000000000000..9b8c7d3e12640f70b52a7960ad297dec0ddc8c65 --- /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 diff --git a/MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema b/MEC045/SUBLOOKUP/schemas/NotificationSubscriptionList.json.schema new file mode 100644 index 0000000000000000000000000000000000000000..a1ad9ef09505222e06a847df1f33a2bda6d87655 --- /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"] + } + } +}