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

refactor: centralize setup and teardown logic

parent e448630c
Loading
Loading
Loading
Loading
+15 −55
Original line number Diff line number Diff line
*** Settings ***
Documentation       Three brokers are set up A, B and C. A has two registrations, one inclusive for the entities created in B and one exclusive for the entity created in C.

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/IOPUtils/InteroperabilityUtils.resource

Test Setup          Setup Initial Context Source Registrations
Test Teardown       Delete Entities and Delete Registrations

*** Variables ***
${first_entity_payload_filename}               interoperability/offstreet-parking1-full.jsonld
${second_entity_payload_filename}              interoperability/offstreet-parking2-full.jsonld
${third_entity_payload_filename}               interoperability/offstreet-parking2-no-location-and-totalspotsnumber.jsonld
${inclusive_registration_payload_file_path}    csourceRegistrations/interoperability/context-source-registration-inclusive-2.jsonld
${exclusive_registration_payload_file_path}    csourceRegistrations/interoperability/context-source-registration-exclusive-2.jsonld
${broker_A_url}
${broker_B_url}
${broker_C_url}
@@ -59,50 +49,20 @@ Setup Initial Context Source Registrations
    Set Suite Variable    ${entity_id}
    ${second_entity_id}=    Generate Random Parking Entity Id
    Set Suite Variable    ${second_entity_id}
    ${response}=    Create Entity    ${first_entity_payload_filename}    ${entity_id}    broker_url=${broker_B_url}
    Check Response Status Code    201    ${response.status_code}
    ${response}=    Create Entity    ${third_entity_payload_filename}    ${second_entity_id}    broker_url=${broker_B_url}
    Check Response Status Code    201    ${response.status_code}
    ${response}=    Create Entity    ${second_entity_payload_filename}    ${entity_id}    broker_url=${broker_C_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_id1}=     Generate Random CSR Id
    Set Suite Variable    ${registration_id1}
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id1}
    ...    ${inclusive_registration_payload_file_path}
    ...    entity_id=${entity_id}
    ...    broker_url=${broker_B_url}
    ...    mode=inclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${broker_A_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_id2}=     Generate Random CSR Id
    Set Suite Variable    ${registration_id2}
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id2}
    ...    ${inclusive_registration_payload_file_path}
    ...    entity_id=${second_entity_id}
    ...    broker_url=${broker_B_url}
    ...    mode=inclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${broker_A_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_id3}=     Generate Random CSR Id
    Set Suite Variable    ${registration_id3}
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id3}
    ...    ${exclusive_registration_payload_file_path}
    ...    entity_id=${entity_id}
    ...    broker_url=${broker_C_url}
    ...    mode=exclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${broker_A_url}
    Check Response Status Code    201    ${response.status_code}
    ${response}=    Initialize Three Broker IOP Scenario
    ...    ${entity_id}
    ...    ${second_entity_id}
    ...    ${entity_id}
    ...    ${broker_A_url}
    ...    ${broker_B_url}
    ...    ${broker_C_url}

Delete Entities And Delete Registrations
    Delete Context Source Registration    ${registration_id1}    broker_url=${broker_A_url}
    Delete Context Source Registration    ${registration_id2}    broker_url=${broker_A_url}
    Delete Context Source Registration    ${registration_id3}    broker_url=${broker_A_url}
    Delete Entity    ${entity_id}    broker_url=${broker_B_url}
    Delete Entity    ${second_entity_id}    broker_url=${broker_B_url}
    Delete Entity    ${entity_id}    broker_url=${broker_C_url}
 No newline at end of file
    ${response}=    Delete Three Broker IOP Scenario
    ...    ${entity_id}
    ...    ${second_entity_id}
    ...    ${entity_id}
    ...    ${broker_A_url}
    ...    ${broker_B_url}
    ...    ${broker_C_url}
 No newline at end of file
+16 −56
Original line number Diff line number Diff line
*** Settings ***
Documentation       Three brokers are set up A, B and C. A has two registrations, one inclusive for the entities created in B and one exclusive for the entity created in C. 

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/InteroperabilityUtils.resource

Test Setup          Setup Initial Context Source Registrations
Test Teardown       Delete Entities and Delete Registrations

*** Variables ***
${first_entity_payload_filename}               interoperability/offstreet-parking1-full.jsonld
${second_entity_payload_filename}              interoperability/offstreet-parking2-full.jsonld
${third_entity_payload_filename}               interoperability/offstreet-parking2-no-location-and-totalspotsnumber.jsonld
${inclusive_registration_payload_file_path}    csourceRegistrations/interoperability/context-source-registration-inclusive-2.jsonld
${exclusive_registration_payload_file_path}    csourceRegistrations/interoperability/context-source-registration-exclusive-2.jsonld
${broker_A_url}
${broker_B_url}
${broker_C_url}

*** Test Cases ***
IOP_CNF_01_01 Query Entities Of Type OffstreetParking Via POST
IOP_CNF_01_02 Query Entities Of Type OffstreetParking Via POST
    [Documentation]    The client sends and HTTP POST request to check that the entities can be queried from all brokers.
    [Tags]    since_v1.6.1    iop    4_3_3    cf_06    additive-inclusive    proxy-exclusive    4_3_6    5_7_2    6_23_2_1

@@ -59,50 +49,20 @@ Setup Initial Context Source Registrations
    Set Suite Variable    ${entity_id}
    ${second_entity_id}=    Generate Random Parking Entity Id
    Set Suite Variable    ${second_entity_id}
    ${response}=    Create Entity    ${first_entity_payload_filename}    ${entity_id}    broker_url=${broker_B_url}
    Check Response Status Code    201    ${response.status_code}
    ${response}=    Create Entity    ${third_entity_payload_filename}    ${second_entity_id}    broker_url=${broker_B_url}
    Check Response Status Code    201    ${response.status_code}
    ${response}=    Create Entity    ${second_entity_payload_filename}    ${entity_id}    broker_url=${broker_C_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_id1}=     Generate Random CSR Id
    Set Suite Variable    ${registration_id1}
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id1}
    ...    ${inclusive_registration_payload_file_path}
    ...    entity_id=${entity_id}
    ...    broker_url=${broker_B_url}
    ...    mode=inclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${broker_A_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_id2}=     Generate Random CSR Id
    Set Suite Variable    ${registration_id2}
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id2}
    ...    ${inclusive_registration_payload_file_path}
    ...    entity_id=${second_entity_id}
    ...    broker_url=${broker_B_url}
    ...    mode=inclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${broker_A_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_id3}=     Generate Random CSR Id
    Set Suite Variable    ${registration_id3}
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id3}
    ...    ${exclusive_registration_payload_file_path}
    ...    entity_id=${entity_id}
    ...    broker_url=${broker_C_url}
    ...    mode=exclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${broker_A_url}
    Check Response Status Code    201    ${response.status_code}
    ${response}=    Initialize Three Broker IOP Scenario
    ...    ${entity_id}
    ...    ${second_entity_id}
    ...    ${entity_id}
    ...    ${broker_A_url}
    ...    ${broker_B_url}
    ...    ${broker_C_url}

Delete Entities And Delete Registrations
    Delete Context Source Registration    ${registration_id1}    broker_url=${broker_A_url}
    Delete Context Source Registration    ${registration_id2}    broker_url=${broker_A_url}
    Delete Context Source Registration    ${registration_id3}    broker_url=${broker_A_url}
    Delete Entity    ${entity_id}    broker_url=${broker_B_url}
    Delete Entity    ${second_entity_id}    broker_url=${broker_B_url}
    Delete Entity    ${entity_id}    broker_url=${broker_C_url}
 No newline at end of file
    ${response}=    Delete Three Broker IOP Scenario
    ...    ${entity_id}
    ...    ${second_entity_id}
    ...    ${entity_id}
    ...    ${broker_A_url}
    ...    ${broker_B_url}
    ...    ${broker_C_url}
 No newline at end of file
+15 −0
Original line number Diff line number Diff line
import  os

IOP_REGISTRY_URL = {
    "parking": {
        "full_1": "interoperability/offstreet-parking1-full.jsonld",
        "full_2": "interoperability/offstreet-parking2-full.jsonld",
        "no_location_and_totalspotnumber_2": "interoperability/offstreet-parking2-no-location-and-totalspotsnumber.jsonld"
    },
    "registration": {
        "inclusive_1": "csourceRegistrations/interoperability/context-source-registration-inclusive-1.jsonld",
        "inclusive_2": "csourceRegistrations/interoperability/context-source-registration-inclusive-2.jsonld",
        "exclusive_1": "csourceRegistrations/interoperability/context-source-registration-exclusive-1.jsonld",
        "exclusive_2": "csourceRegistrations/interoperability/context-source-registration-exclusive-2.jsonld"
    }
}
 No newline at end of file
+92 −0
Original line number Diff line number Diff line
*** Settings ***
Documentation       Common keywords used in setup steps for interoperability

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
Variables           ${EXECDIR}/resources/IOPUtils/IOPRegistry.py

*** Keywords ***
Provision Entity And Registration For IOP Test
    [Arguments]    ${entity_id}
    ...            ${entity_payload}
    ...            ${registration_id}
    ...            ${registration_payload_file}
    ...            ${broker_url}
    ...            ${target_broker_url}
    ...            ${mode}

    ${response}=    Create Entity
    ...    ${entity_payload}
    ...    ${entity_id}
    ...    broker_url=${broker_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id}
    ...    ${registration_payload_file}
    ...    entity_id=${entity_id}
    ...    mode=${mode}
    ...    broker_url=${broker_url}
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    content_type=${CONTENT_TYPE_LD_JSON}    broker_url=${target_broker_url}
    Check Response Status Code    201    ${response.status_code}

Initialize Three Broker IOP Scenario
    [Arguments]    ${first_entity_id}
    ...            ${second_entity_id}
    ...            ${third_entity_id}
    ...            ${first_broker_url}
    ...            ${second_broker_url}
    ...            ${third_broker_url}

    ${registration_id1}=    Generate Random CSR Id
    Set Suite Variable    ${registration_id1}
    ${registration_id2}=    Generate Random CSR Id
    Set Suite Variable    ${registration_id2}
    ${registration_id3}=    Generate Random CSR Id
    Set Suite Variable    ${registration_id3}

    ${response}=    Provision Entity And Registration For IOP Test
    ...    ${first_entity_id}
    ...    ${IOP_REGISTRY_URL}[parking][full_1]
    ...    ${registration_id1}
    ...    ${IOP_REGISTRY_URL}[registration][inclusive_2]
    ...    ${second_broker_url}
    ...    ${first_broker_url}
    ...    inclusive

    ${response}=    Provision Entity And Registration For IOP Test
    ...    ${second_entity_id}
    ...    ${IOP_REGISTRY_URL}[parking][no_location_and_totalspotnumber_2]
    ...    ${registration_id2}
    ...    ${IOP_REGISTRY_URL}[registration][inclusive_2]
    ...    ${second_broker_url}
    ...    ${first_broker_url}
    ...    inclusive

    ${response}=    Provision Entity And Registration For IOP Test
    ...    ${third_entity_id}
    ...    ${IOP_REGISTRY_URL}[parking][full_2]
    ...    ${registration_id3}
    ...    ${IOP_REGISTRY_URL}[registration][exclusive_2]
    ...    ${third_broker_url}
    ...    ${first_broker_url}
    ...    exclusive

Delete Three Broker IOP Scenario
    [Arguments]    ${first_entity_id}
    ...            ${second_entity_id}
    ...            ${third_entity_id}
    ...            ${first_broker_url}
    ...            ${second_broker_url}
    ...            ${third_broker_url}

    Delete Context Source Registration    ${registration_id1}    broker_url=${first_broker_url}
    Delete Context Source Registration    ${registration_id2}    broker_url=${first_broker_url}
    Delete Context Source Registration    ${registration_id3}    broker_url=${first_broker_url}
    Delete Entity    ${first_entity_id}    broker_url=${second_broker_url}
    Delete Entity    ${second_entity_id}    broker_url=${second_broker_url}
    Delete Entity    ${third_entity_id}    broker_url=${third_broker_url}
 No newline at end of file