Create UTs for VID scripts

This change includes the creation of Unit tests for VID module.
This also refactors the source code of the provisioning script.

Change-Id: I81fdd69e685a55c0b77ee02d138c7870f586f1d1
Signed-off-by: Victor Morales <victor.morales@intel.com>
Issue-Id: INT-20
diff --git a/bootstrap/vagrant-onap/lib/vid b/bootstrap/vagrant-onap/lib/vid
index 902c455..fc622c3 100755
--- a/bootstrap/vagrant-onap/lib/vid
+++ b/bootstrap/vagrant-onap/lib/vid
@@ -3,47 +3,42 @@
 set -o xtrace
 
 source /var/onap/functions
-source /var/onap/asserts
 
-src_folder=/opt/vid
-
-# pull_mariadb_image() - Pull MariaDB container image from a Docker Registry Hub
-function pull_mariadb_image {
-    docker_openecomp_login
-    docker pull $nexus_docker_repo/library/mariadb:10
-}
+vid_src_folder=$git_src_folder/vid
 
 # clone_all_vid_repos() - Function that clones VID source code.
 function clone_all_vid_repos {
-    clone_repo vid $src_folder
-    clone_repo vid/asdcclient $src_folder/asdcclient
+    clone_repo vid $vid_src_folder
+    clone_repo vid/asdcclient $vid_src_folder/asdcclient
 }
 
 # compile_all_vid_repos() - Function that compiles VID source repo.
 function compile_all_vid_repos {
-    compile_src $src_folder
-    compile_src $src_folder/asdcclient
+    compile_src $vid_src_folder/asdcclient
+    compile_src $vid_src_folder
+}
+
+# _build_vid_images() - Function that builds VID docker images
+function _build_vid_images {
+    if [[ "$compile_repo" != "True" ]]; then
+        compile_src $vid_src_folder
+    fi
+    build_docker_image $vid_src_folder/deliveries
+}
+
+# get_vid_images() - Function that retrieves VID docker images
+function get_vid_images {
+    if [[ "$build_image" == "True" ]]; then
+        _build_vid_images
+    else
+        pull_openecomp_image vid
+    fi
+    pull_docker_image mariadb:10
 }
 
 # install_vid() - Download and configure Vid source code
 function install_vid {
-    local vid_image=openecomp/vid
-
-    clone_all_vid_repos
-    if [[ "$compile_repo" == "True" ]]; then
-        compile_all_vid_repos
-    fi
-
-    if [[ "$build_image" == "True" ]]; then
-        compile_src $src_folder
-        build_docker_image $src_folder/deliveries
-        asserts_image $vid_image
-        vid_image=`docker images | grep vid | grep latest| awk '{print $1 ":" $2}'`
-    else
-        pull_openecomp_image vid
-        vid_image=$nexus_docker_repo/$vid_image:$docker_version
-    fi
-    pull_mariadb_image
+    vid_image=`docker images | grep vid | grep latest| awk '{print $1 ":" $2}'`
 
     docker rm -f vid-mariadb
     docker rm -f vid-server
@@ -54,5 +49,11 @@
 
 # init_vid() - Function that initialize Vid services
 function init_vid {
+    clone_all_vid_repos
+    if [[ "$compile_repo" == "True" ]]; then
+        compile_all_vid_repos
+    fi
+
+    get_vid_images
     install_vid
 }
diff --git a/bootstrap/vagrant-onap/tests/test_vid b/bootstrap/vagrant-onap/tests/test_vid
new file mode 100644
index 0000000..731d005
--- /dev/null
+++ b/bootstrap/vagrant-onap/tests/test_vid
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+source /var/onap_tests/_test_base
+source /var/onap/vid
+
+covered_functions=(
+"clone_all_vid_repos" "compile_all_vid_repos" "get_vid_images" "install_vid"
+)
+
+# test_clone_all_vid_repos() - Verifies that VID repositories are retrieved properly
+function test_clone_all_vid_repos {
+    clone_all_vid_repos
+
+    asserts_file_exist $vid_src_folder/pom.xml
+    asserts_file_exist $vid_src_folder/asdcclient/pom.xml
+}
+
+# test_compile_all_vid_repos() - Verifies that VID source code is compiled properly
+function test_compile_all_vid_repos {
+    clone_all_vid_repos
+    compile_all_vid_repos
+
+    asserts_file_exist $vid_src_folder/asdcclient/target/asdcclient-1.0.2-SNAPSHOT.jar
+    asserts_file_exist $vid_src_folder/epsdk-app-onap/target/vid.war
+    asserts_file_exist $vid_src_folder/vid-app-common/target/vid-common.war
+}
+
+# test_get_vid_images() - Verifies that VID Docker images are built properly
+function test_get_vid_images {
+    clone_all_vid_repos
+    get_vid_images
+
+    asserts_image openecomp/vid
+    asserts_image mariadb:10
+}
+
+# test_install_vid() - Verifies taht VID services are up and running
+function test_install_vid {
+    clone_all_vid_repos
+    get_vid_images
+    install_vid
+
+    vid_image=`docker images | grep vid | grep latest| awk '{print $1 ":" $2}'`
+    asserts_image_running $vid_image
+}
+
+if [ "$1" != '*' ]; then
+    unset covered_functions
+    covered_functions=$1
+fi
+main "${covered_functions[@]}"