Create UTs for APPC

It was created the Unit Tests for APPC which modified the code of
SDNC.

Change-Id: Ica033e8a94f545e148f321c388bee981abadc4af
Signed-off-by: Victor Morales <victor.morales@intel.com>
Issue-Id: INT-24
diff --git a/bootstrap/vagrant-onap/lib/appc b/bootstrap/vagrant-onap/lib/appc
index 8ad7356..a0959c6 100755
--- a/bootstrap/vagrant-onap/lib/appc
+++ b/bootstrap/vagrant-onap/lib/appc
@@ -3,44 +3,41 @@
 set -o xtrace
 
 source /var/onap/sdnc
-source /var/onap/asserts
+source /var/onap/functions
+
+appc_src_folder=$git_src_folder/appc
 
 # clone_all_appc_repos() - Function that clones APPC source repo.
 function clone_all_appc_repos {
-    local src_folder=/opt/appc
-
-    clone_repo appc $src_folder
-    clone_repo appc/deployment $src_folder/deployment
+    clone_repo appc $appc_src_folder
+    clone_repo appc/deployment $appc_src_folder/deployment
 }
 
 # compile_all_appc_repos() - Function that compiles APPC source repo.
 function compile_all_appc_repos {
-    local src_folder=/opt/appc
-
-    compile_src $src_folder
-    compile_src $src_folder/deployment
+    compile_src $appc_src_folder
+    compile_src $appc_src_folder/deployment
 }
 
-# install_appc() - Function that clones and installs the APPC services from source code
-function install_appc {
-    install_package unzip
-    local src_folder=/opt/appc
+# _build_appc_images() - Function that creates APPC images from source code.
+function _build_appc_images {
+    get_sdnc_images
+    build_docker_image $appc_src_folder/deployment/installation/appc docker
+}
 
-    clone_all_appc_repos
-    if [[ "$compile_repo" == "True" ]]; then
-        compile_all_appc_repos
-    fi
-
+# get_appc_images() - Function that gets or build APPC docker images
+function get_appc_images {
     if [[ "$build_image" == "True" ]]; then
-        clone_repo sdnc/oam /opt/sdnc/oam
-        build_sdnc_images /opt/sdnc/oam
-        build_docker_image $src_folder/deployment/installation/appc docker
-        asserts_image openecomp/appc-image
+        _build_appc_images
     else
         pull_openecomp_image appc-image openecomp/appc-image:latest
         pull_openecomp_image dgbuilder-sdnc-image openecomp/dgbuilder-sdnc-image:latest
     fi
-    pushd $src_folder/deployment
+}
+
+# install_appc() - Function that clones and installs the APPC services from source code
+function install_appc {
+    pushd $appc_src_folder/deployment/docker-compose
     install_docker_compose
     /opt/docker/docker-compose up -d
     popd
@@ -48,5 +45,11 @@
 
 # init_appc() - Function that initialize APPC services
 function init_appc {
+    clone_all_appc_repos
+    if [[ "$compile_repo" == "True" ]]; then
+        compile_all_appc_repos
+    fi
+
+    get_appc_images
     install_appc
 }
diff --git a/bootstrap/vagrant-onap/lib/sdnc b/bootstrap/vagrant-onap/lib/sdnc
index 3326321..9a3f9b0 100755
--- a/bootstrap/vagrant-onap/lib/sdnc
+++ b/bootstrap/vagrant-onap/lib/sdnc
@@ -4,13 +4,13 @@
 
 source /var/onap/functions
 
-src_folder=$git_src_folder/openecomp/sdnc
+sdnc_src_folder=$git_src_folder/openecomp/sdnc
 sdnc_repos=("core" "adaptors" "northbound" "plugins" "oam")
 
 # clone_all_sdnc_repos() - Function that clones SDNC source repo.
 function clone_all_sdnc_repos {
     for dirc in ${sdnc_repos[@]}; do
-        clone_repo sdnc/$dirc $src_folder/$dirc
+        clone_repo sdnc/$dirc $sdnc_src_folder/$dirc
     done
 }
 
@@ -18,21 +18,21 @@
 function compile_all_sdnc_repos {
     for dirc in ${sdnc_repos[@]}; do
         if [[ "$dirc" == "core" ]]; then
-            compile_src $src_folder/core/rootpom
+            compile_src $sdnc_src_folder/core/rootpom
         fi
-        compile_src $src_folder/$dirc
+        compile_src $sdnc_src_folder/$dirc
     done
 }
 
-# build_sdnc_images() - Builds SDNC images from source code
-function build_sdnc_images {
-    local folder=${1:-$src_folder/oam}
+# _build_sdnc_images() - Builds SDNC images from source code
+function _build_sdnc_images {
+    local folder=$sdnc_src_folder/oam
 
     install_package unzip
-    clone_repo sdnc/oam $src_folder/oam
+    clone_repo sdnc/oam $folder
     # The OAM code depends on all the SDNC repos which should be downloaded and compiled first
-    if [[ "$compile_repo" == "False" ]]; then
-        compile_src $src_folder/oam/
+    if [[ "$compile_repo" != "True" ]]; then
+        compile_src $folder
     fi
     for dirc in ubuntu sdnc admportal dgbuilder; do
         build_docker_image $folder/installation/$dirc
@@ -42,7 +42,7 @@
 # get_sdnc_images() - Build or retrieve necessary images
 function get_sdnc_images {
     if [[ "$build_image" == "True" ]]; then
-        build_sdnc_images
+        _build_sdnc_images
     else
         pull_openecomp_image sdnc-image openecomp/sdnc-image:latest
         pull_openecomp_image admportal-sdnc-image openecomp/admportal-sdnc-image:latest
@@ -53,8 +53,8 @@
 
 # install_sdnc() -  Download and install SDNC services from source code
 function install_sdnc {
-    clone_repo sdnc/oam $src_folder/oam
-    pushd $src_folder/oam/installation/src/main/yaml
+    clone_repo sdnc/oam $sdnc_src_folder/oam
+    pushd $sdnc_src_folder/oam/installation/src/main/yaml
     install_docker_compose
     /opt/docker/docker-compose up -d
     popd
diff --git a/bootstrap/vagrant-onap/tests/test_appc b/bootstrap/vagrant-onap/tests/test_appc
new file mode 100644
index 0000000..0d46ef4
--- /dev/null
+++ b/bootstrap/vagrant-onap/tests/test_appc
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+source /var/onap_tests/_test_base
+source /var/onap/appc
+
+covered_functions=(
+"clone_all_appc_repos" "compile_all_appc_repos" "get_appc_images" "install_appc"
+)
+
+# test_clone_all_appc_repos() - Verify that the APPC source code is cloned
+function test_clone_all_appc_repos {
+    clone_all_appc_repos
+
+    asserts_file_exist $appc_src_folder/pom.xml
+    asserts_file_exist $appc_src_folder/deployment/pom.xml
+}
+
+# test_compile_all_appc_repos() - Verify that the APPC source code is compiled properly
+function test_compile_all_appc_repos {
+    clone_all_appc_repos
+    compile_all_appc_repos
+
+    for adapter in appc-ansible-adapter appc-chef-adapter appc-dmaap-adapter appc-iaas-adapter appc-netconf-adapter appc-rest-adapter appc-rest-healthcheck-adapter; do
+        asserts_file_exist $appc_src_folder/appc-adapters/$adapter/$adapter-bundle/target/$adapter-bundle-1.1.0-SNAPSHOT.jar
+        asserts_file_exist $appc_src_folder/appc-adapters/$adapter/$adapter-features/target/$adapter-features-1.1.0-SNAPSHOT.jar
+        if [[ "$adapter" == "appc-netconf-adapter" ]]; then
+            asserts_file_exist $appc_src_folder/appc-adapters/$adapter/appc-netconf-installer/target/$adapter-1.1.0-SNAPSHOT.zip
+        else
+            asserts_file_exist $appc_src_folder/appc-adapters/$adapter/$adapter-installer/target/$adapter-1.1.0-SNAPSHOT.zip
+        fi
+    done
+    asserts_file_exist $appc_src_folder/appc-adapters/appc-dmaap-adapter/appc-message-adapter-api/target/appc-message-adapter-api-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-adapters/appc-dmaap-adapter/appc-message-adapter-factory/target/appc-message-adapter-factory-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-adapters/appc-ssh-adapter/appc-ssh-adapter-api/target/appc-ssh-adapter-api-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-adapters/appc-ssh-adapter/appc-ssh-adapter-features/target/appc-ssh-adapter-features-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-adapters/appc-ssh-adapter/appc-ssh-adapter-sshd/target/appc-ssh-adapter-sshd-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-adapters/appc-ssh-adapter/appc-ssh-adapter-tests/target/appc-ssh-adapter-tests-1.1.0-SNAPSHOT.jar
+
+    for component in appc-asdc-listener appc-event-listener appc-oam appc-provider; do
+        asserts_file_exist $appc_src_folder/$component/$component-bundle/target/$component-bundle-1.1.0-SNAPSHOT.jar
+        asserts_file_exist $appc_src_folder/$component/$component-features/target/$component-features-1.1.0-SNAPSHOT.jar
+        asserts_file_exist $appc_src_folder/$component/$component-installer/target/$component-1.1.0-SNAPSHOT.zip
+    done
+    for component in appc-oam appc-provider; do
+        asserts_file_exist $appc_src_folder/$component/$component-model/target/$component-model-1.1.0-SNAPSHOT.jar
+    done
+
+    asserts_file_exist $appc_src_folder/appc-asdc-listener/appc-yang-generator/target/appc-yang-generator-1.1.0-SNAPSHOT.jar
+
+    asserts_file_exist $appc_src_folder/appc-common/target/appc-common-1.1.0-SNAPSHOT.jar
+
+    asserts_file_exist $appc_src_folder/appc-dg/appc-dg-shared/appc-dg-dependency-model/target/appc-dg-dependency-model-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-dg/appc-dg-shared/appc-dg-domain-model-lib/target/appc-dg-domain-model-lib-1.1.0-SNAPSHOT.jar
+
+    asserts_file_exist $appc_src_folder/appc-dispatcher/appc-command-executor/appc-command-executor-api/target/appc-command-executor-api-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-dispatcher/appc-dispatcher-common/appc-data-access-lib/target/appc-data-access-lib-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-dispatcher/appc-dispatcher-common/domain-model-lib/target/domain-model-lib-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-dispatcher/appc-dispatcher-common/execution-queue-management-lib/target/execution-queue-management-lib-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-dispatcher/appc-license-manager/appc-license-manager-api/target/appc-license-manager-api-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-dispatcher/appc-request-handler/appc-request-handler-api/target/appc-request-handler-api-1.1.0-SNAPSHOT.jar
+
+
+    asserts_file_exist $appc_src_folder/appc-lifecycle-management/appc-lifecycle-management-api/target/appc-lifecycle-management-api-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-lifecycle-management/appc-lifecycle-management-core/target/appc-lifecycle-management-core-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-lifecycle-management/appc-lifecycle-management-features/target/appc-lifecycle-management-features-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $appc_src_folder/appc-lifecycle-management/appc-lifecycle-management-installer/target/appc-lifecycle-management-1.1.0-SNAPSHOT.zip
+    asserts_file_exist $appc_src_folder/appc-lifecycle-management/state-machine-lib/target/state-machine-lib-1.1.0-SNAPSHOT.jar
+
+    asserts_file_exist $appc_src_folder/appc-metric/appc-metric-bundle/target/appc-metric-bundle-1.1.0-SNAPSHOT.jar
+
+    asserts_file_exist $appc_src_folder/deployment/platform-logic/installer/target/platform-logic-installer-1.1.0-SNAPSHOT.zip
+}
+
+# test_get_appc_images() - Verify that APPC Docker images can be retrieved
+function test_get_appc_images {
+    clone_all_appc_repo
+    get_appc_images
+
+    asserts_image openecomp/appc-image
+}
+
+# test_install_appc() - Verify that the APPC Docker images are up and running
+function test_install_appc {
+    clone_all_appc_repos
+    get_appc_images
+    install_appc
+
+    asserts_image_running openecomp/dgbuilder-sdnc-image
+    asserts_image_running openecomp/appc-image
+    asserts_image_running mysql/mysql-server:5.6
+}
+
+if [ "$1" != '*' ]; then
+    unset covered_functions
+    covered_functions=$1
+fi
+main "${covered_functions[@]}"
diff --git a/bootstrap/vagrant-onap/tests/test_sdnc b/bootstrap/vagrant-onap/tests/test_sdnc
index 93110a3..a60145f 100644
--- a/bootstrap/vagrant-onap/tests/test_sdnc
+++ b/bootstrap/vagrant-onap/tests/test_sdnc
@@ -11,11 +11,11 @@
 function test_clone_all_sdnc_repos {
     clone_all_sdnc_repos
 
-    asserts_file_exist $src_folder/core/pom.xml
-    asserts_file_exist $src_folder/adaptors/pom.xml
-    asserts_file_exist $src_folder/northbound/pom.xml
-    asserts_file_exist $src_folder/plugins/pom.xml
-    asserts_file_exist $src_folder/oam/pom.xml
+    asserts_file_exist $sdnc_src_folder/core/pom.xml
+    asserts_file_exist $sdnc_src_folder/adaptors/pom.xml
+    asserts_file_exist $sdnc_src_folder/northbound/pom.xml
+    asserts_file_exist $sdnc_src_folder/plugins/pom.xml
+    asserts_file_exist $sdnc_src_folder/oam/pom.xml
 }
 
 # test_compile_all_sdnc_repos() - Verify the correct compilation of SDNC projects
@@ -24,34 +24,34 @@
     compile_all_sdnc_repos
 
     for adaptor in aai-service mdsal-resource resource-assignment sql-resource; do
-        asserts_file_exist $src_folder/adaptors/$adaptor/features/target/$adaptor-features-1.1.2-SNAPSHOT.jar
-        asserts_file_exist $src_folder/adaptors/$adaptor/installer/target/sdnc-$adaptor-1.1.2-SNAPSHOT-installer.zip
-        asserts_file_exist $src_folder/adaptors/$adaptor/provider/target/$adaptor-provider-1.1.2-SNAPSHOT.jar
+        asserts_file_exist $sdnc_src_folder/adaptors/$adaptor/features/target/$adaptor-features-1.1.2-SNAPSHOT.jar
+        asserts_file_exist $sdnc_src_folder/adaptors/$adaptor/installer/target/sdnc-$adaptor-1.1.2-SNAPSHOT-installer.zip
+        asserts_file_exist $sdnc_src_folder/adaptors/$adaptor/provider/target/$adaptor-provider-1.1.2-SNAPSHOT.jar
     done
 
-    asserts_file_exist $src_folder/core/dblib/provider/target/dblib-provider-1.1.2-SNAPSHOT.jar
-    asserts_file_exist $src_folder/core/rootpom/target/rootpom-1.1.0-site_en.xml
-    asserts_file_exist $src_folder/core/target/sdnc-core-1.1.2-SNAPSHOT-site.xml
+    asserts_file_exist $sdnc_src_folder/core/dblib/provider/target/dblib-provider-1.1.2-SNAPSHOT.jar
+    asserts_file_exist $sdnc_src_folder/core/rootpom/target/rootpom-1.1.0-site_en.xml
+    asserts_file_exist $sdnc_src_folder/core/target/sdnc-core-1.1.2-SNAPSHOT-site.xml
 
     for component in asdcApi dataChange vnfapi vnftools; do
-        asserts_file_exist $src_folder/northbound/$component/features/target/$component-features-1.1.2-SNAPSHOT.jar
-        asserts_file_exist $src_folder/northbound/$component/installer/target/sdnc-$component-1.1.2-SNAPSHOT-installer.zip
+        asserts_file_exist $sdnc_src_folder/northbound/$component/features/target/$component-features-1.1.2-SNAPSHOT.jar
+        asserts_file_exist $sdnc_src_folder/northbound/$component/installer/target/sdnc-$component-1.1.2-SNAPSHOT-installer.zip
         if [[ "$component" != "vnftools" ]]; then
-            asserts_file_exist $src_folder/northbound/$component/model/target/$component-model-1.1.2-SNAPSHOT.jar
+            asserts_file_exist $sdnc_src_folder/northbound/$component/model/target/$component-model-1.1.2-SNAPSHOT.jar
         fi
-        asserts_file_exist $src_folder/northbound/$component/provider/target/$component-provider-1.1.2-SNAPSHOT.jar
+        asserts_file_exist $sdnc_src_folder/northbound/$component/provider/target/$component-provider-1.1.2-SNAPSHOT.jar
     done
-    asserts_file_exist $src_folder/northbound/dmaap-listener/target/dmaap-listener-1.1.2-SNAPSHOT.jar
-    asserts_file_exist $src_folder/northbound/ueb-listener/target/ueb-listener-1.1.2-SNAPSHOT.jar
+    asserts_file_exist $sdnc_src_folder/northbound/dmaap-listener/target/dmaap-listener-1.1.2-SNAPSHOT.jar
+    asserts_file_exist $sdnc_src_folder/northbound/ueb-listener/target/ueb-listener-1.1.2-SNAPSHOT.jar
 
-    asserts_file_exist $src_folder/oam/admportal/target/admportal.1.1.2-SNAPSHOT.zip
-    asserts_file_exist $src_folder/oam/dgbuilder/target/dgbuilder.1.1.2-SNAPSHOT.zip
-    asserts_file_exist $src_folder/oam/platform-logic/installer/target/platform-logic-installer-1.1.2-SNAPSHOT.zip
+    asserts_file_exist $sdnc_src_folder/oam/admportal/target/admportal.1.1.2-SNAPSHOT.zip
+    asserts_file_exist $sdnc_src_folder/oam/dgbuilder/target/dgbuilder.1.1.2-SNAPSHOT.zip
+    asserts_file_exist $sdnc_src_folder/oam/platform-logic/installer/target/platform-logic-installer-1.1.2-SNAPSHOT.zip
 
     for plugin in properties-node restapi-call-node; do
-        asserts_file_exist $src_folder/plugins/$plugin/features/target/$plugin-features-1.1.2-SNAPSHOT.jar
-        asserts_file_exist $src_folder/plugins/$plugin/installer/target/sdnc-$plugin-1.1.2-SNAPSHOT-installer.zip
-        asserts_file_exist $src_folder/plugins/$plugin/provider/target/$plugin-provider-1.1.2-SNAPSHOT.jar
+        asserts_file_exist $sdnc_src_folder/plugins/$plugin/features/target/$plugin-features-1.1.2-SNAPSHOT.jar
+        asserts_file_exist $sdnc_src_folder/plugins/$plugin/installer/target/sdnc-$plugin-1.1.2-SNAPSHOT-installer.zip
+        asserts_file_exist $sdnc_src_folder/plugins/$plugin/provider/target/$plugin-provider-1.1.2-SNAPSHOT.jar
     done
 }