diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_01.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_01.robot new file mode 100644 index 0000000000000000000000000000000000000000..c72a111ccc70bf836da27240898db130f9f93c20 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_01.robot @@ -0,0 +1,35 @@ +*** Settings *** +Documentation Check that you can update a context source registration subscription +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 +${subscription_update_fragment_file_path}= csourceSubscriptions/fragments/subscription-update-sample.json + +*** Test Case *** +Update Context Source Registration Subscription + [Documentation] Check that you can update a context source registration subscription + [Tags] mandatory + + ${subscription_update_fragment}= Load Test Sample ${subscription_update_fragment_file_path} + Update Context Source Registration Subscription ${subscription_id} ${subscription_update_fragment} + + Check Response Status Code Set To 204 + +*** 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/UpdateContextSourceRegistrationSubscription/033_02.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_02.robot new file mode 100644 index 0000000000000000000000000000000000000000..c62c0d80200d8e311d766fcc35ccc35f6e9b2541 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_02.robot @@ -0,0 +1,20 @@ +*** Settings *** +Documentation Check that you cannot update a context source registration subscription with an invalid URI +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +*** Variable *** +${subscription_update_fragment_file_path}= csourceSubscriptions/fragments/subscription-update-sample.json + +*** Test Case *** +Update Context Source Registration Subscription With Invalid Uri + [Documentation] Check that you cannot update a context source registration subscription with an invalid URI + [Tags] mandatory + + ${subscription_update_fragment}= Load Test Sample ${subscription_update_fragment_file_path} + Update Context Source Registration Subscription invalidUri ${subscription_update_fragment} + + 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/UpdateContextSourceRegistrationSubscription/033_03.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_03.robot new file mode 100644 index 0000000000000000000000000000000000000000..58da071345c480873bdd05f9a3420f3529aff61b --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_03.robot @@ -0,0 +1,20 @@ +*** Settings *** +Documentation Check that you cannot update an unknown context source registration subscription +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +*** Variable *** +${subscription_update_fragment_file_path}= csourceSubscriptions/fragments/subscription-update-sample.json + +*** Test Case *** +Update Unknown Context Source Registration Subscription + [Documentation] Check that you cannot update an unknown context source registration subscription + [Tags] mandatory + + ${subscription_update_fragment}= Load Test Sample ${subscription_update_fragment_file_path} + Update Context Source Registration Subscription urn:ngsi-ld:Subscription:unknowSubscription ${subscription_update_fragment} + + Check Response Status Code Set To 404 + Check Response Body Containing ProblemDetails Element Containing Type Element set to ${response} ${ERROR_TYPE_RESOURCE_NOT_FOUND} + Check Response Body Containing ProblemDetails Element Containing Title Element ${response} diff --git a/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_04.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_04.robot new file mode 100644 index 0000000000000000000000000000000000000000..54d969c64ebc1674f0ce1ace448e554aad1415dc --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_04.robot @@ -0,0 +1,41 @@ +*** Settings *** +Documentation Check that you cannot update a context source registration subscription with a fragment that doesn't meet the data types and restrictions expressed by clause 5.2.12 +Resource ${EXECDIR}/resources/ApiUtils.resource +Resource ${EXECDIR}/resources/AssertionUtils.resource +Resource ${EXECDIR}/resources/JsonUtils.resource + +Test Template Update Context Source Registration Subscription With Invalid Fragment +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 Cases *** FILEPATH +InvalidType csourceSubscriptions/fragments/subscription-update-invalid-type-sample.json +InvalidNotification csourceSubscriptions/fragments/subscription-update-invalid-notification-sample.json + +*** Keywords *** +Update Context Source Registration Subscription With Invalid Fragment + [Arguments] ${filepath} + [Documentation] Check that you cannot update a context source registration subscription with a fragment that doesn't meet the data types and restrictions expressed by clause 5.2.12 + [Tags] mandatory + + ${subscription_update_fragment}= Load Test Sample ${filepath} + Update Context Source Registration Subscription ${subscription_id} ${subscription_update_fragment} + + 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} + +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/UpdateContextSourceRegistrationSubscription/033_05.robot b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_05.robot new file mode 100644 index 0000000000000000000000000000000000000000..b646740c1eb71cf82f1af9423e2d0da9544f86b7 --- /dev/null +++ b/TP/NGSI-LD/ContextSource/RegistrationSubscription/UpdateContextSourceRegistrationSubscription/033_05.robot @@ -0,0 +1,36 @@ +*** Settings *** +Documentation Check that you cannot update a context source registration subscription with an invalid request body (invalid JSON document) +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 +${subscription_update_fragment_file_path}= csourceSubscriptions/fragments/subscription-update-invalid-json-sample.json + +*** Test Case *** +Update Context Source Registration Subscription With Invalid JSON Fragment + [Documentation] Check that you cannot update a context source registration subscription with an invalid request body (invalid JSON document) + [Tags] mandatory + + Update Context Source Registration Subscription From File ${subscription_id} ${subscription_update_fragment_file_path} + + Check RL Response Status Code Set To 400 + Check RL Response Body Containing ProblemDetails Element Containing Type Element set to ${response} ${ERROR_TYPE_INVALID_REQUEST} + Check RL 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/data/csourceSubscriptions/fragments/subscription-update-invalid-json-sample.json b/data/csourceSubscriptions/fragments/subscription-update-invalid-json-sample.json new file mode 100644 index 0000000000000000000000000000000000000000..972d1c5ccffa5333c446073dffce39e8dab7cbe6 --- /dev/null +++ b/data/csourceSubscriptions/fragments/subscription-update-invalid-json-sample.json @@ -0,0 +1,9 @@ +{ + "notification":{ + "format":"keyValues",, + "endpoint":{ + "uri":"http://my.second.endpoint.org/notify", + "accept":"application/json" + } + } +} \ No newline at end of file diff --git a/data/csourceSubscriptions/fragments/subscription-update-invalid-notification-sample.json b/data/csourceSubscriptions/fragments/subscription-update-invalid-notification-sample.json new file mode 100644 index 0000000000000000000000000000000000000000..e82d4022eec36304d1ef730214af5bdb788e22e1 --- /dev/null +++ b/data/csourceSubscriptions/fragments/subscription-update-invalid-notification-sample.json @@ -0,0 +1,5 @@ +{ + "notification":{ + "format":"keyValues" + } +} \ No newline at end of file diff --git a/data/csourceSubscriptions/fragments/subscription-update-invalid-type-sample.json b/data/csourceSubscriptions/fragments/subscription-update-invalid-type-sample.json new file mode 100644 index 0000000000000000000000000000000000000000..3f46469e833cf51c496b774635d539a9c0c7199d --- /dev/null +++ b/data/csourceSubscriptions/fragments/subscription-update-invalid-type-sample.json @@ -0,0 +1,10 @@ +{ + "type": null, + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.second.endpoint.org/notify", + "accept":"application/json" + } + } +} \ No newline at end of file diff --git a/data/csourceSubscriptions/fragments/subscription-update-sample.json b/data/csourceSubscriptions/fragments/subscription-update-sample.json new file mode 100644 index 0000000000000000000000000000000000000000..81f39078881addb707f6f2590cc853d609e0554d --- /dev/null +++ b/data/csourceSubscriptions/fragments/subscription-update-sample.json @@ -0,0 +1,9 @@ +{ + "notification":{ + "format":"keyValues", + "endpoint":{ + "uri":"http://my.second.endpoint.org/notify", + "accept":"application/json" + } + } +} \ No newline at end of file diff --git a/resources/ApiUtils.resource b/resources/ApiUtils.resource index 80598c546d756a2334e0647de1a547da19465bd4..f81ceb97f6e509ab8f789045d2d3e8c8b859faba 100755 --- a/resources/ApiUtils.resource +++ b/resources/ApiUtils.resource @@ -301,6 +301,15 @@ Create Context Source Registration Subscription Set Suite Variable ${request} Set Suite Variable ${response} +Update Context Source Registration Subscription + [Arguments] ${subscription_id} ${subscription_update_fragment} + + ${response}= PATCH ${CONTEXT_SOURCE_REGISTRATION_SUBSCRIPTION_ENDPOINT_PATH}/${subscription_id} body=${subscription_update_fragment} + Output request + Output response + + Set Test Variable ${response} + Delete Context Source Registration Subscription [Arguments] ${subscription_id} @@ -309,3 +318,10 @@ Delete Context Source Registration Subscription Output response Set Suite Variable ${response} + +Update Context Source Registration Subscription From File + [Arguments] ${subscription_id} ${file_path} + ${file_content}= Get File ${EXECDIR}/data/${file_path} + Create Session CsrsUpdateRequest ${url} + ${response}= PATCH On Session CsrsUpdateRequest ${CONTEXT_SOURCE_REGISTRATION_SUBSCRIPTION_ENDPOINT_PATH}/${subscription_id} data=${file_content} expected_status=any + Set Test Variable ${response}