diff --git a/doc/testing/testplan/event_filter/README.md b/doc/testing/testplan/event_filter/README.md index a7651fa4a978d069e301f2b5177bd027c0602841..a3693793989368cf051bd4e289ae2679cd796c0c 100644 --- a/doc/testing/testplan/event_filter/README.md +++ b/doc/testing/testplan/event_filter/README.md @@ -2,22 +2,62 @@ At this documentation you will have all information and related files and examples of test plan for this feature. -## Test Case 1: Invoker subscrived to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE events filtered by apiIds +## 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 @@ -27,15 +67,82 @@ At this documentation you will have all information and related files and exampl **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 @@ -45,15 +152,49 @@ At this documentation you will have all information and related files and exampl **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 @@ -63,15 +204,68 @@ At this documentation you will have all information and related files and exampl **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. Events: ***API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED*** + 2. EventFilter: ***aefIds, empty, empty.*** + 3. supportedFeatures: ***C*** +5. Subscribe provider to events: + 1. Events: ***API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED*** + 2. EventFilter: ***empty, aefIds, empty.*** + 3. supportedFeatures: ***C*** +6. Subscribe provider to events: + 1. Events: ***API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED*** + 2. EventFilter: ***empty, empty, aefIds.*** + 3. supportedFeatures: ***C*** +7. Subscribe provider to events: + 1. Events: ***API_INVOKER_ONBOARDED, API_INVOKER_OFFBOARDED, API_INVOKER_UPDATED*** + 2. EventFilter: ***empty, empty, apiIds.*** + 3. 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 @@ -127,6 +321,23 @@ At this documentation you will have all information and related files and exampl **Expected Results**: +--- +## Test Case 8: Event Filter present with Enhanced_event_report feature not active. + +**Test ID**: ***event_filter-8*** +**Additional Tags**: **smoke** + +**Description**: + + +**Pre-Conditions**: + + +**Execution Steps**: + + +**Expected Results**: + --- **UNDER DEVELOPMENT**