Skip to content
046_01.robot 2.81 KiB
Newer Older
*** Settings ***
Documentation       Check that a notification is only sent if and only if the status is active

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 Test
Suite Teardown      After Test


*** Variables ***
${subscription_id_prefix}=              urn:ngsi-ld:Subscription:
${subscription_payload_file_path}=      subscriptions/subscription-building-entities-active.jsonld
${building_id_prefix}=                  urn:ngsi-ld:Building:
${entity_building_filepath}=            building-simple-attributes-sample.jsonld
${fragment_filename}=                   airQualityLevel-fragment.jsonld
lopezaguilar's avatar
lopezaguilar committed
${notification_server_send_url}=        http://${notification_server_host}:${notification_server_port}/notify
lopezaguilar's avatar
lopezaguilar committed
046_01_01 Check that a notification is only sent if status is active
    [Documentation]    Check that a notification is only sent if and only if the status is active
    [Tags]    sub-notification    5_8_6

    Add Initial Entity
    Sleep    1s
    Setup Initial Subscriptions

lopezaguilar's avatar
lopezaguilar committed
    ${response}=    Update Entity Attributes    ${entity_id}    ${fragment_filename}    ${CONTENT_TYPE_LD_JSON}
lopezaguilar's avatar
lopezaguilar committed
    ${notification}    ${headers}=    Wait for notification    timeout=${10}

    Should be Equal    ${subscription_id}    ${notification}[subscriptionId]
    Should be Equal    ${entity_id}    ${notification}[data][0][id]
    Should be Equal    ${5}    ${notification}[data][0][airQualityLevel][value]

*** Keywords ***
lopezaguilar's avatar
lopezaguilar committed
Before Test
    Start Local Server    ${notification_server_host}    ${notification_server_port}

Add Initial Entity
    ${entity_id}=    Generate Random Entity Id    ${building_id_prefix}
    Create Entity    ${entity_building_filepath}    ${entity_id}
    Set Suite Variable    ${entity_id}

Setup Initial Subscriptions
    ${subscription_id}=    Generate Random Entity Id    ${subscription_id_prefix}
    ${subscription_payload}=    Load Subscription Sample With Reachable Endpoint
    ...    ${subscription_payload_file_path}
    ...    ${subscription_id}
    ...    ${notification_server_send_url}
    ${subscription_payload}=    Set Entity Id In Subscription    ${subscription_payload}    ${entity_id}
Arnaud Van der Poorten's avatar
Arnaud Van der Poorten committed
    Create Subscription From Subscription Payload    ${subscription_payload}    ${CONTENT_TYPE_LD_JSON}
    Set Suite Variable    ${subscription_id}
Arnaud Van der Poorten's avatar
Arnaud Van der Poorten committed
After Test
    Delete Initial Subscriptions
Arnaud Van der Poorten's avatar
Arnaud Van der Poorten committed
    Delete Initial Entity
Arnaud Van der Poorten's avatar
Arnaud Van der Poorten committed
    Stop Local Server

lopezaguilar's avatar
lopezaguilar committed
Delete Initial Subscriptions
    Delete Subscription    ${subscription_id}
Arnaud Van der Poorten's avatar
Arnaud Van der Poorten committed

Delete Initial Entity
    Delete Entity by Id    ${entity_id}