Updated test case with type checking Project: http://git-wip-us.apache.org/repos/asf/tika/repo Commit: http://git-wip-us.apache.org/repos/asf/tika/commit/9e08a6bc Tree: http://git-wip-us.apache.org/repos/asf/tika/tree/9e08a6bc Diff: http://git-wip-us.apache.org/repos/asf/tika/diff/9e08a6bc
Branch: refs/heads/master Commit: 9e08a6bc0a2b2ffad12e4b6f90725b2201d0a69b Parents: 0186992 Author: Thamme Gowda <[email protected]> Authored: Wed May 25 17:50:49 2016 -0700 Committer: Thamme Gowda <[email protected]> Committed: Wed May 25 17:50:49 2016 -0700 ---------------------------------------------------------------------- .../tika/parser/ConfigurableParserTest.java | 32 ++++++++++++++++++++ .../tika/parser/DummyConfigurableParser.java | 4 ++- .../tika/config/TIKA-1508-configurable.xml | 10 ++++++ 3 files changed, 45 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tika/blob/9e08a6bc/tika-core/src/test/java/org/apache/tika/parser/ConfigurableParserTest.java ---------------------------------------------------------------------- diff --git a/tika-core/src/test/java/org/apache/tika/parser/ConfigurableParserTest.java b/tika-core/src/test/java/org/apache/tika/parser/ConfigurableParserTest.java index f91a2b0..c059626 100644 --- a/tika-core/src/test/java/org/apache/tika/parser/ConfigurableParserTest.java +++ b/tika-core/src/test/java/org/apache/tika/parser/ConfigurableParserTest.java @@ -22,7 +22,13 @@ import org.apache.tika.metadata.Metadata; import org.junit.Assert; import org.junit.Test; +import java.io.File; +import java.math.BigInteger; +import java.net.URI; import java.net.URL; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; public class ConfigurableParserTest { @@ -41,4 +47,30 @@ public class ConfigurableParserTest { Assert.assertEquals(TEST_PARAM_VAL, md.get(TEST_PARAM)); //assert that param from configuration file is read, given to parser and it copied to metadata } + + @Test + public void testConfigurableParserTypes() throws Exception { + URL configFileUrl = getClass().getClassLoader().getResource(TIKA_CFG_FILE); + assert configFileUrl != null; + TikaConfig config = new TikaConfig(configFileUrl); + Tika tika = new Tika(config); + Metadata md = new Metadata(); + tika.parse(configFileUrl.openStream(), md); + HashMap<String, Class> expct = new HashMap<String, Class>() {{ + put("xint", Integer.class); + put("xfile", File.class); + put("xlong", Long.class); + put("xshort", Short.class); + put("xfloat", Float.class); + put("xdouble", Double.class); + put("xbigint", BigInteger.class); + put("xurl", URL.class); + put("xuri", URI.class); + put("xbool", Boolean.class); + }}; + + for (Map.Entry<String, Class> entry : expct.entrySet()) { + Assert.assertEquals(entry.getValue().getName(), md.get(entry.getKey()+"-type")); + } + } } http://git-wip-us.apache.org/repos/asf/tika/blob/9e08a6bc/tika-core/src/test/java/org/apache/tika/parser/DummyConfigurableParser.java ---------------------------------------------------------------------- diff --git a/tika-core/src/test/java/org/apache/tika/parser/DummyConfigurableParser.java b/tika-core/src/test/java/org/apache/tika/parser/DummyConfigurableParser.java index 5a874ac..3914b01 100644 --- a/tika-core/src/test/java/org/apache/tika/parser/DummyConfigurableParser.java +++ b/tika-core/src/test/java/org/apache/tika/parser/DummyConfigurableParser.java @@ -58,7 +58,9 @@ public class DummyConfigurableParser extends AbstractParser { Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException { for (Map.Entry<String, Param<?>> entry : getParams().entrySet()) { - metadata.add(entry.getKey(), entry.getValue().getValue().toString()); + Param<?> param = entry.getValue(); + metadata.add(entry.getKey(), param.getValue().toString()); + metadata.add(entry.getKey()+"-type", param.getValue().getClass().getName()); } } http://git-wip-us.apache.org/repos/asf/tika/blob/9e08a6bc/tika-core/src/test/resources/org/apache/tika/config/TIKA-1508-configurable.xml ---------------------------------------------------------------------- diff --git a/tika-core/src/test/resources/org/apache/tika/config/TIKA-1508-configurable.xml b/tika-core/src/test/resources/org/apache/tika/config/TIKA-1508-configurable.xml index 37c71c9..006d6fa 100644 --- a/tika-core/src/test/resources/org/apache/tika/config/TIKA-1508-configurable.xml +++ b/tika-core/src/test/resources/org/apache/tika/config/TIKA-1508-configurable.xml @@ -20,6 +20,16 @@ <parser class="org.apache.tika.parser.DummyConfigurableParser"> <params> <param name="testparam" type="string">testparamval</param> + <param name="xshort" type="short">1000</param> + <param name="xint" type="int">999999999</param> + <param name="xlong" type="long">9999999999999</param> + <param name="xbigint" type="bigint">99999999999999999999999999999999999999999999999</param> + <param name="xfloat" type="float">10.2</param> + <param name="xbool" type="bool">true</param> + <param name="xdouble" type="double">4.6</param> + <param name="xurl" type="url">http://apache.org</param> + <param name="xfile" type="file">/</param> + <param name="xuri" type="uri">tika://customuri?param=value</param> </params> </parser>
