From c00d00efea1bf8723cf14ffabf35d8e5765689cc Mon Sep 17 00:00:00 2001
From: izabel <izabel>
Date: Tue, 28 Apr 2009 08:46:53 +0000
Subject: [PATCH] [LMS-812] data set properties - etl - add unit tests

SVN: 10843
---
 .../DefaultDataSetInfoExtractorTest.java      | 65 +++++++++++++++++--
 1 file changed, 60 insertions(+), 5 deletions(-)

diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DefaultDataSetInfoExtractorTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DefaultDataSetInfoExtractorTest.java
index 166ce2ab59e..7f269a5c6f4 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DefaultDataSetInfoExtractorTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/DefaultDataSetInfoExtractorTest.java
@@ -31,6 +31,7 @@ import org.testng.annotations.Test;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
 import ch.systemsx.cisd.common.logging.LogInitializer;
+import ch.systemsx.cisd.common.parser.MandatoryPropertyMissingException;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
 
 /**
@@ -106,12 +107,13 @@ public final class DefaultDataSetInfoExtractorTest extends CodeExtractortTestCas
         final String parentDataSetCode = "1234-8";
         final String productionDate = "2007-09-03";
         final String barcode = "XYZ-123";
-        File incoming = new File(WORKING_DIRECTORY, barcode + separator + parentDataSetCode
-                + separator + "A" + separator + producerCode + separator + productionDate);
+        File incoming =
+                new File(WORKING_DIRECTORY, barcode + separator + parentDataSetCode + separator
+                        + "A" + separator + producerCode + separator + productionDate);
         incoming.mkdir();
-        FileUtilities.writeToFile(new File(incoming, "props.tsv"), "property\tvalue\np1\tv1\np2\tv2");
-        final DataSetInformation dsInfo =
-                extractor.getDataSetInformation(incoming);
+        FileUtilities.writeToFile(new File(incoming, "props.tsv"),
+                "property\tvalue\np1\tv1\np2\tv2");
+        final DataSetInformation dsInfo = extractor.getDataSetInformation(incoming);
         assertEquals(barcode, dsInfo.getSampleIdentifier().getSampleCode());
         assertEquals(parentDataSetCode, dsInfo.getParentDataSetCode());
         assertEquals(producerCode, dsInfo.getProducerCode());
@@ -121,6 +123,59 @@ public final class DefaultDataSetInfoExtractorTest extends CodeExtractortTestCas
                 dsInfo.getDataSetProperties().toString());
     }
 
+    @Test
+    public void testFailWithDataSetPropertiesFileExpectedButUndefined()
+    {
+        final Properties properties = new Properties();
+        final String separator = "=";
+        properties.setProperty(DATA_SET_PROPERTIES_FILE_NAME_KEY, "props-unexistent.tsv");
+        final IDataSetInfoExtractor extractor = new DefaultDataSetInfoExtractor(properties);
+        final String producerCode = "M1";
+        final String parentDataSetCode = "1234-8";
+        final String productionDate = "2007-09-03";
+        final String barcode = "XYZ-123";
+        File incoming =
+                new File(WORKING_DIRECTORY, barcode + separator + parentDataSetCode + separator
+                        + "A" + separator + producerCode + separator + productionDate);
+        incoming.mkdir();
+        boolean exceptionThrown = false;
+        try
+        {
+            extractor.getDataSetInformation(incoming);
+        } catch (UserFailureException ex)
+        {
+            exceptionThrown = true;
+        }
+        assertTrue(exceptionThrown);
+    }
+
+    @Test
+    public void testFailWithDataSetPropertiesFileWithoutHeader()
+    {
+        final Properties properties = new Properties();
+        final String separator = "=";
+        properties.setProperty(DATA_SET_PROPERTIES_FILE_NAME_KEY, "props.tsv");
+        final IDataSetInfoExtractor extractor = new DefaultDataSetInfoExtractor(properties);
+        final String producerCode = "M1";
+        final String parentDataSetCode = "1234-8";
+        final String productionDate = "2007-09-03";
+        final String barcode = "XYZ-123";
+        File incoming =
+                new File(WORKING_DIRECTORY, barcode + separator + parentDataSetCode + separator
+                        + "A" + separator + producerCode + separator + productionDate);
+        incoming.mkdir();
+        FileUtilities.writeToFile(new File(incoming, "props.tsv"), "p1\tv1\np2\tv2");
+        boolean exceptionThrown = false;
+        try
+        {
+            extractor.getDataSetInformation(incoming);
+        } catch (MandatoryPropertyMissingException ex)
+        {
+            exceptionThrown = true;
+        }
+        assertTrue(exceptionThrown);
+    }
+
     @Test
     public void testWrongProductionDateFormat()
     {
-- 
GitLab