//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.annotators.misc;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.apache.uima.UIMAException;
import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.analysis_engine.AnalysisEngineDescription;
import org.apache.uima.fit.factory.AnalysisEngineFactory;
import org.apache.uima.fit.factory.ExternalResourceFactory;
import org.apache.uima.fit.util.JCasUtil;
import org.apache.uima.resource.ExternalResourceDescription;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import uk.gov.dstl.baleen.annotators.misc.NationalityToLocation;
import uk.gov.dstl.baleen.annotators.testing.AnnotatorTestBase;
import uk.gov.dstl.baleen.resources.SharedCountryResource;
import uk.gov.dstl.baleen.types.common.Nationality;
import uk.gov.dstl.baleen.types.common.Person;
import uk.gov.dstl.baleen.types.semantic.Location;
/**
*
*/
public class NationalityToLocationTest extends AnnotatorTestBase {
AnalysisEngine ae;
@Before
public void beforeTest() throws UIMAException{
super.beforeTest();
ExternalResourceDescription erd = ExternalResourceFactory.createExternalResourceDescription("country", SharedCountryResource.class);
AnalysisEngineDescription aed = AnalysisEngineFactory.createEngineDescription(NationalityToLocation.class, "country", erd);
ae = AnalysisEngineFactory.createEngine(aed);
}
@After
public void afterTest(){
ae.destroy();
}
@Test
public void test() throws Exception{
jCas.setDocumentText("Pierre is French");
Person p = new Person(jCas);
p.setBegin(0);
p.setEnd(6);
p.setValue("Pierre");
p.addToIndexes();
Nationality n = new Nationality(jCas);
n.setBegin(10);
n.setEnd(16);
n.setValue("French");
n.setCountryCode("fra");
n.addToIndexes();
ae.process(jCas);
assertEquals(1, JCasUtil.select(jCas, Location.class).size());
Location l = JCasUtil.selectByIndex(jCas, Location.class, 0);
assertEquals("French",l.getValue());
assertNotNull(l.getGeoJson());
}
}