/*
* TestControllers.java
*
* Copyright (c) 1995-2012, The University of Sheffield. See the file
* COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
*
* This file is part of GATE (see http://gate.ac.uk/), and is free
* software, licenced under the GNU Library General Public License,
* Version 2, June 1991 (in the distribution as file licence.html,
* and also available at http://gate.ac.uk/gate/licence.html).
*
* Hamish Cunningham, 16/Mar/00
*
* $Id: TestControllers.java 17530 2014-03-04 15:57:43Z markagreenwood $
*/
package gate.creole;
import java.net.URL;
import junit.framework.*;
import gate.*;
import gate.corpora.TestDocument;
import gate.creole.gazetteer.DefaultGazetteer;
import gate.creole.tokeniser.DefaultTokeniser;
import gate.util.GateException;
import gate.util.Out;
/** Tests for controller classes
*/
public class TestControllers extends TestCase
{
/** Debug flag */
private static final boolean DEBUG = false;
/** The CREOLE register */
CreoleRegister reg;
/** Construction */
public TestControllers(String name) { super(name); }
/** Fixture set up */
@Override
public void setUp() throws GateException {
// Initialise the GATE library and get the creole register
Gate.init();
reg = Gate.getCreoleRegister();
} // setUp
/** Put things back as they should be after running tests
* (reinitialise the CREOLE register).
*/
@Override
public void tearDown() throws Exception {
reg.clear();
Gate.init();
} // tearDown
/** Serial controller test 1 */
public void testSerial1() throws Exception {
// a controller
SerialController c1 = new SerialController();
assertNotNull("c1 controller is null", c1);
// set a name for this controller
c1.setName("SerialController_"+Gate.genSym());
//get a document
FeatureMap params = Factory.newFeatureMap();
params.put(Document.DOCUMENT_URL_PARAMETER_NAME, new URL(TestDocument.getTestServerName()+"tests/doc0.html"));
params.put(Document.DOCUMENT_MARKUP_AWARE_PARAMETER_NAME, "false");
Document doc = (Document)Factory.createResource("gate.corpora.DocumentImpl",
params);
if(DEBUG) {
ResourceData docRd = reg.get("gate.corpora.DocumentImpl");
assertNotNull("Couldn't find document res data", docRd);
Out.prln(docRd.getParameterList().getInitimeParameters());
}
//create a default tokeniser
params = Factory.newFeatureMap();
params.put(DefaultTokeniser.DEF_TOK_DOCUMENT_PARAMETER_NAME, doc);
ProcessingResource tokeniser = (ProcessingResource) Factory.createResource(
"gate.creole.tokeniser.DefaultTokeniser", params
);
//create a default gazetteer
params = Factory.newFeatureMap();
params.put(DefaultGazetteer.DEF_GAZ_DOCUMENT_PARAMETER_NAME, doc);
ProcessingResource gaz = (ProcessingResource) Factory.createResource(
"gate.creole.gazetteer.DefaultGazetteer", params
);
// get the controller to encapsulate the tok and gaz
c1.add(tokeniser);
c1.add(gaz);
c1.execute();
// check the resulting annotations
if(DEBUG) {
Out.prln(doc.getAnnotations());
Out.prln(doc.getContent());
}
AnnotationSet annots = doc.getAnnotations();
assertTrue("no annotations from doc!", !annots.isEmpty());
Annotation a = annots.get(new Integer(580));
assertNotNull("couldn't get annot with id 580", a);
//sorry, this is no way to write a test!
// assert( // check offset - two values depending on whether saved with \r\n
// "wrong value: " + a.getStartNode().getOffset(),
// (a.getStartNode().getOffset().equals(new Long(1360)) ||
// a.getStartNode().getOffset().equals(new Long(1367)))
// );
// assert( // check offset - two values depending on whether saved with \r\n
// "wrong value: " + a.getEndNode().getOffset(),
// a.getEndNode().getOffset().equals(new Long(1361)) ||
// a.getEndNode().getOffset().equals(new Long(1442))
// );
} // testSerial1()
/** Serial controller test 2 */
public void testSerial2() throws Exception {
// a controller
Controller c1 = new SerialController();
assertNotNull("c1 controller is null", c1);
/*
// a couple of PRs
ResourceData pr1rd = (ResourceData) reg.get("testpkg.TestPR1");
ResourceData pr2rd = (ResourceData) reg.get("testpkg.TestPR2");
assert("couldn't find PR1/PR2 res data", pr1rd != null && pr2rd != null);
assert("wrong name on PR1", pr1rd.getName().equals("Sheffield Test PR 1"));
ProcessingResource pr1 = (ProcessingResource)
Factory.createResource("testpkg.TestPR1", Factory.newFeatureMap());
ProcessingResource pr2 = (ProcessingResource)
Factory.createResource("testpkg.TestPR2", Factory.newFeatureMap());
// add the PRs to the controller and run it
c1.add(pr1);
c1.add(pr2);
c1.run();
*/
} // testSerial2()
/** Test suite routine for the test runner */
public static Test suite() {
return new TestSuite(TestControllers.class);
} // suite
} // class TestControllers