Commit 7c5b7337 authored by Benedetta Arena's avatar Benedetta Arena
Browse files

feat: add test case for loop detection in context source registrations

parent 87bd9b41
Loading
Loading
Loading
Loading
+55 −0
Original line number Diff line number Diff line
*** Settings ***
Documentation       Verify that the broker prevents loop when forwarding operations through Context Source Registrations

Resource            ${EXECDIR}/resources/ApiUtils/Common.resource
Resource            ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource
Resource            ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource
Resource            ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource
Resource            ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource
Resource            ${EXECDIR}/resources/AssertionUtils.resource
Resource            ${EXECDIR}/resources/JsonUtils.resource
Resource            ${EXECDIR}/resources/MockServerUtils.resource

Test Setup          Create Entity And Registration On The Context Broker And Start Context Source Mock Server
Test Teardown       Delete Registrations And Stop Context Source Mock Server

*** Variables ***
${entity_payload_filename}           vehicle-simple-attributes-second-different.jsonld
${registration_payload_file_path}    csourceRegistrations/context-source-registration-vehicle-speed-with-redirection-ops.jsonld

*** Test Cases ***
D018_01 Loop Detection In Context Source Registrations
    [Documentation]    Verify that the broker prevents loop when forwarding operations through Context Source Registrations
    [Tags]    since_v1.6.1    dist-ops    4_3_3    cf_06    proxy-exclusive    4_3_6_3    5_6_6

    ${response}=    Delete Entity    ${entity_id}    context=${ngsild_test_suite_context}

    ${response}=    Get Request Headers
    ${actual_payload}=    Get From Dictionary    ${response}    Via
    Dictionary Should Contain Key    ${actual_payload}    ${expected_payload}
    Reply By    508


*** Keywords ***
Create Entity And Registration On The Context Broker And Start Context Source Mock Server
    ${entity_id}=    Generate Random Vehicle Entity Id
    Set Suite Variable    ${entity_id}
    ${response}=    Create Entity    ${entity_payload_filename}    ${entity_id}
    Check Response Status Code    201    ${response.status_code}

    ${response}=    Get Request Headers
    ${expected_payload}=    Get From Dictionary    ${response}    Via
    Set Suite Variable    ${expected_payload}

    ${registration_id}=    Generate Random CSR Id
    Set Suite Variable    ${registration_id}
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id}
    ...    ${registration_payload_file_path}
    ...    mode=exclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}
    Check Response Status Code    201    ${response.status_code}

Delete Registrations And Stop Context Source Mock Server
    Delete Entity    ${entity_id}
    Delete Context Source Registration    ${registration_id}