@Test public void thatSpanCrossSentenceBehaviorOnRenderGeneratesErrors() { neLayer.setCrossSentence(false); jcas.setDocumentText(StringUtils.repeat("a", 20)); new Sentence(jcas, 0, 10).addToIndexes(); new Sentence(jcas, 10, 20).addToIndexes(); NamedEntity ne = new NamedEntity(jcas, 5, 15); ne.addToIndexes(); SpanAdapter adapter = new SpanAdapter(featureSupportRegistry, null, neLayer, asList(), asList(new SpanCrossSentenceBehavior())); SpanRenderer sut = new SpanRenderer(adapter, featureSupportRegistry, asList(new SpanCrossSentenceBehavior())); VDocument vdoc = new VDocument(); sut.render(jcas, asList(), vdoc, 0, jcas.getDocumentText().length()); assertThat(vdoc.comments()) .usingFieldByFieldElementComparator() .containsExactlyInAnyOrder(new VComment(ne, VCommentType.ERROR, "Crossing sentence bounardies is not permitted.")); }
behaviors = asList(new SpanStackingBehavior(), new SpanCrossSentenceBehavior(), new SpanAnchoringModeBehavior());
@Before public void setup() throws Exception { if (jcas == null) { jcas = JCasFactory.createJCas(); } else { jcas.reset(); } username = "user"; project = new Project(); project.setId(1l); project.setMode(PROJECT_TYPE_ANNOTATION); document = new SourceDocument(); document.setId(1l); document.setProject(project); neLayer = new AnnotationLayer(NamedEntity.class.getName(), "NE", SPAN_TYPE, project, true, TOKENS); neLayer.setId(1l); featureSupportRegistry = new FeatureSupportRegistryImpl(asList()); behaviors = asList(new SpanStackingBehavior(), new SpanCrossSentenceBehavior(), new SpanAnchoringModeBehavior()); }