diff --git a/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_02.robot b/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_02.robot index a9d3a691eaf2530d62a1c1afebbb9670064c8145..47a71624048714d6edc675cec49555803a6c6e6d 100644 --- a/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_02.robot +++ b/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_02.robot @@ -17,9 +17,9 @@ Test Template Create Entity With Invalid Request Scenarios 001_02_03 EntityWithNoContext [Tags] e-create 5_6_1 building-minimal.json ${ERROR_TYPE_BAD_REQUEST_DATA} -001_02_04 EntityWithNoContext +001_02_04 EntityWithInvalidType [Tags] e-create 5_6_1 - invalid-type.jsonld ${ERROR_TYPE_INVALID_REQUEST} + invalid-type.jsonld ${ERROR_TYPE_BAD_REQUEST_DATA} *** Keywords *** diff --git a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_21_02.robot b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_21_02.robot index acd4e36cc07691cde055a4eb61bc25d0e7b43730..6ff061b98fa75303eda3d11f075f189b72944121 100644 --- a/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_21_02.robot +++ b/TP/NGSI-LD/ContextInformation/Subscription/SubscriptionNotificationBehaviour/046_21_02.robot @@ -31,7 +31,7 @@ ${building_filename}= building-location-attribute.jsonld Should be Equal ${subscription_id} ${notification}[subscriptionId] Length Should Be ${notification}[data] ${1} ${notified_entity}= Set Variable ${notification}[data][0] - Length Should Be ${notified_entity} ${4} + Length Should Be ${notified_entity} ${5} Should be Equal ${entity_id} ${notified_entity}[id] Should Have Value In Json ... json_object=${notified_entity} diff --git a/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_01_red.robot b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_01_red.robot new file mode 100644 index 0000000000000000000000000000000000000000..88aa47d979415ef830bfaecc7e41edddc45ee3d0 --- /dev/null +++ b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_01_red.robot @@ -0,0 +1,56 @@ +*** Settings *** +Documentation Verify that, when one has a redirect registration and an entity on a Context Source, if one queries the Context Broker the query gets forwarded to the Context Source correctly + +Resource ${EXECDIR}/resources/ApiUtils/Common.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceDiscovery.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextSourceRegistration.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource +Resource ${EXECDIR}/resources/MockServerUtils.resource + +Test Setup Setup Registration And Start Context Source Mock Server +Test Teardown Delete Registration And Stop Context Source Mock Server + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes.json +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete.jsonld + + +*** Test Cases *** +D011_01_red Query The Context Broker With Type + [Documentation] Check that if one queries the Context Broker for type, entity with matching type on a Context Source gets returned + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 additive-inclusive 4_3_6_2 5_7_2 + ${entity_body}= Load Entity ${entity_payload_filename} ${entity_id} + Set Stub Reply GET /broker1/ngsi-ld/v1/entities?type=Vehicle 200 ${entity_body} + ${response}= Query Entities entity_types=Vehicle context=${ngsild_test_suite_context} + + Check Response Status Code 200 ${response.status_code} + @{entities_id}= Create List ${entity_id} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +*** Keywords *** +Setup Registration And Start Context Source Mock Server + ${entity_id}= Generate Random Vehicle Entity Id + Set Suite Variable ${entity_id} + + ${registration_id}= Generate Random CSR Id + Set Suite Variable ${registration_id} + ${registration_payload}= Prepare Context Source Registration From File + ... ${registration_id} + ... ${registration_payload_file_path} + ... mode=redirect + ... endpoint=/broker1 + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + Start Context Source Mock Server + +Delete Registration And Stop Context Source Mock Server + Delete Context Source Registration ${registration_id} + Delete Entity by Id ${entity_id} + Stop Context Source Mock Server diff --git a/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_02_red.robot b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_02_red.robot new file mode 100644 index 0000000000000000000000000000000000000000..0e0908df1df823ead3b9bec01b150333710ea028 --- /dev/null +++ b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_02_red.robot @@ -0,0 +1,66 @@ +*** Settings *** +Documentation Verify that, when one has an redirect registration on a Context Broker and an entity only on a Context Source, if one queries the Context Broker the request gets forwarded to the Context Source correctly using only the queryEntity or the queryBatch operation + +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/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource +Resource ${EXECDIR}/resources/MockServerUtils.resource + +Test Template Setup Registration, Context Source Mock Server And Query The Context Broker With Type +Test Teardown Delete Registration And Stop Context Source Mock Server + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes.json +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete.jsonld + +*** Test Cases *** +D011_02_01_red Query The Context Broker By Id with a context source having only the queryEntity operation + [Documentation] Check that if one queries the Context Broker for type, and the registration only allows the queryEntity operation, the request is forwarded as expected + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_2 5_7_2 + [Template] Setup Registration, Context Source Mock Server And Query The Context Broker With Type + queryEntity GET /broker1/ngsi-ld/v1/entities?type=Vehicle + +D011_02_02_red Query The Context Broker By Id with a context source having only the queryBatch operation + [Documentation] Check that if one queries the Context Broker for type, and the registration only allows the queryBatch operation, the request is forwarded as expected + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_2 5_7_2 + [Template] Setup Registration, Context Source Mock Server And Query The Context Broker With Type + queryBatch POST /broker1/ngsi-ld/v1/entityOperations/query + +*** Keywords *** +Setup Registration, Context Source Mock Server And Query The Context Broker With Type + [Arguments] ${operation} ${method} ${url} + ${entity_id}= Generate Random Vehicle Entity Id + + + ${registration_id}= Generate Random CSR Id + Set Suite Variable ${registration_id} + ${operations}= Create List ${operation} + ${registration_payload}= Prepare Context Source Registration From File + ... ${registration_id} + ... ${registration_payload_file_path} + ... mode=redirect + ... endpoint=/broker1 + ... operations=${operations} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + + Start Context Source Mock Server + ${entity_body}= Load Entity ${entity_payload_filename} ${entity_id} + @{entity_list}= Create List ${entity_body} + Set Stub Reply ${method} ${url} 200 ${entity_list} + + @{entities_id}= Create List ${entity_id} + ${response}= Query Entities entity_ids=${entities_id} 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()} + +Delete Registration And Stop Context Source Mock Server + Delete Context Source Registration ${registration_id} + Stop Context Source Mock Server \ No newline at end of file diff --git a/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_03_red.robot b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_03_red.robot new file mode 100644 index 0000000000000000000000000000000000000000..65a11198667e4b49a4763228b90a3eee9cbe9c2a --- /dev/null +++ b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/QueryEntities/D011_03_red.robot @@ -0,0 +1,68 @@ +*** Settings *** +Documentation Verify that, when one has a redirect registration on a Context Broker and an entity only on a Context Source, if one queries the Context Broker Via Post the request gets forwarded to the Context Source correctly using the appropriate operation + +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/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource +Resource ${EXECDIR}/resources/MockServerUtils.resource + +Test Template Setup Registration, Context Source Mock Server And Query The Context Broker With Type Via POST +Test Teardown Delete Registration And Stop Context Source Mock Server + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes.json +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete.jsonld + +*** Test Cases *** +D011_03_01_red Query The Context Broker By Id Via POST using the queryBatch operation + [Documentation] Check that if one queries the Context Broker for type via POST, and the registration only allows the queryBatch operation, the request is forwarded as expected + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_2 5_7_2 6_23_3 + [Template] Setup Registration, Context Source Mock Server And Query The Context Broker With Type Via POST + queryBatch POST /broker1/ngsi-ld/v1/entityOperations/query + +D011_03_02_red Query The Context Broker By Id Via POST using the queryEntity operation + [Documentation] Check that if one queries the Context Broker for type via POST, and the registration only allows the queryEntity operation, the request is forwarded as expected + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_2 5_7_2 6_23_3 + [Template] Setup Registration, Context Source Mock Server And Query The Context Broker With Type Via POST + queryEntity GET /broker1/ngsi-ld/v1/entities?type=Vehicle + +*** Keywords *** +Setup Registration, Context Source Mock Server And Query The Context Broker With Type Via POST + [Arguments] ${operation} ${method} ${url} + ${entity_id}= Generate Random Vehicle Entity Id + + ${registration_id}= Generate Random CSR Id + Set Suite Variable ${registration_id} + ${operations}= Create List ${operation} + ${registration_payload}= Prepare Context Source Registration From File + ... ${registration_id} + ... ${registration_payload_file_path} + ... mode=redirect + ... endpoint=/broker1 + ... operations=${operations} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + Start Context Source Mock Server + + ${entity_body}= Load Entity ${entity_payload_filename} ${entity_id} + Set Stub Reply ${method} ${url} 200 ${entity_body} + + &{entities}= Create Dictionary + Set To Dictionary ${entities} id=${entity_id} + @{entities}= Create List ${entities} + ${response}= Query Entities Via POST entities=${entities} context=${ngsild_test_suite_context} + + Check Response Status Code 200 ${response.status_code} + @{entities_id}= Create List ${entity_id} + Check Response Body Containing Entities URIS set to ${entities_id} ${response.json()} + + +Delete Registration And Stop Context Source Mock Server + Delete Context Source Registration ${registration_id} + Stop Context Source Mock Server \ No newline at end of file diff --git a/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_01_red.robot b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_01_red.robot new file mode 100644 index 0000000000000000000000000000000000000000..1a89e1d16cbd598ff3e7472a41f951da58bab99a --- /dev/null +++ b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_01_red.robot @@ -0,0 +1,76 @@ +** Settings *** +Documentation Verify that when an entity remotely exists on two Context Sources, a retrieval request to the Context Broker is correctly forwarded to the Context Sources and the response contains the identity. + +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/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource +Resource ${EXECDIR}/resources/MockServerUtils.resource + +Test Setup Setup Registration And Start Context Source Mock Server +Test Teardown Delete Created Entity And Registration And Stop Context Source Mock Server + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes.json +${entity_payload_filename2} vehicle-simple-attributes-second.json +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-redirection-ops.jsonld + + +*** Test Cases *** +D010_01_red Query Context Broker And Retrieve Entity By Id + [Documentation] Check that if one retrieves an entity on the Context Source, entity gets redirected correctly + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_3 5_7_1 + ${entity_body}= Load Entity ${entity_payload_filename} ${entity_id} + ${entity_body2}= Load Entity ${entity_payload_filename2} ${entity_id} + Set Stub Reply GET /broker1/ngsi-ld/v1/entities/${entity_id} 200 ${entity_body} + Set Stub Reply GET /broker2/ngsi-ld/v1/entities/${entity_id} 200 ${entity_body2} + + ${response_query}= Retrieve Entity by Id ${entity_id} context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response_query.status_code} + + ${stub_count}= Get Stub Count GET /broker1/ngsi-ld/v1/entities/${entity_id} + Should Be True ${stub_count} > 0 + ${stub_count}= Get Stub Count GET /broker2/ngsi-ld/v1/entities/${entity_id} + Should Be True ${stub_count} > 0 + + Should Have Value In Json ${response_query.json()} $.isParked + Should Have Value In Json ${response_query.json()} $.isParked2 + +*** Keywords *** +Setup Registration And Start Context Source Mock Server + ${entity_id}= Generate Random Vehicle Entity Id + Set Suite Variable ${entity_id} + + ${registration_id}= Generate Random CSR Id + Set Suite Variable ${registration_id} + ${registration_payload}= Prepare Context Source Registration From File + ... ${registration_id} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ... mode=redirect + ... endpoint=/broker1 + ${response}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response.status_code} + + ${registration_id2}= Generate Random CSR Id + Set Suite Variable ${registration_id2} + ${registration_payload2}= Prepare Context Source Registration From File + ... ${registration_id2} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ... mode=redirect + ... endpoint=/broker2 + ${response}= Create Context Source Registration With Return ${registration_payload2} + Check Response Status Code 201 ${response.status_code} + + Start Context Source Mock Server + +Delete Created Entity And Registration And Stop Context Source Mock Server + Delete Context Source Registration ${registration_id} + Delete Context Source Registration ${registration_id2} + Delete Entity By Id ${entity_id} + Stop Context Source Mock Server \ No newline at end of file diff --git a/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_02_red.robot b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_02_red.robot new file mode 100644 index 0000000000000000000000000000000000000000..77819ffa00eeaf3fb0dffcdeecb10053dda98241 --- /dev/null +++ b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_02_red.robot @@ -0,0 +1,74 @@ +* Settings *** +Documentation Check that when retrieving an entity locally, the Context Broker does not forward the request to the Context Sources and raises an error. + +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/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource +Resource ${EXECDIR}/resources/MockServerUtils.resource +Resource ../../../../../../resources/ApiUtils/ContextInformationConsumption.resource + +Test Setup Setup Registration And Start Context Source Mock Server +Test Teardown Delete Created Entity And Registration And Stop Context Source Mock Server + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes.json +${entity_payload_filename2} vehicle-simple-attributes-second.json +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-redirection-ops.jsonld + + +*** Test Cases *** +D010_02_red Query Context Broker And Retrieve Entity By Id + [Documentation] Check that when retrieving an entity locally, the Context Broker does not forward the request to the Context Sources and raises an error. + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_3 5_7_1 + ${entity_body}= Load Entity ${entity_payload_filename} ${entity_id} + ${entity_body2}= Load Entity ${entity_payload_filename2} ${entity_id} + Set Stub Reply GET /broker1/ngsi-ld/v1/entities/${entity_id} 200 ${entity_body} + Set Stub Reply GET /broker2/ngsi-ld/v1/entities/${entity_id} 200 ${entity_body2} + + ${response_query}= Retrieve Entity by Id ${entity_id} context=${ngsild_test_suite_context} local=${true} + Check Response Status Code 404 ${response_query.status_code} + + ${stub_count}= Get Stub Count GET /broker1/ngsi-ld/v1/entities/${entity_id} + Should Be True ${stub_count} == 0 + ${stub_count}= Get Stub Count GET /broker2/ngsi-ld/v1/entities/${entity_id} + Should Be True ${stub_count} == 0 + +*** Keywords *** +Setup Registration And Start Context Source Mock Server + ${entity_id}= Generate Random Vehicle Entity Id + Set Suite Variable ${entity_id} + + ${registration_id}= Generate Random CSR Id + Set Suite Variable ${registration_id} + ${registration_payload}= Prepare Context Source Registration From File + ... ${registration_id} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ... mode=redirect + ... endpoint=/broker1 + ${response}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response.status_code} + + ${registration_id2}= Generate Random CSR Id + Set Suite Variable ${registration_id2} + ${registration_payload2}= Prepare Context Source Registration From File + ... ${registration_id2} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ... mode=redirect + ... endpoint=/broker2 + ${response}= Create Context Source Registration With Return ${registration_payload2} + Check Response Status Code 201 ${response.status_code} + + Start Context Source Mock Server + +Delete Created Entity And Registration And Stop Context Source Mock Server + Delete Context Source Registration ${registration_id} + Delete Context Source Registration ${registration_id2} + Delete Entity By Id ${entity_id} + Stop Context Source Mock Server \ No newline at end of file diff --git a/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_03_red.robot b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_03_red.robot new file mode 100644 index 0000000000000000000000000000000000000000..8ffdd8adb2437bbada43d75b21b168082746c774 --- /dev/null +++ b/TP/NGSI-LD/DistributedOperations/Consumption/Entity/RetrieveEntity/D010_03_red.robot @@ -0,0 +1,80 @@ +*** Settings *** +Documentation Verify that, when one has a redirect registration on a Context Broker and an entity only on a Context Source, a retrieval request to the Context Broker the request is forwarded correcty to the Context Source using the appropriate operation + +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/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource +Resource ${EXECDIR}/resources/MockServerUtils.resource + +Test Template Retrieve Entity By Id With Correct Operation +Test Teardown Delete Registration And Stop Context Source Mock Server + + +*** Variables *** +${entity_id_prefix} urn:ngsi-ld:Vehicle: +${entity_payload_filename} vehicle-simple-attributes.json +${registration_id_prefix} urn:ngsi-ld:Registration: +${registration_payload_file_path} csourceRegistrations/context-source-registration-vehicle-complete.jsonld + +*** Test Cases *** +D010_03_01_red Retrieve Entity By Id with a context source having only the retrieveEntity operation + [Documentation] Check that if one retrieves entity living on a Context Source from a Context Broker, and the registration only allows the retrieveEntity operation, the request is forwarded as expected + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_2 5_7_1 + [Template] Retrieve Entity By Id With Correct Operation + retrieveEntity GET /broker1/ngsi-ld/v1/entities/ + +D010_03_02_red Retrieve Entity By Id with a context source having only the queryEntity operation + [Documentation] Check that if one retrieves entity living on a Context Source from a Context Broker, and the registration only allows the queryEntity operation, the request is forwarded as expected + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_2 5_7_1 + [Template] Retrieve Entity By Id With Correct Operation + queryEntity GET /broker1/ngsi-ld/v1/entities?type=Vehicle + +D010_03_03_red Retrieve Entity By Id with a context source having only the queryBatch operation + [Documentation] Check that if one retrieves entity living on a Context Source from a Context Broker, and the registration only allows the query by post operation, the request is forwarded as expected + [Tags] since_v1.6.1 dist-ops 4_3_3 cf_06 proxy-redirect 4_3_6_2 5_7_1 + [Template] Retrieve Entity By Id With Correct Operation + queryBatch POST /broker1/ngsi-ld/v1/entityOperations/query + + +*** Keywords *** +Retrieve Entity By Id With Correct Operation + [Arguments] ${operation} ${method} ${url} + ${entity_id}= Generate Random Vehicle Entity Id + + IF '${operation}' == 'retrieveEntity' + ${url}= Set Variable ${url}${entity_id} + END + + ${registration_id}= Generate Random CSR Id + Set Suite Variable ${registration_id} + ${operations}= Create List ${operation} + ${registration_payload}= Prepare Context Source Registration From File + ... ${registration_id} + ... ${registration_payload_file_path} + ... entity_id=${entity_id} + ... mode=redirect + ... endpoint=/broker1 + ... operations=${operations} + ${response1}= Create Context Source Registration With Return ${registration_payload} + Check Response Status Code 201 ${response1.status_code} + Start Context Source Mock Server + + ${entity_body}= Load Entity ${entity_payload_filename} ${entity_id} + + IF '${operation}' == 'retrieveEntity' + Set Stub Reply ${method} ${url} 200 ${entity_body} + ${response}= Retrieve Entity by Id ${entity_id} context=${ngsild_test_suite_context} + Check Response Status Code 200 ${response.status_code} + ELSE + ${response}= Retrieve Entity by Id ${entity_id} context=${ngsild_test_suite_context} + ${stub_count}= Get Stub Count ${method} ${url} + Check Response Status Code 404 ${response.status_code} + Should Be True ${stub_count} == 0 + END + +Delete Registration And Stop Context Source Mock Server + Delete Context Source Registration ${registration_id} + Stop Context Source Mock Server \ No newline at end of file diff --git a/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld b/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld index 88d10bcb0844accc8e20368b6c26190217ad39eb..ba572931713a212efefd3b5df4bccb08b74e53e0 100644 --- a/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld +++ b/resources/jsonld-contexts/ngsi-ld-test-suite-compound.jsonld @@ -1,6 +1,6 @@ { "@context": [ "https://forge.etsi.org/rep/cim/ngsi-ld-test-suite/-/raw/develop/resources/jsonld-contexts/ngsi-ld-test-suite.jsonld", - "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.6.jsonld" + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.8.jsonld" ] }