Skip to content

# Test Plan for CAPIF Discover Service

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

## Test Case 1: Discover Published service APIs by Authorised API Invoker

Test ID: capif_api_discover_service-1

Description:

This test case will check if NetApp (Invoker) can discover published service APIs.

Pre-Conditions:

- Service APIs are published.
- NetApp was registered previously
- NetApp was onboarded previously with {onboardingId}

Information of Test:

1. Perform Provider Registration and Invoker Onboarding
2. 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 apiName service_1
   - Use APF Certificate
3. Request Discover Published APIs:
   - Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}
   - Param api-invoker-id is mandatory
   - Use Invoker Certificate

Execution Steps:

1. Register Provider at CCF, store certificates and Publish Service API at CCF
2. Register Invoker and Onboard Invoker at CCF
3. Discover Service APIs by Invoker

Expected Result:

1. Response to Publish request must accomplish:

   1. 201 Created
   2. Response Body must follow ServiceAPIDescription data structure with:
      - apiId
   3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}

2. 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}
3. 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

## Test Case 2: Discover Published service APIs by Non Authorised API Invoker

Test ID: capif_api_discover_service-2

Description:

This test case will check that an API Publisher can't discover published APIs because is not authorized.

Pre-Conditions:

- Service APIs are published.

Information of Test:

1. Perform Provider Registration and Invoker Onboarding
2. 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 apiName service_1
   - Use APF Certificate
3. Request Discover Published APIs by no invoker entity:
   - Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}
   - Param api-invoker-id is mandatory
   - Use not Invoker Certificate

Execution Steps:

1. Register Provider at CCF, store certificates and Publish Service API at CCF
2. Register Invoker and Onboard Invoker at CCF
3. Discover Service APIs by no invoker entity

Expected Result:

1. Response to Publish request must accomplish:

   1. 201 Created
   2. Response Body must follow ServiceAPIDescription data structure with:
      - apiId
   3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}

2. 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}

3. Response to Discover Request By no invoker entity:

   1. 401 Unauthorized
   2. Error Response Body must accomplish with ProblemDetails data structure with:
      - status 401
      - title with message "Unauthorized"
      - detail with message "User not authorized".
      - cause with message "Certificate not authorized".

## Test Case 3: Discover Published service APIs by not registered API Invoker

Test ID: capif_api_discover_service-3

Description:

This test case will check that a not registered invoker is forbidden to discover published APIs.

Pre-Conditions:

- Service APIs are published.

Information of Test:

1. Perform Provider Registration and Invoker Onboarding
2. 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 apiName service_1
   - Use APF Certificate
3. Request Discover Published APIs with not valid apiInvoker:
   - Send GET to https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={INVOKER_NOT_REGISTERED}
   - Param api-invoker-id is mandatory
   - Using invoker certificate

Execution Steps:

1. Register Provider at CCF, store certificates and Publish Service API at CCF
2. Register Invoker and Onboard Invoker at CCF
3. Discover Service APIs by Publisher

Expected Result:

1. Response to Publish request must accomplish:

   1. 201 Created
   2. Response Body must follow ServiceAPIDescription data structure with:
      - apiId
   3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}

2. 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}

3. Response to Discover Request By Invoker:

   1. 404 Not Found
   2. Error Response Body must accomplish with ProblemDetails data structure with:
      - status 404
      - title with message "Not Found"
      - detail with message "API Invoker does not exist".
      - cause with message "API Invoker id not found".

## Test Case 4: Discover Published service APIs by registered API Invoker with 1 result filtered

Test ID: capif_api_discover_service-4

Description:

This test case will check if NetApp (Invoker) can discover published service APIs.

Pre-Conditions:

- At least 2 Service APIs are published.
- NetApp was registered previously
- NetApp was onboarded previously with {onboardingId}

Information of Test:

1. Perform Provider Registration and Invoker Onboarding
2. 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 apiName service_1
   - Use APF Certificate
3. 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 apiName service_2
   - Use APF Certificate
4. Request Discover Published APIs filtering by api-name:
   - Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&api-name=service_1
   - Param api-invoker-id is mandatory
   - Using invoker certificate
   - filter by api-name service_1

Execution Steps:

1. Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF
2. Register Invoker and Onboard Invoker at CCF
3. Discover Service APIs by Invoker.
4. Discover filtered by api-name service_1 Service APIs by Invoker

Expected Result:

1. Response to Publish request must accomplish:
   1. 201 Created
   2. Response Body must follow ServiceAPIDescription data structure with:
      - apiId
   3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
2. 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}
3. Response to Discover Request By Invoker:
   1. 200 OK response.
   2. Response body must follow DiscoveredAPIs data structure:
      - Check if DiscoveredAPIs contains previously registered Service APIs published.
4. Response to Discover Request By Invoker:
   1. 200 OK response.
   2. Response body must follow DiscoveredAPIs data structure:
      - Check if DiscoveredAPIs contains only Service API published with api-name service_1

## Test Case 5: Discover Published service APIs by registered API Invoker filtered with no match

Test ID: capif_api_discover_service-5

Description:

This test case will check if NetApp (Invoker) can discover published service APIs.

Pre-Conditions:

- At least 2 Service APIs are published.
- NetApp was registered previously
- NetApp was onboarded previously with {onboardingId}

Information of Test:

1. Perform Provider Registration and Invoker Onboarding
2. 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 apiName service_1
   - Use APF Certificate
3. 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 apiName service_2
   - Use APF Certificate
4. Request Discover Published APIs filtering by api-name not published:
   - Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}&api-name=NOT_VALID_NAME
   - Param api-invoker-id is mandatory
   - Using invoker certificate
   - filter by api-name NOT_VALID_NAME

Execution Steps:

1. Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF
2. Register Invoker and Onboard Invoker at CCF
3. Discover Service APIs by Invoker.
4. Discover filtered by api-name not published Service APIs by Invoker

Expected Result:

1. Response to Publish request must accomplish:
   1. 201 Created
   2. Response Body must follow ServiceAPIDescription data structure with:
      - apiId
   3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}
2. 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}
3. Response to Discover Request By Invoker:
   1. 200 OK response.
   2. Response body must follow DiscoveredAPIs data structure:
      - Check if DiscoveredAPIs contains previously registered Service APIs published.
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".

## Test Case 6: Discover Published service APIs by registered API Invoker not filtered

Test ID: capif_api_discover_service-6

Description:

This test case will check if NetApp (Invoker) can discover published service APIs.

Pre-Conditions:

- 2 Service APIs are published.
- NetApp was registered previously
- NetApp was onboarded previously with {onboardingId}

Information of Test:

1. Perform Provider Registration and Invoker Onboarding
2. 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 apiName service_1
   - Use APF Certificate
3. 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 apiName service_2
   - Use APF Certificate
4. Request Discover Published APIs not filtered:
   - Send GET to ccf_discover_url https://{CAPIF_HOSTNAME}/service-apis/v1/allServiceAPIs?api-invoker-id={apiInvokerId}
   - Param api-invoker-id is mandatory
   - Using invoker certificate

Execution Steps:

1. Register Provider at CCF, store certificates and Publish Service API service_1 and service_2 at CCF
2. Register Invoker and Onboard Invoker at CCF
3. Discover Service APIs by Invoker.
4. Discover without filter by Invoker

Expected Result:

1. Response to Publish request must accomplish:

   1. 201 Created
   2. Response Body must follow ServiceAPIDescription data structure with:
      - apiId
   3. Response Header Location must be received with URI to new resource created, following this structure: {apiRoot}/published-apis/v1/{apfId}/service-apis/{serviceApiId}

2. 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}

3. Response to Discover Request By Invoker:

   1. 200 OK response.
   2. Response body must follow DiscoveredAPIs data structure:
      - Check if DiscoveredAPIs contains the 2 previously registered Service APIs published.