#!/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 "robot" "testsuite"

    asserts_file_exist $robot_src_folder/LICENSE.TXT
    asserts_file_exist $robot_src_folder/heatbridge/pom.xml
    asserts_file_exist $robot_src_folder/properties/LICENSE.TXT
    asserts_file_exist $robot_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 "robot" "testsuite"
    compile_repos "robot"

    #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_robot_images {
    get_robot_images

    asserts_image $nexus_docker_repo/openecomp/testsuite
}

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

    asserts_image_running $nexus_docker_repo/openecomp/testsuite
}

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