blob: d96be2c84894c91a0f6683e6ebe418fa432b9e60 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.analysis_engine.impl;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.apache.uima.UIMAFramework;
import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.analysis_engine.AnalysisEngineDescription;
import org.apache.uima.analysis_engine.annotator.AnnotatorContext;
import org.apache.uima.analysis_engine.annotator.AnnotatorContextException;
import org.apache.uima.resource.DataResource;
import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.impl.TestResourceInterface;
import org.apache.uima.test.junit_extension.JUnitExtension;
import org.apache.uima.util.XMLInputSource;
public class AnnotatorContext_implTest extends TestCase {
protected final String TEST_DATAPATH = JUnitExtension.getFile("AnnotatorContextTest").getPath()
+ System.getProperty("path.separator") + JUnitExtension.getFile("ResourceTest");
protected final String TEST_EXTENSION_CLASSPATH = JUnitExtension.getFile(
"ResourceTest/spaces in dir name").getPath();
private AnnotatorContext mAC1;
private AnnotatorContext mAC2;
private AnnotatorContext mAC3;
private AnnotatorContext mAC4;
private AnnotatorContext mAC5;
/**
* Constructor for AnnotatorContext_implTest.
*
* @param arg0
*/
public AnnotatorContext_implTest(String arg0) {
super(arg0);
}
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
try {
super.setUp();
// create primitive analysis engine with configuration groups
XMLInputSource in = new XMLInputSource(JUnitExtension
.getFile("AnnotatorContextTest/AnnotatorWithConfigurationGroups.xml"));
AnalysisEngineDescription desc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in);
PrimitiveAnalysisEngine_impl tae = new PrimitiveAnalysisEngine_impl();
// set data path just to test that we can get it later
HashMap map = new HashMap();
ResourceManager rm = UIMAFramework.newDefaultResourceManager();
rm.setDataPath(TEST_DATAPATH);
rm.setExtensionClassPath(TEST_EXTENSION_CLASSPATH, true);
map.put(AnalysisEngine.PARAM_RESOURCE_MANAGER, rm);
tae.initialize(desc, map);
// this should include an annotator context
mAC1 = new AnnotatorContext_impl(tae.getUimaContextAdmin());
// create aggregate analysis engine with configuration parameter overrides
XMLInputSource in2 = new XMLInputSource(JUnitExtension
.getFile("AnnotatorContextTest/AggregateTaeWithConfigParamOverrides.xml"));
AnalysisEngineDescription aggDesc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in2);
AggregateAnalysisEngine_impl aggTae = new AggregateAnalysisEngine_impl();
aggTae.initialize(aggDesc, map);
// get the primitive TAE
PrimitiveAnalysisEngine_impl primTae = (PrimitiveAnalysisEngine_impl) aggTae._getASB()
.getComponentAnalysisEngines().values().toArray()[0];
// this should include an annotator context
mAC2 = new AnnotatorContext_impl(primTae.getUimaContextAdmin());
// create primitive analysis engine for resource testing
XMLInputSource in3 = new XMLInputSource(JUnitExtension
.getFile("AnnotatorContextTest/ResourceTestAnnotator.xml"));
AnalysisEngineDescription resTestDesc = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in3);
PrimitiveAnalysisEngine_impl resTestTae = new PrimitiveAnalysisEngine_impl();
resTestTae.initialize(resTestDesc, map);
// this should include an annotator context
mAC3 = new AnnotatorContext_impl(resTestTae.getUimaContextAdmin());
// create primitive TAE with configuration groups and default fallback
XMLInputSource in4 = new XMLInputSource(JUnitExtension
.getFile("AnnotatorContextTest/AnnotatorWithDefaultFallbackConfiguration.xml"));
AnalysisEngineDescription desc4 = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in4);
PrimitiveAnalysisEngine_impl tae4 = new PrimitiveAnalysisEngine_impl();
// set data path just to test that we can get it later
tae4.initialize(desc4, null);
// this should include an annotator context
mAC4 = new AnnotatorContext_impl(tae4.getUimaContextAdmin());
// create primitive TAE with configuration parameters (no groups)
XMLInputSource in5 = new XMLInputSource(JUnitExtension
.getFile("AnnotatorContextTest/AnnotatorWithConfigurationParameters.xml"));
AnalysisEngineDescription desc5 = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(in5);
PrimitiveAnalysisEngine_impl tae5 = new PrimitiveAnalysisEngine_impl();
// set data path just to test that we can get it later
tae5.initialize(desc5, null);
// this should include an annotator context
mAC5 = new AnnotatorContext_impl(tae5.getUimaContextAdmin());
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
/*
* Test for Object getConfigParameterValue(String)
*/
public void testGetConfigParameterValueString() throws Exception {
try {
// this method should get parameter values from the default "en" group
String str = (String) mAC1.getConfigParameterValue("StringParam");
Assert.assertEquals("en", str);
String[] strArr = (String[]) mAC1.getConfigParameterValue("StringArrayParam");
Assert.assertEquals(2, strArr.length);
Assert.assertEquals("e", strArr[0]);
Assert.assertEquals("n", strArr[1]);
Integer intVal = (Integer) mAC1.getConfigParameterValue("IntegerParam");
Assert.assertEquals(42, intVal.intValue());
Integer[] intArr = (Integer[]) mAC1.getConfigParameterValue("IntegerArrayParam");
Assert.assertEquals(3, intArr.length);
Assert.assertEquals(1, intArr[0].intValue());
Assert.assertEquals(2, intArr[1].intValue());
Assert.assertEquals(3, intArr[2].intValue());
Float floatVal = (Float) mAC1.getConfigParameterValue("FloatParam");
Assert.assertEquals(null, floatVal);
// test override
String str2 = (String) mAC2.getConfigParameterValue("StringParam");
Assert.assertEquals("override", str2);
// other values should not be affected
Integer intVal2 = (Integer) mAC1.getConfigParameterValue("IntegerParam");
Assert.assertEquals(42, intVal2.intValue());
// test default fallback
String str3 = (String) mAC4.getConfigParameterValue("StringParam");
Assert.assertEquals("test", str3);
String[] strArr2 = (String[]) mAC4.getConfigParameterValue("StringArrayParam");
Assert.assertEquals(4, strArr2.length);
Assert.assertEquals("t", strArr2[0]);
Assert.assertEquals("e", strArr2[1]);
Assert.assertEquals("s", strArr2[2]);
Assert.assertEquals("t", strArr2[3]);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
/*
* Test for Object getConfigParameterValue(String, String)
*/
public void testGetConfigParameterValueStringString() throws Exception {
try {
// en-US group
String str = (String) mAC1.getConfigParameterValue("en-US", "StringParam");
Assert.assertEquals("en", str); // language fallback
String[] strArr = (String[]) mAC1.getConfigParameterValue("en-US", "StringArrayParam");
Assert.assertEquals(5, strArr.length);
Assert.assertEquals("e", strArr[0]);
Assert.assertEquals("n", strArr[1]);
Assert.assertEquals("-", strArr[2]);
Assert.assertEquals("U", strArr[3]);
Assert.assertEquals("S", strArr[4]);
Integer intVal = (Integer) mAC1.getConfigParameterValue("en-US", "IntegerParam");
Assert.assertEquals(1776, intVal.intValue());
Integer[] intArr = (Integer[]) mAC1.getConfigParameterValue("en-US", "IntegerArrayParam");
Assert.assertEquals(3, intArr.length); // language fallback
Assert.assertEquals(1, intArr[0].intValue());
Assert.assertEquals(2, intArr[1].intValue());
Assert.assertEquals(3, intArr[2].intValue());
Float floatVal = (Float) mAC1.getConfigParameterValue("en-US", "FloatParam");
Assert.assertEquals(null, floatVal);
// de group
String str2 = (String) mAC1.getConfigParameterValue("de", "StringParam");
Assert.assertEquals("de", str2);
String[] strArr2 = (String[]) mAC1.getConfigParameterValue("de", "StringArrayParam");
Assert.assertEquals(2, strArr2.length);
Assert.assertEquals("d", strArr2[0]);
Assert.assertEquals("e", strArr2[1]);
Integer intVal2 = (Integer) mAC1.getConfigParameterValue("de", "IntegerParam");
Assert.assertEquals(42, intVal2.intValue()); // default fallback
Integer[] intArr2 = (Integer[]) mAC1.getConfigParameterValue("de", "IntegerArrayParam");
Assert.assertEquals(3, intArr2.length);
Assert.assertEquals(4, intArr2[0].intValue());
Assert.assertEquals(5, intArr2[1].intValue());
Assert.assertEquals(6, intArr2[2].intValue());
Float floatVal2 = (Float) mAC1.getConfigParameterValue("de", "FloatParam");
Assert.assertEquals(null, floatVal2);
// zh group
String str3 = (String) mAC1.getConfigParameterValue("zh", "StringParam");
Assert.assertEquals("zh", str3);
String[] strArr3 = (String[]) mAC1.getConfigParameterValue("zh", "StringArrayParam");
Assert.assertEquals(2, strArr3.length);
Assert.assertEquals("z", strArr3[0]);
Assert.assertEquals("h", strArr3[1]);
Integer intVal3 = (Integer) mAC1.getConfigParameterValue("zh", "IntegerParam");
Assert.assertEquals(42, intVal3.intValue()); // default fallback
Integer[] intArr3 = (Integer[]) mAC1.getConfigParameterValue("zh", "IntegerArrayParam");
Assert.assertEquals(3, intArr3.length); // default fallback
Assert.assertEquals(1, intArr3[0].intValue());
Assert.assertEquals(2, intArr3[1].intValue());
Assert.assertEquals(3, intArr3[2].intValue());
Float floatVal3 = (Float) mAC1.getConfigParameterValue("zh", "FloatParam");
Assert.assertEquals(3.14, floatVal3.floatValue(), 0.0001);
// test override
String str4 = (String) mAC2.getConfigParameterValue("en", "StringParam");
Assert.assertEquals("override", str4);
// fallback too
String str5 = (String) mAC2.getConfigParameterValue("en-GB", "StringParam");
Assert.assertEquals("override", str5);
// other groups should not be affected
String str6 = (String) mAC2.getConfigParameterValue("de", "StringParam");
Assert.assertEquals("de", str6);
// test empty string array
String[] strArr4 = (String[]) mAC2.getConfigParameterValue("x-unspecified",
"StringArrayParam");
Assert.assertTrue(Arrays.equals(strArr4, new String[0]));
// test nonexistent group
String str7 = (String) mAC1.getConfigParameterValue("es", "StringParam");
Assert.assertEquals("en", str7); // language_fallback for completely nonexistent language
String str8 = (String) mAC4.getConfigParameterValue("es", "StringParam");
Assert.assertEquals("test", str8); // default_fallback for nonexistent group
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetConfigurationGroupNames() {
String[] names = mAC1.getConfigurationGroupNames();
Assert.assertEquals(5, names.length);
ArrayList l = new ArrayList(Arrays.asList(names));
Assert.assertTrue(l.contains("en"));
Assert.assertTrue(l.contains("en-US"));
Assert.assertTrue(l.contains("de"));
Assert.assertTrue(l.contains("zh"));
Assert.assertTrue(l.contains("x-unspecified"));
// try on something that has no groups
names = mAC5.getConfigurationGroupNames();
Assert.assertEquals(0, names.length);
}
public void testGetConfigParameterNames() {
String[] names = mAC5.getConfigParameterNames();
Assert.assertEquals(6, names.length);
Assert.assertEquals("StringParam", names[0]);
Assert.assertEquals("StringArrayParam", names[1]);
Assert.assertEquals("IntegerParam", names[2]);
Assert.assertEquals("IntegerArrayParam", names[3]);
Assert.assertEquals("FloatParam", names[4]);
Assert.assertEquals("FloatArrayParam", names[5]);
// try on something that has groups
names = mAC1.getConfigParameterNames();
Assert.assertEquals(0, names.length);
}
public void testGetConfigParameterNamesString() {
String[] names = mAC1.getConfigParameterNames("en");
Assert.assertEquals(4, names.length);
ArrayList l = new ArrayList(Arrays.asList(names));
Assert.assertTrue(l.contains("StringParam"));
Assert.assertTrue(l.contains("StringArrayParam"));
Assert.assertTrue(l.contains("IntegerParam"));
Assert.assertTrue(l.contains("IntegerArrayParam"));
// try on nonexistent group
names = mAC1.getConfigParameterNames("foo");
Assert.assertEquals(0, names.length);
// try on something that has no groups
names = mAC4.getConfigParameterNames("en");
Assert.assertEquals(0, names.length);
}
public void testGetResourceObjectString() throws Exception {
try {
// custom object
Object r = mAC3.getResourceObject("TestResourceObject");
Assert.assertNotNull(r);
Assert.assertTrue(r instanceof TestResourceInterface);
// standard data resource
Object r2 = mAC3.getResourceObject("TestFileResource");
Assert.assertNotNull(r2);
Assert.assertTrue(r2 instanceof DataResource);
// parameterized resources (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceObject("TestFileLanguageResource");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceObject("TestLanguageResourceObject");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
Object r3 = mAC3.getResourceObject("Unknown");
Assert.assertNull(r3);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceURLString() throws Exception {
try {
// standard data resource (should succeed)
URL url = mAC3.getResourceURL("TestFileResource");
Assert.assertNotNull(url);
// custom resource object (should return null)
URL url2 = mAC3.getResourceURL("TestResourceObject");
Assert.assertNull(url2);
// parameterized resources (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceURL("TestFileLanguageResource");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceURL("TestLanguageResourceObject");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
URL url3 = mAC3.getResourceURL("Unknown");
Assert.assertNull(url3);
// passthrough to class loader
URL url5 = mAC3.getResourceURL("org/apache/uima/analysis_engine/impl/testDataFile3.dat");
Assert.assertNotNull(url5);
// passthrough to data path
URL url6 = mAC1.getResourceURL("testDataFile.dat");
Assert.assertNotNull(url6);
// for directory
URL url7 = mAC3.getResourceURL("subdir");
Assert.assertNotNull(url7);
// spaces as part of extension classpath (spaces should be URL-encoded)
URL url8 = mAC3.getResourceURL("OtherFileResource");
assertNotNull(url8);
assertTrue(url8.getPath().indexOf("%20") > -1);
assertTrue(url8.getPath().indexOf(" ") == -1);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceURIString() throws Exception {
try {
// standard data resource (should succeed)
URI uri = mAC3.getResourceURI("TestFileResource");
Assert.assertNotNull(uri);
// custom resource object (should return null)
URI uri2 = mAC3.getResourceURI("TestResourceObject");
Assert.assertNull(uri2);
// parameterized resources (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceURI("TestFileLanguageResource");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceURI("TestLanguageResourceObject");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
URI uri3 = mAC3.getResourceURI("Unknown");
Assert.assertNull(uri3);
// passthrough to class loader
URI uri5 = mAC3.getResourceURI("org/apache/uima/analysis_engine/impl/testDataFile3.dat");
Assert.assertNotNull(uri5);
// passthrough to data path
URI uri6 = mAC1.getResourceURI("testDataFile.dat");
Assert.assertNotNull(uri6);
// for directory
URI uri7 = mAC3.getResourceURI("subdir");
Assert.assertNotNull(uri7);
// spaces as part of extension classpath (spaces should be decoded)
URI uri8 = mAC3.getResourceURI("OtherFileResource");
assertNotNull(uri8);
assertTrue(uri8.getPath().indexOf("%20") == -1);
assertTrue(uri8.getPath().indexOf(" ") > -1);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceFilePathString() throws Exception {
try {
// standard data resource (should succeed)
String path = mAC3.getResourceFilePath("TestFileResource");
Assert.assertNotNull(path);
// custom resource object (should return null)
String path2 = mAC3.getResourceFilePath("TestResourceObject");
Assert.assertNull(path2);
// parameterized resources (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceFilePath("TestFileLanguageResource");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceFilePath("TestLanguageResourceObject");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
String path3 = mAC3.getResourceFilePath("Unknown");
Assert.assertNull(path3);
// passthrough to class loader
String path5 = mAC3
.getResourceFilePath("org/apache/uima/analysis_engine/impl/testDataFile3.dat");
Assert.assertNotNull(path5);
// passthrough to data path
String path6 = mAC1.getResourceFilePath("testDataFile.dat");
Assert.assertNotNull(path6);
// for directory
String path7 = mAC3.getResourceFilePath("subdir");
Assert.assertNotNull(path7);
// spaces as part of extension classpath (spaces should be decoded)
String path8 = mAC3.getResourceFilePath("OtherFileResource");
assertNotNull(path8);
assertTrue(path8.indexOf("%20") == -1);
assertTrue(path8.indexOf(" ") > -1);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceAsStreamString() throws Exception {
try {
// standard data resource (should succeed)
InputStream strm = mAC3.getResourceAsStream("TestFileResource");
Assert.assertNotNull(strm);
// custom resource object (should return null)
InputStream strm2 = mAC3.getResourceAsStream("TestResourceObject");
Assert.assertNull(strm2);
// parameterized resources (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceAsStream("TestFileLanguageResource");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceAsStream("TestLanguageResourceObject");
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
InputStream strm3 = mAC3.getResourceAsStream("Unknown");
Assert.assertNull(strm3);
// passthrough to class loader
InputStream strm4 = mAC3
.getResourceAsStream("org/apache/uima/analysis_engine/impl/testDataFile3.dat");
Assert.assertNotNull(strm4);
// for directory
InputStream strm5 = mAC3.getResourceAsStream("subdir");
Assert.assertNotNull(strm5);
// passthrough to data path
InputStream strm6 = mAC1.getResourceAsStream("testDataFile.dat");
Assert.assertNotNull(strm6);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceObjectStringStringArray() throws Exception {
try {
// standard data resource
Object r = mAC3.getResourceObject("TestFileLanguageResource", new String[] { "en" });
Assert.assertNotNull(r);
Assert.assertTrue(r instanceof DataResource);
Object r2 = mAC3.getResourceObject("TestFileLanguageResource", new String[] { "de" });
Assert.assertNotNull(r2);
Assert.assertTrue(r2 instanceof DataResource);
Assert.assertFalse(r2.equals(r));
// custom object
Object r3 = mAC3.getResourceObject("TestLanguageResourceObject", new String[] { "en" });
Assert.assertNotNull(r3);
Assert.assertTrue(r3 instanceof TestResourceInterface);
Object r4 = mAC3.getResourceObject("TestLanguageResourceObject", new String[] { "de" });
Assert.assertNotNull(r4);
Assert.assertTrue(r4 instanceof TestResourceInterface);
Assert.assertFalse(r4.equals(r3));
// parameter values for which no resource exists (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceObject("TestFileLanguageResource", new String[] { "zh" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceObject("TestFileLanguageResource", new String[] { "en", "p2" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// non-parameterized resources (should fail)
ex = null;
try {
mAC3.getResourceObject("TestFileResource", new String[] { "en" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceObject("TestResourceObject", new String[] { "de" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
Object r5 = mAC3.getResourceObject("Unknown", new String[] { "en" });
Assert.assertNull(r5);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceAsStreamStringStringArray() throws Exception {
try {
// standard data resource
InputStream strm = mAC3
.getResourceAsStream("TestFileLanguageResource", new String[] { "en" });
Assert.assertNotNull(strm);
InputStream strm2 = mAC3.getResourceAsStream("TestFileLanguageResource",
new String[] { "de" });
Assert.assertNotNull(strm2);
Assert.assertFalse(strm2.equals(strm));
// custom object (should return null)
InputStream strm3 = mAC3.getResourceAsStream("TestLanguageResourceObject",
new String[] { "en" });
Assert.assertNull(strm3);
// parameter values for which no resource exists (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceAsStream("TestFileLanguageResource", new String[] { "zh" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceAsStream("TestFileLanguageResource", new String[] { "en", "p2" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// non-parameterized resources (should fail)
ex = null;
try {
mAC3.getResourceAsStream("TestFileResource", new String[] { "en" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceAsStream("TestResourceObject", new String[] { "de" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
InputStream strm4 = mAC3.getResourceAsStream("Unknown", new String[] { "en" });
Assert.assertNull(strm4);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceURLStringStringArray() throws Exception {
try {
// standard data resource
URL url = mAC3.getResourceURL("TestFileLanguageResource", new String[] { "en" });
Assert.assertNotNull(url);
URL url2 = mAC3.getResourceURL("TestFileLanguageResource", new String[] { "de" });
Assert.assertNotNull(url2);
Assert.assertFalse(url2.toString().equals(url.toString()));
// custom object (should return null)
URL url3 = mAC3.getResourceURL("TestLanguageResourceObject", new String[] { "en" });
Assert.assertNull(url3);
// parameter values for which no resource exists (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceURL("TestFileLanguageResource", new String[] { "zh" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceURL("TestFileLanguageResource", new String[] { "en", "p2" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// non-parameterized resources (should fail)
ex = null;
try {
mAC3.getResourceURL("TestFileResource", new String[] { "en" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceURL("TestResourceObject", new String[] { "de" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
URL url4 = mAC3.getResourceURL("Unknown", new String[] { "en" });
Assert.assertNull(url4);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceURIStringStringArray() throws Exception {
try {
// standard data resource
URI uri = mAC3.getResourceURI("TestFileLanguageResource", new String[] { "en" });
Assert.assertNotNull(uri);
URI uri2 = mAC3.getResourceURI("TestFileLanguageResource", new String[] { "de" });
Assert.assertNotNull(uri2);
Assert.assertFalse(uri2.equals(uri));
// custom object (should return null)
URI uri3 = mAC3.getResourceURI("TestLanguageResourceObject", new String[] { "en" });
Assert.assertNull(uri3);
// parameter values for which no resource exists (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceURI("TestFileLanguageResource", new String[] { "zh" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceURI("TestFileLanguageResource", new String[] { "en", "p2" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// non-parameterized resources (should fail)
ex = null;
try {
mAC3.getResourceURI("TestFileResource", new String[] { "en" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceURI("TestResourceObject", new String[] { "de" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
URI uri4 = mAC3.getResourceURI("Unknown", new String[] { "en" });
Assert.assertNull(uri4);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetResourceFilePathStringStringArray() throws Exception {
try {
// standard data resource
String path = mAC3.getResourceFilePath("TestFileLanguageResource", new String[] { "en" });
Assert.assertNotNull(path);
String path2 = mAC3.getResourceFilePath("TestFileLanguageResource", new String[] { "de" });
Assert.assertNotNull(path2);
Assert.assertFalse(path2.equals(path));
// custom object (should return null)
String path3 = mAC3.getResourceFilePath("TestLanguageResourceObject", new String[] { "en" });
Assert.assertNull(path3);
// parameter values for which no resource exists (should fail)
AnnotatorContextException ex = null;
try {
mAC3.getResourceFilePath("TestFileLanguageResource", new String[] { "zh" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceFilePath("TestFileLanguageResource", new String[] { "en", "p2" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// non-parameterized resources (should fail)
ex = null;
try {
mAC3.getResourceFilePath("TestFileResource", new String[] { "en" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
ex = null;
try {
mAC3.getResourceFilePath("TestResourceObject", new String[] { "de" });
} catch (AnnotatorContextException e) {
ex = e;
}
Assert.assertNotNull(ex);
// nonexistent resource (should return null)
String path4 = mAC3.getResourceFilePath("Unknown", new String[] { "en" });
Assert.assertNull(path4);
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
public void testGetDataPath() throws Exception {
try {
Assert.assertEquals(TEST_DATAPATH, mAC1.getDataPath());
Assert.assertEquals(System.getProperty("user.dir"), mAC4.getDataPath());
} catch (Exception e) {
JUnitExtension.handleException(e);
}
}
}