#!/bin/bash

source /var/onap_tests/_test_base
source /var/onap/vnfsdk

covered_functions=(
"clone_all_vnfsdk_repos" "compile_all_vnfsdk_repos" "get_vnfsdk_images" "install_vnfsdk"
)

# test_clone_all_vnfsdk_repos() - Verify the cloning of VNFSDK source repo.
function test_clone_all_vnfsdk_repos {
    clone_all_vnfsdk_repos

    asserts_file_exist $vnfsdk_src_folder/compliance/veslibrary/README
    asserts_file_exist $vnfsdk_src_folder/functest/pom.xml
    asserts_file_exist $vnfsdk_src_folder/lctest/pom.xml
    asserts_file_exist $vnfsdk_src_folder/model/docs/index.rst
    asserts_file_exist $vnfsdk_src_folder/pkgtools/pom.xml
    asserts_file_exist $vnfsdk_src_folder/refrepo/pom.xml
    asserts_file_exist $vnfsdk_src_folder/validation/pom.xml
}

# test_compile_all_vnfsdk_repos () - Verify if VNFSDK source repo compiles correctly.
function test_compile_all_vnfsdk_repos {
    clone_all_vnfsdk_repos
    compile_all_vnfsdk_repos

    asserts_file_exist $vnfsdk_src_folder/lctest/lifecycle-test/target/lifecycle-test-service-1.0.0-SNAPSHOT.war
    asserts_file_exist $vnfsdk_src_folder/pkgtools/target/vnf-sdk-pkgtools-1.0.0-SNAPSHOT.zip
    asserts_file_exist $vnfsdk_src_folder/refrepo/vnfmarket-be/vnf-sdk-marketplace/target/ROOT.war
    asserts_file_exist $vnfsdk_src_folder/validation/csarvalidation/target/validation-csar-1.0.0-SNAPSHOT.jar
}

# test_get_vnfsdk_images() - Verify that the VNFSDK images are created or retrieved
function test_get_vnfsdk_images {
    clone_all_vnfsdk_repos
    get_vnfsdk_images

    asserts_image refrepo:1.0-STAGING-latest
    asserts_image refrepo:latest
}

# test_install_vnfsdk() - Verify that VNFSDK docker images are running.
function test_install_vnfsdk {
    clone_all_vnfsdk_repos
    get_vnfsdk_images
    install_vnfsdk

    asserts_image_running refrepo:1.0-STAGING-latest
    asserts_image refrepo:latest
}

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