Newer
Older
Documentation Check that a notification is only sent if and only if the status is active
lopezaguilar
committed
Resource ${EXECDIR}/resources/ApiUtils/ContextInformationSubscription.resource
Resource ${EXECDIR}/resources/ApiUtils/ContextInformationProvision.resource
Resource ${EXECDIR}/resources/AssertionUtils.resource
Resource ${EXECDIR}/resources/JsonUtils.resource
Resource ${EXECDIR}/resources/NotificationUtils.resource
Suite Setup Before Suite
Suite Teardown After Suite
Test Teardown After Test
${subscription_id_prefix} urn:ngsi-ld:Subscription:
${subscription_payload_file_path} subscriptions/subscription-building-entities-active.jsonld
${subscription_payload_file_path_notificationAttributes} subscriptions/subscription-building-entities-active-notificationAttributes.jsonld
${subscription_payload_file_path_default_context} subscriptions/subscription-building-entities-active-default-context.jsonld
${building_id_prefix} urn:ngsi-ld:Building:
${notification_server_send_url} http://${notification_server_host}:${notification_server_port}/notify
${entity_building_filepath} building-simple-attributes-sample.jsonld
${fragment_filename} airQualityLevel-fragment.jsonld
${date_format} %Y-%m-%dT%H:%M:%SZ
${date_format_with_millis} %Y-%m-%dT%H:%M:%S.%fZ
[Documentation] The structure of the notification message shall be as mandated by clause 5.3. Valid notification with attributes as stated above
[Setup] Setup Initial Subscriptions ${subscription_payload_file_path}
${response}= Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON}
lopezaguilar
committed
${notification} ${headers}= Wait for notification
Should Be Equal ${notification}[type] Notification
Should Be Equal ${notification}[subscriptionId] ${subscription_id}
lopezaguilar
committed
${notified_at_date}= Parse Ngsild Date ${notification}[notifiedAt]
Should Not Be Equal ${notified_at_date} ${None}
[Documentation] The structure of the notification message shall be as mandated by clause 5.3. The Entity Attributes included (Properties or Relationships) shall be those specified by the notification.attributes member in the Subscription data type (clause 5.2.12).
[Setup] Setup Initial Subscriptions ${subscription_payload_file_path_notificationAttributes}
${response}= Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON}
lopezaguilar
committed
${notification} ${headers}= Wait for notification
Should Be Equal ${notification}[type] Notification
Should Be Equal ${notification}[subscriptionId] ${subscription_id}
lopezaguilar
committed
${notified_at_date}= Parse Ngsild Date ${notification}[notifiedAt]
Should Not Be Equal ${notified_at_date} ${None}
Dictionary Should Not Contain Key ${notification}[data][0] name
Dictionary Should Contain Key ${notification}[data][0] airQualityLevel
[Documentation] The structure of the notification message shall be as mandated by clause 5.3. URI expansion shall be observed (clause 5.5.7).
[Setup] Setup Initial Subscriptions ${subscription_payload_file_path_default_context}
${response}= Update Entity Attributes ${entity_id} ${fragment_filename} ${CONTENT_TYPE_LD_JSON}
lopezaguilar
committed
${notification} ${headers}= Wait for notification
Should Be Equal ${notification}[type] Notification
Should Be Equal ${notification}[subscriptionId] ${subscription_id}
lopezaguilar
committed
${notified_at_date}= Parse Ngsild Date ${notification}[notifiedAt]
Should Not Be Equal ${notified_at_date} ${None}
Dictionary Should Contain Key ${notification}[data][0] https://ngsi-ld-test-suite/context#airQualityLevel
Start Local Server ${notification_server_host} ${notification_server_port}
Setup Initial Subscriptions
[Arguments] ${subscription_payload_path}
${subscription_id}= Generate Random Entity Id ${subscription_id_prefix}
${entity_id}= Generate Random Entity Id ${building_id_prefix}
${subscription_payload}= Load Subscription Sample With Reachable Endpoint
... ${subscription_payload_path}
... ${subscription_id}
... ${notification_server_send_url}
${subscription_payload}= Set Entity Id In Subscription ${subscription_payload} ${entity_id}
Set Test Variable ${entity_id}
Set Test Variable ${subscription_id}
Create Entity ${entity_building_filepath} ${entity_id}
Sleep 1s
Create Subscription From Subscription Payload ${subscription_payload} ${CONTENT_TYPE_LD_JSON}
Sleep 1s
After Test
Delete Subscription ${subscription_id}
Delete Entity by Id ${entity_id}
After Suite
Stop Local Server