Skip to content
common.resource 5.22 KiB
Newer Older
Jorge Moratinos's avatar
Jorge Moratinos committed
*** Settings ***
Library         /opt/robot-tests/tests/libraries/helpers.py
Library    Process
Library    Collections
Variables       /opt/robot-tests/tests/libraries/environment.py
Resource        /opt/robot-tests/tests/resources/common/basicRequests.robot
Jorge Moratinos's avatar
Jorge Moratinos committed


*** Variables ***
${INVOKER_USERNAME}             ROBOT_TESTING_INVOKER
${PROVIDER_USERNAME}            ROBOT_TESTING_PROVIDER
${APF_PROVIDER_USERNAME}        APF_${PROVIDER_USERNAME}
${AEF_PROVIDER_USERNAME}        AEF_${PROVIDER_USERNAME}
${AMF_PROVIDER_USERNAME}        AMF_${PROVIDER_USERNAME}

${INVOKER_NOT_REGISTERED}       not-valid
${INVOKER_ROLE}                 invoker
${PROVIDER_ROLE}                provider

${CAPIF_HOSTNAME}               capifcore
${CAPIF_VAULT}                  vault
${CAPIF_VAULT_PORT}             8200
${CAPIF_VAULT_TOKEN}            read-ca-token
${CAPIF_REGISTER}               register
${CAPIF_REGISTER_PORT}          8084
${CAPIF_HTTP_PORT}              ${EMPTY}
${CAPIF_HTTPS_PORT}             ${EMPTY}
Jorge Moratinos's avatar
Jorge Moratinos committed
${CAPIF_IP}                     127.0.0.1
${CAPIF_CALLBACK_IP}            host.docker.internal
${CAPIF_CALLBACK_PORT}          8086

${REGISTER_ADMIN_USER}          admin
${REGISTER_ADMIN_PASSWORD}      password123

${MOCK_SERVER_URL}               http://192.168.0.14:9090


Jorge Moratinos's avatar
Jorge Moratinos committed
${DISCOVER_URL}                 /service-apis/v1/allServiceAPIs?api-invoker-id=


*** Keywords ***
Reset Testing Environment
    Log    Db capif.invokerdetails collection will be removed in order to isolate each test.

    # Clean Test Information By HTTP Requests
Jorge Moratinos's avatar
Jorge Moratinos committed
    Clean Test Information

Check Location Header
    [Documentation]    This keyword will check location header at response according to regular expression provided as argument
    [Arguments]    ${resp}    ${regular_expression}

    ${event_url}=    Parse Url    ${resp.headers['Location']}

    Should Match Regexp    ${event_url.path}    ${regular_expression}
    RETURN    ${event_url}

Check Event Location Header
    [Arguments]    ${resp}

    ${event_url}=    Check Location Header    ${resp}    ${LOCATION_EVENT_RESOURCE_REGEX}

    ${subscriber_id}    ${subscription_id}=    Get Subscriber And Subscription From Location    ${event_url.path}

    RETURN    ${subscriber_id}    ${subscription_id}

Check Problem Details
    [Arguments]    ${resp}    &{input_parameters}
    Check Variable    ${resp.json()}    ProblemDetails
    FOR    ${input}    IN    @{input_parameters}
        Log    ${input}=${input_parameters['${input}']}
        Should Match    "${resp.json()['${input}']}"    "${input_parameters['${input}']}"
    END

Check Response Variable Type And Values
    [Arguments]    ${resp}    ${status_code}    ${variable_type}    &{input_parameters}
    Status Should Be    ${status_code}    ${resp}
    Check Variable    ${resp.json()}    ${variable_type}
    FOR    ${input}    IN    @{input_parameters}
        Log    ${input}=${input_parameters['${input}']}
        Should Match Regexp    "${resp.json()['${input}']}"    "${input_parameters['${input}']}"
    END

Remove Keys From Object
    [Arguments]    ${input}    @{keys_to_remove}

    ${filtered_input}=    Remove Keys From Object Helper    ${input}    ${keys_to_remove}

    RETURN    ${filtered_input}

Test ${TEST NAME} Currently Not Supported
    Log    Test "${TEST NAME}" Currently not supported    WARN
    Skip    Test "${TEST NAME}" Currently not supported

Start Mock server
    Log  Starting mock Server for Robot Framework.

    # Run Process      pip3 install -r /opt/robot-tests/tests/libraries/mock_server/requirements.txt
Jorge Moratinos's avatar
Jorge Moratinos committed
    ${server_process}=     Start Process    python3  /opt/robot-tests/tests/libraries/mock_server/mock_server.py   shell=True
    # Log	  PID: ${server_process.pid}
    Log   output: ${server_process.stdout}
    
    Sleep    5m
    Create Session    mockserver    ${MOCK_SERVER_URL}

    ${endpoint}=    Set Variable  /testing

    ${json}=    Create Dictionary      events="SERVICE_API_INVOCATION_SUCCESS"       subscriptionId="255545008cd3937f5554a3651bbfb9"

    ${resp}=    POST On Session
    ...    mockserver
    ...    ${endpoint}
    ...    json=${json}
    ...    expected_status=any
    ...    verify=False

    ${result}=	 Terminate Process  ${server_process}

Check Mock Server
    Log  Checking mock Server for Robot Framework.

    Create Session    mockserver    ${MOCK_SERVER_URL}

    ${endpoint}=    Set Variable  /requests_list

    ${resp}=    GET On Session
    ...    mockserver
    ...    ${endpoint}
    ...    expected_status=any
    ...    verify=False

    Status Should Be    200    ${resp}

Clean Mock Server
    Log  Checking mock Server for Robot Framework.

    Create Session    mockserver    ${MOCK_SERVER_URL}

    ${endpoint}=    Set Variable  /requests_list

    ${resp}=    DELETE On Session
    ...    mockserver
    ...    ${endpoint}
    ...    expected_status=any
    ...    verify=False

    Status Should Be    200    ${resp}


Get Mock Server Messages
    Log  Checking mock Server for Robot Framework.

    Create Session    mockserver    ${MOCK_SERVER_URL}

    ${endpoint}=    Set Variable  /requests_list

    ${resp}=    GET On Session
    ...    mockserver
    ...    ${endpoint}
    ...    expected_status=any
    ...    verify=False

    Status Should Be    200    ${resp}
    Log List    ${resp.json()}