Author: pkluegl Date: Tue Aug 25 08:34:46 2015 New Revision: 1697603 URL: http://svn.apache.org/r1697603 Log: UIMA-4568 - added test without uimaFIT
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/StackedScriptsTest.java Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/StackedScriptsTest.java URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/StackedScriptsTest.java?rev=1697603&r1=1697602&r2=1697603&view=diff ============================================================================== --- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/StackedScriptsTest.java (original) +++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/engine/StackedScriptsTest.java Tue Aug 25 08:34:46 2015 @@ -21,29 +21,62 @@ package org.apache.uima.ruta.engine; import static org.apache.uima.fit.factory.AnalysisEngineFactory.createEngine; import java.io.IOException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Collection; +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.AnalysisEngineProcessException; import org.apache.uima.cas.CAS; +import org.apache.uima.resource.ResourceConfigurationException; import org.apache.uima.resource.ResourceInitializationException; +import org.apache.uima.resource.ResourceSpecifier; +import org.apache.uima.resource.metadata.TypeSystemDescription; +import org.apache.uima.util.CasCreationUtils; import org.apache.uima.util.InvalidXMLException; +import org.apache.uima.util.XMLInputSource; import org.junit.Test; public class StackedScriptsTest { private static final String DOC_TEXT = "This is a simple test."; + private static final int LINES = 1; + String rules1 = "CW{->T1};"; + String rules2 = "T1 W{->T2} W{->T3};"; + String rules3 = "W{PARTOF({T1,T2,T3})->T4};"; + + @Test - public void test() throws ResourceInitializationException, InvalidXMLException, IOException, AnalysisEngineProcessException { - String rules1 = "CW{->T1};"; - String rules2 = "T1 W{->T2} W{->T3};"; - String rules3 = "W{PARTOF({T1,T2,T3})->T4};"; + public void testWithUimaFit() throws ResourceInitializationException, InvalidXMLException, + IOException, AnalysisEngineProcessException, ResourceConfigurationException { AnalysisEngine rutaAE1 = createEngine(RutaEngine.class, RutaEngine.PARAM_RULES, rules1); AnalysisEngine rutaAE2 = createEngine(RutaEngine.class, RutaEngine.PARAM_RULES, rules2); AnalysisEngine rutaAE3 = createEngine(RutaEngine.class, RutaEngine.PARAM_RULES, rules3); + processAndTest(rutaAE1, rutaAE2, rutaAE3); + + } + + @Test + public void testWithoutUimaFit() throws ResourceInitializationException, InvalidXMLException, + IOException, AnalysisEngineProcessException, ResourceConfigurationException { + + AnalysisEngine rutaAE1 = createAnalysisEngine(rules1); + AnalysisEngine rutaAE2 = createAnalysisEngine(rules2); + AnalysisEngine rutaAE3 = createAnalysisEngine(rules3); + + processAndTest(rutaAE1, rutaAE2, rutaAE3); + + } + + private void processAndTest(AnalysisEngine rutaAE1, AnalysisEngine rutaAE2, AnalysisEngine rutaAE3) + throws ResourceInitializationException, IOException, InvalidXMLException, + AnalysisEngineProcessException { StringBuilder sb = new StringBuilder(); for (int i = 0; i < LINES; i++) { sb.append(DOC_TEXT); @@ -54,13 +87,37 @@ public class StackedScriptsTest { rutaAE1.process(cas); rutaAE2.process(cas); rutaAE3.process(cas); - + RutaTestUtils.assertAnnotationsEquals(cas, 1, 1, "This"); RutaTestUtils.assertAnnotationsEquals(cas, 2, 1, "is"); RutaTestUtils.assertAnnotationsEquals(cas, 3, 1, "a"); RutaTestUtils.assertAnnotationsEquals(cas, 4, 3, "This", "is", "a"); - } - + + private AnalysisEngine createAnalysisEngine(String rules) throws IOException, + InvalidXMLException, ResourceInitializationException, ResourceConfigurationException { + URL url = RutaEngine.class.getClassLoader().getResource("BasicEngine.xml"); + if (url == null) { + url = RutaTestUtils.class.getClassLoader().getResource("org/apache/uima/ruta/TestEngine.xml"); + } + XMLInputSource in = new XMLInputSource(url); + ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in); + AnalysisEngineDescription aed = (AnalysisEngineDescription) specifier; + + TypeSystemDescription basicTypeSystem = aed.getAnalysisEngineMetaData().getTypeSystem(); + for (int i = 1; i <= 50; i++) { + basicTypeSystem.addType(RutaTestUtils.TYPE + i, "Type for Testing", "uima.tcas.Annotation"); + } + Collection<TypeSystemDescription> tsds = new ArrayList<TypeSystemDescription>(); + tsds.add(basicTypeSystem); + TypeSystemDescription mergeTypeSystems = CasCreationUtils.mergeTypeSystems(tsds); + aed.getAnalysisEngineMetaData().setTypeSystem(mergeTypeSystems); + AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(aed); + + ae.setConfigParameterValue(RutaEngine.PARAM_RULES, rules); + ae.reconfigure(); + return ae; + + } }