#!/bin/bash

source /var/onap_tests/_test_base
source /var/onap/sdnc

covered_functions=(
"clone_all_sdnc_repos" "compile_all_sdnc_repos" "get_sdnc_images" "install_sdnc"
)

# test_clone_all_sdnc_repos() - Verify the source code retrieve of SDNC project
function test_clone_all_sdnc_repos {
    clone_all_sdnc_repos

    asserts_file_exist $sdnc_src_folder/adaptors/pom.xml
    # asserts_file_exist $sdnc_src_folder/architecture/pom.xml
    asserts_file_exist $sdnc_src_folder/core/pom.xml
    # asserts_file_exist $sdnc_src_folder/features/pom.xml
    asserts_file_exist $sdnc_src_folder/northbound/pom.xml
    asserts_file_exist $sdnc_src_folder/oam/pom.xml
    # asserts_file_exist $sdnc_src_folder/parent/pom.xml
    asserts_file_exist $sdnc_src_folder/plugins/pom.xml
}

# test_compile_all_sdnc_repos() - Verify the correct compilation of SDNC projects
function test_compile_all_sdnc_repos {
    clone_all_sdnc_repos
    compile_all_sdnc_repos

    for component in generic-resource-api vnfapi vnftools; do
        if [[ "$component" != "generic-resource-api" ]]; then
            if [[ "$component" == "vnfapi" ]]; then
                asserts_file_exist $sdnc_src_folder/northbound/vnfapi/model/target/vnfapi-model-1.2.0-SNAPSHOT.jar
            fi
            asserts_file_exist $sdnc_src_folder/northbound/$component/installer/target/sdnc-$component-1.2.0-SNAPSHOT-installer.zip
            asserts_file_exist $sdnc_src_folder/northbound/$component/features/target/$component-features-1.2.0-SNAPSHOT.jar
            asserts_file_exist $sdnc_src_folder/northbound/$component/provider/target/$component-provider-1.2.0-SNAPSHOT.jar
        else
            asserts_file_exist $sdnc_src_folder/northbound/generic-resource-api/features/target/generic-resource-api.features-1.2.0-SNAPSHOT.jar
            asserts_file_exist $sdnc_src_folder/northbound/generic-resource-api/installer/target/sdnc-generic-resources-api-1.2.0-SNAPSHOT-installer.zip
            asserts_file_exist $sdnc_src_folder/northbound/generic-resource-api/model/target/generic-resource-api.model-1.2.0-SNAPSHOT.jar
            asserts_file_exist $sdnc_src_folder/northbound/generic-resource-api/provider/target/generic-resource-api.provider-1.2.0-SNAPSHOT.jar
        fi
    done
    asserts_file_exist $sdnc_src_folder/oam/admportal/target/admportal.*-SNAPSHOT.zip
    asserts_file_exist $sdnc_src_folder/oam/dgbuilder/target/dgbuilder.*-SNAPSHOT.zip
    asserts_file_exist $sdnc_src_folder/oam/platform-logic/installer/target/platform-logic-installer-*-SNAPSHOT.zip
}

# test_get_sdnc_images() - Verify that the SDNC images are created or retrieved
function test_get_sdnc_images {
    clone_all_sdnc_repos
    get_sdnc_images

    asserts_image onap/sdnc-image
    asserts_image onap/admportal-sdnc-image
    asserts_image onap/dgbuilder-sdnc-image
    asserts_image mysql/mysql-server:5.6
}

# test_install_sdnc() - Verify that the SDNC Docker containers are up and running
function test_install_sdnc {
    clone_all_sdnc_repos
    get_sdnc_images
    install_sdnc

    asserts_image_running onap/ccsdk-dgbuilder-image
    asserts_image_running onap/admportal-sdnc-image
    asserts_image_running onap/sdnc-image
    asserts_image_running mysql/mysql-server:5.6
}

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