//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.annotators.relations;
import java.util.ArrayList;
import java.util.List;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.fit.util.JCasUtil;
import org.apache.uima.resource.ResourceInitializationException;
import org.junit.Assert;
import org.junit.Test;
import uk.gov.dstl.baleen.annotators.relations.SimpleInteraction;
import uk.gov.dstl.baleen.annotators.testing.AbstractAnnotatorTest;
import uk.gov.dstl.baleen.annotators.testing.Annotations;
import uk.gov.dstl.baleen.types.common.Person;
import uk.gov.dstl.baleen.types.language.Interaction;
import uk.gov.dstl.baleen.types.language.Sentence;
import uk.gov.dstl.baleen.types.semantic.Location;
import uk.gov.dstl.baleen.types.semantic.Relation;
public class SimpleInteractionRelationshipTest extends AbstractAnnotatorTest {
public SimpleInteractionRelationshipTest() {
super(SimpleInteraction.class);
}
@Test
public void testDoProcess() throws AnalysisEngineProcessException, ResourceInitializationException {
jCas.setDocumentText("Jon visits London.");
final Sentence s = new Sentence(jCas);
s.setBegin(0);
s.setEnd(jCas.size());
s.addToIndexes();
final Person person = Annotations.createPerson(jCas, 0, 3, "Jon");
final Location location = Annotations.createLocation(jCas, 12, 18, "London", "");
final Interaction interaction = new Interaction(jCas);
interaction.setBegin(5);
interaction.setBegin(11);
interaction.setRelationshipType("visit");
interaction.setValue("visit");
interaction.addToIndexes();
processJCas();
final List<Relation> relations = new ArrayList<>(JCasUtil.select(jCas, Relation.class));
Assert.assertEquals(1, relations.size());
final Relation r = relations.get(0);
Assert.assertEquals(person, r.getSource());
Assert.assertEquals(location, r.getTarget());
Assert.assertEquals("visit", r.getRelationshipType());
}
}