#!/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_repos "vnfsdk"

    asserts_file_exist ${src_folders[vnfsdk]}/compliance/veslibrary/README
    asserts_file_exist ${src_folders[vnfsdk]}/functest/pom.xml
    asserts_file_exist ${src_folders[vnfsdk]}/lctest/pom.xml
    asserts_file_exist ${src_folders[vnfsdk]}/model/docs/index.rst
    asserts_file_exist ${src_folders[vnfsdk]}/pkgtools/pom.xml
    asserts_file_exist ${src_folders[vnfsdk]}/refrepo/pom.xml
    asserts_file_exist ${src_folders[vnfsdk]}/validation/pom.xml
}

# test_compile_all_vnfsdk_repos () - Verify if VNFSDK source repo compiles correctly.
function test_compile_all_vnfsdk_repos {
    clone_repos "vnfsdk"
    compile_repos "vnfsdk"

    asserts_file_exist ${src_folders[vnfsdk]}/lctest/lifecycle-test/target/lifecycle-test-service-1.0.0-SNAPSHOT.war
    asserts_file_exist ${src_folders[vnfsdk]}/pkgtools/target/vnf-sdk-pkgtools-1.0.0-SNAPSHOT.zip
    asserts_file_exist ${src_folders[vnfsdk]}/refrepo/vnfmarket-be/vnf-sdk-marketplace/target/ROOT.war
    asserts_file_exist ${src_folders[vnfsdk]}/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_repos "vnfsdk"
    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_repos "vnfsdk"
    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[@]}"
