#!/bin/bash

source /var/onap_tests/_test_base
source /var/onap/mr

covered_functions=(
"clone_mr_repos" "get_mr_images" "install_message_router"
)

# test_clone_mr_repos() - Verify that Message Router repositories are cloned properly
function test_clone_mr_repos {
    clone_mr_repos

    asserts_file_exist $src_folder/deploy.sh
}

# test_get_mr_images() - Verify that Message Router Docker images are retrieved
function test_get_mr_images {
    get_mr_images

    asserts_image attos/dmaap
    asserts_image wurstmeister/zookeeper
}

# test_install_message_router() - Verify the built and start of Message Router services
function test_install_message_router {
    clone_mr_repos
    get_mr_images
    install_message_router

    asserts_image_running dockerfiles_kafka
}

if [ "$1" != '*' ]; then
    unset covered_functions
    covered_functions=$1
fi
main "${covered_functions[@]}"
