#!/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_repo dcae/demo/startup/message-router ${src_folders[mr]}

    asserts_file_exist ${src_folders[mr]}/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_repo dcae/demo/startup/message-router ${src_folders[mr]}
    get_mr_images
    install_message_router

    asserts_image_running dockerfiles_kafka
}

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