//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.contentmappers.helpers; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import org.apache.uima.UIMAException; import org.apache.uima.fit.util.JCasUtil; import org.apache.uima.jcas.JCas; import org.apache.uima.jcas.tcas.Annotation; import org.junit.Test; import uk.gov.dstl.baleen.types.Base; import uk.gov.dstl.baleen.types.semantic.Entity; import uk.gov.dstl.baleen.types.structure.Paragraph; import uk.gov.dstl.baleen.uima.testing.JCasSingleton; public class JCasBuilderTest { @Test public void testBuild() throws UIMAException { JCas jCas = JCasSingleton.getJCasInstance(); JCasBuilder builder = new JCasBuilder(jCas); assertSame(jCas, builder.getJCas()); int s = builder.getCurrentOffset(); assertEquals(s, 0); builder.addText("Hello"); int e = builder.getCurrentOffset(); assertEquals(e, "Hello".length()); builder.addAnnotations(Arrays.asList(new Entity(jCas), new Paragraph(jCas)), s, e, 6); builder.build(); assertEquals(jCas.getDocumentText(), "Hello"); Collection<Base> entities = JCasUtil.select(jCas, Base.class); assertEquals(entities.size(), 2); Iterator<Base> iterator = entities.iterator(); Annotation a = iterator.next(); Annotation b = iterator.next(); Entity entity; Paragraph paragraph; if (a instanceof Entity) { entity = (Entity) a; paragraph = (Paragraph) b; } else { entity = (Entity) b; paragraph = (Paragraph) a; } assertEquals(entity.getBegin(), 0); assertEquals(entity.getEnd(), 5); assertEquals(paragraph.getBegin(), 0); assertEquals(paragraph.getEnd(), 5); assertEquals(paragraph.getDepth(), 6); } }