PlatUeIdentity.robot 7.59 KB
Newer Older
Yann Garcia's avatar
Yann Garcia committed
''[Documentation]   robot --outputdir ../../outputs ./PlatUeIdentity.robot
...    Test Suite to validate UE Identity Tag (UETAG) operations.

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



*** Test Cases ***
    [Documentation]   TC_MEC_SRV_UETAG_001_OK
Yann Garcia's avatar
Yann Garcia committed
    ...  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
Yann Garcia's avatar
Yann Garcia committed
    ...  Reference https://forge.etsi.org/gitlab/mec/gs014-ue-identity-api/blob/master/UEidentityAPI.yaml#/definitions/UeIdentityTagInfo
    Check HTTP Response Status Code Is    200
    Check HTTP Response Body Json Schema Is   ueIdentityTagInfo
    Check Result Contains    ${response['body']['ueIdentityTagInfo']['ueIdentityTags']}    ueIdentityTag    ${UE_IDENTITY_TAG}
Request UE Identity Tag information using bad parameters
    [Documentation]   TC_MEC_SRV_UETAG_001_BR
Yann Garcia's avatar
Yann Garcia committed
    ...  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

Request UE Identity Tag information using non-existent application instance
    [Documentation]   TC_MEC_SRV_UETAG_001_NF
Yann Garcia's avatar
Yann Garcia committed
    ...  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
Yann Garcia's avatar
Yann Garcia committed
    ...  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
Yann Garcia's avatar
Yann Garcia committed
    ...  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
Yann Garcia's avatar
Yann Garcia committed
    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?ueIdentityTag=${UE_IDENTITY_TAG}
    ${output}=    Output    response
Yann Garcia's avatar
Yann Garcia committed
    Set Suite Variable    ${response}    ${output}


Get UE Identity Tag information using bad parameters
# FIXME Which IE protocol should be invalid?
Yann Garcia's avatar
Yann Garcia committed
    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
Yann Garcia's avatar
Yann Garcia committed
    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/${NON_EXISTENT_APP_INSTANCE_ID}/ue_identity_tag_info?ueIdentityTag=${UE_IDENTITY_TAG}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}

Update an UE Identity Tag
    [Arguments]    ${content}
Yann Garcia's avatar
Yann Garcia committed
    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}"}
Yann Garcia's avatar
Yann Garcia committed
    ## 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
Yann Garcia's avatar
Yann Garcia committed
    log    ${content}
    Put    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    ${content}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}

Update an UE Identity Tag using invalid state
    [Arguments]    ${content}
Yann Garcia's avatar
Yann Garcia committed
    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}"}
    # Test Body: Register the tag user and check that the IUT has registered the tag user
    Put    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    ${content}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}

Yann Garcia's avatar
Yann Garcia committed

Update an UE Identity Tag using a not applicable valid state
Yann Garcia's avatar
Yann Garcia committed
    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}"}
    # Test Body: Register the tag user and check that the IUT has registered the tag user
    Put    /exampleAPI/ui/v1/${APP_INSTANCE_ID}/ue_identity_tag_info    ${content}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output}
    # TODO Check ProblemDetails