From 332e9c56955c93212b010930f42236f062a8e22d Mon Sep 17 00:00:00 2001 From: piscione <piscione@etsi.org> Date: Mon, 20 Nov 2023 11:59:10 +0100 Subject: [PATCH] MEC040 early implementation of TCs. Some refinements needed --- MEC040/SRV/FederationEnablement.robot | 228 ++++++++++++++++++++++- MEC040/SRV/environment/variables.txt | 10 +- MEC040/SRV/jsons/SystemInfo.json | 1 - MEC040/SRV/jsons/SystemInfoBR.json | 5 + MEC040/SRV/jsons/SystemInfoUpdate.json | 3 + MEC040/SRV/jsons/SystemInfoUpdate2.json | 3 + MEC040/SRV/jsons/SystemInfoUpdate3.json | 4 + MEC040/SRV/jsons/SystemInfoUpdateBR.json | 2 + 8 files changed, 251 insertions(+), 5 deletions(-) create mode 100644 MEC040/SRV/jsons/SystemInfoBR.json create mode 100644 MEC040/SRV/jsons/SystemInfoUpdate.json create mode 100644 MEC040/SRV/jsons/SystemInfoUpdate2.json create mode 100644 MEC040/SRV/jsons/SystemInfoUpdate3.json create mode 100644 MEC040/SRV/jsons/SystemInfoUpdateBR.json diff --git a/MEC040/SRV/FederationEnablement.robot b/MEC040/SRV/FederationEnablement.robot index c897a25..d59c956 100644 --- a/MEC040/SRV/FederationEnablement.robot +++ b/MEC040/SRV/FederationEnablement.robot @@ -181,7 +181,172 @@ TP_MEC_MEC040_SRV_MEF_001_OK_11 Should Be True '${counterSystemName}'>'0' Should Be True '${counterSystemId}'>'0' +TP_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 + Retrieve all system info resources with query params ${NOT_EXT_SYSTEM_ID_QUERY_PARAM} + Check HTTP Response Status Code Is 404 + +TP_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 + Retrieve all system info resources with query params ${NOT_EXT_SYSTEM_NAME_QUERY_PARAM} + Check HTTP Response Status Code Is 404 + + +TP_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 + Retrieve all system info resources with query params ${NOT_EXT_SYS_PROVIDER_QUERY_PARAM} + Check HTTP Response Status Code Is 404 + +##TODO double check +TP_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 + Retrieve all system info resources wrong URL + #Check HTTP Response Status Code Is 400 + +TP_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 + Register System Info SystemInfo + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is SystemInfo + + +TP_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 + Register System Info SystemInfoBR + Check HTTP Response Status Code Is 400 + + +##TODO double check +TP_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 + Register System Info SystemInfoBR + Check HTTP Response Status Code Is 400 + +TP_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 + Retrieve specific system info resource ${EXPECTED_SYSTEM_ID} + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is SystemInfo + +TP_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 + Retrieve specific system info resource ${NOT_EXISTING_SYSTEM_ID} + Check HTTP Response Status Code Is 404 + +##TODO double check +TP_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 + Retrieve specific system info resource ${NOT_EXISTING_SYSTEM_ID} + #Check HTTP Response Status Code Is 400 + +TP_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 + Update specific system info resource ${EXPECTED_SYSTEM_ID} SystemInfoUpdate + Check HTTP Response Status Code Is 200 + Should Be Equal As Strings ${response['body']['systemProvider']} ${EXPECTED_NEW_SYSTEM_PROVIDER} + +TP_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 + Update specific system info resource ${EXPECTED_SYSTEM_ID} SystemInfoUpdate2 + Check HTTP Response Status Code Is 200 + Should Be Equal As Strings ${response['body']['systemName']} ${EXPECTED_NEW_SYSTEM_NAME} + +TP_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 + Update specific system info resource ${EXPECTED_SYSTEM_ID} SystemInfoUpdate3 + Check HTTP Response Status Code Is 200 + Should Be Equal As Strings ${response['body']['systemName']} ${EXPECTED_NEW_SYSTEM_NAME} + Should Be Equal As Strings ${response['body']['systemProvider']} ${EXPECTED_NEW_SYSTEM_PROVIDER} + +TP_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 + Update specific system info resource ${NOT_EXISTING_SYSTEM_ID} SystemInfoUpdate3 + Check HTTP Response Status Code Is 404 + +##TODO double check the corresponding TP +#TP_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 + #Update specific system info resource ${NOT_EXISTING_SYSTEM_ID} SystemInfoUpdate3 + #Check HTTP Response Status Code Is 400 + +TP_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 + Update specific system info resource ${EXPECTED_SYSTEM_ID} SystemInfoUpdateBR + Check HTTP Response Status Code Is 400 + +TP_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 + Remove specific system info resource ${EXPECTED_SYSTEM_ID} + Check HTTP Response Status Code Is 204 + +TP_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 + Remove specific system info resource ${NOT_EXISTING_SYSTEM_ID} + Check HTTP Response Status Code Is 404 ############################################################################ + + + *** Keywords *** Retrieve all system info resources @@ -194,7 +359,6 @@ Retrieve all system info resources ${output}= Output response Set Suite Variable ${response} ${output} - Retrieve all system info resources with query params [Arguments] ${query_params} Should Be True ${PIC_MEC_PLAT} == 1 @@ -204,4 +368,64 @@ Retrieve all system info resources with query params Set Headers {"Authorization":"${TOKEN}"} GET ${apiRoot}/${apiName}/${apiVersion}/fed_resources/system_info?${query_params} ${output}= Output response - Set Suite Variable ${response} ${output} \ No newline at end of file + Set Suite Variable ${response} ${output} + + Retrieve specific system info resource + [Arguments] ${SYSTEM_INFO_ID} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/${apiVersion}/fed_resources/system_info/${SYSTEM_INFO_ID} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Register System Info + [Arguments] ${content} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + ${file}= Catenate SEPARATOR= jsons/ ${content} .json + ${body}= Get File ${file} + POST ${apiRoot}/${apiName}/${apiVersion}/fed_resources/system_info ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Update specific system info resource + [Arguments] ${systemId} ${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} + PATCH ${apiRoot}/${apiName}/${apiVersion}/fed_resources/system_info/${systemId} ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Remove specific system info resource + [Arguments] ${systemId} + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"application/json"} + DELETE ${apiRoot}/${apiName}/${apiVersion}/fed_resources/system_info/${systemId} + ${output}= Output response + Set Suite Variable ${response} ${output} + + +Retrieve all system info resources wrong URL + Should Be True ${PIC_MEC_PLAT} == 1 + Should Be True ${PIC_SERVICES} == 1 + Set Headers {"Accept":"application/json"} + Set Headers {"Content-Type":"*/*"} + Set Headers {"Authorization":"${TOKEN}"} + GET ${apiRoot}/${apiName}/v10/fed_resources/system_info + ${output}= Output response + Set Suite Variable ${response} ${output} + \ No newline at end of file diff --git a/MEC040/SRV/environment/variables.txt b/MEC040/SRV/environment/variables.txt index 8c8cc9e..f445ea3 100644 --- a/MEC040/SRV/environment/variables.txt +++ b/MEC040/SRV/environment/variables.txt @@ -10,24 +10,30 @@ ${apiName} fed-enablement ${apiVersion} v1 ${EXPECTED_SYSTEM_ID} SYSTEM_ID +${NOT_EXISTING_SYSTEM_ID} NOT_EXISTING_SYS_ID ${EXPECTED_SYSTEM_ID2} SYSTEM_ID2 ${SYSTEM_ID_QUERY_PARAM} systemId=${EXPECTED_SYSTEM_ID} +${NOT_EXT_SYSTEM_ID_QUERY_PARAM} systemId=${NOT_EXISTING_SYSTEM_ID} ${MULTIPLE_SYSTEM_ID_QUERY_PARAM} systemId=${EXPECTED_SYSTEM_ID},${EXPECTED_SYSTEM_ID2} ${EMPTY_SYSTEM_ID_QUERY_PARAM} systemId= ${EXPECTED_SYSTEM_NAME} SYSTEM_NAME ${EXPECTED_SYSTEM_NAME2} SYSTEM_NAME2 +${NOT_EXISTING_SYS_NAME} NOT_EXISTING_SYS_NAME ${SYSTEM_NAME_QUERY_PARAM} systemName=${EXPECTED_SYSTEM_NAME} +${NOT_EXT_SYSTEM_NAME_QUERY_PARAM} systemName=${NOT_EXISTING_SYS_NAME} ${MUTIPLE_SYSTEM_NAME_QUERY_PARAM} systemName=${EXPECTED_SYSTEM_NAME},${EXPECTED_SYSTEM_NAME2} ${EMPTY_SYSTEM_NAME_QUERY_PARAM} systemName= ${EXPECTED_SYSTEM_PROVIDER} SYSTEM_PROVIDER ${EXPECTED_SYSTEM_PROVIDER2} SYSTEM_PROVIDER2 +${NOT_EXT_SYS_PROVIDER} NOT_EXISTING_SYS_PROVIDER ${SYSTEM_PROVIDER_QUERY_PARAM} systemProvider=${EXPECTED_SYSTEM_PROVIDER} +${NOT_EXT_SYS_PROVIDER_QUERY_PARAM} systemProvider=${NOT_EXT_SYS_PROVIDER} ${MUTIPLE_SYS_PROVIDER_QUERY_PAR} systemProvider=${EXPECTED_SYSTEM_PROVIDER},${EXPECTED_SYSTEM_PROVIDER2} ${EMPTY_SYSTEM_PROVIDER_QUERY_PARAM} systemProvider= ${FILTER_ON_SYSTEM_ID_AND_NAME} systemId=${EXPECTED_SYSTEM_ID},systemName=${EXPECTED_SYSTEM_NAME} - - +${EXPECTED_NEW_SYSTEM_PROVIDER} SYSTEM_NEW_ENDPOINT_1 +${EXPECTED_NEW_SYSTEM_NAME} SYSTEM_NEW_NAME_1 diff --git a/MEC040/SRV/jsons/SystemInfo.json b/MEC040/SRV/jsons/SystemInfo.json index ce8b0d4..6abc01c 100644 --- a/MEC040/SRV/jsons/SystemInfo.json +++ b/MEC040/SRV/jsons/SystemInfo.json @@ -1,5 +1,4 @@ { - "systemId": "systemId", "systemName": "systemNamea", "systemProvider": "systemProvider" } \ No newline at end of file diff --git a/MEC040/SRV/jsons/SystemInfoBR.json b/MEC040/SRV/jsons/SystemInfoBR.json new file mode 100644 index 0000000..fff9ecc --- /dev/null +++ b/MEC040/SRV/jsons/SystemInfoBR.json @@ -0,0 +1,5 @@ +{ + "systemId":"SYSTEM_ID", + "systemName": "systemNamea", + "systemProvider": "systemProvider" +} \ No newline at end of file diff --git a/MEC040/SRV/jsons/SystemInfoUpdate.json b/MEC040/SRV/jsons/SystemInfoUpdate.json new file mode 100644 index 0000000..20ba866 --- /dev/null +++ b/MEC040/SRV/jsons/SystemInfoUpdate.json @@ -0,0 +1,3 @@ +{ + "endpoint": "SYSTEM_NEW_ENDPOINT_1" +} \ No newline at end of file diff --git a/MEC040/SRV/jsons/SystemInfoUpdate2.json b/MEC040/SRV/jsons/SystemInfoUpdate2.json new file mode 100644 index 0000000..5ce2c24 --- /dev/null +++ b/MEC040/SRV/jsons/SystemInfoUpdate2.json @@ -0,0 +1,3 @@ +{ + "systemName": "SYSTEM_NEW_NAME_1" +} \ No newline at end of file diff --git a/MEC040/SRV/jsons/SystemInfoUpdate3.json b/MEC040/SRV/jsons/SystemInfoUpdate3.json new file mode 100644 index 0000000..d986693 --- /dev/null +++ b/MEC040/SRV/jsons/SystemInfoUpdate3.json @@ -0,0 +1,4 @@ +{ + "endpoint": "SYSTEM_NEW_ENDPOINT_1", + "systemName": "SYSTEM_NEW_NAME_1" +} \ No newline at end of file diff --git a/MEC040/SRV/jsons/SystemInfoUpdateBR.json b/MEC040/SRV/jsons/SystemInfoUpdateBR.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/MEC040/SRV/jsons/SystemInfoUpdateBR.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file -- GitLab