//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.annotators.templates;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.fit.util.JCasUtil;
import org.apache.uima.resource.ResourceInitializationException;
import org.junit.Before;
import org.junit.Test;
import uk.gov.dstl.baleen.annotators.testing.AbstractAnnotatorTest;
import uk.gov.dstl.baleen.types.common.Person;
import uk.gov.dstl.baleen.types.templates.TemplateRecord;
import uk.gov.dstl.baleen.types.templates.TemplateField;
import java.io.IOException;
public class TemplateFieldToEntityAnnnotatorTest extends AbstractAnnotatorTest {
private static final String TEXT = "The quick brown fox jumped over the lazy dog's back.";
public TemplateFieldToEntityAnnnotatorTest() {
super(TemplateFieldToEntityAnnotator.class);
}
@Before
public void setup() throws IOException {
jCas.setDocumentText(TEXT);
TemplateRecord record = new TemplateRecord(jCas);
record.setName("report");
record.setSource("brownSauce");
record.setBegin(0);
record.setEnd(52);
record.addToIndexes();
TemplateField field1 = new TemplateField(jCas);
field1.setBegin(16);
field1.setEnd(19);
field1.setName("athlete");
field1.addToIndexes();
TemplateField field2 = new TemplateField(jCas);
field2.setBegin(41);
field2.setEnd(44);
field2.setName("spectactor");
field2.addToIndexes();
}
@Test
public void testAthleteIsMadePersonNoSource()
throws AnalysisEngineProcessException, ResourceInitializationException {
processJCas(TemplateFieldToEntityAnnotator.PARAM_ENTITY_TYPE, "common.Person", TemplateFieldToEntityAnnotator.PARAM_FIELD_NAME,
"athlete", TemplateFieldToEntityAnnotator.PARAM_RECORD_NAME, "report");
Person person = JCasUtil.selectSingle(jCas, Person.class);
assertEquals("fox", person.getValue());
assertEquals(16, person.getBegin());
assertEquals(19, person.getEnd());
}
@Test
public void testAthleteIsMadePersonSource() throws AnalysisEngineProcessException, ResourceInitializationException {
processJCas(TemplateFieldToEntityAnnotator.PARAM_ENTITY_TYPE, "common.Person", TemplateFieldToEntityAnnotator.PARAM_FIELD_NAME,
"athlete", TemplateFieldToEntityAnnotator.PARAM_RECORD_NAME, "report", TemplateFieldToEntityAnnotator.PARAM_SOURCE,
"brownSauce");
Person person = JCasUtil.selectSingle(jCas, Person.class);
assertEquals("fox", person.getValue());
assertEquals(16, person.getBegin());
assertEquals(19, person.getEnd());
}
@Test
public void testAthleteIsMadePersonOtherSource()
throws AnalysisEngineProcessException, ResourceInitializationException {
processJCas(TemplateFieldToEntityAnnotator.PARAM_ENTITY_TYPE, "common.Person", TemplateFieldToEntityAnnotator.PARAM_FIELD_NAME,
"athlete", TemplateFieldToEntityAnnotator.PARAM_RECORD_NAME, "report", TemplateFieldToEntityAnnotator.PARAM_SOURCE,
"ketchup");
assertFalse(JCasUtil.iterator(jCas, Person.class).hasNext());
}
}