Commit bd1b7d9f authored by Elian Kraja's avatar Elian Kraja
Browse files

Refactoring folders. Updates on SRV/PlatUeIdentity file adding high level test...

Refactoring folders. Updates on SRV/PlatUeIdentity file adding high level test cases and moved low level code to specific keywords
parent 73ec70a5
Loading
Loading
Loading
Loading
+98 −73
Original line number Diff line number Diff line
@@ -2,125 +2,150 @@
...    Test Suite to validate UE Identity Tag (UETAG) operations.

*** Settings ***
Resource    ../../environment/variables.txt
Resource    ../../resources/GenericKeywords.robot
Resource    ../../resources/UEidentityAPI.robot
Resource    environment/variables.txt
Resource    environment/pics.txt
Resource    resources/GenericKeywords.robot
Resource    resources/UEidentityAPI.robot
Library     REST    ${MEC-APP_SCHEMA}://${MEC-APP_HOST}:${MEC-APP_PORT}    ssl_verify=false

Default Tags    TC_MEC_SRV_UETAG

*** Variables ***


*** Test Cases ***
Get UE Identity Tag information
Request UE Identity Tag information
    [Documentation]   TC_MEC_SRV_UETAG_001_OK
    ...  Check that the IUT responds with the information on a UE Identity tag when queried by a MEC Application
    ...  Reference ETSI GS MEC 014 V1.1.1, clause 7.3.3.1
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo    

    [Tags]    TP_MEC_SRV_UETAG_001_OK    TP_MEC_SRV_UETAG

    Set Headers    {"Accept":"application/json"}
    Set Headers    {"Content-Type":"application/json"}
    Set Headers    {"Authorization":"Basic YWxhZGRpbjpvcGVuc2VzYW1l"}
    Set Headers    {"Content-Length":"0"}
    Get    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info?ueIdentityTag=${UE_IDENTITY_TAG}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    Get UE Identity Tag information
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is   ueIdentityTagInfo
    #Log    Check ueIdentityTagsList for ${UE_IDENTITY_TAG} element
    Should Be Present In Json List    ${response['body']['ueIdentityTagInfo']['ueIdentityTags']}    ueIdentityTag    ${UE_IDENTITY_TAG}
    Check Result Contains    ${response['body']['ueIdentityTagInfo']['ueIdentityTags']}    ueIdentityTag    ${UE_IDENTITY_TAG}
    
Bad Request error on UE Identity Tag registration
# FIXME Which IE protocol should be invalid?

Request UE Identity Tag information using bad parameters
    [Documentation]   TC_MEC_SRV_UETAG_001_BR
    ...  Check that the IUT responds with an error when a request with incorrect parameters is sent by a MEC Application
    ...  Reference ETSI GS MEC 014 V1.1.1, clause 7.3.3.1
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo
    Get UE Identity Tag information using bad parameters
    Check HTTP Response Status Code Is    400


    [Tags]    TP_MEC_SRV_UETAG_001_BR    TP_MEC_SRV_UETAG
Request UE Identity Tag information using non-existent application instance
    [Documentation]   TC_MEC_SRV_UETAG_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 014 V1.1.1, clause 7.3.3.1
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo
    Get UE Identity Tag information using non-existent application instance
    Check HTTP Response Status Code Is    404


Register an UE Identity Tag
    [Documentation]   TP_MEC_SRV_UETAG_002_OK
    ...  Check that the IUT registers a tag (representing a UE) or a list of tags when commanded by a MEC Application
    ...  Reference ETSI GS MEC 014 V1.1.1, clause 7.3.3.2
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo 
    Update an UE Identity Tag      {"ueIdentityTags":[{"ueIdentityTag":"${UE_IDENTITY_TAG}","state":"REGISTERED"}]}
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is    UeIdentityTagInfo
    Log    Checking Postcondition
    Check User Identity Tag state    ${UE_IDENTITY_TAG}    REGISTERED
    

Register an UE Identity Tag using invalid state
    [Documentation]   TP_MEC_SRV_UETAG_002_BR
    ...  Check that the IUT responds with an error when an unauthorised request is sent by a MEC Application
    ...  Reference ETSI GS MEC 014 V1.1.1, clause 7.3.3.2
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo
    Update an UE Identity Tag using invalid state    {"ueIdentityTags":[{"ueIdentityTag":"${UE_IDENTITY_TAG}","state":"INVALID_STATE"}]}
    Check HTTP Response Status Code Is    400
    
    
Unregister an UE Identity Tag already in unregistered state
    [Documentation]   TP_MEC_SRV_UETAG_002_PF
    ...  Check that the IUT responds with ProblemDetails on information an invalid URI
    ...  Reference ETSI GS MEC 014 V1.1.1, clause 7.3.3.2
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo    
    Update an UE Identity Tag using a not applicable valid state    {"ueIdentityTags":[{"ueIdentityTag":"${UE_IDENTITY_TAG_INVALID_STATE}","state":"UNREGISTERED"}]}
    Check HTTP Response Status Code Is    412
    

*** Keywords ***
Get UE Identity Tag information
    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":"Basic YWxhZGRpbjpvcGVuc2VzYW1l"}
    Set Headers    {"Authorization":"${TOKEN}"}
    Set Headers    {"Content-Length":"0"}
    Get    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/invalid/ue_identity_tag_info?ueIdentityTag=${UE_IDENTITY_TAG}
    Get    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info?ueIdentityTag=${UE_IDENTITY_TAG}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    Check HTTP Response Status Code Is    400
    
Not Found error on UE Identity Tag registration
    [Documentation]   TC_MEC_SRV_UETAG_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 014 V1.1.1, clause 7.3.3.1
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo
    
    [Tags]    TP_MEC_SRV_UETAG_001_NF    TP_MEC_SRV_UETAG
Get UE Identity Tag information using bad parameters
# FIXME Which IE protocol should be invalid?
    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}"}
    Set Headers    {"Content-Length":"0"}
    Get    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info?ueIdentityTagERROR=${UE_IDENTITY_TAG}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}


Get UE Identity Tag information using non-existent application instance
    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":"Basic YWxhZGRpbjpvcGVuc2VzYW1l"}
    Set Headers    {"Authorization":"${TOKEN}"}
    Set Headers    {"Content-Length":"0"}
    Get    /exampleAPI/ui/v1/${NON_EXISTENT_APP_INSTANCE_ID}/ue_identity_tag_info?ueIdentityTag=${UE_IDENTITY_TAG}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    Check HTTP Response Status Code Is    404

Register a UE Identity Tag
    [Documentation]   TC_MEC_PLAT_UETAG_002_OK
    ...  Check that the IUT registers a tag (representing a UE) or a list of tags when commanded by a MEC Application
    ...  Reference ETSI GS MEC 014 V1.1.1, clause 7.3.3.2
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo
    
    [Tags]    TP_MEC_SRV_UETAG_002_OK    TP_MEC_SRV_UETAG

Update an UE Identity Tag
    [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    {"Content-Type":"application/json"}
    Set Headers    {"Authorization":"Basic YWxhZGRpbjpvcGVuc2VzYW1l"}
    Set Headers    {"Authorization":"${TOKEN}"}
    ## As far as I understood, we are not checking preconditions. 
    # Preamble: Check that the user tag is not registered
    Check User Identity Tag state    ${UE_IDENTITY_TAG}    UNREGISTERED
    # Test Body: Register the tag user and check that the IUT has registered the tag user
    Post    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    {"ueIdentityTags":[{"ueIdentityTag":"${UE_IDENTITY_TAG}","state":"REGISTERED"}]}
    ## Check User Identity Tag state    ${UE_IDENTITY_TAG}    UNREGISTERED
    Put    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    ${content}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    Check User Identity Tag state    ${UE_IDENTITY_TAG}    REGISTERED

Bad Request error on invalid state
    [Documentation]   TC_MEC_PLAT_UETAG_002_BR
    ...  Check that the IUT responds with an error when an unauthorised request is sent by a MEC Application
    ...  Reference ETSI GS MEC 014 V1.1.1, clause 7.3.3.2
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo

    [Tags]    TP_MEC_SRV_UETAG_002_BR    TP_MEC_SRV_UETAG
    
Update an UE Identity Tag using invalid state
    [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    {"Content-Type":"application/json"}
    Set Headers    {"Authorization":"Basic YWxhZGRpbjpvcGVuc2VzYW1l"}
    Set Headers    {"Authorization":"${TOKEN}"}
    # Test Body: Register the tag user and check that the IUT has registered the tag user
    Post    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    {"ueIdentityTags":[{"ueIdentityTag":"${UE_IDENTITY_TAG}","state":"INVALID_STATE"}]}
    Put    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    ${content}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    Check HTTP Response Status Code Is    400

Precondition Failed error on invalid state
    [Documentation]   TC_MEC_PLAT_UETAG_002_PF
    ...  Check that the IUT responds with ProblemDetails on information an invalid URI
    ...  Reference ETSI GS MEC 014 V1.1.1, clause 7.3.3.2
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo
    
    [Tags]    TP_MEC_SRV_UETAG_002_PF    TP_MEC_SRV_UETAG

Update an UE Identity Tag using a not applicable valid state 
    [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    {"Content-Type":"application/json"}
    Set Headers    {"Authorization":"Basic YWxhZGRpbjpvcGVuc2VzYW1l"}
    Set Headers    {"Authorization":"${TOKEN}"}
    # Test Body: Register the tag user and check that the IUT has registered the tag user
    Post    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    {"ueIdentityTags":[{"ueIdentityTag":"${UE_IDENTITY_TAG_INVALID_STATE}","state":"UNREGISTERED"}]}
    Put    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    ${content}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    Check HTTP Response Status Code Is    412
    
    # TODO Check ProblemDetails
    
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
*** Variables ***

${PIC_MEC_PLAT}    1 
${PIC_SERVICES}    1
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -10,3 +10,4 @@ ${NON_EXISTENT_APP_INSTANCE_ID} appInst99
${UE_IDENTITY_TAG}                  UeTagA
${UE_IDENTITY_TAG_INVALID_STATE}    UeTagC
${response}                         {}
${TOKEN}                            Basic YWxhZGRpbjpvcGVuc2VzYW1l
+5 −0
Original line number Diff line number Diff line
@@ -32,3 +32,8 @@ Should Be Present In Json List
    \  Exit For Loop If    "${item['${json_field}']}" == "${json_value}"
    Log    Item found ${item}
    [return]    ${item}


Check Result Contains  
    [Arguments]    ${source}    ${parameter}    ${value}
    Should Be Present In Json List    ${source}    ${parameter}    ${value}
 No newline at end of file
Loading