#!/bin/bash

source /var/onap_tests/_test_base
source /var/onap/vfc

covered_functions=(
"clone_all_vfc_repos" "compile_all_vfc_repos" "install_vfc" "get_vfc_images"
)

# test_clone_all_vfc_repos() - Verify cloning and pulling source code from repositories
function test_clone_all_vfc_repos {
    clone_all_vfc_repos

    #asserts_file_exist $vfc_src_folder/pom.xml
    #asserts_file_exist $vfc_src_folder/gvnfm
    asserts_file_exist $vfc_src_folder/gvnfm/vnflcm/pom.xml
    asserts_file_exist $vfc_src_folder/gvnfm/vnfmgr/pom.xml
    asserts_file_exist $vfc_src_folder/gvnfm/vnfres/pom.xml
    #asserts_file_exist $vfc_src_folder/nfvo
    asserts_file_exist $vfc_src_folder/nfvo/catalog/run.sh
    #asserts_file_exist $vfc_src_folder/nfvo/driver
    asserts_file_exist $vfc_src_folder/nfvo/driver/ems/pom.xml
    asserts_file_exist $vfc_src_folder/nfvo/driver/sfc/pom.xml
    #asserts_file_exist $vfc_src_folder/nfvo/driver/vnfm
    asserts_file_exist $vfc_src_folder/nfvo/driver/vnfm/gvnfm/pom.xml
    asserts_file_exist $vfc_src_folder/nfvo/driver/vnfm/svnfm/pom.xml
    asserts_file_exist $vfc_src_folder/nfvo/lcm/pom.xml
    asserts_file_exist $vfc_src_folder/nfvo/wfengine/wso2/pom.xml
}

# test_compile_all_vfc_repos() - Verify that all the VFC modules are compiled properly
function test_compile_all_vfc_repos {
    clone_all_vfc_repos
    compile_all_vfc_repos

    # TODO(electrocucaracha): Add asserts_file_exist
}

# test_get_vfc_images() - Verify all VFC images are built correctly.
function test_get_vfc_images {
    clone_all_vfc_repos
    get_vfc_images

    asserts_image onap/gvnfmdriver
    asserts_image onap/nslcm
    asserts_image onap/vnfres
    asserts_image onap/vnfmgr
    asserts_image onap/vnflcm
}

# test_install_vfc() - Verify that the VFC are up and running
function test_install_vfc {
    clone_all_vfc_repos
    get_vfc_images
    install_vfc

    asserts_image_running onap/nslcm
    asserts_image_running onap/gvnfmdriver
    asserts_image_running onap/vnfres
    asserts_image_running onap/vnfmgr
    asserts_image_running onap/vnflcm
}

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