Create multiple raw data files for different tests

Change-Id: I55862204ef71f69bc88c79fe2259f7cb8365699a
Issue-ID: DCAEGEN2-1225
Signed-off-by: RehanRaza <muhammad.rehan.raza@est.tech>
diff --git a/test/mocks/datafilecollector-testharness/ftps-sftp-server/.gitignore b/test/mocks/datafilecollector-testharness/ftps-sftp-server/.gitignore
new file mode 100644
index 0000000..bd6c5be
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/ftps-sftp-server/.gitignore
@@ -0,0 +1 @@
+files/onap/*
diff --git a/test/mocks/datafilecollector-testharness/ftps-sftp-server/docker-compose.yml b/test/mocks/datafilecollector-testharness/ftps-sftp-server/docker-compose.yml
index 4d2d329..466ca56 100644
--- a/test/mocks/datafilecollector-testharness/ftps-sftp-server/docker-compose.yml
+++ b/test/mocks/datafilecollector-testharness/ftps-sftp-server/docker-compose.yml
@@ -8,7 +8,7 @@
     ports:
       - "1022:22"
     volumes:
-      - ./files/onap/:/home/onap/
+      - ./files/onap/sftp/:/home/onap/
     restart: on-failure
     command: onap:pano:1001
 
@@ -30,10 +30,7 @@
       - ./tls/dfc.crt:/etc/ssl/private/dfc.crt:ro
       - ./configuration/vsftpd_ssl.conf:/etc/vsftpd_ssl.conf:ro
 
-      - ./files/onap/0.5MB.tar.gz:/srv/0.5MB.tar.gz:ro
-      - ./files/onap/1MB.tar.gz:/srv/1MB.tar.gz:ro
-      - ./files/onap/5MB.tar.gz:/srv/5MB.tar.gz:ro
-      - ./files/onap/10MB.tar.gz:/srv/10MB.tar.gz:ro
+      - ./files/onap/ftps/:/srv/
     restart: on-failure
     command: vsftpd /etc/vsftpd_ssl.conf
 
diff --git a/test/mocks/datafilecollector-testharness/ftps-sftp-server/prepare.sh b/test/mocks/datafilecollector-testharness/ftps-sftp-server/prepare.sh
index 76f3334..f1146a6 100755
--- a/test/mocks/datafilecollector-testharness/ftps-sftp-server/prepare.sh
+++ b/test/mocks/datafilecollector-testharness/ftps-sftp-server/prepare.sh
@@ -1,10 +1,50 @@
 #!/bin/bash
+# EXAMPLE: Run test case TC2 using the command "./prepare.sh TC2"
+MAIN_DIRECTORY=./files/onap
+TEST_FILE=./test_cases.yml
+TEST=$1
+echo "Generating files for test case:" "$TEST"
 
-mkdir -p files/onap
+sf=$(sed -n '/'$TEST'/,$p' $TEST_FILE | grep -m 1 'size_files')
+sf=${sf//*size_files: /}
+sf_array=($sf)
+echo "size_files=""$sf"
 
-dd if=/dev/urandom of=./files/onap/0.5MB.tar.gz bs=1k count=512
-dd if=/dev/urandom of=./files/onap/1MB.tar.gz bs=1M count=1
-dd if=/dev/urandom of=./files/onap/5MB.tar.gz bs=1M count=5
-dd if=/dev/urandom of=./files/onap/10MB.tar.gz bs=1M count=10
+nf=$(sed -n '/'$TEST'/,$p' $TEST_FILE | grep -m 1 'number_files')
+nf=${nf//*number_files: /}
+nf_array=($nf)
+echo "number_files=""$nf"
+
+df=$(sed -n '/'$TEST'/,$p' $TEST_FILE | grep -m 1 'directory_files')
+df=${df//*directory_files: /}
+df_array=($df)
+echo "directory_files=""$df"
+
+rm -rf $MAIN_DIRECTORY/*
+if [ "${#sf_array[@]}" = "${#nf_array[@]}" ] && [ "${#nf_array[@]}" = "${#df_array[@]}" ];
+then
+    N_ELEMENTS=${#df_array[@]}
+	for ((n=0;n<$N_ELEMENTS;n++))
+	do
+		# Create directory
+		DIRECTORY=$MAIN_DIRECTORY/${df_array[$n]}
+		mkdir -p "$DIRECTORY"
+
+		# Create original file
+		FILE_SIZE=${sf_array[$n]}
+		FILE_NAME=$FILE_SIZE"MB.tar.gz"
+		dd if=/dev/urandom of=$DIRECTORY/$FILE_NAME bs=1k count=$(echo $FILE_SIZE*1000/1 | bc)
+
+		# Create symlinks
+		N_SYMLINKS=${nf_array[$n]}-1
+		for ((l=1;l<=$N_SYMLINKS;l++))
+		do
+			SYMLINK_NAME=$FILE_SIZE"MB_"$l".tar.gz"
+			ln -s ./$FILE_NAME $DIRECTORY/$SYMLINK_NAME
+		done
+	done
+else
+echo "ERROR: The number of parameters in size_files, number_files, and directory_files must be equal!"
+fi
 
 sudo chown root:root ./configuration/vsftpd_ssl.conf
diff --git a/test/mocks/datafilecollector-testharness/ftps-sftp-server/test_cases.yml b/test/mocks/datafilecollector-testharness/ftps-sftp-server/test_cases.yml
new file mode 100644
index 0000000..8dba114
--- /dev/null
+++ b/test/mocks/datafilecollector-testharness/ftps-sftp-server/test_cases.yml
@@ -0,0 +1,11 @@
+# EXAMPLE: TC1 generates (i) 10 files of 1 MB in ftps directory,
+# (ii) 30 files of 5 MB in sftp directory, and (iii) 10 files of 10 MB in sftp directory
+TC1:
+  size_files: 1 5 10
+  number_files: 10 30 10
+  directory_files: ftps sftp sftp
+
+TC2:
+  size_files: 0.5 1 5
+  number_files: 2 3 1
+  directory_files: ftps ftps sftp