diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProviderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProviderTest.java
index 20d338d869512f62c9233bd8b6f8b27a15cbcc60..2c352dd89dc3d31d19625a4797c304b6e65733af 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProviderTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/DataStoreServerBasedDataSourceProviderTest.java
@@ -39,6 +39,7 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import ch.systemsx.cisd.base.tests.AbstractFileSystemTestCase;
+import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
 import ch.systemsx.cisd.common.filesystem.FileUtilities;
 import ch.systemsx.cisd.common.shared.basic.string.CommaSeparatedListBuilder;
@@ -55,6 +56,11 @@ import ch.systemsx.cisd.openbis.generic.shared.util.IDataSourceFactory;
  */
 public class DataStoreServerBasedDataSourceProviderTest extends AbstractFileSystemTestCase
 {
+    private static final String HEADER_LINE_OF_ERROR_MESSAGE =
+            "Error(s) in mapping file targets/unit-test-wd/"
+                    + DataStoreServerBasedDataSourceProviderTest.class.getName()
+                    + "/mapping.txt:\n";
+
     private static final String PLUGIN_KEY = "key";
 
     private static final String DRIVER_CLASS = DatabaseEngine.POSTGRESQL.getDriverClass();
@@ -166,6 +172,37 @@ public class DataStoreServerBasedDataSourceProviderTest extends AbstractFileSyst
         context.assertIsSatisfied();
     }
 
+    @Test
+    public void testMappingFileWithInvalidType()
+    {
+        assertFailedMappingFile("Line 1: Unknown type 'CONFIG', possible values are: "
+                + "host-part, username, password, sid, config, data-source-code",
+                "*.*.CONFIG = DSS\n");
+    }
+
+    @Test
+    public void testMappingFileWithMissingValue()
+    {
+        assertFailedMappingFile("Line 3: Missing '='", "# example\n\n" + "alpha.beta*.sid\n");
+    }
+
+    @Test
+    public void testMappingFileWithInvalidMappingDescription()
+    {
+        assertFailedMappingFile(
+                "Line 1: Mapping description should have three parts separated by '.'", "a.b = c\n");
+        assertFailedMappingFile(
+                "Line 1: Mapping description should have three parts separated by '.'",
+                "a.b.c.d = c\n");
+    }
+
+    @Test
+    public void testMappingFileWithInvalidDataStoreCodePattern()
+    {
+        assertFailedMappingFile("Line 1: Unclosed group near index 3\n" + "A(B\n" + "   ^",
+                "a(b.a.sid=b\n");
+    }
+
     @Test
     public void testMappingFileWithUnspecifiedDataSourceCodeAndConfigMappingAllOnOne()
     {
@@ -216,7 +253,7 @@ public class DataStoreServerBasedDataSourceProviderTest extends AbstractFileSyst
     @Test
     public void testMappingOnFixedDataStoreCode()
     {
-        FileUtilities.writeToFile(mappingFile, "*.*.config = DSS2[*]\n");
+        FileUtilities.writeToFile(mappingFile, "*.*.config = dSS2[*]\n");
         prepareListDataStores();
         DataStoreServerBasedDataSourceProvider dataSourceProvider = createDataSourceProvider();
 
@@ -387,7 +424,7 @@ public class DataStoreServerBasedDataSourceProviderTest extends AbstractFileSyst
         props = builder.get();
         FileUtilities.writeToFile(mappingFile, "# example mapping file\n"
                 + "*.proteomics.config = all[proteomics]\n"
-                + "*.proteomics.data-source-code = proteomics_db\n"
+                + "*.proteomics.data-source-code = proteomics_db\n" + "  \n"
                 + "*.screening.config = all[screening]\n"
                 + "*.screening.data-source-code = imaging_db\n"
                 + "*.screening.host-part = localhost:1234\n" + "*.screening.username = openbis\n"
@@ -448,6 +485,20 @@ public class DataStoreServerBasedDataSourceProviderTest extends AbstractFileSyst
         assertEquals(expectedProps, sortedProps.toString());
     }
 
+    private void assertFailedMappingFile(String expectedErrorMessage, String mappingFileContent)
+    {
+        FileUtilities.writeToFile(mappingFile, mappingFileContent);
+        try
+        {
+            createDataSourceProvider();
+            fail("ConfigurationFailureException expected");
+        } catch (ConfigurationFailureException e)
+        {
+            assertEquals(HEADER_LINE_OF_ERROR_MESSAGE + expectedErrorMessage, e.getMessage());
+        }
+        context.assertIsSatisfied();
+    }
+
     private void prepareListDataStores(final DataStorePE... dataStores)
     {
         context.checking(new Expectations()