#!/bin/bash

source /var/onap_tests/_test_base
source /var/onap/vid

covered_functions=(
"clone_all_vid_repos" "compile_all_vid_repos" "get_vid_images" "install_vid"
)

# test_clone_all_vid_repos() - Verifies that VID repositories are retrieved properly
function test_clone_all_vid_repos {
    clone_repos "vid"

    asserts_file_exist $vid_src_folder/pom.xml
    asserts_file_exist $vid_src_folder/asdcclient/pom.xml
}

# test_compile_all_vid_repos() - Verifies that VID source code is compiled properly
function test_compile_all_vid_repos {
    clone_repos "vid"
    compile_repos "vid"

    asserts_file_exist $vid_src_folder/asdcclient/target/asdcclient-1.0.2-SNAPSHOT.jar
    asserts_file_exist $vid_src_folder/epsdk-app-onap/target/vid.war
    asserts_file_exist $vid_src_folder/vid-app-common/target/vid-common.war
}

# test_get_vid_images() - Verifies that VID Docker images are built properly
function test_get_vid_images {
    clone_repos "vid"
    get_vid_images

    asserts_image openecomp/vid
    asserts_image mariadb:10
}

# test_install_vid() - Verifies taht VID services are up and running
function test_install_vid {
    clone_repos "vid"
    get_vid_images
    install_vid

    vid_image=`docker images | grep vid | grep latest| awk '{print $1 ":" $2}'`
    asserts_image_running $vid_image
}

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