From dd0fe5545c6732eb5709aa7dcb97bcb223894ef3 Mon Sep 17 00:00:00 2001 From: Serafino Date: Wed, 7 Aug 2024 17:42:06 +0200 Subject: [PATCH 1/8] Changed Query Entities and Retrieve Entity By Id in order to take optional local parameter --- .../ApiUtils/ContextInformationConsumption.resource | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/resources/ApiUtils/ContextInformationConsumption.resource b/resources/ApiUtils/ContextInformationConsumption.resource index 8658f815..14593dc5 100755 --- a/resources/ApiUtils/ContextInformationConsumption.resource +++ b/resources/ApiUtils/ContextInformationConsumption.resource @@ -41,6 +41,7 @@ Query Entities ... ${geometry}=${EMPTY} ... ${count}=${EMPTY} ... ${q}=${EMPTY} + ... ${local}=${EMPTY} ${attrs_length}= Get Length ${attrs} ${accept_length}= Get Length ${accept} ${options_length}= Get Length ${options} @@ -83,7 +84,7 @@ Query Entities END IF '${count}'!='' Set To Dictionary ${params} count=${count} IF '${q}'!='' Set To Dictionary ${params} q=${q} - + IF '${local}'!='' Set To Dictionary ${params} local=${local} ${response}= GET ... url=${url}/${ENTITIES_ENDPOINT_PATH} ... headers=${headers} @@ -222,7 +223,7 @@ Retrieve Attributes RETURN ${response} Retrieve Entity by Id - [Arguments] ${id} ${accept}=${CONTENT_TYPE_LD_JSON} ${context}=${EMPTY} + [Arguments] ${id} ${accept}=${CONTENT_TYPE_LD_JSON} ${context}=${EMPTY} ${local}=${EMPTY} ${headers}= Create Dictionary Set To Dictionary ${headers} Accept ${accept} IF '${context}'!='' @@ -230,7 +231,11 @@ Retrieve Entity by Id ... ${headers} ... Link=<${context}>; rel="http://www.w3.org/ns/json-ld#context";type="application/ld+json" END - ${response}= GET url=${url}/${ENTITIES_ENDPOINT_PATH}${id} headers=${headers} expected_status=any + IF '${local}'=='true' + ${response}= GET url=${url}/${ENTITIES_ENDPOINT_PATH}${id}&local=true headers=${headers} expected_status=any + ELSE + ${response}= GET url=${url}/${ENTITIES_ENDPOINT_PATH}${id} headers=${headers} expected_status=any + END Output ${response} Retrieve Entity by Id RETURN ${response} -- GitLab From 0fade25040ce1778404e759af153539c52242c9d Mon Sep 17 00:00:00 2001 From: Serafino Date: Wed, 7 Aug 2024 17:45:12 +0200 Subject: [PATCH 2/8] added some tests for dist ops --- .../QueryEntity/055_01_01.robot | 54 +++++++++++++++ .../QueryEntity/055_01_02.robot | 52 +++++++++++++++ .../QueryEntity/055_01_03.robot | 56 ++++++++++++++++ .../QueryEntity/055_01_04.robot | 53 +++++++++++++++ .../QueryEntity/055_02_01.robot | 61 +++++++++++++++++ .../QueryEntity/055_02_02.robot | 61 +++++++++++++++++ .../QueryEntity/055_02_03.robot | 59 +++++++++++++++++ .../QueryEntity/055_03.robot | 66 +++++++++++++++++++ .../RetrieveEntity/054_01_01.robot | 49 ++++++++++++++ .../RetrieveEntity/054_01_02.robot | 49 ++++++++++++++ .../RetrieveEntity/054_02.robot | 65 ++++++++++++++++++ resources/variables.py | 10 ++- 12 files changed, 632 insertions(+), 3 deletions(-) create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot new file mode 100644 index 00000000..0d3fc56b --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot @@ -0,0 +1,54 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_01_01 Query CB1 With Type + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries CB1 for type, entity with matching type on CB2 gets returned + @{entities_id}= Create List ${entity_id} + ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot new file mode 100644 index 00000000..14bb77bd --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot @@ -0,0 +1,52 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_01_02 Query CB1 With Type Locally + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for type with local flag, no entity gets returned + ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} local=true + Check Response Status Code 200 ${response.status_code} + Should Be Empty ${response.json()} + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot new file mode 100644 index 00000000..91f5b050 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot @@ -0,0 +1,56 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_01_03 Query CB1 With Type And Attribute + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for type and attribute, entity gets returned with just that attribute + @{entities_id}= Create List ${entity_id} + ${expected}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename} + ${response}= Query Entities entity_types=Vehicle attrs=brandName context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + Check JSON Value In Response Body ['brandName'] ${expected['brandName']} ${response.json()[0]} + Check JSON Value Not In Response Body ['isParked'] ${response.json()[0]} + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot new file mode 100644 index 00000000..f126769a --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot @@ -0,0 +1,53 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +55_01_04 Query CB1 With Type And Missing Attribute + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for type and an attribute that is missing, no entity gets returned + ${response}= Query Entities entity_types=Vehicle attrs=speed context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Should Be Empty ${response.json()} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot new file mode 100644 index 00000000..e45474b0 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot @@ -0,0 +1,61 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_02_01 Query CB1 With Type and Attribute In Entity2 + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for attribute present in entity on CB2, only that entity gets returned + @{entities_id}= Create List ${entity_id2} + ${response}= Query Entities entity_types=Vehicle attrs=isParked2 context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id2} + ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id2} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id2} + Delete Context Source Registration ${registration_id} + + diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot new file mode 100644 index 00000000..f9ab3f3c --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot @@ -0,0 +1,61 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_02_02 Query CB1 With Type and Attribute In Both + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for attribute present in both entities, both of them get returned + @{entities_id}= Create List ${entity_id} ${entity_id2} + ${response}= Query Entities entity_types=Vehicle attrs=brandName context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id2} + ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id2} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id2} + Delete Context Source Registration ${registration_id} + + diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot new file mode 100644 index 00000000..af19a669 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot @@ -0,0 +1,59 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_02_03 Query CB1 With Type and Attribute In Neither + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for attribute present in neither of the entities, neither of them gets returned + ${response}= Query Entities entity_types=Vehicle attrs=speed context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Should Be Empty ${response.json()} + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id2} + ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id2} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id2} + Delete Context Source Registration ${registration_id} + + diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot new file mode 100644 index 00000000..f69f4551 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot @@ -0,0 +1,66 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, entities with same id on CB1 and on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} vehicle-simple-different-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_03_01 Query CB1 With Type + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for type, enities on CB1 and CB2 matching that type and with the same id get merged and returned as one entity + @{entities_id}= Create List ${entity_id} + ${expected}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename} + ${expected2}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename2} + ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + Should Have Value In Json ${response.json()[0]} $.brandName + Should Have Value In Json ${response.json()[0]} $.speed + Should Have Value In Json ${response.json()[0]} $.isParked + Should Have Value In Json ${response.json()[0]} $.isParked2 + + + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${response}= Create Entity ${entity_payload_filename2} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id} + Delete Context Source Registration ${registration_id} + + diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot new file mode 100644 index 00000000..fc478c3c --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot @@ -0,0 +1,49 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one retrieves entity from CB1 the request gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +054_01_01 Retrive entity on CB2 from CB1 + [Tags] dist-ops e-retrieve 5_7_1 + [Documentation] Check that if one retrieves entity living on CB2 from CB1, entity gets returned + ${response}= Retrieve Entity By Id ${entity_id} context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check JSON Value In Response Body ['id'] ${entity_id} ${response.json()} + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot new file mode 100644 index 00000000..5eb91e5d --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot @@ -0,0 +1,49 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one retrieves entity from CB1 the request gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +054_01_02 Retrive entity on CB2 from CB1 with local flag + [Tags] dist-ops e-retrieve 5_7_1 + [Documentation] Check that if one retrieves entity living on CB2 from CB1 with local flag, entity not found error is raised + ${response}= Retrieve Entity By Id ${entity_id} context=${ngsild_test_suite_context} local=true + Check Response Status Code 404 ${response.status_code} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot new file mode 100644 index 00000000..0fa0e1ed --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot @@ -0,0 +1,65 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and entity on CB2, if one retrieves available entity types from CB1 the request gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_id_prefix2} urn:ngsi-ld:Building: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} building-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld +${expectation_file_path} ${EXECDIR}/data/types/expectations/entity-type-list-022-01-02-expectation.json + +*** Test Cases *** +054_01_01 Retrive entity on CB2 from CB1 + [Tags] dist-ops ed-types 5_7_5 + [Documentation] Check that if one retrieves available entity from CB1, entity types from both CB get returned + ${response}= Retrieve Entity Types context=${ngsild_test_suite_context} + ${expected}= Load JSON From File ${expectation_file_path} + Check Response Status Code 200 ${response.status_code} + ${ignored_keys}= Create List id + ${comparison}= Compare Dictionaries Ignoring Keys ${expected} ${response.json()} ${ignored_keys} + Should Be Empty ${comparison} msg=${comparison.pretty()} + + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${entity_id2}= Generate Random Entity Id ${entity_id_prefix2} + Set Suite Variable ${entity_id2} + ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id2} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id2} + Delete Context Source Registration ${registration_id} + + diff --git a/resources/variables.py b/resources/variables.py index 10170932..7ca5489e 100644 --- a/resources/variables.py +++ b/resources/variables.py @@ -1,7 +1,7 @@ -url = 'http://localhost:8080/ngsi-ld/v1' -temporal_api_url = 'http://localhost:8080/ngsi-ld/v1' +url = 'http://localhost:1026/ngsi-ld/v1' +temporal_api_url = 'http://localhost:1026/ngsi-ld/v1' ngsild_test_suite_context = 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld' -notification_server_host = '0.0.0.0' +notification_server_host = '172.17.0.1' notification_server_port = 8085 context_source_host = '0.0.0.0' context_source_port = 8086 @@ -9,6 +9,10 @@ context_server_host = '0.0.0.0' context_server_port = 8087 core_context = 'https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.6.jsonld' +#DistOps varibles +remote_url = 'https://orion.ngsild.sferainnovazione.com/ngsi-ld/v1' +context_source_endpoint = 'https://orion.ngsild.sferainnovazione.com' + # GitHub repository details # github_owner = 'your_github_username' # github_broker_repo = 'context_broker_repository' -- GitLab From bc9e57e840be2fee2662952d20619e394300f1a9 Mon Sep 17 00:00:00 2001 From: Serafino Date: Wed, 7 Aug 2024 17:46:18 +0200 Subject: [PATCH 3/8] added some utility keywords for distops test cases --- .../ApiUtils/DistributedOperations.resource | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 resources/ApiUtils/DistributedOperations.resource diff --git a/resources/ApiUtils/DistributedOperations.resource b/resources/ApiUtils/DistributedOperations.resource new file mode 100644 index 00000000..e13e78bf --- /dev/null +++ b/resources/ApiUtils/DistributedOperations.resource @@ -0,0 +1,68 @@ +*** Settings *** +Variables ${EXECDIR}/resources/variables.py +Library ${EXECDIR}/libraries/logUtils.py +Library RequestsLibrary +Library Collections +Library JSONLibrary +Library String + +***Variables*** +${CONTENT_TYPE_LD_JSON} application/ld+json +${ENTITIES_ENDPOINT_PATH} entities + +***Keywords*** +Create Entity On Remote Broker + [Arguments] ${filename} ${entity_id} + ${entity_payload}= Load JSON From File ${EXECDIR}/data/entities/${filename} + ${entity}= Update Value To JSON + ... ${entity_payload} + ... $..id + ... ${entity_id} + ${entity}= Update Value To JSON + ... ${entity_payload} + ... $..id + ... ${entity_id} + &{headers}= Create Dictionary Content-Type=application/ld+json + ${response}= POST + ... url=${remote_url}/${ENTITIES_ENDPOINT_PATH} + ... json=${entity} + ... headers=${headers} + ... expected_status=any + Output ${response} Create Entity On Remote Broker + RETURN ${response} + +Delete Entity by Id On Remote Broker + [Arguments] ${id} + ${response}= DELETE + ... url=${remote_url}/${ENTITIES_ENDPOINT_PATH}${id} + ... expected_status=any + Output ${response} Delete Entity by Id On Remote Broker + RETURN ${response} + +Create ContextSourceRegistration With Mode + [Arguments] ${id} ${registration_file} ${entity_id}=${EMPTY} ${mode}=${EMPTY} + + ${payload}= Load JSON From File ${EXECDIR}/data/${registration_file} + ${registration_payload}= Update Value To JSON + ... ${payload} + ... $..id + ... ${id} + ${registration_payload}= Update Value To JSON + ... ${registration_payload} + ... $..endpoint + ... ${context_source_endpoint} + IF '${entity_id}' != '' + ${dict}= Create Dictionary id=${entity_id} + ${registration_payload}= Add Object To JSON + ... ${registration_payload} + ... $..entities[*] + ... ${dict} + END + IF '${mode}' != '' + ${dict}= Create Dictionary mode=${mode} + ${registration_payload}= Add Object To JSON + ... ${registration_payload} + ... $ + ... ${dict} + END + RETURN ${registration_payload} -- GitLab From 60d991cdc4a980568ad47731622748d4b382e247 Mon Sep 17 00:00:00 2001 From: Serafino Date: Wed, 7 Aug 2024 17:48:51 +0200 Subject: [PATCH 4/8] added some samples --- ...egistration-vehicle-complete-sample.jsonld | 23 +++++++++++++++++ ...cle-simple-attributes-second-sample.jsonld | 20 +++++++++++++++ ...-simple-different-attributes-sample.jsonld | 25 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 data/csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld create mode 100644 data/entities/vehicle-simple-attributes-second-sample.jsonld create mode 100644 data/entities/vehicle-simple-different-attributes-sample.jsonld diff --git a/data/csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld b/data/csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld new file mode 100644 index 00000000..2c2d5b08 --- /dev/null +++ b/data/csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld @@ -0,0 +1,23 @@ +{ + "id": "urn:ngsi-ld:ContextSourceRegistration:randomUUID", + "type": "ContextSourceRegistration", + "information": [ + { + "entities": [ + { + "type": "Vehicle" + } + ], + "propertyNames": [ + "brandName" + ], + "relationshipNames": [ + "isParked" + ] + } + ], + "endpoint": "http://my.csource.org:1026", + "@context": [ + "https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld" + ] +} diff --git a/data/entities/vehicle-simple-attributes-second-sample.jsonld b/data/entities/vehicle-simple-attributes-second-sample.jsonld new file mode 100644 index 00000000..ae40bc8f --- /dev/null +++ b/data/entities/vehicle-simple-attributes-second-sample.jsonld @@ -0,0 +1,20 @@ +{ + "id": "urn:ngsi-ld:Vehicle:randomUUID", + "type": "Vehicle", + "brandName": { + "type": "Property", + "value": "BMW" + }, + "isParked2": { + "type": "Relationship", + "object": "urn:ngsi-ld:OffStreetParking:Downtown2", + "observedAt": "2017-07-29T12:00:04Z", + "providedBy": { + "type": "Relationship", + "object": "urn:ngsi-ld:Person:Alice" + } + }, + "@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 diff --git a/data/entities/vehicle-simple-different-attributes-sample.jsonld b/data/entities/vehicle-simple-different-attributes-sample.jsonld new file mode 100644 index 00000000..294a87d9 --- /dev/null +++ b/data/entities/vehicle-simple-different-attributes-sample.jsonld @@ -0,0 +1,25 @@ +{ + "id": "urn:ngsi-ld:Vehicle:randomUUID", + "type": "Vehicle", + "speed": { + "type": "Property", + "value": 56, + "source": { + "type": "Property", + "value": "Speedometer" + }, + "datasetId": "urn:ngsi-ld:Property:speedometerA4567-speed2" + }, + "isParked2": { + "type": "Relationship", + "object": "urn:ngsi-ld:OffStreetParking:Downtown2", + "observedAt": "2017-07-29T12:00:04Z", + "providedBy": { + "type": "Relationship", + "object": "urn:ngsi-ld:Person:Alice" + } + }, + "@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 -- GitLab From 811c9f95460d4afc096e3301d7c5cc3f9045ba9c Mon Sep 17 00:00:00 2001 From: Serafino Date: Wed, 7 Aug 2024 17:58:50 +0200 Subject: [PATCH 5/8] Revert "added some tests for dist ops" This reverts commit 0fade25040ce1778404e759af153539c52242c9d. --- .../QueryEntity/055_01_01.robot | 54 --------------- .../QueryEntity/055_01_02.robot | 52 --------------- .../QueryEntity/055_01_03.robot | 56 ---------------- .../QueryEntity/055_01_04.robot | 53 --------------- .../QueryEntity/055_02_01.robot | 61 ----------------- .../QueryEntity/055_02_02.robot | 61 ----------------- .../QueryEntity/055_02_03.robot | 59 ----------------- .../QueryEntity/055_03.robot | 66 ------------------- .../RetrieveEntity/054_01_01.robot | 49 -------------- .../RetrieveEntity/054_01_02.robot | 49 -------------- .../RetrieveEntity/054_02.robot | 65 ------------------ resources/variables.py | 10 +-- 12 files changed, 3 insertions(+), 632 deletions(-) delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot delete mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot deleted file mode 100644 index 0d3fc56b..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot +++ /dev/null @@ -1,54 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entity On Remote And Registration -Suite Teardown Delete Created Entity And Registration - - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -055_01_01 Query CB1 With Type - [Tags] dist-ops e-query 5_7_2 - [Documentation] Check that if one queries CB1 for type, entity with matching type on CB2 gets returned - @{entities_id}= Create List ${entity_id} - ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} - Check Response Status Code 200 ${response.status_code} - Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} - - -*** Keywords *** -Setup Entity On Remote And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entity And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Context Source Registration ${registration_id} - - \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot deleted file mode 100644 index 14bb77bd..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot +++ /dev/null @@ -1,52 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entity On Remote And Registration -Suite Teardown Delete Created Entity And Registration - - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -055_01_02 Query CB1 With Type Locally - [Tags] dist-ops e-query 5_7_2 - [Documentation] Check that if one queries for type with local flag, no entity gets returned - ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} local=true - Check Response Status Code 200 ${response.status_code} - Should Be Empty ${response.json()} - -*** Keywords *** -Setup Entity On Remote And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entity And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Context Source Registration ${registration_id} - - \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot deleted file mode 100644 index 91f5b050..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot +++ /dev/null @@ -1,56 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entity On Remote And Registration -Suite Teardown Delete Created Entity And Registration - - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -055_01_03 Query CB1 With Type And Attribute - [Tags] dist-ops e-query 5_7_2 - [Documentation] Check that if one queries for type and attribute, entity gets returned with just that attribute - @{entities_id}= Create List ${entity_id} - ${expected}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename} - ${response}= Query Entities entity_types=Vehicle attrs=brandName context=${ngsild_test_suite_context} - Check Response Status Code 200 ${response.status_code} - Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} - Check JSON Value In Response Body ['brandName'] ${expected['brandName']} ${response.json()[0]} - Check JSON Value Not In Response Body ['isParked'] ${response.json()[0]} - -*** Keywords *** -Setup Entity On Remote And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entity And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Context Source Registration ${registration_id} - - \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot deleted file mode 100644 index f126769a..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot +++ /dev/null @@ -1,53 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entity On Remote And Registration -Suite Teardown Delete Created Entity And Registration - - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -55_01_04 Query CB1 With Type And Missing Attribute - [Tags] dist-ops e-query 5_7_2 - [Documentation] Check that if one queries for type and an attribute that is missing, no entity gets returned - ${response}= Query Entities entity_types=Vehicle attrs=speed context=${ngsild_test_suite_context} - Check Response Status Code 200 ${response.status_code} - Should Be Empty ${response.json()} - - -*** Keywords *** -Setup Entity On Remote And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entity And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Context Source Registration ${registration_id} - - \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot deleted file mode 100644 index e45474b0..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot +++ /dev/null @@ -1,61 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entities And Registration -Suite Teardown Delete Created Entities And Registration - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -055_02_01 Query CB1 With Type and Attribute In Entity2 - [Tags] dist-ops e-query 5_7_2 - [Documentation] Check that if one queries for attribute present in entity on CB2, only that entity gets returned - @{entities_id}= Create List ${entity_id2} - ${response}= Query Entities entity_types=Vehicle attrs=isParked2 context=${ngsild_test_suite_context} - Check Response Status Code 200 ${response.status_code} - Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} - - -*** Keywords *** -Setup Entities And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id2} - ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id2} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entities And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Entity By Id ${entity_id2} - Delete Context Source Registration ${registration_id} - - diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot deleted file mode 100644 index f9ab3f3c..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot +++ /dev/null @@ -1,61 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entities And Registration -Suite Teardown Delete Created Entities And Registration - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -055_02_02 Query CB1 With Type and Attribute In Both - [Tags] dist-ops e-query 5_7_2 - [Documentation] Check that if one queries for attribute present in both entities, both of them get returned - @{entities_id}= Create List ${entity_id} ${entity_id2} - ${response}= Query Entities entity_types=Vehicle attrs=brandName context=${ngsild_test_suite_context} - Check Response Status Code 200 ${response.status_code} - Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} - - -*** Keywords *** -Setup Entities And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id2} - ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id2} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entities And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Entity By Id ${entity_id2} - Delete Context Source Registration ${registration_id} - - diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot deleted file mode 100644 index af19a669..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot +++ /dev/null @@ -1,59 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entities And Registration -Suite Teardown Delete Created Entities And Registration - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -055_02_03 Query CB1 With Type and Attribute In Neither - [Tags] dist-ops e-query 5_7_2 - [Documentation] Check that if one queries for attribute present in neither of the entities, neither of them gets returned - ${response}= Query Entities entity_types=Vehicle attrs=speed context=${ngsild_test_suite_context} - Check Response Status Code 200 ${response.status_code} - Should Be Empty ${response.json()} - -*** Keywords *** -Setup Entities And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id2} - ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id2} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entities And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Entity By Id ${entity_id2} - Delete Context Source Registration ${registration_id} - - diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot deleted file mode 100644 index f69f4551..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot +++ /dev/null @@ -1,66 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1, entities with same id on CB1 and on CB2, if one queries CB1 the query gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entities And Registration -Suite Teardown Delete Created Entities And Registration - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${entity_payload_filename2} vehicle-simple-different-attributes-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -055_03_01 Query CB1 With Type - [Tags] dist-ops e-query 5_7_2 - [Documentation] Check that if one queries for type, enities on CB1 and CB2 matching that type and with the same id get merged and returned as one entity - @{entities_id}= Create List ${entity_id} - ${expected}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename} - ${expected2}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename2} - ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} - Check Response Status Code 200 ${response.status_code} - Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} - Should Have Value In Json ${response.json()[0]} $.brandName - Should Have Value In Json ${response.json()[0]} $.speed - Should Have Value In Json ${response.json()[0]} $.isParked - Should Have Value In Json ${response.json()[0]} $.isParked2 - - - -*** Keywords *** -Setup Entities And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${response}= Create Entity ${entity_payload_filename2} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entities And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Entity By Id ${entity_id} - Delete Context Source Registration ${registration_id} - - diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot deleted file mode 100644 index fc478c3c..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot +++ /dev/null @@ -1,49 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one retrieves entity from CB1 the request gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entity On Remote And Registration -Suite Teardown Delete Created Entity And Registration - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -054_01_01 Retrive entity on CB2 from CB1 - [Tags] dist-ops e-retrieve 5_7_1 - [Documentation] Check that if one retrieves entity living on CB2 from CB1, entity gets returned - ${response}= Retrieve Entity By Id ${entity_id} context=${ngsild_test_suite_context} - Check Response Status Code 200 ${response.status_code} - Check JSON Value In Response Body ['id'] ${entity_id} ${response.json()} - -*** Keywords *** -Setup Entity On Remote And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entity And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Context Source Registration ${registration_id} \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot deleted file mode 100644 index 5eb91e5d..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot +++ /dev/null @@ -1,49 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one retrieves entity from CB1 the request gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entity On Remote And Registration -Suite Teardown Delete Created Entity And Registration - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld - -*** Test Cases *** -054_01_02 Retrive entity on CB2 from CB1 with local flag - [Tags] dist-ops e-retrieve 5_7_1 - [Documentation] Check that if one retrieves entity living on CB2 from CB1 with local flag, entity not found error is raised - ${response}= Retrieve Entity By Id ${entity_id} context=${ngsild_test_suite_context} local=true - Check Response Status Code 404 ${response.status_code} - - -*** Keywords *** -Setup Entity On Remote And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entity And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Context Source Registration ${registration_id} \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot deleted file mode 100644 index 0fa0e1ed..00000000 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot +++ /dev/null @@ -1,65 +0,0 @@ -*** Settings *** -Documentation Verify that, when one has an inclusive registration on CB1 and entity on CB2, if one retrieves available entity types from CB1 the request gets forwarded to CB2 correctly - -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource -Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource -Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource -Resource ${EXECDIR}/resources/AssertionUtils.resource -Resource ${EXECDIR}/resources/JsonUtils.resource - -Suite Setup Setup Entities And Registration -Suite Teardown Delete Created Entities And Registration - -*** Variables *** -${entity_id_prefix} urn:ngsi-ld:Vehicle: -${entity_id_prefix2} urn:ngsi-ld:Building: -${entity_payload_filename} vehicle-simple-attributes-sample.jsonld -${entity_payload_filename2} building-simple-attributes-sample.jsonld -${registration_id_prefix} urn:ngsi-ld:Registration: -${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld -${expectation_file_path} ${EXECDIR}/data/types/expectations/entity-type-list-022-01-02-expectation.json - -*** Test Cases *** -054_01_01 Retrive entity on CB2 from CB1 - [Tags] dist-ops ed-types 5_7_5 - [Documentation] Check that if one retrieves available entity from CB1, entity types from both CB get returned - ${response}= Retrieve Entity Types context=${ngsild_test_suite_context} - ${expected}= Load JSON From File ${expectation_file_path} - Check Response Status Code 200 ${response.status_code} - ${ignored_keys}= Create List id - ${comparison}= Compare Dictionaries Ignoring Keys ${expected} ${response.json()} ${ignored_keys} - Should Be Empty ${comparison} msg=${comparison.pretty()} - - -*** Keywords *** -Setup Entities And Registration - ${entity_id}= Generate Random Entity Id ${entity_id_prefix} - Set Suite Variable ${entity_id} - ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id} ${response.headers} - - ${entity_id2}= Generate Random Entity Id ${entity_id_prefix2} - Set Suite Variable ${entity_id2} - ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} - Check Response Status Code 201 ${response.status_code} - Check Response Headers Containing URI set to ${entity_id2} ${response.headers} - - ${registration_id}= Generate Random Entity Id ${registration_id_prefix} - Set Suite Variable ${registration_id} - ${registration_payload}= Create ContextSourceRegistration With Mode - ... ${registration_id} - ... ${registration_payload_file_path} - ${response1}= Create Context Source Registration With Return ${registration_payload} - Check Response Status Code 201 ${response1.status_code} - - - -Delete Created Entities And Registration - Delete Entity By Id On Remote Broker ${entity_id} - Delete Entity By Id ${entity_id2} - Delete Context Source Registration ${registration_id} - - diff --git a/resources/variables.py b/resources/variables.py index 7ca5489e..10170932 100644 --- a/resources/variables.py +++ b/resources/variables.py @@ -1,7 +1,7 @@ -url = 'http://localhost:1026/ngsi-ld/v1' -temporal_api_url = 'http://localhost:1026/ngsi-ld/v1' +url = 'http://localhost:8080/ngsi-ld/v1' +temporal_api_url = 'http://localhost:8080/ngsi-ld/v1' ngsild_test_suite_context = 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld' -notification_server_host = '172.17.0.1' +notification_server_host = '0.0.0.0' notification_server_port = 8085 context_source_host = '0.0.0.0' context_source_port = 8086 @@ -9,10 +9,6 @@ context_server_host = '0.0.0.0' context_server_port = 8087 core_context = 'https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.6.jsonld' -#DistOps varibles -remote_url = 'https://orion.ngsild.sferainnovazione.com/ngsi-ld/v1' -context_source_endpoint = 'https://orion.ngsild.sferainnovazione.com' - # GitHub repository details # github_owner = 'your_github_username' # github_broker_repo = 'context_broker_repository' -- GitLab From 86fb7a574a1c5f54ca5bc64a1eb53c0fc9a544f5 Mon Sep 17 00:00:00 2001 From: Serafino Date: Wed, 7 Aug 2024 18:01:16 +0200 Subject: [PATCH 6/8] Revert "Revert "added some tests for dist ops"" This reverts commit 811c9f95460d4afc096e3301d7c5cc3f9045ba9c. --- .../QueryEntity/055_01_01.robot | 54 +++++++++++++++ .../QueryEntity/055_01_02.robot | 52 +++++++++++++++ .../QueryEntity/055_01_03.robot | 56 ++++++++++++++++ .../QueryEntity/055_01_04.robot | 53 +++++++++++++++ .../QueryEntity/055_02_01.robot | 61 +++++++++++++++++ .../QueryEntity/055_02_02.robot | 61 +++++++++++++++++ .../QueryEntity/055_02_03.robot | 59 +++++++++++++++++ .../QueryEntity/055_03.robot | 66 +++++++++++++++++++ .../RetrieveEntity/054_01_01.robot | 49 ++++++++++++++ .../RetrieveEntity/054_01_02.robot | 49 ++++++++++++++ .../RetrieveEntity/054_02.robot | 65 ++++++++++++++++++ resources/variables.py | 10 ++- 12 files changed, 632 insertions(+), 3 deletions(-) create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot new file mode 100644 index 00000000..0d3fc56b --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_01.robot @@ -0,0 +1,54 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_01_01 Query CB1 With Type + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries CB1 for type, entity with matching type on CB2 gets returned + @{entities_id}= Create List ${entity_id} + ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot new file mode 100644 index 00000000..14bb77bd --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_02.robot @@ -0,0 +1,52 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_01_02 Query CB1 With Type Locally + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for type with local flag, no entity gets returned + ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} local=true + Check Response Status Code 200 ${response.status_code} + Should Be Empty ${response.json()} + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot new file mode 100644 index 00000000..91f5b050 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_03.robot @@ -0,0 +1,56 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_01_03 Query CB1 With Type And Attribute + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for type and attribute, entity gets returned with just that attribute + @{entities_id}= Create List ${entity_id} + ${expected}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename} + ${response}= Query Entities entity_types=Vehicle attrs=brandName context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + Check JSON Value In Response Body ['brandName'] ${expected['brandName']} ${response.json()[0]} + Check JSON Value Not In Response Body ['isParked'] ${response.json()[0]} + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot new file mode 100644 index 00000000..f126769a --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_01_04.robot @@ -0,0 +1,53 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +55_01_04 Query CB1 With Type And Missing Attribute + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for type and an attribute that is missing, no entity gets returned + ${response}= Query Entities entity_types=Vehicle attrs=speed context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Should Be Empty ${response.json()} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot new file mode 100644 index 00000000..e45474b0 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_01.robot @@ -0,0 +1,61 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_02_01 Query CB1 With Type and Attribute In Entity2 + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for attribute present in entity on CB2, only that entity gets returned + @{entities_id}= Create List ${entity_id2} + ${response}= Query Entities entity_types=Vehicle attrs=isParked2 context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id2} + ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id2} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id2} + Delete Context Source Registration ${registration_id} + + diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot new file mode 100644 index 00000000..f9ab3f3c --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_02.robot @@ -0,0 +1,61 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_02_02 Query CB1 With Type and Attribute In Both + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for attribute present in both entities, both of them get returned + @{entities_id}= Create List ${entity_id} ${entity_id2} + ${response}= Query Entities entity_types=Vehicle attrs=brandName context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id2} + ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id2} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id2} + Delete Context Source Registration ${registration_id} + + diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot new file mode 100644 index 00000000..af19a669 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_02_03.robot @@ -0,0 +1,59 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, one entity on CB1 and another on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} vehicle-simple-attributes-second-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_02_03 Query CB1 With Type and Attribute In Neither + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for attribute present in neither of the entities, neither of them gets returned + ${response}= Query Entities entity_types=Vehicle attrs=speed context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Should Be Empty ${response.json()} + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${entity_id2}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id2} + ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id2} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id2} + Delete Context Source Registration ${registration_id} + + diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot new file mode 100644 index 00000000..f69f4551 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/QueryEntity/055_03.robot @@ -0,0 +1,66 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, entities with same id on CB1 and on CB2, if one queries CB1 the query gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} vehicle-simple-different-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +055_03_01 Query CB1 With Type + [Tags] dist-ops e-query 5_7_2 + [Documentation] Check that if one queries for type, enities on CB1 and CB2 matching that type and with the same id get merged and returned as one entity + @{entities_id}= Create List ${entity_id} + ${expected}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename} + ${expected2}= Load JSON From File ${EXECDIR}/data/entities/${entity_payload_filename2} + ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + Should Have Value In Json ${response.json()[0]} $.brandName + Should Have Value In Json ${response.json()[0]} $.speed + Should Have Value In Json ${response.json()[0]} $.isParked + Should Have Value In Json ${response.json()[0]} $.isParked2 + + + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${response}= Create Entity ${entity_payload_filename2} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id} + Delete Context Source Registration ${registration_id} + + diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot new file mode 100644 index 00000000..fc478c3c --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_01.robot @@ -0,0 +1,49 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one retrieves entity from CB1 the request gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +054_01_01 Retrive entity on CB2 from CB1 + [Tags] dist-ops e-retrieve 5_7_1 + [Documentation] Check that if one retrieves entity living on CB2 from CB1, entity gets returned + ${response}= Retrieve Entity By Id ${entity_id} context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check JSON Value In Response Body ['id'] ${entity_id} ${response.json()} + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot new file mode 100644 index 00000000..5eb91e5d --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_01_02.robot @@ -0,0 +1,49 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and an entity only on CB2, if one retrieves entity from CB1 the request gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld + +*** Test Cases *** +054_01_02 Retrive entity on CB2 from CB1 with local flag + [Tags] dist-ops e-retrieve 5_7_1 + [Documentation] Check that if one retrieves entity living on CB2 from CB1 with local flag, entity not found error is raised + ${response}= Retrieve Entity By Id ${entity_id} context=${ngsild_test_suite_context} local=true + Check Response Status Code 404 ${response.status_code} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Context Source Registration ${registration_id} \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot new file mode 100644 index 00000000..0fa0e1ed --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot @@ -0,0 +1,65 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 and entity on CB2, if one retrieves available entity types from CB1 the request gets forwarded to CB2 correctly + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entities And Registration +Suite Teardown Delete Created Entities And Registration + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_id_prefix2} urn:ngsi-ld:Building: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${entity_payload_filename2} building-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete-sample.jsonld +${expectation_file_path} ${EXECDIR}/data/types/expectations/entity-type-list-022-01-02-expectation.json + +*** Test Cases *** +054_01_01 Retrive entity on CB2 from CB1 + [Tags] dist-ops ed-types 5_7_5 + [Documentation] Check that if one retrieves available entity from CB1, entity types from both CB get returned + ${response}= Retrieve Entity Types context=${ngsild_test_suite_context} + ${expected}= Load JSON From File ${expectation_file_path} + Check Response Status Code 200 ${response.status_code} + ${ignored_keys}= Create List id + ${comparison}= Compare Dictionaries Ignoring Keys ${expected} ${response.json()} ${ignored_keys} + Should Be Empty ${comparison} msg=${comparison.pretty()} + + +*** Keywords *** +Setup Entities And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${entity_id2}= Generate Random Entity Id ${entity_id_prefix2} + Set Suite Variable ${entity_id2} + ${response}= Create Entity ${entity_payload_filename2} ${entity_id2} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id2} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entities And Registration + Delete Entity By Id On Remote Broker ${entity_id} + Delete Entity By Id ${entity_id2} + Delete Context Source Registration ${registration_id} + + diff --git a/resources/variables.py b/resources/variables.py index 10170932..7ca5489e 100644 --- a/resources/variables.py +++ b/resources/variables.py @@ -1,7 +1,7 @@ -url = 'http://localhost:8080/ngsi-ld/v1' -temporal_api_url = 'http://localhost:8080/ngsi-ld/v1' +url = 'http://localhost:1026/ngsi-ld/v1' +temporal_api_url = 'http://localhost:1026/ngsi-ld/v1' ngsild_test_suite_context = 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld' -notification_server_host = '0.0.0.0' +notification_server_host = '172.17.0.1' notification_server_port = 8085 context_source_host = '0.0.0.0' context_source_port = 8086 @@ -9,6 +9,10 @@ context_server_host = '0.0.0.0' context_server_port = 8087 core_context = 'https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.6.jsonld' +#DistOps varibles +remote_url = 'https://orion.ngsild.sferainnovazione.com/ngsi-ld/v1' +context_source_endpoint = 'https://orion.ngsild.sferainnovazione.com' + # GitHub repository details # github_owner = 'your_github_username' # github_broker_repo = 'context_broker_repository' -- GitLab From 432321921716317237691aeb006aacfd3223e152 Mon Sep 17 00:00:00 2001 From: Serafino Date: Wed, 7 Aug 2024 18:07:11 +0200 Subject: [PATCH 7/8] changed variables.py to have a remote_url and contex_source_endopoint, poiting to a second Context Broker so we can test Distributed Operations on different brokers easily~ --- resources/variables.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/variables.py b/resources/variables.py index 7ca5489e..3b4ea377 100644 --- a/resources/variables.py +++ b/resources/variables.py @@ -1,7 +1,7 @@ -url = 'http://localhost:1026/ngsi-ld/v1' -temporal_api_url = 'http://localhost:1026/ngsi-ld/v1' +url = 'http://localhost:8080/ngsi-ld/v1' +temporal_api_url = 'http://localhost:8080/ngsi-ld/v1' ngsild_test_suite_context = 'https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld' -notification_server_host = '172.17.0.1' +notification_server_host = '0.0.0.0' notification_server_port = 8085 context_source_host = '0.0.0.0' context_source_port = 8086 -- GitLab From 0df309eea003c50fbf37da0894a15fec0d0aeb33 Mon Sep 17 00:00:00 2001 From: Serafino Date: Tue, 17 Sep 2024 15:41:39 +0200 Subject: [PATCH 8/8] added some tests on distops --- .../CreateEntity/056_01_01.robot | 58 +++++++++++++++ .../CreateEntity/056_01_02.robot | 60 ++++++++++++++++ .../CreateEntity/056_01_03.robot | 61 ++++++++++++++++ .../CreateEntity/056_01_04.robot | 60 ++++++++++++++++ .../CreateEntity/056_02_01.robot | 54 ++++++++++++++ .../054_02.robot | 4 +- .../UpdateEntity/057_01_01.robot | 64 +++++++++++++++++ ...tion-vehicle-redirection-ops-sample.jsonld | 15 ++++ .../ApiUtils/DistributedOperations.resource | 70 +++++++++++++++++++ 9 files changed, 444 insertions(+), 2 deletions(-) create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_01.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_02.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_03.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_04.robot create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_02_01.robot rename TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/{RetrieveEntity => RetriveAvailableEntityTypes}/054_02.robot (97%) create mode 100644 TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/UpdateEntity/057_01_01.robot create mode 100644 data/csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_01.robot new file mode 100644 index 00000000..9fe849b2 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_01.robot @@ -0,0 +1,58 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, one is able to create entities on CB2 + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld + +*** Test Cases *** +056_01_01 Create Enity on Both CBs + [Tags] dist-ops e-create 5_6_1 + [Documentation] Check that if one requests CB1 to create an entity that matches an inclusive registration, this is created on CB2 too + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + @{entities_id}= Create List ${entity_id} + ${response}= Query Entities entity_types=Vehicle local=true context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + ${response}= Query Entities On Remote Broker entity_types=Vehicle + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + +Delete Created Entity And Registration + Delete Context Source Registration ${registration_id} + Delete Entity By Id ${entity_id} + Delete Entity By Id On Remote Broker ${entity_id} + + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_02.robot new file mode 100644 index 00000000..561b2dee --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_02.robot @@ -0,0 +1,60 @@ +*** Settings *** +Documentation Verify that, when one has an entity and an inclusive registration on CB1, one is able to create that entity on CB2 via CB1 but gets an error for CB1 + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld + +*** Test Cases *** +056_01_02 Create entity already existing locally on CB2 + [Tags] dist-ops e-create 5_6_1 + [Documentation] Check that if one requests CB1 to create an entity that matches an inclusive registration and already exists locally, this raises an error on CB1 but is created correctly on CB2 + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Check Response Status Code 207 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + Check JSON Value In Response Body ['statusCode'] 404 ${response.json()['notUpdated'][0]} + + @{entities_id}= Create List ${entity_id} + ${response}= Query Entities On Remote Broker entity_types=Vehicle + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + +Delete Created Entity And Registration + Delete Context Source Registration ${registration_id} + Delete Entity By Id ${entity_id} + Delete Entity By Id On Remote Broker ${entity_id} + + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_03.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_03.robot new file mode 100644 index 00000000..f6f806ad --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_03.robot @@ -0,0 +1,61 @@ +*** Settings *** +Documentation Verify that, when one has an entity on CB1 and on CB2 and an inclusive registration on CB1, one is not able to create that entity on CB2 via CB1 + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld + +*** Test Cases *** +056_01_03 Create entity already existing both on CB1 and on CB2 + [Tags] dist-ops e-create 5_6_1 + [Documentation] Check that if one requests CB1 to create an entity that matches an inclusive registration and already exists both locally and remotely, this raises an error on CB1 and on CB2 + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Check Response Status Code 207 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${length}= Get Length ${response.json()['notUpdated']} + Should Be Equal As Integers ${length} 2 + Should Be Empty ${response.json()['updated']} + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + +Delete Created Entity And Registration + Delete Context Source Registration ${registration_id} + Delete Entity By Id ${entity_id} + Delete Entity By Id On Remote Broker ${entity_id} + + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_04.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_04.robot new file mode 100644 index 00000000..cff36c1e --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_01_04.robot @@ -0,0 +1,60 @@ +*** Settings *** +Documentation Verify that, when one has an entity on CB2 and an inclusive registration on CB1, one is not able to create that entity on CB2 via CB1 but one is able to create it on CB1 + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld + +*** Test Cases *** +056_01_04 Create entity already existing remotely on CB1 + [Tags] dist-ops e-create 5_6_1 + [Documentation] Check that if one requests CB1 to create an entity that matches an inclusive registration and already exists remotely, this raises an error on CB2, but it works just fine on CB1 + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Check Response Status Code 207 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + Check JSON Value In Response Body ['statusCode'] 409 ${response.json()['notUpdated'][0]} + + @{entities_id}= Create List ${entity_id} + ${response}= Query Entities entity_types=Vehicle local=true context=${ngsild_test_suite_context} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + +Delete Created Entity And Registration + Delete Context Source Registration ${registration_id} + Delete Entity By Id ${entity_id} + Delete Entity By Id On Remote Broker ${entity_id} + + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_02_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_02_01.robot new file mode 100644 index 00000000..d2eb2ba4 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/CreateEntity/056_02_01.robot @@ -0,0 +1,54 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1, one is not able to create entities on CB2 if they are malformed + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld + +*** Test Cases *** +056_02_01 Create Enity on Both CBs + [Tags] dist-ops e-create 5_6_1 + [Documentation] Check that if one requests CB1 to create an entity that matches an inclusive registration but is malformed, this is created neither on CB1 nor on CB2 + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Check Response Status Code 400 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${response}= Query Entities entity_types=Vehicle local=true context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + Should Be Empty ${response.json()} + ${response}= Query Entities On Remote Broker entity_types=Vehicle + Check Response Status Code 200 ${response.status_code} + Should Be Empty ${response.json()} + + +*** Keywords *** +Setup Entity On Remote And Registration + Set Suite Variable ${entity_id} InvalidUriExample + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + +Delete Created Entity And Registration + Delete Context Source Registration ${registration_id} + + + \ No newline at end of file diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetriveAvailableEntityTypes/054_02.robot similarity index 97% rename from TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot rename to TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetriveAvailableEntityTypes/054_02.robot index 0fa0e1ed..4f49b5f6 100644 --- a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetrieveEntity/054_02.robot +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/RetriveAvailableEntityTypes/054_02.robot @@ -22,9 +22,9 @@ ${registration_payload_file_path} csourceRegistrations/context-source-regi ${expectation_file_path} ${EXECDIR}/data/types/expectations/entity-type-list-022-01-02-expectation.json *** Test Cases *** -054_01_01 Retrive entity on CB2 from CB1 +054_01_01 Retrive entity types on CB2 [Tags] dist-ops ed-types 5_7_5 - [Documentation] Check that if one retrieves available entity from CB1, entity types from both CB get returned + [Documentation] Check that if one retrieves available entity types from CB1, entity types from both CBs get returned ${response}= Retrieve Entity Types context=${ngsild_test_suite_context} ${expected}= Load JSON From File ${expectation_file_path} Check Response Status Code 200 ${response.status_code} diff --git a/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/UpdateEntity/057_01_01.robot b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/UpdateEntity/057_01_01.robot new file mode 100644 index 00000000..0d184e26 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/DistributedOperations/AdditiveInclusive/UpdateEntity/057_01_01.robot @@ -0,0 +1,64 @@ +*** Settings *** +Documentation Verify that, when one has an inclusive registration on CB1 with redirectionOps, one is able to update entities on CB2 + +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/DistributedOperations.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Entity On Remote And Registration +Suite Teardown Delete Created Entity And Registration + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes-sample.jsonld +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld +${fragment_filename} vehicle-brandname-fragment.jsonld + +*** Test Cases *** +057_01_01 Query CB1 With Type + [Tags] dist-ops e-update 5_6_2 + [Documentation] Check that if one request CB1 to update an entity that matches an inclusive registration, this is updated on CB2 too + + ${response}= Update Entity Attributes + ... ${entity_id} + ... ${fragment_filename} + ... ${CONTENT_TYPE_LD_JSON} + Check Response Status Code 207 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + @{entities_id}= Create List ${entity_id} + ${response}= Query Entities On Remote Broker entity_types=Vehicle + Check Response Status Code 200 ${response.status_code} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Entity On Remote And Registration + ${entity_id}= Generate Random Entity Id ${entity_id_prefix} + Set Suite Variable ${entity_id} + ${response}= Create Entity On Remote Broker ${entity_payload_filename} ${entity_id} + Check Response Status Code 201 ${response.status_code} + Check Response Headers Containing URI set to ${entity_id} ${response.headers} + + ${registration_id}= Generate Random Entity Id ${registration_id_prefix} + Set Suite Variable ${registration_id} + ${registration_payload}= Create ContextSourceRegistration With Mode + ... ${registration_id} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + + +Delete Created Entity And Registration + Delete Context Source Registration ${registration_id} + Delete Entity By Id On Remote Broker ${entity_id} + + \ No newline at end of file diff --git a/data/csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld b/data/csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld new file mode 100644 index 00000000..bd2691c9 --- /dev/null +++ b/data/csourceRegistrations/context-source-registration-vehicle-redirection-ops-sample.jsonld @@ -0,0 +1,15 @@ +{ + "id": "urn:ngsi-ld:ContextSourceRegistration:randomUUID", + "type": "ContextSourceRegistration", + "information": [ + { + "entities": [ + { + "type": "Vehicle" + } + ] + } + ], + "operations": ["redirectionOps"], + "endpoint": "http://my.csource.org:1026" +} diff --git a/resources/ApiUtils/DistributedOperations.resource b/resources/ApiUtils/DistributedOperations.resource index e13e78bf..90a5a76c 100644 --- a/resources/ApiUtils/DistributedOperations.resource +++ b/resources/ApiUtils/DistributedOperations.resource @@ -66,3 +66,73 @@ Create ContextSourceRegistration With Mode ... ${dict} END RETURN ${registration_payload} + + +Query Entities On Remote Broker + [Arguments] + ... ${entity_ids}=${EMPTY} + ... ${entity_types}=${EMPTY} + ... ${accept}=${EMPTY} + ... ${attrs}=${EMPTY} + ... ${context}=${EMPTY} + ... ${geoproperty}=${EMPTY} + ... ${options}=${EMPTY} + ... ${limit}=${EMPTY} + ... ${entity_id_pattern}=${EMPTY} + ... ${scopeq}=${EMPTY} + ... ${georel}=${EMPTY} + ... ${coordinates}=${EMPTY} + ... ${geometry}=${EMPTY} + ... ${count}=${EMPTY} + ... ${q}=${EMPTY} + ... ${local}=${EMPTY} + ${attrs_length}= Get Length ${attrs} + ${accept_length}= Get Length ${accept} + ${options_length}= Get Length ${options} + ${entity_ids_length}= Get Length ${entity_ids} + ${entity_types_length}= Get Length ${entity_types} + &{headers}= Create Dictionary + &{params}= Create Dictionary + IF ${accept_length}>0 + Set To Dictionary ${headers} Accept ${accept} + END + IF '${context}'!='' + Set To Dictionary + ... ${headers} + ... Link=<${context}>; rel="http://www.w3.org/ns/json-ld#context";type="application/ld+json" + END + IF ${attrs_length}>0 Set To Dictionary ${params} attrs=${attrs} + IF '${geoproperty}'!='' + Set To Dictionary ${params} geoproperty=${geoproperty} + END + IF ${options_length}>0 + Set To Dictionary ${params} options=${options} + END + IF ${entity_ids_length}>0 + Set To Dictionary ${params} id=${entity_ids} + END + IF ${entity_types_length}>0 + Set To Dictionary ${params} type=${entity_types} + END + IF '${limit}'!='' Set To Dictionary ${params} limit=${limit} + IF '${entity_id_pattern}'!='' + Set To Dictionary ${params} idPattern=${entity_id_pattern} + END + IF '${scopeq}'!='' Set To Dictionary ${params} scopeQ=${scopeq} + IF '${georel}'!='' Set To Dictionary ${params} georel=${georel} + IF '${coordinates}'!='' + Set To Dictionary ${params} coordinates=${coordinates} + END + IF '${geometry}'!='' + Set To Dictionary ${params} geometry=${geometry} + END + IF '${count}'!='' Set To Dictionary ${params} count=${count} + IF '${q}'!='' Set To Dictionary ${params} q=${q} + IF '${local}'!='' Set To Dictionary ${params} local=${local} + ${response}= GET + ... url=${remote_url}/${ENTITIES_ENDPOINT_PATH} + ... headers=${headers} + ... params=${params} + ... expected_status=any + Output ${response} Query Entities On Remote Broker + RETURN ${response} \ No newline at end of file -- GitLab