From 7ddab6d77d63e8d57444df7b754eb91c98e5ebb3 Mon Sep 17 00:00:00 2001
From: gpawel <gpawel>
Date: Tue, 21 Jun 2011 11:19:07 +0000
Subject: [PATCH] [LMS-2311] units tests for multiple scripts

SVN: 21768
---
 .../ValidationScriptRunnerTest.java           | 31 ++++++++++++++++++-
 .../v1/validation/validation_script_1_of_2.py |  9 ++++++
 .../v1/validation/validation_script_2_of_2.py |  6 ++++
 3 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/validation_script_1_of_2.py
 create mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/validation_script_2_of_2.py

diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/ValidationScriptRunnerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/ValidationScriptRunnerTest.java
index 9f88263ebec..b3ea6fe26aa 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/ValidationScriptRunnerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/ValidationScriptRunnerTest.java
@@ -36,6 +36,12 @@ public class ValidationScriptRunnerTest extends AssertJUnit
     public static final String BASIC_VALIDATION_SCRIPT = SCRIPTS_FOLDER
             + "basic-validation-script.py";
 
+    public static final String SPLITTED_VALIDATION_SCRIPT_1 = SCRIPTS_FOLDER
+            + "validation_script_1_of_2.py";
+
+    public static final String SPLITTED_VALIDATION_SCRIPT_2 = SCRIPTS_FOLDER
+            + "validation_script_2_of_2.py";
+
     public static final String VALID_DATA_SET = TEST_DATA_FOLDER + "/valid-data-set";
 
     public static final String INVALID_DATA_SET = TEST_DATA_FOLDER + "/invalid-data-set";
@@ -51,6 +57,17 @@ public class ValidationScriptRunnerTest extends AssertJUnit
         assertTrue("The valid data set should have no errors", errors.isEmpty());
     }
 
+    @Test
+    public void testMultipleScriptsValidationOnValidDataSet()
+    {
+        ValidationScriptRunner scriptRunner =
+                ValidationScriptRunner.createValidatorFromScriptPaths(new String[]
+                    { SPLITTED_VALIDATION_SCRIPT_1, SPLITTED_VALIDATION_SCRIPT_2 });
+        List<ValidationError> errors = scriptRunner.validate(new File(VALID_DATA_SET));
+
+        assertTrue("The valid data set should have no errors", errors.isEmpty());
+    }
+
     @Test
     public void testBasicValidationOnInvalidDataSet()
     {
@@ -63,7 +80,19 @@ public class ValidationScriptRunnerTest extends AssertJUnit
         ValidationError error = errors.get(0);
         assertEquals("No file named valid-file.txt was found in invalid-data-set",
                 error.getErrorMessage());
-
     }
 
+    @Test
+    public void testMultipleScriptsValidationOnInvalidDataSet()
+    {
+        ValidationScriptRunner scriptRunner =
+                ValidationScriptRunner.createValidatorFromScriptPaths(new String[]
+                    { SPLITTED_VALIDATION_SCRIPT_1, SPLITTED_VALIDATION_SCRIPT_2 });
+        List<ValidationError> errors = scriptRunner.validate(new File(INVALID_DATA_SET));
+
+        assertEquals(1, errors.size());
+        ValidationError error = errors.get(0);
+        assertEquals("No file named valid-file.txt was found in invalid-data-set",
+                error.getErrorMessage());
+    }
 }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/validation_script_1_of_2.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/validation_script_1_of_2.py
new file mode 100644
index 00000000000..f366397b82b
--- /dev/null
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/validation_script_1_of_2.py
@@ -0,0 +1,9 @@
+import os;
+
+def find_match(directory):
+    found_match = False;
+    for filename in os.listdir(directory.getAbsolutePath()):
+        if 'valid-file.txt' == filename:
+            found_match = True
+            break
+    return found_match;
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/validation_script_2_of_2.py b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/validation_script_2_of_2.py
new file mode 100644
index 00000000000..de431d3c1d9
--- /dev/null
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/validation/validation_script_2_of_2.py
@@ -0,0 +1,6 @@
+def validate_data_set_file(file):
+    result = []
+    if not find_match(file):
+        result.append(createFileValidationError("No file named valid-file.txt was found in " + file.getName()))
+        
+    return result
\ No newline at end of file
-- 
GitLab