diff --git a/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/CreateBatchOfEntities/003_02.robot b/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/CreateBatchOfEntities/003_02.robot index 83533186c35266d3faa9e8954907778a3227f9c0..bc248639bd6b9183d58eac9bfe3980212350f637 100644 --- a/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/CreateBatchOfEntities/003_02.robot +++ b/TP/NGSI-LD/ContextInformation/Provision/BatchEntities/CreateBatchOfEntities/003_02.robot @@ -16,6 +16,7 @@ Create a batch of two valid entities and one invalid entity ${first_entity_id}= Generate Random Entity Id ${building_id_prefix} ${second_entity_id}= Generate Random Entity Id ${building_id_prefix} + # TODO: Use Load Test Sample keyword instead ${first_entity}= Load Entity building-minimal-sample.jsonld ${first_entity_id} ${second_entity}= Load Entity building-minimal-sample.jsonld ${second_entity_id} ${already_existing_entity}= Load Entity building-minimal-sample.jsonld ${existing_entity_id} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_01.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_01.robot new file mode 100644 index 0000000000000000000000000000000000000000..d8865cd92179ed22ebe438393f2b8b15fc6b0987 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_01.robot @@ -0,0 +1,31 @@ +*** Settings *** +Documentation Check that you can create a minimal context source registration subscription +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Generate Random Ids For Context Source Registration Subscriptions +Suite Teardown Delete Created Context Source Registration Subscriptions + +*** Variable *** +${subscription_id_prefix}= urn:ngsi-ld:Subscription: +${subscription_payload_file_path}= csourceSubscriptions/subscription-sample.jsonld + +*** Test Case *** +Create Context Source Registration Subscription + [Documentation] Check that you can create a minimal context source registration subscription + [Tags] mandatory + + ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} + Create Context Source Registration Subscription ${subscription_payload} + Check Response Status Code Set To 201 + Check Response Headers Containing URI set to ${request['path']}/ ${subscription_id} ${response} + +*** Keywords *** +Generate Random Ids For Context Source Registration Subscriptions + # TODO: Refactor Generate Random Entity Id to Generate Random Test Sample Id + ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} + Set Suite Variable ${subscription_id} + +Delete Created Context Source Registration Subscriptions + Delete Context Source Registration Subscription ${subscription_id} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_02.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_02.robot new file mode 100644 index 0000000000000000000000000000000000000000..4585d672ed86b5f250f2f3280b221abb9f8ba166 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_02.robot @@ -0,0 +1,29 @@ +*** Settings *** +Documentation Check that you can create a context source registration subscription without providing an id and it will be automatically generated +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource +Resource ${EXECDIR}/resources/HttpUtils.resource + +Suite Teardown Delete Created Context Source Registration Subscriptions + +*** Variable *** +${subscription_payload_file_path}= csourceSubscriptions/subscription-sample.jsonld + +*** Test Case *** +Create Context Source Registration Subscription Without An Id + [Documentation] Check that you can create a context source registration subscription without providing an id and it will be automatically generated + [Tags] mandatory + + ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} + + Create Context Source Registration Subscription ${subscription_payload} + + ${subscription_id}= Fetch Id From Response Location Header + Check Response Status Code Set To 201 + Check Response Headers Containing URI set to ${request['path']}/ ${subscription_id} ${response} + Set Suite Variable ${subscription_id} + +*** Keywords *** +Delete Created Context Source Registration Subscriptions + Delete Context Source Registration Subscription ${subscription_id} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_03.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_03.robot new file mode 100644 index 0000000000000000000000000000000000000000..82b4f4ef8eee0a3fc2e16a5d206115fa1a196ee3 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_03.robot @@ -0,0 +1,31 @@ +*** Settings *** +Documentation Check that you can create a context source registration subscription without providing isActive member and will be active by default +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Generate Random Ids For Context Source Registration Subscriptions +Suite Teardown Delete Created Context Source Registration Subscriptions + +*** Variable *** +${subscription_id_prefix}= urn:ngsi-ld:Subscription: +${subscription_payload_file_path}= csourceSubscriptions/subscription-sample.jsonld + +*** Test Case *** +Create Context Source Registration Subscription Without isActive Member + [Documentation] Check that you can create a context source registration subscription without providing isActive member and will be active by default + [Tags] mandatory + + ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} + Create Context Source Registration Subscription ${subscription_payload} + Check Response Status Code Set To 201 + Check Response Headers Containing URI set to ${request['path']}/ ${subscription_id} ${response} + # TODO: Retrieve context source registration subscription and check status set to active + +*** Keywords *** +Generate Random Ids For Context Source Registration Subscriptions + ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} + Set Suite Variable ${subscription_id} + +Delete Created Context Source Registration Subscriptions + Delete Context Source Registration Subscription ${subscription_id} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_04.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_04.robot new file mode 100644 index 0000000000000000000000000000000000000000..4ee7e5d85aad0f75762303c14ea6984e98cbb540 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_04.robot @@ -0,0 +1,31 @@ +*** Settings *** +Documentation Check that you can create a context source registration subscription with isActive member set to false and it's initial status will be set to "paused" +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Generate Random Ids For Context Source Registration Subscriptions +Suite Teardown Delete Created Context Source Registration Subscriptions + +*** Variable *** +${subscription_id_prefix}= urn:ngsi-ld:Subscription: +${subscription_payload_file_path}= csourceSubscriptions/subscription-inactive-sample.jsonld + +*** Test Case *** +Create Inactive Context Source Registration Subscription + [Documentation] Check that you can create a context source registration subscription with isActive member set to false and it's initial status will be set to "paused" + [Tags] mandatory + + ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} + Create Context Source Registration Subscription ${subscription_payload} + Check Response Status Code Set To 201 + Check Response Headers Containing URI set to ${request['path']}/ ${subscription_id} ${response} + # TODO: Retrieve context source registration subscription and check status set to paused + +*** Keywords *** +Generate Random Ids For Context Source Registration Subscriptions + ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} + Set Suite Variable ${subscription_id} + +Delete Created Context Source Registration Subscriptions + Delete Context Source Registration Subscription ${subscription_id} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_05.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_05.robot new file mode 100644 index 0000000000000000000000000000000000000000..2ac840e9f224255830a1e2bb5ad669d4d53c5bed --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_05.robot @@ -0,0 +1,36 @@ +*** Settings *** +Documentation Check that you can create a context source registration subscription with an expiresAt member and when it is due the status of the subscription changes to expired +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Generate Random Ids For Context Source Registration Subscriptions +Suite Teardown Delete Created Context Source Registration Subscriptions + +*** Variable *** +${subscription_id_prefix}= urn:ngsi-ld:Subscription: +${subscription_payload_file_path}= csourceSubscriptions/subscription-expiresAt-sample.jsonld + +*** Test Case *** +Create Context Source Registration Subscription With expiresAt Member + [Documentation] Check that you can create a context source registration subscription with an expiresAt member and when it is due the status of the subscription changes to expired + [Tags] mandatory + + ${subscription_payload_sample}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} + ${current_date}= Get Current Date time_zone=UTC result_format=${date_format} + ${expiresAt}= Add Time To Date ${current_date} 10 seconds date_format=${date_format} + ${subscription_payload}= Update Value To Json ${subscription_payload_sample} $..expiresAt ${expiresAt} + + Create Context Source Registration Subscription ${subscription_payload} + + Check Response Status Code Set To 201 + Check Response Headers Containing URI set to ${request['path']}/ ${subscription_id} ${response} + # TODO: Retrieve context source registration subscription after 10 secs and check status set to expired + +*** Keywords *** +Generate Random Ids For Context Source Registration Subscriptions + ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} + Set Suite Variable ${subscription_id} + +Delete Created Context Source Registration Subscriptions + Delete Context Source Registration Subscription ${subscription_id} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_06.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_06.robot new file mode 100644 index 0000000000000000000000000000000000000000..7cca66d036e245f08832a409f65e193863e0213a --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_06.robot @@ -0,0 +1,31 @@ +*** Settings *** +Documentation Check that you can create a context source registration subscription without an expiresAt member and it will be considered as perpetual +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Generate Random Ids For Context Source Registration Subscriptions +Suite Teardown Delete Created Context Source Registration Subscriptions + +*** Variable *** +${subscription_id_prefix}= urn:ngsi-ld:Subscription: +${subscription_payload_file_path}= csourceSubscriptions/subscription-sample.jsonld + +*** Test Case *** +Create Context Source Registration Subscription Without expiresAt Member + [Documentation] Check that you can create a context source registration subscription without an expiresAt member and it will be considered as perpetual + [Tags] mandatory + + ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} + Create Context Source Registration Subscription ${subscription_payload} + Check Response Status Code Set To 201 + Check Response Headers Containing URI set to ${request['path']}/ ${subscription_id} ${response} + # TODO: How to check that the context source registration subscription status will be always set to active ? + +*** Keywords *** +Generate Random Ids For Context Source Registration Subscriptions + ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} + Set Suite Variable ${subscription_id} + +Delete Created Context Source Registration Subscriptions + Delete Context Source Registration Subscription ${subscription_id} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_07.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_07.robot new file mode 100644 index 0000000000000000000000000000000000000000..4d1b9db818431a2439c58a5cb4200a1ea1fae5d5 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_07.robot @@ -0,0 +1,36 @@ +*** Settings *** +Documentation Check that you cannot create a context source registration subscription where another context source registration subscription whose id is equivalent exists +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Suite Setup Setup Initial Context Source Registration Subscriptions +Suite Teardown Delete Initial Context Source Registration Subscriptions + +*** Variable *** +${subscription_id_prefix}= urn:ngsi-ld:Subscription: +${subscription_payload_file_path}= csourceSubscriptions/subscription-sample.jsonld + +*** Test Case *** +Create Existing Context Source Registration Subscription + [Documentation] Check that you cannot create a context source registration subscription where another context source registration subscription whose id is equivalent exists + [Tags] mandatory + + ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} + Create Context Source Registration Subscription ${subscription_payload} + Check Response Status Code Set To 409 + Check Response Body Containing ProblemDetails Element Containing Type Element set to ${response} ${ERROR_TYPE_ALREADY_EXISTS} + Check Response Body Containing ProblemDetails Element Containing Title Element ${response} + + +*** Keywords *** +Setup Initial Context Source Registration Subscriptions + ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} + ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} + + Create Context Source Registration Subscription ${subscription_payload} + + Set Suite Variable ${subscription_id} + +Delete Initial Context Source Registration Subscriptions + Delete Context Source Registration Subscription ${subscription_id} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_08.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_08.robot new file mode 100644 index 0000000000000000000000000000000000000000..7bbdbcf3fd2a964cb63b8e3eba9f6766d5269b95 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_08.robot @@ -0,0 +1,32 @@ +*** Settings *** +Documentation Check that you cannot create a context source registration subscription If the data types, cardinalities and restrictions expressed by clause 5.2.12 are not met +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Test Template Create Invalid Context Source Registration Subscription + +*** Variable *** +${subscription_id_prefix}= urn:ngsi-ld:Subscription: +${subscription_payload_file_path}= + +*** Test Cases *** FILEPATH +WithoutNotification csourceSubscriptions/subscription-without-notification-sample.jsonld +InvalidType csourceSubscriptions/subscription-invalid-type-sample.jsonld +InvalidQuery csourceSubscriptions/subscription-invalid-query-sample.jsonld +EmptyWatchedAttributes csourceSubscriptions/subscription-empty-watchedAttributes-sample.jsonld + +*** Keywords *** +Create Invalid Context Source Registration Subscription + [Arguments] ${filepath} + [Documentation] Check that you cannot create a context source registration subscription If the data types, cardinalities and restrictions expressed by clause 5.2.12 are not met + [Tags] mandatory + + ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} + ${subscription_payload}= Load Test Sample ${filepath} ${subscription_id} + + Create Context Source Registration Subscription ${subscription_payload} + + Check Response Status Code Set To 400 + Check Response Body Containing ProblemDetails Element Containing Type Element set to ${response} ${ERROR_TYPE_BAD_REQUEST_DATA} + Check Response Body Containing ProblemDetails Element Containing Title Element ${response} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_09.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_09.robot new file mode 100644 index 0000000000000000000000000000000000000000..9a0f4450e34e21e1162992fe6f8ec94da8848ed9 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/CreateContextSourceRegistrationSubscription/032_09.robot @@ -0,0 +1,23 @@ +*** Settings *** +Documentation Check that you cannot create a context source registration subscription with an expiration timestamp representing a moment before the current date and time +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +*** Variable *** +${subscription_id_prefix}= urn:ngsi-ld:Subscription: +${subscription_payload_file_path}= csourceSubscriptions/subscription-expired-sample.jsonld + +*** Test Case *** +Create Expired Context Source Registration Subscription + [Documentation] Check that you cannot create a context source registration subscription with an expiration timestamp representing a moment before the current date and time + [Tags] mandatory + + ${subscription_id}= Generate Random Entity Id ${subscription_id_prefix} + ${subscription_payload}= Load Test Sample ${subscription_payload_file_path} ${subscription_id} + + Create Context Source Registration Subscription ${subscription_payload} + + Check Response Status Code Set To 400 + Check Response Body Containing ProblemDetails Element Containing Type Element set to ${response} ${ERROR_TYPE_BAD_REQUEST_DATA} + Check Response Body Containing ProblemDetails Element Containing Title Element ${response} diff --git a/data/csourceSubscriptions/subscription-empty-watchedAttributes-sample.jsonld b/data/csourceSubscriptions/subscription-empty-watchedAttributes-sample.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..a63a1891846a55c2fe64a9f029f0c0bf8d5f6804 --- /dev/null +++ b/data/csourceSubscriptions/subscription-empty-watchedAttributes-sample.jsonld @@ -0,0 +1,21 @@ +{ + "id":"urn:ngsi-ld:Subscription:randomUUID", + "type":"Subscription", + "entities":[ + { + "type":"Building" + } + ], + "watchedAttributes": [], + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.endpoint.org/notify", + "accept":"application/json" + } + }, + "@context":[ + "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/feature/add-json-ld-context-for-ngsi-ld-test-suite/ngsi-ld-test-suite/ngsi-ld-test-suite-context.jsonld", + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld" + ] +} \ No newline at end of file diff --git a/data/csourceSubscriptions/subscription-expired-sample.jsonld b/data/csourceSubscriptions/subscription-expired-sample.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..6666dc7a6433d5ff95a71b4da030e415771db7b4 --- /dev/null +++ b/data/csourceSubscriptions/subscription-expired-sample.jsonld @@ -0,0 +1,21 @@ +{ + "id":"urn:ngsi-ld:Subscription:randomUUID", + "type":"Subscription", + "expiresAt": "2018-08-01T22:07:00Z", + "entities":[ + { + "type":"Building" + } + ], + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.endpoint.org/notify", + "accept":"application/json" + } + }, + "@context":[ + "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/feature/add-json-ld-context-for-ngsi-ld-test-suite/ngsi-ld-test-suite/ngsi-ld-test-suite-context.jsonld", + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld" + ] +} \ No newline at end of file diff --git a/data/csourceSubscriptions/subscription-expiresAt-sample.jsonld b/data/csourceSubscriptions/subscription-expiresAt-sample.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..72c0f7b859dc654ff32b0c35db3a5fea603999a2 --- /dev/null +++ b/data/csourceSubscriptions/subscription-expiresAt-sample.jsonld @@ -0,0 +1,21 @@ +{ + "id":"urn:ngsi-ld:Subscription:randomUUID", + "type":"Subscription", + "expiresAt": "2022-08-01T22:07:00Z", + "entities":[ + { + "type":"Building" + } + ], + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.endpoint.org/notify", + "accept":"application/json" + } + }, + "@context":[ + "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/feature/add-json-ld-context-for-ngsi-ld-test-suite/ngsi-ld-test-suite/ngsi-ld-test-suite-context.jsonld", + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld" + ] +} \ No newline at end of file diff --git a/data/csourceSubscriptions/subscription-inactive-sample.jsonld b/data/csourceSubscriptions/subscription-inactive-sample.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..cadb9bea1334e847d3c66966d982c8b97bc4ff87 --- /dev/null +++ b/data/csourceSubscriptions/subscription-inactive-sample.jsonld @@ -0,0 +1,21 @@ +{ + "id":"urn:ngsi-ld:Subscription:randomUUID", + "type":"Subscription", + "isActive": false, + "entities":[ + { + "type":"Building" + } + ], + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.endpoint.org/notify", + "accept":"application/json" + } + }, + "@context":[ + "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/feature/add-json-ld-context-for-ngsi-ld-test-suite/ngsi-ld-test-suite/ngsi-ld-test-suite-context.jsonld", + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld" + ] +} \ No newline at end of file diff --git a/data/csourceSubscriptions/subscription-invalid-query-sample.jsonld b/data/csourceSubscriptions/subscription-invalid-query-sample.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..b4c202a7ad96824cfae7af444a8d4bf9ec440f32 --- /dev/null +++ b/data/csourceSubscriptions/subscription-invalid-query-sample.jsonld @@ -0,0 +1,21 @@ +{ + "id":"urn:ngsi-ld:Subscription:randomUUID", + "type":"Subscription", + "entities":[ + { + "type":"Building" + } + ], + "q": "invalidQuery", + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.endpoint.org/notify", + "accept":"application/json" + } + }, + "@context":[ + "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/feature/add-json-ld-context-for-ngsi-ld-test-suite/ngsi-ld-test-suite/ngsi-ld-test-suite-context.jsonld", + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld" + ] +} \ No newline at end of file diff --git a/data/csourceSubscriptions/subscription-invalid-type-sample.jsonld b/data/csourceSubscriptions/subscription-invalid-type-sample.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..087b9fc295de8c1869dc2c3f22fa02c13807b1d6 --- /dev/null +++ b/data/csourceSubscriptions/subscription-invalid-type-sample.jsonld @@ -0,0 +1,20 @@ +{ + "id":"urn:ngsi-ld:Subscription:randomUUID", + "type":"RandomType", + "entities":[ + { + "type":"Building" + } + ], + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.endpoint.org/notify", + "accept":"application/json" + } + }, + "@context":[ + "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/feature/add-json-ld-context-for-ngsi-ld-test-suite/ngsi-ld-test-suite/ngsi-ld-test-suite-context.jsonld", + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld" + ] +} \ No newline at end of file diff --git a/data/csourceSubscriptions/subscription-sample.jsonld b/data/csourceSubscriptions/subscription-sample.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..7ca438fd1f1a91badcc251eed94e13c7062f2c07 --- /dev/null +++ b/data/csourceSubscriptions/subscription-sample.jsonld @@ -0,0 +1,20 @@ +{ + "id":"urn:ngsi-ld:Subscription:randomUUID", + "type":"Subscription", + "entities":[ + { + "type":"Building" + } + ], + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.endpoint.org/notify", + "accept":"application/json" + } + }, + "@context":[ + "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/feature/add-json-ld-context-for-ngsi-ld-test-suite/ngsi-ld-test-suite/ngsi-ld-test-suite-context.jsonld", + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld" + ] +} \ No newline at end of file diff --git a/data/csourceSubscriptions/subscription-without-notification-sample.jsonld b/data/csourceSubscriptions/subscription-without-notification-sample.jsonld new file mode 100644 index 0000000000000000000000000000000000000000..36bf7833a18edbe1fe5a723492a3df6d8d72f35d --- /dev/null +++ b/data/csourceSubscriptions/subscription-without-notification-sample.jsonld @@ -0,0 +1,13 @@ +{ + "id":"urn:ngsi-ld:Subscription:randomUUID", + "type":"Subscription", + "entities":[ + { + "type":"Building" + } + ], + "@context":[ + "https://raw.githubusercontent.com/easy-global-market/ngsild-api-data-models/feature/add-json-ld-context-for-ngsi-ld-test-suite/ngsi-ld-test-suite/ngsi-ld-test-suite-context.jsonld", + "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld" + ] +} \ No newline at end of file diff --git a/resources/ApiUtils.resource b/resources/ApiUtils.resource index facc21d54ceb84801cbfc6576fb2a904572273f0..8036125e174ff246fdd6d8cd04de5822b7d84c5d 100755 --- a/resources/ApiUtils.resource +++ b/resources/ApiUtils.resource @@ -16,6 +16,7 @@ ${ENTITIES_ENDPOINT_PATH} entities/ ${ENTITY_OPERATIONS_QUERY_ENDPOINT_PATH} entityOperations/query ${TEMPORAL_ENTITIES_ENDPOINT_PATH} temporal/entities ${TEMPORAL_ENTITY_OPERATIONS_ENDPOINT_PATH} temporal/entityOperations +${CONTEXT_SOURCE_REGISTRATION_SUBSCRIPTION_ENDPOINT_PATH} csourceSubscriptions ${CONTENT_TYPE_JSON} application/json ${CONTENT_TYPE_LD_JSON} application/ld+json @@ -312,3 +313,21 @@ Delete Temporal Representation Of Entity ${response}= DELETE ${TEMPORAL_ENTITIES_ENDPOINT_PATH}/${temporal_entity_representation_id} Output request Output response + +Create Context Source Registration Subscription + [Arguments] ${subscription_payload} + + &{headers}= Create Dictionary Content-Type=application/ld+json + ${response}= POST ${CONTEXT_SOURCE_REGISTRATION_SUBSCRIPTION_ENDPOINT_PATH} body=${subscription_payload} headers=${headers} + ${request}= Output request + Output response + + Set Suite Variable ${request} + Set Suite Variable ${response} + +Delete Context Source Registration Subscription + [Arguments] ${subscription_id} + + ${response}= DELETE ${CONTEXT_SOURCE_REGISTRATION_SUBSCRIPTION_ENDPOINT_PATH}/${subscription_id} + Output request + Output response diff --git a/resources/HttpUtils.resource b/resources/HttpUtils.resource new file mode 100755 index 0000000000000000000000000000000000000000..ea8c64a8b94971b84d7da4cf09217f680f54249e --- /dev/null +++ b/resources/HttpUtils.resource @@ -0,0 +1,9 @@ +*** Settings *** +Variables ./variables.py + +Library String + +*** Keywords *** +Fetch Id From Response Location Header + ${id}= Fetch From Right ${response['headers']['Location']} / + [return] ${id} diff --git a/resources/JsonUtils.resource b/resources/JsonUtils.resource index 8ae198c285596f886e724df3030e3b847ed406aa..78c7d74d56e97b7e68f18cc87d03e855fcfede40 100644 --- a/resources/JsonUtils.resource +++ b/resources/JsonUtils.resource @@ -1,7 +1,10 @@ *** Settings *** Library String +Library DateTime Library JSONLibrary +*** Variable *** +${date_format}= %Y-%m-%dT%H:%M:%SZ *** Keywords *** Load Entity [Arguments] ${entity_file_name} ${entity_id} @@ -11,6 +14,16 @@ Load Entity [return] ${entity} +Load Test Sample + [Arguments] ${test_sample_file_path} ${test_sample_id}=${EMPTY} + + ${test_sample_payload}= Load Json From File ${EXECDIR}/data/${test_sample_file_path} + ${test_sample}= Update Value To Json ${test_sample_payload} $..id ${test_sample_id} + + Run Keyword If '${test_sample_id}'=='' Delete Object From Json ${test_sample} $..id + + [return] ${test_sample} + Remove Entity Type [Arguments] ${entity} @@ -31,4 +44,4 @@ Create Batch Operation Result &{batch_operation_result}= Create Dictionary success=${success} errors=${errors} - [return] &{batch_operation_result} \ No newline at end of file + [return] &{batch_operation_result}