Test Plan for API Status Feature
At this documentation you will have all information and related files and examples of test plan for this feature.
Test Case 1: Publish without apiStatus feature receive eventDetails with serviceAPIDescription
Test ID: api_status-1
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing apiIds and serviceAPIDescription at eventDetails, and the same when api is unpublished.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report and apiStatusMonitoring active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
- This API not includes "API Status" information at service API Description.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 000
- 2 profiles, one with each aef.
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if NOT contains the apiStatus keys
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- The other one must be SERVICE_API_UNAVAILABLE.
Test Case 2: Publish without apiStatus feature receive eventDetails without serviceAPIDescription
Test ID: api_status-2
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with only Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing apiIds at eventDetails, and the same when api is unpublished.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report active at supported features (binary 0100-> string 4)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
- This API not includes "API Status" information at service API Description.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 0100 -> string 4
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 000
- 2 profiles, one with each aef.
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if NOT contains the apiStatus keys
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- The other one must be SERVICE_API_UNAVAILABLE.
Test Case 3: Publish without apiStatus feature receive eventDetails without eventDetails (apiMonitoringStatus active)
Test ID: api_status-3
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with only apiStatusMonitoring active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1000-> string 8)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
- This API not includes "API Status" information at service API Description.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 1000 -> string 8
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 000
- 2 profiles, one with each aef.
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if NOT contains the apiStatus keys
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, without eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- The other one must be SERVICE_API_UNAVAILABLE.
Test Case 4: Publish without apiStatus feature receive eventDetails without eventDetails
Test ID: api_status-4
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report not active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, not containing eventDetails, and the same when api is unpublished.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 0000-> string 0)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
- This API not includes "API Status" information at service API Description.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 0000 -> string 0
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 000
- 2 profiles, one with each aef.
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if NOT contains the apiStatus keys
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, without eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- The other one must be SERVICE_API_UNAVAILABLE.
Test Case 5: Publish with apiStatus present but apiStatusMonitoring inactive receive bad Request
Test ID: api_status-5
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report not active, receive Bad Request when api is published by a provider.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring and Enhanced_event_report inactive at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
- This API includes "API Status" information at service API Description with aefId1 inside array.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 0
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 400 Bad Request
- Error Response Body must accomplish with ProblemDetails data structure with:
- status 400
- title with message "Bad Request"
- detail with message "Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed".
- cause with message "apiStatus can't be set if apiStatusMonitoring is inactive".
- Response to Discover Request By Invoker:
- 404 Not Found response.
- Error Response Body must accomplish with ProblemDetails data structure with:
- status 404
- title with message "Not Found"
- detail with message "API Invoker {api_invoker_id} has no API Published that accomplish filter conditions".
- cause with message "No API Published accomplish filter conditions".
- Mock Server received messages must accomplish:
- No Events have been received.
Test Case 6: Publish with apiStatus feature active receive eventDetails with serviceAPIDescription
Test ID: api_status-6
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification including apiIds and serviceAPIDescriptions.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with aefId1 inside array.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus key.
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- The other one must be SERVICE_API_UNAVAILABLE.
Test Case 7: Publish with apiStatus active feature receive eventDetails without serviceAPIDescription
Test ID: api_status-7
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring inactive and Enhanced_event_report active, receive event notification including only apiIds.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report active and apiStatusMonitoring inactive at supported features (binary 0100-> string 4)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with aefId1 inside array.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 0100 -> string 4
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus key.
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with only apiIds in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- The other one must be SERVICE_API_UNAVAILABLE.
Test Case 8: Publish with apiStatus active feature receive eventDetails without eventDetails with apiStatus (apiMonitoringStatus active)
Test ID: api_status-8
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring active and Enhanced_event_report inactive, receive event notification without eventDetails.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report inactive and apiStatusMonitoring active at supported features (binary 1000-> string 8)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with aefId1 inside array.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 1000 -> string 8
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus key.
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, without eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- The other one must be SERVICE_API_UNAVAILABLE.
Test Case 9: Publish with apiStatus active feature receive eventDetails without eventDetails
Test ID: api_status-9
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report inactive, receive event notification without eventDetails.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report and apiStatusMonitoring inactive at supported features (binary 0000-> string 0)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with aefId1 inside array.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 0000 -> string 0
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus key.
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, without eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- The other one must be SERVICE_API_UNAVAILABLE.
Test Case 10: Publish with apiStatus feature active no aefId active receive eventDetails with serviceAPIDescription with apiStatus empty array
Test ID: api_status-10
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification SERVICE_API_UNAVAILABLE including apiIds and serviceAPIDescriptions when API is published containing apiStatus with empty array.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with empty aefIds array.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with empty aefIds array.
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus key.
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- One Event has been received.
- Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
- Only one SERVICE_API_UNAVAILABLE event.
Test Case 11: Publish with apiStatus not present but apiStatusMonitoring feature active receive eventDetails with serviceAPIDescription without apiStatus
Test ID: api_status-11
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE, with apiStatusMonitoring and Enhanced_event_report active, receive event notification SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE including apiIds and serviceAPIDescriptions when API is published wihtout apiStatus.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API not includes "API Status" information at service API Description.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus not present.
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus key.
- Response to Remove published Service API at CCF:
- 204 No Content
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
- First SERVICE_API_AVAILABLE event.
- Other with SERVICE_API_UNAVAILABLE event.
Test Case 12: Update published API without apiStatus and apiStatusMonitoring inactive
Test ID: api_status-12
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to not present.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with only aefId1.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Update Published API:
- apiStatus Not present
- aipStatusMonitoring feature not active (binary 0 0000 0000 -> string 0)
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Update published Service API:
- Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 0
- 2 profiles, one with each aef.
- apiStatus not present.
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus with aefId1
- Response to Update published Service API at CCF:
- 200 OK
- Store response with updated serviceAPIDescription.
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with eventDetail parameter.
- One should be SERVICE_API_AVAILABLE apiId of published API with eventDetail with apiIds and serviceAPIDescription.
- The other one must be SERVICE_API_UPDATE apiId published API with eventDetail containing serviceAPIDescription updated.
Test Case 13: Update published API with apiStatus empty and apiStatusMonitoring inactive
Test ID: api_status-13
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, and SERVICE_API_UPDATE after update apiStatus to empty aefIds array with ApiStatusMonitoring inactive.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with only aefId1.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Update Published API:
- apiStatus present with empty aefIds array.
- apiStatusMonitoring feature not active (binary 0 0000 0000 -> string 0)
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Update published Service API:
- Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 0
- 2 profiles, one with each aef.
- apiStatus present with empty aefIds array.
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
-
Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus with aefId1
-
Response to Update request must accomplish:
- 400 Bad Request
- Error Response Body must accomplish with ProblemDetails data structure with:
- status 400
- title with message "Bad Request"
- detail with message "Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed".
- cause with message "apiStatus can't be set if apiStatusMonitoring is inactive".
-
Mock Server received messages must accomplish:
- One Event have been received.
- Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.
Test Case 14: Update published API with apiStatus empty and apiStatusMonitoring active
Test ID: api_status-14
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails, SERVICE_API_UPDATE and SERVICE_API_UNAVAILABLE after update apiStatus to empty aefIds array with ApiStatusMonitoring active.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with only aefId1.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Update Published API:
- apiStatus present with empty aefIds array.
- apiStatusMonitoring feature active (binary 0 0010 0000 -> string 20)
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Update published Service API:
- Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 20
- 2 profiles, one with each aef.
- apiStatus present with empty aefIds array.
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus with aefId1
- Response to Update published Service API at CCF:
- 200 OK
- Store response with updated serviceAPIDescription.
- Mock Server received messages must accomplish:
- Two Event have been received.
- Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- One should be SERVICE_API_UPDATE.
- One should be SERVICE_API_UNAVAILABLE.
Test Case 15: Update published API with apiStatus only aef2 and apiStatusMonitoring active
Test ID: api_status-15
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider, containing eventDetails and SERVICE_API_UPDATE after update apiStatus to aefId2 array with ApiStatusMonitoring active.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with only aefId1.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Update Published API:
- apiStatus present with empty aefIds array.
- apiStatusMonitoring feature active (binary 0 0010 0000 -> string 20)
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Update published Service API:
- Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 20
- 2 profiles, one with each aef.
- apiStatus present with aefId2 in aefIds array.
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus with aefId1
- Response to Update published Service API at CCF:
- 200 OK
- Store response with updated serviceAPIDescription.
- Mock Server received messages must accomplish:
- Two Event have been received.
- Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE.
- One should be SERVICE_API_UPDATE.
Test Case 16: Published API without aefs available updated to one aef available
Test ID: api_status-16
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_UNAVAILABLE in mockserver when api is published with apiStatus empty by a provider containing eventDetails, SERVICE_API_UPDATE and SERVICE_API_AVAILABLE after update apiStatus to aefId2 array with ApiStatusMonitoring active, and SERVICE_API_UNAVAILABLE when API is unpublished.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with empty aefIds array.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Update Published API:
- apiStatus present with aefId2 in aefIds array.
- apiStatusMonitoring feature active (binary 0 0010 0000 -> string 20)
- Provider remove published API.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with empty aefIds array.
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Update published Service API:
- Send PUT to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 20
- 2 profiles, one with each aef.
- apiStatus present with aefId2 in aefIds array.
- Remove published Service API:
- Send DELETE to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus with aefId1
- Response to Update published Service API at CCF:
- 200 OK
- Store response with updated serviceAPIDescription.
- Mock Server received messages must accomplish:
- Two Event have been received.
- Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
- One should be SERVICE_API_UNAVAILABLE aefIds array inside apiStatus empty.
- One should be SERVICE_API_UPDATE aefIds array inside apiStatus contains apfId2.
- One should be SERVICE_API_AVAILABLE aefIds array inside apiStatus contains apfId2.
- One should be SERVICE_API_UNAVAILABLE aefIds array inside apiStatus contains apfId2.
Test Case 17: Patch published (apiStatusMonitoring active) API with apiStatus only aefId2
Test ID: api_status-17
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE after patch with apfId2 in apiStatus array.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with only aefId1.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Patch Published API:
- apiStatus present with aefId2 in array.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Update published Service API:
- Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
- body service api description patch and realted with aefId1 and aefId2.
- apiStatus present with aefId2.
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus with aefId1
- Response to Patch published Service API at CCF:
- 200 OK
- Store response with updated serviceAPIDescription.
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.
- The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.
Test Case 18: Patch published (apiStatusMonitoring active) API with apiStatus aef1 and aef2
Test ID: api_status-18
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE after patch with apfId1 and apfId2 in apiStatus array.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with only aefId1.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Patch Published API:
- apiStatus present with aefId1 and aefId2 in array.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Update published Service API:
- Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
- body service api description patch and realted with aefId1 and aefId2.
- apiStatus present with aefId1 and aefId2.
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus with aefId1
- Response to Patch published Service API at CCF:
- 200 OK
- Store response with updated serviceAPIDescription.
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
- One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.
- The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.
Test Case 19: Patch published (apiStatusMonitoring inactive) API with apiStatus aefId1 and aefId2
Test ID: api_status-19
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_AVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring inactive), containing eventDetails, and NO SERVICE_API_UPDATE after patch with apfId1 and apfId2 in apiStatus array, because apiStatusMonitoring in publish is inactive.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0000 0000 -> string 000)
- This API includes "API Status" information at service API Description with only aefId1.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Patch Published API:
- apiStatus present with aefId1 and aefId2 in array.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 000
- 2 profiles, one with each aef.
- apiStatus with aefId1 inside array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
-
Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
-
Response to Publish request must accomplish:
- 400 Bad Request
- Error Response Body must accomplish with ProblemDetails data structure with:
- status 400
- title with message "Bad Request"
- detail with message "Set apiStatus with apiStatusMonitoring feature inactive at supportedFeatures if not allowed".
- cause with message "apiStatus can't be set if apiStatusMonitoring is inactive".
-
Response to Discover Request By Invoker:
- 404 Not Found response.
- Error Response Body must accomplish with ProblemDetails data structure with:
- status 404
- title with message "Not Found"
- detail with message "API Invoker {api_invoker_id} has no API Published that accomplish filter conditions".
- cause with message "No API Published accomplish filter conditions".
- Mock Server received messages must accomplish:
- No Events have been received.
Test Case 20: Patch published without aefs available API with apiStatus only aef2
Test ID: api_status-20
Description:
This test case will check if an invoker subscribed to events SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE with apiStatusMonitoring and Enhanced_event_report active, receive SERVICE_API_UNAVAILABLE in mockserver when api is published by a provider (with apiStatusMonitoring active), containing eventDetails, and SERVICE_API_UPDATE and SERVICE_API_AVAILABLE after patch with apfId1 and apfId2 in apiStatus array, becasue change from unavailable to available and also serviceAPIDescription is updated.
Pre-Conditions:
- CAPIF subscriber is pre-authorised (has valid InvokerId or apfId from CAPIF Authority)
- CAPIF provider is correctly registered with 2 aefs.
- Mock Server is up and running to receive requests.
- Mock Server is clean.
Execution Steps:
- Register Invoker and Onboard Invoker at CCF.
- Register Provider at CCF with 2 aefs.
- Subscribe to SERVICE_API_AVAILABLE, SERVICE_API_UNAVAILABLE and SERVICE_API_UPDATE. apiStatusMonitoring and Enhanced_event_report active at supported features (binary 1100-> string C)
- Publish Service API at CCF:
- Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
- This API includes "API Status" information at service API Description with empty array.
- Discover Service APIs by Invoker
- includes filter by query parameter aef-id
- Patch Published API:
- apiStatus present with aefId1 and aefId2 in array.
Information of Test:
- Perform Invoker Onboarding
- Perform Provider Registration with 2 aefs
- Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
- Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
- body event subscription request body with:
- events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
- supportedFeatures: binary 1100 -> string C
- Use Invoker Certificate
- Publish Service API at CCF:
- Send POST to ccf_publish_url https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis
- body service api description with service_1 and service_2 apiNames and realted with aefId1 and aefId2.
- supportedFeatures 020
- 2 profiles, one with each aef.
- apiStatus empty array
- Use APF Certificate
- Request Discover Published APIs:
- Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&aef-id=${aefId}
- Param api-invoker-id is mandatory
- Use Invoker Certificate
- Update published Service API:
- Send PATCH to resource URL https://{CAPIF_HOSTNAME}/published-apis/v1/{apfId}/service-apis/{SERVICE_API_ID}
- Use APF Certificate
- body service api description patch and realted with aefId1 and aefId2.
- apiStatus present with aefId1 and aefId2.
Expected Result:
- Response to Onboard request must accomplish:
- 201 Created
- Response Body must follow APIInvokerEnrolmentDetails data structure with:
- apiInvokerId
- onboardingInformation->apiInvokerCertificate must contain the public key signed.
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
- Response to Event Subscription must accomplish:
- 201 Created
- The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
- Response Body must follow EventSubscription data structure.
- Response to Publish request must accomplish:
- 201 Created
- Response Body must follow ServiceAPIDescription data structure with:
- apiId
- 2 profiles with:
- resourceName resource_1 and aefId1
- resourceName resource_2 and aefId2
- Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
- Response to Discover Request By Invoker:
- 200 OK response.
- Response body must follow DiscoveredAPIs data structure:
- Check if DiscoveredAPIs contains the API Published previously
- Check if contains the apiStatus with aefId1
- Response to Patch published Service API at CCF:
- 200 OK
- Store response with updated serviceAPIDescription.
- Mock Server received messages must accomplish:
- Two Events have been received.
- Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
- One should be SERVICE_API_UNAVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.
- The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.
- Last one should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.