Skip to content

Commit

Permalink
Update device-roaming-status-subscriptions.feature
Browse files Browse the repository at this point in the history
  • Loading branch information
mdomale authored Aug 29, 2024
1 parent 2f37df7 commit fbc22a4
Showing 1 changed file with 40 additions and 29 deletions.
69 changes: 40 additions & 29 deletions code/Test_definitions/device-roaming-status-subscriptions.feature
Original file line number Diff line number Diff line change
Expand Up @@ -32,34 +32,43 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response body complies with the OAS schema at "/components/schemas/SubscriptionAsync"

@roaming_status_subscriptions_03_Operation_to_retrieve_list_of_subscriptions
@roaming_status_subscriptions_03_Operation_to_retrieve_list_of_subscriptions_when_no_records
Scenario: Get a list of subscriptions when no subscriptions
Given a client without subscriptions created
When the request "retrieveSubscriptionList" is sent
Then the response code is 200
And the response header "Content-Type" is "application/json"
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response body is an empty array

@roaming_status_subscriptions_04_Operation_to_retrieve_list_of_subscriptions
Scenario: Get a list of subscriptions.
Given the request body is not available
Given a client with subscriptions created
When the request "retrieveSubscriptionList" is sent
Then the response code is 200
And the response header "Content-Type" is "application/json"
And the response header "x-correlator" has same value as the request header "x-correlator"
And each item in the response body, if any, complies with the OAS schema at "/components/schemas/Subscription"
And the response body has an array of items and each item complies with the OAS schema at "/components/schemas/Subscription"

@roaming_status_subscriptions_04_Operation_to_retrieve_subscription_based_on_an_existing_subscription-id
@roaming_status_subscriptions_05_Operation_to_retrieve_subscription_based_on_an_existing_subscription-id
Scenario: Get a subscription based on existing subscription-id.
Given the request body is not available and path parameter "subscriptionId" is set to the identifier of an existing subscription
Given the path parameter "subscriptionId" is set to the identifier of an existing subscription
When the request "retrieveRoamingStatusSubscription" is sent
Then the response code is 200
And the response header "Content-Type" is "application/json"
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response body complies with the OAS schema at "/components/schemas/Subscription"

@roaming_status_subscriptions_05_Operation_to_delete_subscription_based_on_an_existing_subscription-id
@roaming_status_subscriptions_06_Operation_to_delete_subscription_based_on_an_existing_subscription-id
Scenario: Delete a subscription based on existing subscription-id.
Given the request body is not available and path parameter "subscriptionId" is set to the identifier of an existing subscription
Given the path parameter "subscriptionId" is set to the identifier of an existing subscription
When the request "deleteRoamingStatusSubscription" is sent
Then the response code is 202 or 204
And the response header "x-correlator" has same value as the request header "x-correlator"
And if the response property $.status is 204 then response body is not available
And if the response property $.status is 202 then response body complies with the OAS schema at "/components/schemas/SubscriptionAsync"

@roaming_status_subscriptions_06_Receive_notification_when_roaming_status_changed_to_on
@roaming_status_subscriptions_07_Receive_notification_when_roaming_status_changed_to_on
Scenario: Receive notification for roaming-on event
Given that subscriptions are created synchronously
And a valid subscription request body
Expand All @@ -72,7 +81,7 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And notification body complies with the OAS schema at "##/components/schemas/EventRoamingOn"
And type="org.camaraproject.roaming-status-subscriptions.v0.roaming-on"

@roaming_status_subscriptions_07_Receive_notification_when_roaming_status_changed_to_off
@roaming_status_subscriptions_08_Receive_notification_when_roaming_status_changed_to_off
Scenario: Receive notification for roaming-off event
Given that subscriptions are created synchronously
And a valid subscription request body
Expand All @@ -85,7 +94,7 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And notification body complies with the OAS schema at "##/components/schemas/EventRoamingOff"
And type="org.camaraproject.roaming-status-subscriptions.v0.roaming-off"

@roaming_status_subscriptions_08_Receive_notification_when_roaming_status_changed
@roaming_status_subscriptions_09_Receive_notification_when_roaming_status_changed
Scenario: Receive notification for roaming-status changes
Given that subscriptions are created synchronously
And a valid subscription request body
Expand All @@ -98,8 +107,7 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And notification body complies with the OAS schema at "##/components/schemas/EventRoamingStatus"
And type="org.camaraproject.roaming-status-subscriptions.v0.roaming-status"


@roaming_status_subscriptions_09_Receive_notification_when_roaming_change_country
@roaming_status_subscriptions_10_Receive_notification_when_roaming_change_country
Scenario: Receive notification for roaming-change-country
Given that subscriptions are created synchronously
And a valid subscription request body
Expand All @@ -112,11 +120,10 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And notification body complies with the OAS schema at "##/components/schemas/RoamingChangeCountry"
And type="org.camaraproject.roaming-status-subscriptions.v0.roaming-change-country"

@roaming_status_subscriptions_10_subscriptionExpireTime
@roaming_status_subscriptions_11_subscription_expiry
Scenario: Receive notification for subscription-ends event on expiry
Given that subscriptions are created synchronously
And a valid subscription request body
And the request body property "$.type" is "roaming-status"
And a valid subscription request body
And the request body property "$.subscriptionExpireTime" is set to a value in the near future
When the request "createSubscription" is sent
Then the response code is 201
Expand All @@ -126,11 +133,11 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And type="org.camaraproject.geofencing-subscriptions.v0.subscription-ends"
And the response property "$.terminationReason" is "SUBSCRIPTION_EXPIRED"

@roaming_status_subscriptions_11_subscription_ends_when_max_events_reached
@roaming_status_subscriptions_12_subscription_ends_when_max_events_reached
Scenario: Receive notification for subscription-ends event on max events reached
Given that subscriptions are created synchronously
And a valid subscription request body
And the request body property "$.type" is "roaming-status"
And the request body property "$.type" is "roaming_on"
And the request body property "$.subscriptionMaxEvents" is set to 1
When the request "createSubscription" is sent
Then the response code is 201
Expand All @@ -140,7 +147,7 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And type="org.camaraproject.geofencing-subscriptions.v0.subscription-ends"
And the response property "$.terminationReason" is "MAX_EVENTS_REACHED"

@roaming_status_subscriptions_12_subscription_delete_event_validation
@roaming_status_subscriptions_13_subscription_delete_event_validation
Scenario: Receive notification for subscription-ends event on deletion
Given that subscriptions are created synchronously
And a valid subscription request body
Expand All @@ -156,7 +163,7 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta

############### Error response scenarios ###########################

@roaming_status_subscriptions_13_Create_roaming_status_subscription_for_a_device_with_invalid_parameter
@roaming_status_subscriptions_14_Create_roaming_status_subscription_with_invalid_parameter
Scenario: Create subscription with invalid parameter
Given the request body is not compliant with the schema "/components/schemas/SubscriptionRequest"
When the request "createSubscription" is sent
Expand All @@ -165,16 +172,17 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And the response property "$.code" is "INVALID_ARGUMENT"
And the response property "$.message" contains a user friendly text

@roaming_status_subscriptions_14_creation_of_subscription_with_expiry_time_in_past
@roaming_status_subscriptions_15_creation_of_subscription_with_expiry_time_in_past
Scenario: Expiry time in past
Given a valid subscription request body with expiry time in past
Given a valid subscription request body
And request body property "$.subscriptionExpireTime" in past
When the request "createSubscription" is sent
Then the response code is 400
And the response property "$.status" is 400
And the response property "$.code" is "INVALID_ARGUMENT"
And the response property "$.message" contains a user friendly text

@roaming_status_subscription_15_invalid_protocol
@roaming_status_subscription_16_invalid_protocol
Scenario: subscription creation with invalid protocol
Given a valid subscription request body
And the request property "$.protocol" is not "HTTP"
Expand All @@ -183,7 +191,7 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And the response property "$.code" is "INVALID_PROTOCOL"
And the response property "$.message" contains a user friendly text

@roaming_status_subscription_16_invalid_credential_type
@roaming_status_subscription_17_invalid_credential_type
Scenario: subscription creation with invalid credential type
Given a valid subscription request body
And the request property "$.credentialType" is not "ACCESSTOKEN"
Expand All @@ -192,7 +200,7 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And the response property "$.code" is "INVALID_CREDENTIAL"
And the response property "$.message" contains a user friendly text

@roaming_status_subscription_17_invalid_access_token_type
@roaming_status_subscription_18_invalid_access_token_type
Scenario: subscription creation with invalid access token type
Given a valid subscription request body
And the request property "$.accessTokenType" is not "bearer"
Expand All @@ -201,24 +209,27 @@ Feature: Device Roaming Status Subscriptions API, v0.6.0 - Operations RoamingSta
And the response property "$.code" is "INVALID_TOKEN"
And the response property "$.message" contains a user friendly text

@roaming_status_subscription_18_invalid_credentials
@roaming_status_subscription_19_invalid_credentials
Scenario: subscription creation with invalid credentials
Given a valid subscription request body with invalid credentials
Given a valid subscription request body
And header "Authorization" token is set to invalid credentials
When the request "createSubscription" is sent
Then the response property "$.status" is 401
And the response property "$.code" is "UNAUTHENTICATED"
And the response property "$.message" contains a user friendly text

@roaming_status_subscription_19_invalid_inconsistent_access_token
@roaming_status_subscription_20_invalid_inconsistent_access_token
Scenario: subscription creation with inconsistent access token for requested events subscription
# To test this, a token have to be obtained for a different device
Given a valid subscription request body with inconsistent access token from different device
Given a valid subscription request body
And the request body property "$.device" is set to a valid testing device supported by the service
And header "Authorization" set to access token referring different device
When the request "createSubscription" is sent
Then the response property "$.status" is 403
And the response property "$.code" is "SUBSCRIPTION_MISMATCH"
And the response property "$.message" contains a user friendly text

@roaming_status_subscription_20_unknown_subscription_id
@roaming_status_subscription_21_unknown_subscription_id
Scenario: Get subscription when subscription-id is unknown to the system
Given the path parameter property "$.subscriptionId" is unknown to the system
When the request "retrieveRoamingStatusSubscription" is sent
Expand Down

0 comments on commit fbc22a4

Please sign in to comment.