Skip to content

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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report and apiStatusMonitoring active at supported features (binary 1100-> string C)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
    2. This API not includes "API Status" information at service API Description.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if NOT contains the apiStatus keys
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report active at supported features (binary 0100-> string 4)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
    2. This API not includes "API Status" information at service API Description.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 0100 -> string 4
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if NOT contains the apiStatus keys
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1000-> string 8)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
    2. This API not includes "API Status" information at service API Description.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 1000 -> string 8
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if NOT contains the apiStatus keys
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, without eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 0000-> string 0)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
    2. This API not includes "API Status" information at service API Description.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 0000 -> string 0
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if NOT contains the apiStatus keys
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, without eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring and Enhanced_event_report inactive at supported features (binary 1100-> string C)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag inactive (binary 0 0000 0000 -> string 000)
    2. This API includes "API Status" information at service API Description with aefId1 inside array.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 400 Bad Request
    2. 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".
  4. Response to Discover Request By Invoker:
    1. 404 Not Found response.
    2. 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".
  5. Mock Server received messages must accomplish:
    1. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-> string C)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with aefId1 inside array.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus key.
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report active and apiStatusMonitoring inactive at supported features (binary 0100-> string 4)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with aefId1 inside array.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 0100 -> string 4
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus key.
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with only apiIds in eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report inactive and apiStatusMonitoring active at supported features (binary 1000-> string 8)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with aefId1 inside array.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 1000 -> string 8
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus key.
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, without eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. Enhanced_event_report and apiStatusMonitoring inactive at supported features (binary 0000-> string 0)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with aefId1 inside array.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 0000 -> string 0
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus key.
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, without eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-> string C)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with empty aefIds array.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus key.
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. One Event has been received.
    2. Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
      1. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. Subscribe to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE. apiStatusMonitoring active at supported features (binary 1100-> string C)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API not includes "API Status" information at service API Description.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus key.
  5. Response to Remove published Service API at CCF:
    1. 204 No Content
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
      1. First SERVICE_API_AVAILABLE event.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with only aefId1.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Update Published API:
    1. apiStatus Not present
    2. aipStatusMonitoring feature not active (binary 0 0000 0000 -> string 0)

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus with aefId1
  5. Response to Update published Service API at CCF:
    1. 200 OK
    2. Store response with updated serviceAPIDescription.
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE apiId of published API with eventDetail with apiIds and serviceAPIDescription.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with only aefId1.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Update Published API:
    1. apiStatus present with empty aefIds array.
    2. apiStatusMonitoring feature not active (binary 0 0000 0000 -> string 0)

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:

    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus with aefId1
  5. Response to Update request must accomplish:

    1. 400 Bad Request
    2. 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".
  6. Mock Server received messages must accomplish:

    1. One Event have been received.
    2. Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
      1. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with only aefId1.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Update Published API:
    1. apiStatus present with empty aefIds array.
    2. apiStatusMonitoring feature active (binary 0 0010 0000 -> string 20)

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus with aefId1
  5. Response to Update published Service API at CCF:
    1. 200 OK
    2. Store response with updated serviceAPIDescription.
  6. Mock Server received messages must accomplish:
    1. Two Event have been received.
    2. Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. One should be SERVICE_API_UPDATE.
      3. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with only aefId1.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Update Published API:
    1. apiStatus present with empty aefIds array.
    2. apiStatusMonitoring feature active (binary 0 0010 0000 -> string 20)

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus with aefId1
  5. Response to Update published Service API at CCF:
    1. 200 OK
    2. Store response with updated serviceAPIDescription.
  6. Mock Server received messages must accomplish:
    1. Two Event have been received.
    2. Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with empty aefIds array.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Update Published API:
    1. apiStatus present with aefId2 in aefIds array.
    2. apiStatusMonitoring feature active (binary 0 0010 0000 -> string 20)
  7. Provider remove published API.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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.
  7. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus with aefId1
  5. Response to Update published Service API at CCF:
    1. 200 OK
    2. Store response with updated serviceAPIDescription.
  6. Mock Server received messages must accomplish:
    1. Two Event have been received.
    2. Validate received events follow EventNotification data structure, with apiIds and serviceAPIDescription in eventDetail parameter.
      1. One should be SERVICE_API_UNAVAILABLE aefIds array inside apiStatus empty.
      2. One should be SERVICE_API_UPDATE aefIds array inside apiStatus contains apfId2.
      3. One should be SERVICE_API_AVAILABLE aefIds array inside apiStatus contains apfId2.
      4. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with only aefId1.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Patch Published API:
    1. apiStatus present with aefId2 in array.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus with aefId1
  5. Response to Patch published Service API at CCF:
    1. 200 OK
    2. Store response with updated serviceAPIDescription.
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with only aefId1.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Patch Published API:
    1. apiStatus present with aefId1 and aefId2 in array.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus with aefId1
  5. Response to Patch published Service API at CCF:
    1. 200 OK
    2. Store response with updated serviceAPIDescription.
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
      1. One should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.
      2. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0000 0000 -> string 000)
    2. This API includes "API Status" information at service API Description with only aefId1.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Patch Published API:
    1. apiStatus present with aefId1 and aefId2 in array.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:

    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:

    1. 400 Bad Request
    2. 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".
  4. Response to Discover Request By Invoker:

    1. 404 Not Found response.
    2. 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".
  5. Mock Server received messages must accomplish:
    1. 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:

  1. Register Invoker and Onboard Invoker at CCF.
  2. Register Provider at CCF with 2 aefs.
  3. 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)
  4. Publish Service API at CCF:
    1. Supported Features with apiStatusMonitoring flag active (binary 0 0010 0000 -> string 020)
    2. This API includes "API Status" information at service API Description with empty array.
  5. Discover Service APIs by Invoker
    1. includes filter by query parameter aef-id
  6. Patch Published API:
    1. apiStatus present with aefId1 and aefId2 in array.

Information of Test:

  1. Perform Invoker Onboarding
  2. Perform Provider Registration with 2 aefs
  3. Event Subscription to SERVICE_API_AVAILABLE and SERVICE_API_UNAVAILABLE of provider previously registered:
    1. Send POST to https://{CAPIF_HOSTNAME}/capif-events/v1/{subscriberId}/subscriptions
    2. body event subscription request body with:
      1. events: ['SERVICE_API_AVAILABLE','SERVICE_API_UNAVAILABLE','SERVICE_API_UPDATE']
      2. supportedFeatures: binary 1100 -> string C
    3. Use Invoker Certificate
  4. 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
  5. 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
  6. 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:

  1. Response to Onboard request must accomplish:
    1. 201 Created
    2. Response Body must follow APIInvokerEnrolmentDetails data structure with:
      • apiInvokerId
      • onboardingInformation->apiInvokerCertificate must contain the public key signed.
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/api-invoker-management/{apiVersion}/onboardedInvokers/{onboardingId}
  2. Response to Event Subscription must accomplish:
    1. 201 Created
    2. The URI of the created resource shall be returned in the "Location" HTTP header, following this structure: {apiRoot}/capif-events/{apiVersion}/{subscriberId}/subscriptions/{subscriptionId}
    3. Response Body must follow EventSubscription data structure.
  3. Response to Publish request must accomplish:
    1. 201 Created
    2. Response Body must follow ServiceAPIDescription data structure with:
      • apiId
      • 2 profiles with:
      • resourceName resource_1 and aefId1
      • resourceName resource_2 and aefId2
    3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
  4. Response to Discover Request By Invoker:
    1. 200 OK response.
    2. Response body must follow DiscoveredAPIs data structure:
      • Check if DiscoveredAPIs contains the API Published previously
      • Check if contains the apiStatus with aefId1
  5. Response to Patch published Service API at CCF:
    1. 200 OK
    2. Store response with updated serviceAPIDescription.
  6. Mock Server received messages must accomplish:
    1. Two Events have been received.
    2. Validate received events follow EventNotification data structure, with apiIds in eventDetail parameter.
      1. One should be SERVICE_API_UNAVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.
      2. The other one must be SERVICE_API_UPDATE apiId published API with eventDetails containing serviceAPIDescription patched.
      3. Last one should be SERVICE_API_AVAILABLE apiId of published API with eventDetails with apiIds and serviceAPIDescription.