Skip to content

Test Plan for Event Filter Feature

At this documentation you will have all information and related files and examples of test plan for this feature.

Test Case 1: Invoker subscribed to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE events filtered by apiIds

Test ID: event_filter-1 Additional Tags: mockserver

Description:

This test case will check an invoker can subscribe to SERVICE_API events and filter them by apiId.

Pre-Conditions:

  • Invoker is previously registered and onboarded.
  • Two providers registered and with APIs published.
  • Mock Server is up and running to receive requests.
  • Mock Server is clean.

Execution Steps:

  1. Register and onboard Invoker
  2. Register Provider 1 and publish service_1 api:
    1. Setup provider with Two AEFs.
    2. Publish service_1 with:
      1. Two AEFs. (aef_id_1 and aef_id_2)
      2. apiStatus empty list.
      3. supportedFeatures 020.
  3. Register Provider 2 and publish service_2 api:
    1. Publish service_2 with:
      1. apiStatus with AEF Id (aef2_id_1)
      2. supportedFeatures 020
  4. Discover APIs by Invoker:
    1. filter by aef_id_1
    2. Only one api will be obtained, store apiId at api_id.
  5. Subscribe to events:
    1. Events: SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE, SERVICE_API_UPDATE.
    2. EventFilter: [apiId], [apiId], [apiId].
    3. supportedFeatures: C
  6. Update service_1 api:
    1. apiStatus with aefIds present on Provider 1.
    2. SupportedFeatures set to 20
  7. Remove Provider 1
  8. Remove Provider 2

Expected Results:

Mock Server received messages must accomplish:

  1. Three Events have been received.
  2. Validate received events follow EventNotification data structure, with:
    1. SERVICE_API_AVAILABLE:
      1. EventDetail include serviceAPIDescriptions with same Service API description Modified with apiStatus containing aefIds of provider 1
    2. SERVICE_API_UPDATE:
      1. EventDetail include serviceAPIDescriptions with same Service API description Modified with apiStatus containing aefIds of provider 1
    3. SERVICE_API_UNAVAILABLE
      1. EventDetail include serviceAPIDescriptions with same Service API description Modified with apiStatus containing aefIds of provider 1

Test Case 2: Invoker subscribed to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE events filtered by not valid filters

Test ID: event_filter-2 Additional Tags: smoke

Description:

This test case will check all error response related with wrong filtering options when invoker subscribes to SERVICE_API events.

Pre-Conditions:

  • Invoker is previously registered and onboarded.
  • Two providers registered and with APIs published.

Execution Steps:

  1. Register and onboard Invoker
  2. Register Provider 1 and publish service_1 api:
    1. Setup provider with Two AEFs.
    2. Publish service_1 with:
      1. Two AEFs. (aef_id_1 and aef_id_2)
      2. apiStatus empty list.
      3. supportedFeatures 020.
  3. Register Provider 2 and publish service_2 api:
    1. Publish service_2 with:
      1. apiStatus with AEF Id (aef2_id_1)
      2. supportedFeatures 020
  4. Discover APIs by Invoker:
    1. filter by aef_id_1
    2. Only one api will be obtained, store apiId at api_id.
  5. Subscribe to events:
    1. Events: SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE, SERVICE_API_UPDATE.
    2. EventFilter: [aefIds], [empty], [empty].
    3. supportedFeatures: C
  6. Subscribe to events:
    1. Events: SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE, SERVICE_API_UPDATE.
    2. EventFilter: [empty], [aefIds], [empty].
    3. supportedFeatures: C
  7. Subscribe to events:
    1. Events: SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE, SERVICE_API_UPDATE.
    2. EventFilter: [empty], [empty], [aefIds].
    3. supportedFeatures: C
  8. Subscribe to events:
    1. Events: SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE, SERVICE_API_UPDATE.
    2. EventFilter: [empty], [empty], [apiInvokerIds].
    3. supportedFeatures: C

Expected Results:

We will receive one error after each Event subscription:

  1. Response to first subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event SERVICE_API_AVAILABLE
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter aef_ids for event SERVICE_API_AVAILABLE are not applicable }]
  2. Response to first subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event SERVICE_API_UNAVAILABLE
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter aef_ids for event SERVICE_API_UNAVAILABLE are not applicable }]
  3. Response to first subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event SERVICE_API_UPDATE
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter aef_ids for event SERVICE_API_UPDATE are not applicable }]
  4. Response to first subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event SERVICE_API_UPDATE
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter api_invoker_ids for event SERVICE_API_UPDATE are not applicable }]

Test Case 3: Provider subscribed to API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED and API_INVOKER_UPDATED events filtered by invokerIds

Test ID: event_filter-3 Additional Tags: mockserver

Description:

This test case will check subcription to all API_INVOKER events by one provider.

Pre-Conditions:

  • Provider is previously registered.
  • Mock Server is up and running to receive requests.
  • Mock Server is clean.

Execution Steps:

  1. Register Provider 1.
  2. Subscribe to events:
    1. Events: API_INVOKER_ONBOARDED
    2. EventFilter: No filter.
    3. supportedFeatures: C
  3. Register and onboard Invoker 1
  4. Register and onboard Invoker 2
  5. Subscribe provider to events:
    1. Events: API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED
    2. EventFilter: [empty], [apiInvokerId1], [apiInvokerId2].
    3. supportedFeatures: C
  6. Update Invoker 1:
    1. Setup new notificationDestination at invoker.
  7. Update Invoker 2:
    1. Setup new notificationDestination at invoker.
  8. Remove Invoker 1.
  9. Remove Invoker 2.

Expected Results:

Mock Server received messages must accomplish:

  1. Four Events have been received.
  2. Validate received events follow EventNotification data structure, with:
    1. API_INVOKER_ONBOARDED:
      1. EventDetail include apiInvokerIds with apiInvokerId of provider 1
    2. API_INVOKER_ONBOARDED:
      1. EventDetail include apiInvokerIds with apiInvokerId of provider 2
    3. API_INVOKER_UPDATED:
      1. EventDetail include apiInvokerIds with apiInvokerId of provider 2
    4. API_INVOKER_OFFBOARDED
      1. EventDetail include apiInvokerIds with apiInvokerId of provider 1

Test Case 4: Provider subscribed to API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED and API_INVOKER_UPDATED events filtered by not valid filters

Test ID: event_filter-4 Additional Tags:

Description:

This test will check API_INVOKER events subscription by Provider with not valid filters.

Pre-Conditions:

  • Provider is previously registered.

Execution Steps:

  1. Register Provider 1.
  2. Register and onboard Invoker 1
  3. Register and onboard Invoker 2
  4. Subscribe provider to events:
    1. Subscription 1
    2. Events: API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED
    3. EventFilter: [aefIds], [empty], [empty].
    4. supportedFeatures: C
  5. Subscribe provider to events:
    1. Subscription 2
    2. Events: API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED
    3. EventFilter: [empty], [aefIds], [empty].
    4. supportedFeatures: C
  6. Subscribe provider to events:
    1. Subscription 3
    2. Events: API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED
    3. EventFilter: [empty], [empty], [aefIds].
    4. supportedFeatures: C
  7. Subscribe provider to events:
    1. Subscription 4
    2. Events: API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED
    3. EventFilter: [empty], [empty], [apiIds].
    4. supportedFeatures: C

Expected Results:

  1. Response to first subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event API_INVOKER_ONBOARDED
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter aef_ids for event API_INVOKER_ONBOARDED are not applicable }]
  2. Response to second subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event API_INVOKER_OFFBOARDED
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter aef_ids for event API_INVOKER_OFFBOARDED are not applicable }]
  3. Response to third subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event API_INVOKER_UPDATED
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter aef_ids for event API_INVOKER_UPDATED are not applicable }]
  4. Response to fourth subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event API_INVOKER_UPDATED
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter api_ids for event API_INVOKER_UPDATED are not applicable }]

Test Case 5: Provider subscribed to ACCESS_CONTROL_POLICY_UPDATE event filtered by only apiId, only invokerId and both

Test ID: event_filter-5 Additional Tags: smoke, mockserver

Description:

This test case will check subcription to ACCESS_CONTROL_POLICY_UPDATE event by one provider.

Pre-Conditions:

  • Two Providers are previously registered and published APIs
  • Two invoker are previously registered.
  • Mock Server is up and running to receive requests.
  • Mock Server is clean.

Execution Steps:

  1. Register Provider 1 and publish service_1 api:
    • Store apiId1
  2. Register Provider 2 and publish service_2 api:
    • Store apiId2
  3. Register and onboard Invoker 1
    • apiInvokerId1
  4. Register and onboard Invoker 2
    • apiInvokerId2
  5. Subscribe to events:
    1. Subscription1
    2. Events: ACCESS_CONTROL_POLICY_UPDATE
    3. EventFilter: [apiId1].
    4. supportedFeatures: C
  6. Subscribe to events:
    1. Subscription2
    2. Events: ACCESS_CONTROL_POLICY_UPDATE
    3. EventFilter: [apiInvokerId1].
    4. supportedFeatures: C
  7. Subscribe to events:
    1. Subscription3
    2. Events: ACCESS_CONTROL_POLICY_UPDATE
    3. EventFilter: [apiInvokerId2] and [apiId2].
    4. supportedFeatures: C
  8. Create Security Context Between Invoker 1 and provider 1 exposed API.
    1. Store acl_provider_1
  9. Create Security Context Between Invoker 2 and provider 1 exposed API.
    1. Store acl_provider_1 (array will contain 2 values)
  10. Create Security Context Between Invoker 1 and provider 2 exposed API.
    1. Store acl_provider_2 (array will contain 2 values)
  11. Create Security Context Between Invoker 2 and provider 2 exposed API.
    1. Store acl_provider_2 (array will contain 2 values)

Expected Results:

  1. Eight Events have been received for 3 different subscriptions.
  2. Validate received events follow EventNotification data structure
  3. Subcription 1:
    1. ACCESS_CONTROL_POLICY_UPDATE:
      1. EventDetail include accCtrlPolList with apiId1 and apiInvokerPolicies with Security Context between invoker 1 and provider 1 (acl_provider_1[0])
    2. ACCESS_CONTROL_POLICY_UPDATE:
      1. EventDetail include accCtrlPolList with apiId1 and apiInvokerPolicies with Security Context between invoker 2 and provider 1 (acl_provider_1[1])
    3. ACCESS_CONTROL_POLICY_UPDATE:
      1. EventDetail include accCtrlPolList with apiId2 and apiInvokerPolicies with Security Context between invoker 1 and provider 2 (acl_provider_2[0])
    4. ACCESS_CONTROL_POLICY_UPDATE:
      1. EventDetail include accCtrlPolList with apiId1 and apiInvokerPolicies with Security Context between invoker 2 and provider 2 (acl_provider_2[1])
  4. Subcription 2:
    1. ACCESS_CONTROL_POLICY_UPDATE:
      1. EventDetail include accCtrlPolList with apiId1 and apiInvokerPolicies with Security Context between invoker 1 and provider 1 (acl_provider_1[0])
    2. ACCESS_CONTROL_POLICY_UPDATE:
      1. EventDetail include accCtrlPolList with apiId1 and apiInvokerPolicies with Security Context between invoker 1 and provider 1 (acl_provider_1[0])
    3. ACCESS_CONTROL_POLICY_UPDATE:
      1. EventDetail include accCtrlPolList with apiId2 and apiInvokerPolicies with Security Context between invoker 1 and provider 2 (acl_provider_2[0])
  5. Subcription 3:
    1. ACCESS_CONTROL_POLICY_UPDATE:
      1. EventDetail include accCtrlPolList with apiId2 and apiInvokerPolicies with Security Context between invoker 2 and provider 2 (acl_provider_2[1])

Test Case 6: Provider subscribed to ACCESS_CONTROL_POLICY_UPDATE event filtered by aefId

Test ID: event_filter-6 Additional Tags:

Description:

This test will check ACCESS_CONTROL_POLICY_UPDATE event subscription by Provider with not valid filters.

Pre-Conditions:

  • One Provider is previously registered.

Execution Steps:

  1. Register Provider 1.
  2. Subscribe to events:
    1. Subscription1
    2. Events: ACCESS_CONTROL_POLICY_UPDATE
    3. EventFilter: [aef_ids].
    4. supportedFeatures: C

Expected Results:

  1. Response to subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Invalid eventFilter for event ACCESS_CONTROL_POLICY_UPDATE
      5. invalidParams: [{ param:eventFilter, reason: The eventFilter aef_ids for event ACCESS_CONTROL_POLICY_UPDATE are not applicable }]

Test Case 7: Provider subscribed to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE filtered by apiId, invokerId, aefId and all of them

Test ID: event_filter-7 Additional Tags: smoke, mockserver

Description:

This test will check all possible filters options allowed for SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION_FAILURE.

Pre-Conditions:

  • Two Providers are previously registered and published APIs
  • Two invoker are previously registered.
  • Mock Server is up and running to receive requests.
  • Mock Server is clean.

Execution Steps:

  1. Register Provider 1 and publish service_1 api:
    • Store apiId1
    • Store aefId1
  2. Register Provider 2 and publish service_2 api:
    • Store apiId2
    • Store aefId2
  3. Register and onboard Invoker 1
    • apiInvokerId1
  4. Register and onboard Invoker 2
    • apiInvokerId2
  5. Subscribe provider 1 to events:
    1. Subscription 1
    2. Events: SERVICE_API_INVOCATION_SUCCESS, SERVICE_API_INVOCATION_FAILURE.
    3. EventFilter: [apiId1], [apiId1].
    4. supportedFeatures: C
  6. Subscribe provider 1 to events:
    1. Subscription 2
    2. Events: SERVICE_API_INVOCATION_SUCCESS, SERVICE_API_INVOCATION_FAILURE.
    3. EventFilter: [apiId1], [apiId1].
    4. supportedFeatures: C
  7. Subscribe provider 1 to events:
    1. Subscription 3
    2. Events: SERVICE_API_INVOCATION_SUCCESS, SERVICE_API_INVOCATION_FAILURE.
    3. EventFilter: [apiId1], [apiId1].
    4. supportedFeatures: C
  8. Subscribe provider 1 to events:
    1. Subscription 4
    2. Events: SERVICE_API_INVOCATION_SUCCESS, SERVICE_API_INVOCATION_FAILURE.
    3. EventFilter: [apiId1], [apiId1].
    4. supportedFeatures: C
  9. Subscribe provider 1 to events:
    1. Subscription 5
    2. Events: SERVICE_API_INVOCATION_SUCCESS, SERVICE_API_INVOCATION_FAILURE.
    3. EventFilter: [apiId1], [apiId1].
    4. supportedFeatures: C
  10. Subscribe provider 1 to events:
    1. Subscription 6
    2. Events: SERVICE_API_INVOCATION_SUCCESS, SERVICE_API_INVOCATION_FAILURE.
    3. EventFilter: [apiId1], [apiId1].
    4. supportedFeatures: C
  11. Subscribe provider 1 to events:
    1. Subscription 7
    2. Events: SERVICE_API_INVOCATION_SUCCESS, SERVICE_API_INVOCATION_FAILURE.
    3. EventFilter: [apiId1], [apiId1].
    4. supportedFeatures: C
  12. Send Log entry by provider1:
    1. apiNames: [service_1]
    2. apiIds: [apiId1]
    3. aefId: aefId1
    4. apiInvokerId: apiInvokerId1
    5. results: [200, 400]
    6. Store body to request_body_log_1
  13. Send Log entry by provider2:
    1. apiNames: [service_2]
    2. apiIds: [apiId2]
    3. aefId: aefId2
    4. apiInvokerId: apiInvokerId1
    5. results: [200]
    6. Store body to request_body_log_2
  14. Send Log entry by provider2:
    1. apiNames: [service_2]
    2. apiIds: [apiId2]
    3. aefId: aefId2
    4. apiInvokerId: apiInvokerId2
    5. results: [200]
    6. Store body to request_body_log_3
  15. Send Log entry by provider1:
    1. apiNames: [service_1]
    2. apiIds: [apiId1]
    3. aefId: aefId1
    4. apiInvokerId: apiInvokerId2
    5. results: [400]
    6. Store body to request_body_log_4

Expected Results:

  1. Thirteen Events have been received for 7 different subscriptions.
  2. Validate received events follow EventNotification data structure
  3. Subcription 1:
    1. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_1
    2. SERVICE_API_INVOCATION_FAILURE:
      1. EventDetail include invocationLogs with request_body_log_1
    3. SERVICE_API_INVOCATION_FAILURE:
      1. EventDetail include invocationLogs with request_body_log_4
  4. Subcription 2:
    1. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_2
    2. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_3
  5. Subcription 3:
    1. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_1
    2. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_1
    3. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_2
  6. Subcription 4:
    1. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_2
    2. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_3
  7. Subcription 5:
    1. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_3
  8. Subcription 6:
    1. SERVICE_API_INVOCATION_FAILURE:
      1. EventDetail include invocationLogs with request_body_log_4
  9. Subcription 7:
    1. SERVICE_API_INVOCATION_SUCCESS:
      1. EventDetail include invocationLogs with request_body_log_3

Test Case 8: Event Filter present with Enhanced_event_report feature not active.

Test ID: event_filter-8 Additional Tags: smoke

Description:

This test will check event subscription by Invoker with eventFilter attribute but without Enhanced_event_report feature active.

Pre-Conditions:

  • Invoker is previously registered and onboarded.

Execution Steps:

  1. Register and onboard Invoker
  2. Subscribe to events:
    1. Events: SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE, SERVICE_API_UPDATE
    2. EventFilter: [empty], [empty], [empty].
    3. supportedFeatures: 0

Expected Results:

  1. Response to subscription:
    1. 400 Bad Request
    2. ProblemDetails Body with:
      1. title: Bad Request
      2. status: 400
      3. detail: Bad Param
      4. cause: Event filters provided but EnhancedEventReport is not enabled
      5. invalidParams: [{ param:eventFilter, reason: EnhancedEventReport is not enabled }]