| TestControllers.java |
1 /*
2 * TestControllers.java
3 *
4 * Copyright (c) 1998-2005, The University of Sheffield.
5 *
6 * This file is part of GATE (see http://gate.ac.uk/), and is free
7 * software, licenced under the GNU Library General Public License,
8 * Version 2, June 1991 (in the distribution as file licence.html,
9 * and also available at http://gate.ac.uk/gate/licence.html).
10 *
11 * Hamish Cunningham, 16/Mar/00
12 *
13 * $Id: TestControllers.java,v 1.22 2005/01/11 13:51:31 ian Exp $
14 */
15
16 package gate.creole;
17
18 import junit.framework.*;
19
20 import gate.*;
21 import gate.creole.gazetteer.DefaultGazetteer;
22 import gate.creole.tokeniser.DefaultTokeniser;
23 import gate.util.GateException;
24 import gate.util.Out;
25
26 /** Tests for controller classes
27 */
28 public class TestControllers extends TestCase
29 {
30 /** Debug flag */
31 private static final boolean DEBUG = false;
32
33 /** The CREOLE register */
34 CreoleRegister reg;
35
36 /** Construction */
37 public TestControllers(String name) { super(name); }
38
39 /** Fixture set up */
40 public void setUp() throws GateException {
41 // Initialise the GATE library and get the creole register
42 Gate.init();
43 reg = Gate.getCreoleRegister();
44
45 } // setUp
46
47 /** Put things back as they should be after running tests
48 * (reinitialise the CREOLE register).
49 */
50 public void tearDown() throws Exception {
51 reg.clear();
52 Gate.init();
53 } // tearDown
54
55 /** Serial controller test 1 */
56 public void testSerial1() throws Exception {
57 // a controller
58 SerialController c1 = new SerialController();
59 assertNotNull("c1 controller is null", c1);
60
61 //get a document
62 FeatureMap params = Factory.newFeatureMap();
63 params.put(Document.DOCUMENT_URL_PARAMETER_NAME, Gate.getUrl("tests/doc0.html"));
64 params.put(Document.DOCUMENT_MARKUP_AWARE_PARAMETER_NAME, "false");
65 Document doc = (Document)Factory.createResource("gate.corpora.DocumentImpl",
66 params);
67
68 if(DEBUG) {
69 ResourceData docRd = (ResourceData) reg.get("gate.corpora.DocumentImpl");
70 assertNotNull("Couldn't find document res data", docRd);
71 Out.prln(docRd.getParameterList().getInitimeParameters());
72 }
73
74 //create a default tokeniser
75 params = Factory.newFeatureMap();
76 params.put(DefaultTokeniser.DEF_TOK_DOCUMENT_PARAMETER_NAME, doc);
77 ProcessingResource tokeniser = (ProcessingResource) Factory.createResource(
78 "gate.creole.tokeniser.DefaultTokeniser", params
79 );
80
81 //create a default gazetteer
82 params = Factory.newFeatureMap();
83 params.put(DefaultGazetteer.DEF_GAZ_DOCUMENT_PARAMETER_NAME, doc);
84 ProcessingResource gaz = (ProcessingResource) Factory.createResource(
85 "gate.creole.gazetteer.DefaultGazetteer", params
86 );
87
88 // get the controller to encapsulate the tok and gaz
89 c1.add(tokeniser);
90 c1.add(gaz);
91 c1.execute();
92
93 // check the resulting annotations
94 if(DEBUG) {
95 Out.prln(doc.getAnnotations());
96 Out.prln(doc.getContent());
97 }
98 AnnotationSet annots = doc.getAnnotations();
99 assertTrue("no annotations from doc!", !annots.isEmpty());
100 Annotation a = annots.get(new Integer(580));
101 assertNotNull("couldn't get annot with id 580", a);
102 //sorry, this is no way to write a test!
103 // assert( // check offset - two values depending on whether saved with \r\n
104 // "wrong value: " + a.getStartNode().getOffset(),
105 // (a.getStartNode().getOffset().equals(new Long(1360)) ||
106 // a.getStartNode().getOffset().equals(new Long(1367)))
107 // );
108 // assert( // check offset - two values depending on whether saved with \r\n
109 // "wrong value: " + a.getEndNode().getOffset(),
110 // a.getEndNode().getOffset().equals(new Long(1361)) ||
111 // a.getEndNode().getOffset().equals(new Long(1442))
112 // );
113 } // testSerial1()
114
115 /** Serial controller test 2 */
116 public void testSerial2() throws Exception {
117 // a controller
118 Controller c1 = new SerialController();
119 assertNotNull("c1 controller is null", c1);
120 /*
121 // a couple of PRs
122 ResourceData pr1rd = (ResourceData) reg.get("testpkg.TestPR1");
123 ResourceData pr2rd = (ResourceData) reg.get("testpkg.TestPR2");
124 assert("couldn't find PR1/PR2 res data", pr1rd != null && pr2rd != null);
125 assert("wrong name on PR1", pr1rd.getName().equals("Sheffield Test PR 1"));
126 ProcessingResource pr1 = (ProcessingResource)
127 Factory.createResource("testpkg.TestPR1", Factory.newFeatureMap());
128 ProcessingResource pr2 = (ProcessingResource)
129 Factory.createResource("testpkg.TestPR2", Factory.newFeatureMap());
130
131 // add the PRs to the controller and run it
132 c1.add(pr1);
133 c1.add(pr2);
134 c1.run();
135 */
136 } // testSerial2()
137
138 /** Test suite routine for the test runner */
139 public static Test suite() {
140 return new TestSuite(TestControllers.class);
141 } // suite
142
143 } // class TestControllers
144