diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java index e9f87395567bbe7482cb41c7281d0f3d1169a2c4..b5a4c40b94784c21e61538710dfe2b564c79841f 100644 --- a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java +++ b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java @@ -104,7 +104,14 @@ public class ColorSchemaReader { return readGenericColorSchema(colorInputStream); } } else { - ColorSchemaType type = ColorSchemaType.valueOf(params.get(ZipEntryFileFactory.LAYOUT_HEADER_PARAM_TYPE)); + ColorSchemaType type = null; + try { + type = ColorSchemaType.valueOf(params.get(ZipEntryFileFactory.LAYOUT_HEADER_PARAM_TYPE)); + } catch (IllegalArgumentException e) { + String options = StringUtils.join(ColorSchemaType.values(), ", "); + throw new InvalidColorSchemaException("Invalid overlay type: " + + params.get(ZipEntryFileFactory.LAYOUT_HEADER_PARAM_TYPE) + ". Allowed options: " + options); + } if (type == null) { logger.warn("Unknown type of layout file: " + params.get(ZipEntryFileFactory.LAYOUT_HEADER_PARAM_TYPE)); return readGenericColorSchema(colorInputStream); diff --git a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java index 7041b25dfcf88cb4a916bb30620b491811b21009..7d23c6b1372ca92139b82b9bf0e428372ea4bc85 100644 --- a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java @@ -480,5 +480,14 @@ public class ColorSchemaReaderTest extends ServiceTestFunctions { } } + @Test(expected = InvalidColorSchemaException.class) + public void testReadColorSchemaWithInvalidType() throws Exception { + FileInputStream fis = new FileInputStream("testFiles/coloring/invalidType.txt"); + FileInputStream fis2 = new FileInputStream("testFiles/coloring/invalidType.txt"); + ColorSchemaReader reader = new ColorSchemaReader(); + reader.readColorSchema(fis, TextFileUtils.getHeaderParametersFromFile(fis2)); + + } + } diff --git a/service/testFiles/coloring/invalidType.txt b/service/testFiles/coloring/invalidType.txt new file mode 100644 index 0000000000000000000000000000000000000000..c669cb9dadcb5bce4cc3110ce6672c8accdef3bb --- /dev/null +++ b/service/testFiles/coloring/invalidType.txt @@ -0,0 +1,5 @@ +#TYPE=gen +value identifier Chebi +-0,943978048 HGNC:11138 +-0,941309505 CHEBI:15377 +1 CHEBI:15376