Commit f7c06e08 authored by Benedetta Arena's avatar Benedetta Arena
Browse files

feat: add new test for loop detection with two Via

parent e93693ec
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
*** Settings ***
Documentation       Verify that the request contains the VIA when forwarding operations through Context Source Registrations
Documentation       Verify that the request contains the VIA when forwarding operations to the Context Broker

Resource            ${EXECDIR}/resources/ApiUtils/Common.resource
Resource            ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource
@@ -18,8 +18,8 @@ ${entity_payload_filename} vehicle-simple-attributes.jsonld
${registration_payload_file_path}    csourceRegistrations/context-source-registration-vehicle-redirection-ops.jsonld

*** Test Cases ***
D018_02 Loop Detection In Context Source Registrations
    [Documentation]    Verify that the request contains the VIA when forwarding operations through Context Source Registrations
D018_02 Check Via Header For Loop Detection
    [Documentation]    Verify that the request contains the VIA when forwarding operations to the Context Broker
    [Tags]    since_v1.6.1    dist-ops    4_3_3    cf_06    additive-inclusive    5_6_6    6_3_18

    Set Stub Reply    DELETE    /broker1/ngsi-ld/v1/entities/${entity_id}    204
+63 −0
Original line number Diff line number Diff line
*** Settings ***
Documentation       Verify that the request contains both the VIA header from the Context Broker and the Via from the Context Source

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.jsonld
${registration_payload_file_path}    csourceRegistrations/context-source-registration-vehicle-redirection-ops.jsonld

*** Test Cases ***
D018_03 Check Via Header For Loop Detection
    [Documentation]    Verify that the request contains both the VIA header from the Context Broker and the Via from the Context Source
    [Tags]    since_v1.6.1    dist-ops    4_3_3    cf_06    additive-inclusive    5_6_6    6_3_18

    Set Stub Reply    DELETE    /broker1/ngsi-ld/v1/entities/${entity_id}    204
    ${response}=    Delete Entity    ${entity_id}
    Check Response Status Code    204    ${response.status_code}

    Wait For Request
    ${response}=    Get Request Headers
    ${payload}=    Convert To Dictionary    ${response}
    Dictionary Should Contain Key    ${payload}    Via
    Dictionary Should Contain Key    ${payload}    ${expected_payload}

*** 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}

    Wait For Request
    ${response}=    Get Request Headers
    ${payload}=    Convert To Dictionary    ${response}
    ${expected_payload}=    Get From Dictionary    ${payload}    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}
    ...    entity_id=${entity_id}
    ...    mode=inclusive
    ...    endpoint=/broker1
    ${response}=    Create Context Source Registration With Return    ${registration_payload}
    Check Response Status Code    201    ${response.status_code}

    Start Context Source Mock Server

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