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

feat: add create tests for first interoperabilty case

parent dc4f9e50
Loading
Loading
Loading
Loading
+72 −0
Original line number Diff line number Diff line
*** Settings ***
Documentation       Verify that the broker b2 mirrors the information stored in the b1 broker and broker b3 contains some exclusive data.

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

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

*** Variables ***
${entity_payload_filename}                        interoperability/offstreet-parking1-full.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
${registration_id1}                               urn:ngsi-ld:ContextSourceRegistration:Inclusive:2
${registration_id2}                               urn:ngsi-ld:ContextSourceRegistration:Exclusive:2
${entity_id}                                      urn:ngsi-ld:OffStreetParking:1
${b1_url}                                         
${b2_url}                                         
${b3_url}                                         

*** Test Cases ***
IOP_CNF_01_01 Create Entity In B1 And Retrieve Entity In All Brokers
    [Documentation]    Check that entities are created in b1 and b2 but not in b3.
    [Tags]    6_1    I6_1_1_1    Inclusive    Exclusive    Interoperability
    
    ${expected_payload}=    Load Entity    ${entity_payload_filename}    ${entity_id}
    ${response}=    Create Entity From File    ${entity_payload_filename}    broker_url=${b1_url}    
    Check Response Status Code    201    ${response.status_code}

    ${response}=    Retrieve Entity by Id    ${entity_id}    local=true    broker_url=${b1_url}    context=${ngsild_test_suite_context}
    Check Response Status Code    200    ${response.status_code}
    Should Be Equal    ${response.json()}    ${expected_payload}

    ${response}=    Retrieve Entity by Id    ${entity_id}    local=true    broker_url=${b2_url}    context=${ngsild_test_suite_context}
    Check Response Status Code    200    ${response.status_code}
    Should Contain    ${response.json()}    availableSpotsNumber
    Should Contain    ${response.json()}    totalSpotsNumber
    Should Not Contain    ${response.json()}    location

    ${response}=    Retrieve Entity by Id    ${entity_id}    local=true    broker_url=${b3_url}
    Check Response Status Code    404    ${response.status_code}

*** Keywords ***
Setup Initial Context Source Registrations
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id1}
    ...    ${inclusive_registration_payload_file_path}
    ...    entity_id=${entity_id}
    ...    broker_url=${b2_url}
    ...    mode=inclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${b1_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id2}
    ...    ${exclusive_registration_payload_file_path}
    ...    entity_id=${entity_id}
    ...    broker_url=${b3_url}
    ...    mode=exclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${b1_url}
    Check Response Status Code    201    ${response.status_code}

Delete Entities And Delete Registrations
    Delete Context Source Registration    ${registration_id1}    broker_url=${b1_url}
    Delete Context Source Registration    ${registration_id2}    broker_url=${b1_url}
    Delete Entity By Id    ${entity_id}    broker_url=${b1_url}
    Delete Entity By Id    ${entity_id}    broker_url=${b2_url}
    Delete Entity By Id    ${entity_id}    broker_url=${b3_url}
 No newline at end of file
+72 −0
Original line number Diff line number Diff line
*** Settings ***
Documentation       Verify that the brokers b1 and b2 do not contain an exclusive attributes found in the b3 broker.

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          Setup Initial Context Source Registrations
Test Teardown       Delete Entities and Delete Registrations

*** Variables ***
${entity_payload_filename}                        interoperability/offstreet-parking2-full.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
${registration_id1}                               urn:ngsi-ld:ContextSourceRegistration:Inclusive:2
${registration_id2}                               urn:ngsi-ld:ContextSourceRegistration:Exclusive:2
${entity_id}                                      urn:ngsi-ld:OffStreetParking:2
${b1_url}                                         
${b2_url}                                         
${b3_url}                                         

*** Test Cases ***
IOP_CNF_01_02 Create Entity In B1 And Retrieve Entity In All Brokers
    [Documentation]    Check that, in b1 and b2, the entity does not contain the attribute location, said attribute will be contained in b3 thanks to an exclusive registration.
    [Tags]    6_1    I6_1_1_2    Inclusive    Exclusive    Interoperability

    ${response}=    Create Entity From File    ${entity_payload_filename}    ${b1_url}
    Check Response Status Code    201    ${response.status_code}

    ${response}=    Retrieve Entity by Id    ${entity_id}    context=${ngsild_test_suite_context}    broker_url=${b1_url}    local=true
    Check Response Status Code    200    ${response.status_code}
    Should Not Contain    ${response.json()}    location

    ${response}=    Retrieve Entity by Id    ${entity_id}    context=${ngsild_test_suite_context}    broker_url=${b2_url}    local=true
    Check Response Status Code    200    ${response.status_code}
    Should Not Contain    ${response.json()}    location

    ${response}=    Retrieve Entity by Id    ${entity_id}    context=${ngsild_test_suite_context}    broker_url=${b3_url}    local=true
    Check Response Status Code    200    ${response.status_code}
    Should Contain    ${response.json()}    location

*** Keywords ***
Setup Initial Context Source Registrations
    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id1}
    ...    ${inclusive_registration_payload_file_path}
    ...    entity_id=${entity_id}
    ...    broker_url=${b2_url}
    ...    mode=inclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${b1_url}
    Check Response Status Code    201    ${response.status_code}

    ${registration_payload}=    Prepare Context Source Registration From File
    ...    ${registration_id2}
    ...    ${exclusive_registration_payload_file_path}
    ...    entity_id=${entity_id}
    ...    broker_url=${b3_url}
    ...    mode=exclusive
    ${response}=    Create Context Source Registration With Return    ${registration_payload}    broker_url=${b1_url}
    Check Response Status Code    201    ${response.status_code}

Delete Entities And Delete Registrations
    Delete Context Source Registration    ${registration_id1}    broker_url=${b1_url}
    Delete Context Source Registration    ${registration_id2}    broker_url=${b1_url}
    Delete Entity By Id    ${entity_id}    broker_url=${b1_url}
    Delete Entity By Id    ${entity_id}    broker_url=${b2_url}
    Delete Entity By Id    ${entity_id}    broker_url=${b3_url}
+18 −0
Original line number Diff line number Diff line
{
  "id": "urn:ngsi-ld:ContextSourceRegistration:Auxiliary:1",
  "type": "ContextSourceRegistration",
  "information": [
    {
      "entities": [
        {
          "type": "OffStreetParking"
        }
      ]
    }
  ], 
  "mode": "auxiliary",
  "endpoint": "xxx",
  "@context":[
    "https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld"
  ]
}
 No newline at end of file
+22 −0
Original line number Diff line number Diff line
{
  "id": "urn:ngsi-ld:ContextSourceRegistration:Auxiliary:2",
  "type": "ContextSourceRegistration",
  "information": [
    {
      "entities": [
        {
          "type": "OffStreetParking"
        }
      ],
      "propertyNames": [
        "availableSpotsNumber",
        "totalSpotsNumber"			
      ]
    }
  ],
  "mode": "auxiliary",
  "endpoint": "xxx",
  "@context":[
    "https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld"
  ]
}
 No newline at end of file
+21 −0
Original line number Diff line number Diff line
{
  "id": "urn:ngsi-ld:ContextSourceRegistration:Exclusive:1",
  "type": "ContextSourceRegistration",
  "information": [
    {
      "entities": [
        {
          "id": "urn:ngsi-ld:OffStreetParking:2"
        }
      ],
      "propertyNames": [
        "totalSpotsNumber"		
      ]
    }
  ],
  "mode": "exclusive",
  "endpoint": "xxx",
  "@context":[
    "https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld"
  ]
}
 No newline at end of file
Loading