#!/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[@]}"
