diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 76544111345f718bb6e9dae2e0750284e97c645c..62c65f9153ec6dc000ff15bd5999175c35623ff8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,4 +3,4 @@ repos: rev: v6.9.2 hooks: - id: robocop-format - additional_dependencies: [typing_extensions] + additional_dependencies: [typing_extensions, click] 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 47a71624048714d6edc675cec49555803a6c6e6d..f273a13896595d774334d234d493359f7a8ae8a6 100644 --- a/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_02.robot +++ b/TP/NGSI-LD/ContextInformation/Provision/Entities/CreateEntity/001_02.robot @@ -20,6 +20,9 @@ Test Template Create Entity With Invalid Request Scenarios 001_02_04 EntityWithInvalidType [Tags] e-create 5_6_1 invalid-type.jsonld ${ERROR_TYPE_BAD_REQUEST_DATA} +001_02_05 EntityWithNullValueProperty + [Tags] e-create 5_6_1 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-value-property.jsonld ${ERROR_TYPE_BAD_REQUEST_DATA} *** Keywords *** diff --git a/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_06.robot b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_06.robot new file mode 100644 index 0000000000000000000000000000000000000000..a8e1bcb48194685612fe8d60421b3d7a971eb13f --- /dev/null +++ b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_06.robot @@ -0,0 +1,44 @@ +*** Settings *** +Documentation Check that a Merge Entity operation setting an NGSI-LD Null datasetId returns 400 BadRequestData + +Resource ${EXECDIR}/resources/ApiUtils/Common.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource + +Test Setup Setup Initial Entity +Test Teardown Delete Initial Entity +Test Template Merge Entity With Null Reserved Field Scenarios + + +*** Variables *** +${entity_payload_filename}= building-simple-attributes.jsonld + + +*** Test Cases *** FILENAME +056_06_01 MergeEntitySettingDatasetIdToNull + [Tags] e-merge 5_6_17 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-datasetid-fragment.jsonld + + +*** Keywords *** +Merge Entity With Null Reserved Field Scenarios + [Documentation] Check that a Merge Entity operation setting an NGSI-LD Null datasetId returns 400 BadRequestData + [Arguments] ${filename} + ${response}= Merge Entity + ... entity_id=${entity_id} + ... entity_filename=${filename} + ... content_type=${CONTENT_TYPE_LD_JSON} + Check Response Status Code 400 ${response.status_code} + Check Response Body Containing ProblemDetails Element Containing Type Element set to + ... ${response.json()} + ... ${ERROR_TYPE_BAD_REQUEST_DATA} + Check Response Body Containing ProblemDetails Element Containing Title Element ${response.json()} + +Setup Initial Entity + ${entity_id}= Generate Random Building Entity Id + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Set Test Variable ${entity_id} + Check Response Status Code 201 ${response.status_code} + +Delete Initial Entity + Delete Entity ${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_07.robot b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_07.robot new file mode 100644 index 0000000000000000000000000000000000000000..60e3f06f844afd920457aefa6b9a6278f197945f --- /dev/null +++ b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_07.robot @@ -0,0 +1,55 @@ +*** Settings *** +Documentation Check that sub-attributes set to NGSI-LD Null in a Merge Entity operation are removed + +Resource ${EXECDIR}/resources/ApiUtils/Common.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Test Setup Setup Initial Entity +Test Teardown Delete Initial Entity +Test Template Merge Entity Scenarios + + +*** Variables *** +${entity_payload_filename}= building-relationship-of-property.jsonld + + +*** Test Cases *** FILENAME EXPECTATION_FILENAME +056_07_01 RemoveUnitCodeFromProperty + [Tags] e-merge 5_6_17 6_5_3_4 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-sub-property-unitcode.jsonld ngsild-null/building-deleted-unitcode.jsonld +056_07_02 RemoveSubAttributeFromProperty + [Tags] e-merge 5_6_17 6_5_3_4 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-sub-property-sub-attribute.jsonld ngsild-null/building-deleted-sub-attribute.jsonld + + +*** Keywords *** +Merge Entity Scenarios + [Documentation] Check that sub-attributes set to NGSI-LD Null in a Merge Entity operation are removed + [Arguments] ${filename} ${expectation_filename} + ${response}= Merge Entity + ... entity_id=${entity_id} + ... entity_filename=${filename} + ... content_type=${CONTENT_TYPE_LD_JSON} + Check Response Status Code 204 ${response.status_code} + Check Response Body Is Empty ${response} + + ${response1}= Retrieve Entity + ... id=${entity_id} + ... context=${ngsild_test_suite_context} + ... accept=${CONTENT_TYPE_LD_JSON} + Check Response Body Containing Entity element + ... expectation_filename=${expectation_filename} + ... entity_id=${entity_id} + ... response_body=${response1.json()} + +Setup Initial Entity + ${entity_id}= Generate Random Building Entity Id + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Set Test Variable ${entity_id} + Check Response Status Code 201 ${response.status_code} + +Delete Initial Entity + Delete Entity ${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_08.robot b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_08.robot new file mode 100644 index 0000000000000000000000000000000000000000..9199e149ce25a89c9ead68a0e658197fdac7d9c9 --- /dev/null +++ b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_08.robot @@ -0,0 +1,55 @@ +*** Settings *** +Documentation Check that LanguageProperty entries can be merged and removed via NGSI-LD Null + +Resource ${EXECDIR}/resources/ApiUtils/Common.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Test Setup Setup Initial Entity +Test Teardown Delete Initial Entity +Test Template Merge Entity Scenarios + + +*** Variables *** +${entity_payload_filename}= building-language-property.jsonld + + +*** Test Cases *** FILENAME EXPECTATION_FILENAME +056_08_01 RemoveLanguageMapProperty + [Tags] e-merge 5_6_17 6_5_3_4 4_5_18 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-languagemap-none.jsonld building-no-attributes.jsonld +056_08_02 MergeLanguageMapPropertyEntries + [Tags] e-merge 5_6_17 6_5_3_4 4_5_18 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-languagemap-merge.jsonld ngsild-null/building-languagemap-merged.jsonld + + +*** Keywords *** +Merge Entity Scenarios + [Documentation] Check that LanguageProperty entries can be merged and removed via NGSI-LD Null + [Arguments] ${filename} ${expectation_filename} + ${response}= Merge Entity + ... entity_id=${entity_id} + ... entity_filename=${filename} + ... content_type=${CONTENT_TYPE_LD_JSON} + Check Response Status Code 204 ${response.status_code} + Check Response Body Is Empty ${response} + + ${response1}= Retrieve Entity + ... id=${entity_id} + ... context=${ngsild_test_suite_context} + ... accept=${CONTENT_TYPE_LD_JSON} + Check Response Body Containing Entity element + ... expectation_filename=${expectation_filename} + ... entity_id=${entity_id} + ... response_body=${response1.json()} + +Setup Initial Entity + ${entity_id}= Generate Random Building Entity Id + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Set Test Variable ${entity_id} + Check Response Status Code 201 ${response.status_code} + +Delete Initial Entity + Delete Entity ${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_09.robot b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_09.robot new file mode 100644 index 0000000000000000000000000000000000000000..303c354861e20ebf50464fd1a66d577388b942da --- /dev/null +++ b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_09.robot @@ -0,0 +1,55 @@ +*** Settings *** +Documentation Check that keys inside a Property object value can be merged and removed via NGSI-LD Null + +Resource ${EXECDIR}/resources/ApiUtils/Common.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Test Setup Setup Initial Entity +Test Teardown Delete Initial Entity +Test Template Merge Entity Scenarios + + +*** Variables *** +${entity_payload_filename}= building-property-object-value.jsonld + + +*** Test Cases *** FILENAME EXPECTATION_FILENAME +056_09_01 RemoveKeyFromPropertyObjectValue + [Tags] e-merge 5_6_17 6_5_3_4 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-property-object-key.jsonld ngsild-null/building-deleted-property-object.jsonld +056_09_02 MergeKeysInPropertyObjectValue + [Tags] e-merge 5_6_17 6_5_3_4 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-property-object-merge.jsonld ngsild-null/building-deleted-property-object-merged.jsonld + + +*** Keywords *** +Merge Entity Scenarios + [Documentation] Check that keys inside a Property object value can be merged and removed via NGSI-LD Null + [Arguments] ${filename} ${expectation_filename} + ${response}= Merge Entity + ... entity_id=${entity_id} + ... entity_filename=${filename} + ... content_type=${CONTENT_TYPE_LD_JSON} + Check Response Status Code 204 ${response.status_code} + Check Response Body Is Empty ${response} + + ${response1}= Retrieve Entity + ... id=${entity_id} + ... context=${ngsild_test_suite_context} + ... accept=${CONTENT_TYPE_LD_JSON} + Check Response Body Containing Entity element + ... expectation_filename=${expectation_filename} + ... entity_id=${entity_id} + ... response_body=${response1.json()} + +Setup Initial Entity + ${entity_id}= Generate Random Building Entity Id + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Set Test Variable ${entity_id} + Check Response Status Code 201 ${response.status_code} + +Delete Initial Entity + Delete Entity ${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_10.robot b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_10.robot new file mode 100644 index 0000000000000000000000000000000000000000..22ac89e89835dcfdf7aa2b86d5616baec2c6bf6b --- /dev/null +++ b/TP/NGSI-LD/ContextInformation/Provision/Entities/MergeEntity/056_10.robot @@ -0,0 +1,52 @@ +*** Settings *** +Documentation Check that keys inside a JsonProperty json object are removed when set to NGSI-LD Null + +Resource ${EXECDIR}/resources/ApiUtils/Common.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Test Setup Setup Initial Entity +Test Teardown Delete Initial Entity +Test Template Merge Entity Scenarios + + +*** Variables *** +${entity_payload_filename}= building-json-property-object.jsonld + + +*** Test Cases *** FILENAME EXPECTATION_FILENAME +056_10_01 RemoveKeyFromJsonPropertyObject + [Tags] e-merge 5_6_17 6_5_3_4 4_5_24 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-json-property-key.jsonld ngsild-null/building-deleted-json-property-key.jsonld + + +*** Keywords *** +Merge Entity Scenarios + [Documentation] Check that keys inside a JsonProperty json object are removed when set to NGSI-LD Null + [Arguments] ${filename} ${expectation_filename} + ${response}= Merge Entity + ... entity_id=${entity_id} + ... entity_filename=${filename} + ... content_type=${CONTENT_TYPE_LD_JSON} + Check Response Status Code 204 ${response.status_code} + Check Response Body Is Empty ${response} + + ${response1}= Retrieve Entity + ... id=${entity_id} + ... context=${ngsild_test_suite_context} + ... accept=${CONTENT_TYPE_LD_JSON} + Check Response Body Containing Entity element + ... expectation_filename=${expectation_filename} + ... entity_id=${entity_id} + ... response_body=${response1.json()} + +Setup Initial Entity + ${entity_id}= Generate Random Building Entity Id + ${response}= Create Entity ${entity_payload_filename} ${entity_id} + Set Test Variable ${entity_id} + Check Response Status Code 201 ${response.status_code} + +Delete Initial Entity + Delete Entity ${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Provision/Entities/ReplaceEntity/054_04.robot b/TP/NGSI-LD/ContextInformation/Provision/Entities/ReplaceEntity/054_04.robot new file mode 100644 index 0000000000000000000000000000000000000000..c142598c17ef4dbe5018e4c539271d2282d55222 --- /dev/null +++ b/TP/NGSI-LD/ContextInformation/Provision/Entities/ReplaceEntity/054_04.robot @@ -0,0 +1,50 @@ +*** Settings *** +Documentation Check that replacing an entity with a payload containing an attribute whose value is NGSI-LD Null returns 400 BadRequestData + +Resource ${EXECDIR}/resources/ApiUtils/Common.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource + +Test Setup Setup Initial Entity +Test Teardown Delete Initial Entity +Test Template Replace Entity With Null Value Scenarios + + +*** Variables *** +${entity_filename}= building-simple-attributes.jsonld + + +*** Test Cases *** REPLACEMENT_FILENAME +054_04_01 ReplaceEntityWithNullValueAttribute + [Tags] e-replace 5_6_18 since_v1.6.1 + fragmentEntities/ngsild-null/building-null-value-property.jsonld + + +*** Keywords *** +Replace Entity With Null Value Scenarios + [Documentation] Check that replacing an entity with a payload containing an attribute whose value is NGSI-LD Null returns 400 BadRequestData + [Arguments] ${replacement_filename} + ${entity}= Load Entity + ... entity_file_name=${replacement_filename} + ... entity_id=${entity_id} + ${response}= Replace Entity Selecting Content Type + ... entity_id=${entity_id} + ... entity_fragment=${entity} + ... content_type=${CONTENT_TYPE_LD_JSON} + Check Response Status Code 400 ${response.status_code} + Check Response Body Containing ProblemDetails Element Containing Type Element set to + ... ${response.json()} + ... ${ERROR_TYPE_BAD_REQUEST_DATA} + Check Response Body Containing ProblemDetails Element Containing Title Element ${response.json()} + +Setup Initial Entity + ${entity_id}= Generate Random Building Entity Id + Set Test Variable ${entity_id} + ${response}= Create Entity Selecting Content Type + ... ${entity_filename} + ... ${entity_id} + ... ${CONTENT_TYPE_LD_JSON} + Check Response Status Code 201 ${response.status_code} + +Delete Initial Entity + Delete Entity ${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/AppendEntityAttributes/010_12.robot b/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/AppendEntityAttributes/010_12.robot new file mode 100644 index 0000000000000000000000000000000000000000..27e621c5aeec8298f3fd4adcbf03155f1455346c --- /dev/null +++ b/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/AppendEntityAttributes/010_12.robot @@ -0,0 +1,43 @@ +*** Settings *** +Documentation Check that appending an attribute whose value is NGSI-LD Null returns 400 BadRequestData + +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource + +Test Setup Create Initial Entity +Test Teardown Delete Initial Entity +Test Template Append Attributes With Null Value + + +*** Variables *** +${filename}= building-minimal.jsonld + + +*** Test Cases *** FRAGMENT_FILENAME +010_12_01 AppendAttributeWithNullValue + [Tags] ea-append 5_6_3 since_v1.6.1 + ngsild-null/null-property.jsonld + + +*** Keywords *** +Append Attributes With Null Value + [Documentation] Check that appending an attribute whose value is NGSI-LD Null returns 400 BadRequestData + [Arguments] ${fragment_filename} + ${response}= Append Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON} + Check Response Status Code 400 ${response.status_code} + Check Response Body Containing ProblemDetails Element Containing Type Element set to + ... ${response.json()} + ... ${ERROR_TYPE_BAD_REQUEST_DATA} + Check Response Body Containing ProblemDetails Element Containing Title Element ${response.json()} + +Create Initial Entity + ${entity_id}= Generate Random Vehicle Entity Id + ${response}= Create Entity Selecting Content Type + ... ${filename} + ... ${entity_id} + ... ${CONTENT_TYPE_LD_JSON} + Check Response Status Code 201 ${response.status_code} + Set Suite Variable ${entity_id} + +Delete Initial Entity + Delete Entity ${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_02.robot b/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_02.robot index d937356f7c895133ce1f82efd8bf9be242094a82..586ba400b90ec6904194306798c886c8b418fb67 100644 --- a/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_02.robot +++ b/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_02.robot @@ -19,22 +19,29 @@ ${status_code}= 400 *** Test Cases *** ENTITY_ID ATTRIBUTE_ID FRAGMENT_FILENAME 012_02_01 Make A Partial Attribute Update If The Entity Id Is Not Present [Documentation] Check that one cannot perform a partial update on an entity attribute with missing entity id + [Tags] ea-partial-update 5_6_4 ${EMPTY} speed vehicle-speed-equal-datasetid-fragment.jsonld 012_02_02 Make A Partial Attribute Update If The Entity Id Is Not A Valid URI [Documentation] Check that one cannot perform a partial update on an entity attribute with invalid entity id + [Tags] ea-partial-update 5_6_4 thisisaninvaliduri speed vehicle-speed-equal-datasetid-fragment.jsonld 012_02_03 Make A Partial Attribute Update If The Attribute Type Does Not Match [Documentation] Check that one cannot perform a partial update on an entity attribute with a different attribute type + [Tags] ea-partial-update 5_6_4 ${valid_entity_id} speed vehicle-speed-equal-datasetid-different-type-fragment.jsonld 012_02_04 Make A Partial Attribute Update If The Entity Fragment Is Empty [Documentation] Check that one cannot perform a partial update on an entity attribute with an empty fragment + [Tags] ea-partial-update 5_6_4 ${valid_entity_id} speed empty-fragment.json +012_02_05 PartialUpdateSettingDatasetIdToNull + [Documentation] Check that one cannot perform a partial update on an entity attribute with a null datasetId + [Tags] ea-partial-update 5_6_4 since_v1.6.1 + ${valid_entity_id} speed ngsild-null/null-datasetid-fragment.jsonld *** Keywords *** Update Attributes [Documentation] Check that one cannot perform a partial update on an entity attribute in some conditions - [Tags] ea-partial-update 5_6_4 [Arguments] ${entity_id} ${attribute_id} ${fragment_filename} ${response}= Partial Update Entity Attributes ... entityId=${entity_id} diff --git a/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_10.robot b/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_10.robot new file mode 100644 index 0000000000000000000000000000000000000000..e162b1187b8a40d95f8466e570cf29794a4be1be --- /dev/null +++ b/TP/NGSI-LD/ContextInformation/Provision/EntityAttributes/PartialAttributeUpdate/012_10.robot @@ -0,0 +1,63 @@ +*** Settings *** +Documentation Check that sub-attributes set to NGSI-LD Null in a Partial Attribute Update are removed + +Resource ${EXECDIR}/resources/ApiUtils/Common.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationConsumption.resource +Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Test Setup Initiate Test Case +Test Teardown Delete Initial Entities +Test Template Update Attributes + + +*** Variables *** +${filename}= building-relationship-of-property.jsonld + + +*** Test Cases *** FRAGMENT_FILENAME ATTRIBUTE_ID EXPECTATION_FILENAME +012_10_01 RemoveObservedAtFromAirQualityLevel + [Tags] ea-partial-update 5_6_4 6_7_3_1 since_v1.6.1 + ngsild-null/null-sub-property-observedat-fragment.jsonld airQualityLevel ngsild-null/building-deleted-observedat.jsonld +012_10_02 RemoveUnitCodeFromAirQualityLevel + [Tags] ea-partial-update 5_6_4 6_7_3_1 since_v1.6.1 + ngsild-null/null-sub-property-unitcode-fragment.jsonld airQualityLevel ngsild-null/building-deleted-unitcode.jsonld +012_10_03 RemoveSubAttributeFromAirQualityLevel + [Tags] ea-partial-update 5_6_4 6_7_3_1 since_v1.6.1 + ngsild-null/null-sub-property-sub-attribute-fragment.jsonld airQualityLevel ngsild-null/building-deleted-sub-attribute.jsonld + + +*** Keywords *** +Update Attributes + [Documentation] Check that sub-attributes set to NGSI-LD Null in a Partial Attribute Update are removed + [Arguments] ${fragment_filename} ${attribute_id} ${expectation_filename} + ${response}= Partial Update Entity Attributes + ... entityId=${entity_id} + ... attributeId=${attribute_id} + ... fragment_filename=${fragment_filename} + ... content_type=${CONTENT_TYPE_LD_JSON} + Check Response Status Code 204 ${response.status_code} + Check Response Body Is Empty ${response} + ${entity_expectation_payload}= Load Test Sample entities/expectations/${expectation_filename} ${entity_id} + ${response1}= Retrieve Entity + ... id=${entity_id} + ... context=${ngsild_test_suite_context} + ... accept=${CONTENT_TYPE_LD_JSON} + ${ignored_attributes}= Create List @context + Check Updated Resource Set To + ... updated_resource=${entity_expectation_payload} + ... response_body=${response1.json()} + ... ignored_keys=${ignored_attributes} + +Initiate Test Case + ${entity_id}= Generate Random Building Entity Id + Set Test Variable ${entity_id} + ${response}= Create Entity Selecting Content Type + ... ${filename} + ... ${entity_id} + ... ${CONTENT_TYPE_LD_JSON} + Check Response Status Code 201 ${response.status_code} + +Delete Initial Entities + Delete Entity ${entity_id} diff --git a/data/entities/building-property-object-value.jsonld b/data/entities/building-property-object-value.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..66c527b519be30cb2a619245b009cef623eb5484 --- /dev/null +++ b/data/entities/building-property-object-value.jsonld @@ -0,0 +1,15 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "buildingDetails": { + "type": "Property", + "value": { + "category": "commercial", + "floors": 5, + "deprecated": true + } + }, + "@context": [ + "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" + ] +} diff --git a/data/entities/expectations/ngsild-null/building-deleted-json-property-key.jsonld b/data/entities/expectations/ngsild-null/building-deleted-json-property-key.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..59055a97eea00d9d190a94c3d6f32d3a07154a76 --- /dev/null +++ b/data/entities/expectations/ngsild-null/building-deleted-json-property-key.jsonld @@ -0,0 +1,13 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "jsonProperty": { + "type": "JsonProperty", + "json": { + "id": "some-id", + "type": "some-type", + "null": null + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/expectations/ngsild-null/building-deleted-observedat.jsonld b/data/entities/expectations/ngsild-null/building-deleted-observedat.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..1da0e0d062c3713384047b8af3de33ba4c2eed0c --- /dev/null +++ b/data/entities/expectations/ngsild-null/building-deleted-observedat.jsonld @@ -0,0 +1,26 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "name": { + "type": "Property", + "value": "Eiffel Tower" + }, + "subCategory": { + "type": "Property", + "value": "tourism" + }, + "airQualityLevel": { + "type": "Property", + "value": 4, + "unitCode": "C62", + "hasWeatherObserved": { + "type": "Relationship", + "object": "urn:ngsi-ld:Sensor:43a1af27-4aa7-44fe-bee9-fe76d56978a4" + } + }, + "almostFull": { + "type": "Property", + "value": false + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/expectations/ngsild-null/building-deleted-property-object-merged.jsonld b/data/entities/expectations/ngsild-null/building-deleted-property-object-merged.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..b4bef269c78d18890cd1b6ec7ecd7877e5c183cf --- /dev/null +++ b/data/entities/expectations/ngsild-null/building-deleted-property-object-merged.jsonld @@ -0,0 +1,12 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "buildingDetails": { + "type": "Property", + "value": { + "category": "leisure", + "deprecated": false + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/expectations/ngsild-null/building-deleted-property-object.jsonld b/data/entities/expectations/ngsild-null/building-deleted-property-object.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..596da22c3bcbcdb89b2156462820aa2355f36b09 --- /dev/null +++ b/data/entities/expectations/ngsild-null/building-deleted-property-object.jsonld @@ -0,0 +1,12 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "buildingDetails": { + "type": "Property", + "value": { + "category": "commercial", + "floors": 5 + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/expectations/ngsild-null/building-deleted-sub-attribute.jsonld b/data/entities/expectations/ngsild-null/building-deleted-sub-attribute.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..d2d382224356574f42090ca7b8661605fbea9250 --- /dev/null +++ b/data/entities/expectations/ngsild-null/building-deleted-sub-attribute.jsonld @@ -0,0 +1,23 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "name": { + "type": "Property", + "value": "Eiffel Tower" + }, + "subCategory": { + "type": "Property", + "value": "tourism" + }, + "airQualityLevel": { + "type": "Property", + "value": 4, + "observedAt": "2020-09-09T16:40:00.000Z", + "unitCode": "C62" + }, + "almostFull": { + "type": "Property", + "value": false + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/expectations/ngsild-null/building-deleted-unitcode.jsonld b/data/entities/expectations/ngsild-null/building-deleted-unitcode.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..b4177fbd94012886e5d39c4a883eb11747b5fa37 --- /dev/null +++ b/data/entities/expectations/ngsild-null/building-deleted-unitcode.jsonld @@ -0,0 +1,26 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "name": { + "type": "Property", + "value": "Eiffel Tower" + }, + "subCategory": { + "type": "Property", + "value": "tourism" + }, + "airQualityLevel": { + "type": "Property", + "value": 4, + "observedAt": "2020-09-09T16:40:00.000Z", + "hasWeatherObserved": { + "type": "Relationship", + "object": "urn:ngsi-ld:Sensor:43a1af27-4aa7-44fe-bee9-fe76d56978a4" + } + }, + "almostFull": { + "type": "Property", + "value": false + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/expectations/ngsild-null/building-languagemap-merged.jsonld b/data/entities/expectations/ngsild-null/building-languagemap-merged.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..536ded0c1331e3e4773cd880e224803629c40188 --- /dev/null +++ b/data/entities/expectations/ngsild-null/building-languagemap-merged.jsonld @@ -0,0 +1,12 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "street": { + "type": "LanguageProperty", + "languageMap": { + "de": "Grosser Platz", + "fr": "Grande Place" + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-datasetid-fragment.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-datasetid-fragment.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..39002d24448edd5ce21a12cb1631b92270067491 --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-datasetid-fragment.jsonld @@ -0,0 +1,10 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "name": { + "type": "Property", + "value": "Eiffel Tower", + "datasetId": "urn:ngsi-ld:null" + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-json-property-key.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-json-property-key.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..2ee375b9eee97f0d4250419a11175302bae27e75 --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-json-property-key.jsonld @@ -0,0 +1,11 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "jsonProperty": { + "type": "JsonProperty", + "json": { + "anythingElse": "urn:ngsi-ld:null" + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-languagemap-merge.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-languagemap-merge.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..84bdcb02b97e2a54791615db7428b23fceed497f --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-languagemap-merge.jsonld @@ -0,0 +1,13 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "street": { + "type": "LanguageProperty", + "languageMap": { + "de": "Grosser Platz", + "fr": "Grande Place", + "nl": "urn:ngsi-ld:null" + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-languagemap-none.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-languagemap-none.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..d2d930dc90263ae63b52b5549a173d84e2dcfe6c --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-languagemap-none.jsonld @@ -0,0 +1,11 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "street": { + "type": "LanguageProperty", + "languageMap": { + "@none": "urn:ngsi-ld:null" + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-property-object-key.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-property-object-key.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..cf2db5f2e628060e4466e8415cc106dab093e565 --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-property-object-key.jsonld @@ -0,0 +1,11 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "buildingDetails": { + "type": "Property", + "value": { + "deprecated": "urn:ngsi-ld:null" + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-property-object-merge.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-property-object-merge.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..cbc85a2b7597d281655c3fd46f5003087f131e2e --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-property-object-merge.jsonld @@ -0,0 +1,13 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "buildingDetails": { + "type": "Property", + "value": { + "category": "leisure", + "floors": "urn:ngsi-ld:null", + "deprecated": false + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-sub-property-sub-attribute.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-sub-property-sub-attribute.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..fd9d74fee7199ab25041ba5abbc91023792b3de8 --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-sub-property-sub-attribute.jsonld @@ -0,0 +1,13 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "airQualityLevel": { + "type": "Property", + "value": 4, + "hasWeatherObserved": { + "type": "Relationship", + "object": "urn:ngsi-ld:null" + } + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-sub-property-unitcode.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-sub-property-unitcode.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..404a8e55df5bfd0f822d8cd2c9b5b81ef746b902 --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-sub-property-unitcode.jsonld @@ -0,0 +1,10 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "airQualityLevel": { + "type": "Property", + "value": 4, + "unitCode": "urn:ngsi-ld:null" + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/building-null-value-property.jsonld b/data/entities/fragmentEntities/ngsild-null/building-null-value-property.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..cd1ab8b96d65d8552f506780e8bb3e0630d3b496 --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/building-null-value-property.jsonld @@ -0,0 +1,9 @@ +{ + "id": "urn:ngsi-ld:Building:randomUUID", + "type": "Building", + "name": { + "type": "Property", + "value": "urn:ngsi-ld:null" + }, + "@context": "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" +} diff --git a/data/entities/fragmentEntities/ngsild-null/null-datasetid-fragment.jsonld b/data/entities/fragmentEntities/ngsild-null/null-datasetid-fragment.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..86dfd26def22137c74aa28beb98a8496010fe4b2 --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/null-datasetid-fragment.jsonld @@ -0,0 +1,8 @@ +{ + "type": "Property", + "value": 56, + "datasetId": "urn:ngsi-ld:null", + "@context": [ + "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" + ] +} diff --git a/data/entities/fragmentEntities/ngsild-null/null-sub-property-observedat-fragment.jsonld b/data/entities/fragmentEntities/ngsild-null/null-sub-property-observedat-fragment.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..14db0d978e43c5660a17f547c1222357e4e6274d --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/null-sub-property-observedat-fragment.jsonld @@ -0,0 +1,8 @@ +{ + "type": "Property", + "value": 4, + "observedAt": "urn:ngsi-ld:null", + "@context": [ + "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" + ] +} diff --git a/data/entities/fragmentEntities/ngsild-null/null-sub-property-sub-attribute-fragment.jsonld b/data/entities/fragmentEntities/ngsild-null/null-sub-property-sub-attribute-fragment.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..45ab179dd815e1baa79de9f60c6b6edce034bbaa --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/null-sub-property-sub-attribute-fragment.jsonld @@ -0,0 +1,11 @@ +{ + "type": "Property", + "value": 4, + "hasWeatherObserved": { + "type": "Relationship", + "object": "urn:ngsi-ld:null" + }, + "@context": [ + "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" + ] +} diff --git a/data/entities/fragmentEntities/ngsild-null/null-sub-property-unitcode-fragment.jsonld b/data/entities/fragmentEntities/ngsild-null/null-sub-property-unitcode-fragment.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..c5241bb5ea3dbaca78444b198a4c9838460667fd --- /dev/null +++ b/data/entities/fragmentEntities/ngsild-null/null-sub-property-unitcode-fragment.jsonld @@ -0,0 +1,8 @@ +{ + "type": "Property", + "value": 4, + "unitCode": "urn:ngsi-ld:null", + "@context": [ + "https://easy-global-market.github.io/ngsild-api-data-models/ngsildTestSuite/ngsildTestSuiteV1.8-compound.jsonld" + ] +} diff --git a/resources/AssertionUtils.resource b/resources/AssertionUtils.resource index c21eaa5c966af50c30ceda287edd5396b498d180..629f8ee32986ae60a44c474841bcd5311f06b5fe 100755 --- a/resources/AssertionUtils.resource +++ b/resources/AssertionUtils.resource @@ -165,7 +165,7 @@ Check Response Body Containing Update Result Check Response Body Containing Entity element [Arguments] ${expectation_filename} ${entity_id} ${response_body} ${ignore_core_context_version}=False ${entity_payload}= Load JSON From File ${EXECDIR}/data/entities/expectations/${expectation_filename} - ${entity}= Update Value To JSON ${entity_payload} $..id ${entity_id} + ${entity}= Update Value To JSON ${entity_payload} $.id ${entity_id} ${comparison_result}= Compare Dictionaries Ignoring Keys ... ${entity} ... ${response_body}