Commit 59d7c7f1 authored by Jorge Moratinos's avatar Jorge Moratinos
Browse files

New test for event filters and INVOCATION events

parent 2d24287f
Loading
Loading
Loading
Loading
Loading
+107 −107
Original line number Diff line number Diff line
@@ -723,15 +723,18 @@ Provider subscribed to ACCESS_CONTROL_POLICY_UPDATE event filtered by only apiId

    # Subscription to Events 1
    ${event_filters}=    Create List    ${event_filter_api_ids}
    ${subscription_id_1}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}
    ${subscription_id_1}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    # Subscription to Events 2
    ${event_filters}=    Create List    ${event_filter_api_invoker_ids}
    ${subscription_id_2}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}
    ${subscription_id_2}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    # Subscription to Events 3
    ${event_filters}=    Create List    ${event_filter_api_invoker_ids_and_api_ids}
    ${subscription_id_3}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}
    ${subscription_id_3}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    # Create Security Contexts and ACLs
    ${acl_provider_1}=
@@ -921,7 +924,7 @@ Provider subscribed to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION
    ${event_filter_empty}=    Create Capif Event Filter
    ${event_filter_api_invoker_ids}=    Create Capif Event Filter    apiInvokerIds=${api_invoker_id_1}
    ${event_filter_api_ids}=    Create Capif Event Filter    apiIds=${service_api_id_1}
    ${event_filter_aef_ids}=    Create Capif Event Filter    aefIds=${aef_id_1}
    ${event_filter_aef_ids}=    Create Capif Event Filter    aefIds=${aef_id_2}
    ${event_filter_api_ids_and_aef_ids}=    Create Capif Event Filter
    ...    apiIds=${service_api_id_2}
    ...    aefIds=${aef_id_2}
@@ -930,152 +933,129 @@ Provider subscribed to SERVICE_API_INVOCATION_SUCCESS and SERVICE_API_INVOCATION
    ...    apiIds=${service_api_id_2}
    ${event_filter_aef_ids_and_api_invoker_ids}=    Create Capif Event Filter
    ...    apiInvokerIds=${api_invoker_id_2}
    ...    aefIds=${aef_id_2}
    ...    aefIds=${aef_id_1}
    ${event_filter_api_ids_aef_ids_and_api_invoker_ids}=    Create Capif Event Filter
    ...    apiInvokerIds=${api_invoker_id_2}
    ...    aefIds=${aef_id_2}
    ...    apiIds=${service_api_id_2}

    ## Subscription to Events 1
    ${event_filters}=    Create List    ${event_filter_api_ids}
    ${subscription_id_1}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}
    ${event_filters}=    Create List    ${event_filter_api_ids}   ${event_filter_api_ids}
    ${subscription_id_1}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    ## Subscription to Events 2
    ${event_filters}=    Create List    ${event_filter_aef_ids}
    ${subscription_id_2}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}
    # ## Subscription to Events 2
    ${event_filters}=    Create List    ${event_filter_aef_ids}  ${event_filter_aef_ids}
    ${subscription_id_2}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    ## Subscription to Events 3
    ${event_filters}=    Create List    ${event_filter_api_invoker_ids}
    ${subscription_id_3}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    ## Subscription to Events 4
    ${event_filters}=    Create List    ${event_filter_api_ids_and_aef_ids}
    ${subscription_id_4}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}
    ${event_filters}=    Create List    ${event_filter_api_invoker_ids}   ${event_filter_api_invoker_ids}
    ${subscription_id_3}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    ## Subscription to Events 5
    ${event_filters}=    Create List    ${event_filter_api_ids_and_api_invoker_ids}
    ${subscription_id_5}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}
    # ## Subscription to Events 4
    ${event_filters}=    Create List    ${event_filter_api_ids_and_aef_ids}  ${event_filter_api_ids_and_aef_ids}
    ${subscription_id_4}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    ## Subscription to Events 6
    ${event_filters}=    Create List    ${event_filter_aef_ids_and_api_invoker_ids}
    ${subscription_id_6}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}
    # ## Subscription to Events 5
    ${event_filters}=    Create List    ${event_filter_api_ids_and_api_invoker_ids}   ${event_filter_api_ids_and_api_invoker_ids}
    ${subscription_id_5}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    ## Subscription to Events 7
    ${event_filters}=    Create List    ${event_filter_api_ids_aef_ids_and_api_invoker_ids}
    ${subscription_id_7}=  Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    # Create Security Contexts and ACLs
    ${acl_provider_1}=
    ...    Create Security Context between ${register_user_info_invoker_1} and ${register_user_info_provider_1}
    ${acl_provider_1}=
    ...    Create Security Context between ${register_user_info_invoker_2} and ${register_user_info_provider_1}
    # ## Subscription to Events 6
    ${event_filters}=    Create List    ${event_filter_aef_ids_and_api_invoker_ids}   ${event_filter_aef_ids_and_api_invoker_ids}
    ${subscription_id_6}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    ${acl_provider_2}=
    ...    Update Security Context between ${register_user_info_invoker_1} and ${register_user_info_provider_2}
    ${acl_provider_2}=
    ...    Update Security Context between ${register_user_info_invoker_2} and ${register_user_info_provider_2}
    # ## Subscription to Events 7
    ${event_filters}=    Create List    ${event_filter_api_ids_aef_ids_and_api_invoker_ids}   ${event_filter_api_ids_aef_ids_and_api_invoker_ids}
    ${subscription_id_7}=
    ...    Subscribe provider ${register_user_info_provider_1} to events ${events_list} with event filters ${event_filters}

    # Create Log Entry, emulate success and failure api invocation
    ${discover_response}=    Get Request Capif
    ...    ${DISCOVER_URL}${register_user_info_invoker_1['api_invoker_id']}
    ...    server=${CAPIF_HTTPS_URL}
    ...    verify=ca.crt
    ...    username=${register_user_info_invoker_1['management_cert']}

    ${api_ids}    ${api_names}=    Get Api Ids And Names From Discover Response    ${discover_response}

    ${results}=    Create List    200    400
    ${request_body}=    Create Log Entry
    ...    ${register_user_info_provider_1['aef_id']}
    ...    ${register_user_info_invoker_1['api_invoker_id']}
    ...    ${api_ids}
    ...    ${api_names}
    ...    results=${results}
    ${resp}=    Post Request Capif
    ...    /api-invocation-logs/v1/${register_user_info_provider_1['aef_id']}/logs
    ...    json=${request_body}
    ...    server=${CAPIF_HTTPS_URL}
    ...    verify=ca.crt
    ...    username=${register_user_info_provider_1['amf_username']}
    # 1.Log entry for service_1 and invoker_1
    ${request_body_log_1}=  Send Log Message to CAPIF  ${service_api_id_1}  service_1  ${register_user_info_invoker_1}  ${register_user_info_provider_1}  200  400

    Check Response Variable Type And Values    ${resp}    201    InvocationLog
    ${resource_url}=    Check Location Header    ${resp}    ${LOCATION_LOGGING_RESOURCE_REGEX}
    # 2.Log entry for service_2 and invoker_1
    ${request_body_log_2}=  Send Log Message to CAPIF  ${service_api_id_2}  service_2  ${register_user_info_invoker_1}  ${register_user_info_provider_2}  200

    # Check Event Notifications
    ## Create check Events to ensure all notifications were received
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_1}
    ...    ${request_body}
    ## Check Events Expected towards received notifications at mock server
    Wait Until Keyword Succeeds    5x    5s    Check Mock Server Notification Events    ${events_expected}
    # 3.Log entry for service_2 and invoker_2
    ${request_body_log_3}=  Send Log Message to CAPIF  ${service_api_id_2}  service_2  ${register_user_info_invoker_2}  ${register_user_info_provider_2}  200

    # 4.Log entry for service_1 and invoker_2
    ${request_body_log_4}=  Send Log Message to CAPIF  ${service_api_id_1}  service_1  ${register_user_info_invoker_2}  ${register_user_info_provider_1}  400

    # Check Event Notifications
    ## Create check Events to ensure all notifications were received
    ### Subscription 1 Checks
    ${acl_to_check}=    Create List    ${acl_provider_1[0]}
    ${events_expected}=    Create Expected Access Control Policy Update Event
    ...    ${subscription_id_1}
    ...    ${service_api_id_1}
    ...    ${acl_to_check}

    ${acl_to_check}=    Create List    ${acl_provider_1[1]}
    ${events_expected}=    Create Expected Access Control Policy Update Event
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_1}
    ...    ${service_api_id_1}
    ...    ${acl_to_check}
    ...    events_expected=${events_expected}
    ...    ${request_body_log_1}

    ${acl_to_check}=    Create List    ${acl_provider_1[0]}
    ${events_expected}=    Create Expected Access Control Policy Update Event
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_1}
    ...    ${service_api_id_1}
    ...    ${acl_to_check}
    ...    ${request_body_log_4}
    ...    events_expected=${events_expected}

    ${acl_to_check}=    Create List    ${acl_provider_1[1]}
    ${events_expected}=    Create Expected Access Control Policy Update Event
    ...    ${subscription_id_1}
    ...    ${service_api_id_1}
    ...    ${acl_to_check}
    ### Subcription 2 Checks
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_2}
    ...    ${request_body_log_2}
    ...    events_expected=${events_expected}

    ### Subscription 2 checks
    ${acl_to_check}=    Create List    ${acl_provider_2[1]}
    ${events_expected}=    Create Expected Access Control Policy Update Event
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_2}
    ...    ${service_api_id_2}
    ...    ${acl_to_check}
    ...    ${request_body_log_3}
    ...    events_expected=${events_expected}
    
    ### Subscription 3 checks
    ${acl_to_check}=    Create List    ${acl_provider_1[0]}
    ${events_expected}=    Create Expected Access Control Policy Update Event
    # Subscription 3 Checks
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_3}
    ...    ${service_api_id_1}
    ...    ${acl_to_check}
    ...    ${request_body_log_1}
    ...    events_expected=${events_expected}

    ${acl_to_check}=    Create List    ${acl_provider_1[0]}
    ${events_expected}=    Create Expected Access Control Policy Update Event
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_3}
    ...    ${service_api_id_1}
    ...    ${acl_to_check}
    ...    ${request_body_log_2}
    ...    events_expected=${events_expected}

    ${acl_to_check}=    Create List    ${acl_provider_2[0]}
    ${events_expected}=    Create Expected Access Control Policy Update Event
    ...    ${subscription_id_3}
    ...    ${service_api_id_2}
    ...    ${acl_to_check}
    # Subscription 4 Checks
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_4}
    ...    ${request_body_log_2}
    ...    events_expected=${events_expected}

    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_4}
    ...    ${request_body_log_3}
    ...    events_expected=${events_expected}

    # Subscription 5 Checks
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_5}
    ...    ${request_body_log_3}
    ...    events_expected=${events_expected}

    # Subscription 6 Checks
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_6}
    ...    ${request_body_log_4}
    ...    events_expected=${events_expected}

    # Subscription 7 Checks
    ${events_expected}=    Create Events From InvocationLogs
    ...    ${subscription_id_7}
    ...    ${request_body_log_3}
    ...    events_expected=${events_expected}

    Log List    ${events_expected}

    Log List    ${events_expected}
    ## Check Events Expected towards received notifications at mock server
    Wait Until Keyword Succeeds    5x    5s    Check Mock Server Notification Events    ${events_expected}



*** Keywords ***
Create Security Context between ${invoker_info} and ${provider_info}
    # Discover APIs by invoker
@@ -1200,4 +1180,24 @@ Subscribe provider ${provider_info} to events ${events_list} with event filters
    ${subscriber_id}    ${subscription_id}=    Check Event Location Header    ${resp}

    RETURN    ${subscription_id}
Send Log Message to CAPIF
    [Arguments]   ${api_id}   ${service_name}   ${invoker_info}   ${provider_info}   @{results} 
    ${api_ids}=    Create List    ${api_id}
    ${api_names}=    Create List    ${service_name}
    ${request_body}=    Create Log Entry
    ...    ${provider_info['aef_id']}
    ...    ${invoker_info['api_invoker_id']}
    ...    ${api_ids}
    ...    ${api_names}
    ...    results=@{results}
    ${resp}=    Post Request Capif
    ...    /api-invocation-logs/v1/${provider_info['aef_id']}/logs
    ...    json=${request_body}
    ...    server=${CAPIF_HTTPS_URL}
    ...    verify=ca.crt
    ...    username=${provider_info['amf_username']}

    Check Response Variable Type And Values    ${resp}    201    InvocationLog
    ${resource_url}=    Check Location Header    ${resp}    ${LOCATION_LOGGING_RESOURCE_REGEX}

    RETURN    ${request_body}
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ Create Events From InvocationLogs
    ...    ${invocation_log}
    ...    ${events_expected}=${NONE}
    ...    ${event_detail_expected}=${TRUE}

    IF    ${events_expected} == ${NONE}
        ${events_expected}=    Create List
    END