Commit d3305ba4 authored by Jorge Moratinos's avatar Jorge Moratinos
Browse files

Adding tests for vendor extensibility

parent 30208605
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
*** Settings ***
Force Tags    vendor_extensibility
 No newline at end of file
+51 −0
Original line number Diff line number Diff line
*** Settings ***
Resource            /opt/robot-tests/tests/resources/common.resource
Resource            /opt/robot-tests/tests/resources/api_invoker_management_requests/apiInvokerManagementRequests.robot
Resource            ../../resources/common.resource
Library             /opt/robot-tests/tests/libraries/bodyRequests.py

Suite Teardown      Reset Testing Environment
Test Setup          Reset Testing Environment
Test Teardown       Reset Testing Environment


*** Variables ***
${API_INVOKER_NOT_REGISTERED}       not-valid


*** Test Cases ***
Discover Published service APIs by Authorised API Invoker
    [Tags]    vendor_extensibility-1
    # Register APF
    ${register_user_info}=    Provider Default Registration

    # Create Vendor Specific information
    ${vendor_specific_service_api_description}=    Create Vendor Specific Service Api Description
    ...    vendorSpecific-urn:etsi:mec:capifext:service-info
    ${vendor_specific_aef_profile}=    Create Vendor Specific Aef Profile
    ...    vendorSpecific-urn:etsi:mec:capifext:transport-info

    # Publish one api
    ${service_api_description_published}    ${resource_url}    ${request_body}=    Publish Service Api
    ...    ${register_user_info}
    ...    supported_features=10
    ...    vendor_specific_service_api_description=${vendor_specific_service_api_description}
    ...    vendor_specific_aef_profile=${vendor_specific_aef_profile}

    # Default Invoker Registration and Onboarding
    ${register_user_info_invoker}    ${url}    ${request_body}=    Invoker Default Onboarding

    # Test
    ${resp}=    Get Request Capif
    ...    ${DISCOVER_URL}${register_user_info_invoker['api_invoker_id']}&aef-id=${register_user_info['aef_id']}
    ...    server=${CAPIF_HTTPS_URL}
    ...    verify=ca.crt
    ...    username=${INVOKER_USERNAME}

    Check Response Variable Type And Values    ${resp}    200    DiscoveredAPIs

    # Check Results
    Dictionary Should Contain Key    ${resp.json()}    serviceAPIDescriptions
    Should Not Be Empty    ${resp.json()['serviceAPIDescriptions']}
    Length Should Be    ${resp.json()['serviceAPIDescriptions']}    1
    List Should Contain Value    ${resp.json()['serviceAPIDescriptions']}    ${service_api_description_published}
+14 −3
Original line number Diff line number Diff line
def create_service_api_description(api_name="service_1",aef_id="aef_id"):
    return {
def create_service_api_description(api_name="service_1", aef_id="aef_id", supported_features="fffff", vendor_specific_service_api_description=None, vendor_specific_aef_profile=None):
    body = {
        "apiName": api_name,
        "aefProfiles": [
            {
@@ -35,7 +35,7 @@ def create_service_api_description(api_name="service_1",aef_id="aef_id"):
            }
        ],
        "description": "ROBOT_TESTING",
        "supportedFeatures": "fffff",
        "supportedFeatures": supported_features,
        "shareableInfo": {
            "isShareable": True,
            "capifProvDoms": [
@@ -51,3 +51,14 @@ def create_service_api_description(api_name="service_1",aef_id="aef_id"):
        },
        "ccfId": "string"
    }

    if vendor_specific_service_api_description is not None:
        if isinstance(vendor_specific_service_api_description, dict):
            for key, value in vendor_specific_service_api_description.items():
                body[key] = value
    if vendor_specific_aef_profile is not None:
        if isinstance(vendor_specific_aef_profile, dict):
            for key, value in vendor_specific_aef_profile.items():
                body["aefProfiles"][0][key] = value

    return body
+1 −1
Original line number Diff line number Diff line
@@ -5,4 +5,4 @@ from api_publish_service.bodyRequests import *
from api_events.bodyRequests import *
from security_api.bodyRequests import *
from api_provider_management.bodyRequests import *
from vendor_extensibility.bodyRequests import *
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ def check_variable(input, data_type):
def check_attributes_dict(body, data_type):
    mandatory_attributes = capif_types[data_type]["mandatory_attributes"]
    optional_parameters = capif_types[data_type]["optional_attributes"]
    regex_attributes = capif_types[data_type]["regex_attributes"]
    regex_attributes = capif_types[data_type].get("regex_attributes",{})

    all_attributes = mandatory_attributes | optional_parameters
    # Check if body has not allowed attributes
Loading