#!/bin/bash

source /var/onap_tests/_test_base
source /var/onap/robot

covered_functions=(
"clone_robot_repos" "compile_robot_repos" "get_robot_images" "install_robot"
)

# test_clone_robot_repos() - Verify that Robot repositories are cloned properly
function test_clone_robot_repos {
    clone_repos "testsuite"

    asserts_file_exist $testsuite_src_folder/LICENSE.TXT
    asserts_file_exist $testsuite_src_folder/heatbridge/pom.xml
    asserts_file_exist $testsuite_src_folder/properties/LICENSE.TXT
    asserts_file_exist $testsuite_src_folder/python-testing-utils/LICENSE.TXT
}

# test_compile_robot_repos() - Verify that Robot source code can be compiled properly
function test_compile_robot_repos {
    clone_repos "testsuite"
    compile_repos "testsuite"

    #asserts_file_exist $testsuite_src_folder/heatbridge/target/maven-python/dist/heatbridge-0.3.0.dev0-py2-none-any.whl
}

# test_get_robot_images() - Verify that Robot Docker images are retrieved
function test_get_mr_images {
    get_robot_images

    asserts_image testsuite
}

# test_install_robot() - Verify the built and start of Robot services
function test_install_message_router {
    clone_repos "robot"
    get_robot_images
    install_robot

    asserts_image_running testsuite
}

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