From 12c3451e1198795001e62758effc6aa1a6e18b6d Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 28 Aug 2019 21:04:07 +0200 Subject: [PATCH] when processing file throw proper exception if type in is invalid --- .../lcsb/mapviewer/services/utils/ColorSchemaReader.java | 9 ++++++++- .../mapviewer/services/utils/ColorSchemaReaderTest.java | 9 +++++++++ service/testFiles/coloring/invalidType.txt | 5 +++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 service/testFiles/coloring/invalidType.txt 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 e9f8739556..b5a4c40b94 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 7041b25dfc..7d23c6b137 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 0000000000..c669cb9dad --- /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 -- GitLab