//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.uima; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertSame; import org.apache.uima.UIMAException; import org.apache.uima.jcas.JCas; import org.junit.Test; import uk.gov.dstl.baleen.types.common.Person; import uk.gov.dstl.baleen.types.semantic.Entity; import uk.gov.dstl.baleen.uima.testing.JCasSingleton; public class ComparableEntitySpanTest { @Test public void test() throws UIMAException { JCas jCas = JCasSingleton.getJCasInstance(); jCas.setDocumentText("Hello world"); final Entity e = new Entity(jCas, 0, 5); final ComparableEntitySpan span = new ComparableEntitySpan(e, 0, 5); assertEquals(0, span.getBegin()); assertEquals(5, span.getEnd()); assertSame(e, span.getEntity()); assertSame(e.getClass(), span.getClazz()); assertEquals("Hello", span.getValue()); e.setValue("Howdy"); assertEquals("Howdy", span.getValue()); final ComparableEntitySpan span2 = new ComparableEntitySpan(e, 0, 5); final ComparableEntitySpan span3 = new ComparableEntitySpan(e, 0, 6); final ComparableEntitySpan span4 = new ComparableEntitySpan(e, 1, 5); final ComparableEntitySpan span5 = new ComparableEntitySpan(new Person(jCas), 1, 5); assertEquals(span, span2); assertEquals(span.hashCode(), span2.hashCode()); assertNotEquals(span, span3); assertNotEquals(span.hashCode(), span3.hashCode()); assertNotEquals(span, span5); assertNotEquals(span.hashCode(), span5.hashCode()); assertNotEquals(span, span4); assertNotEquals(span.hashCode(), span4.hashCode()); assertEquals(span, span); assertNotEquals(span, null); assertNotEquals(span, "Hello"); // Check doesn't error span.toString(); } @Test public void testCompare() throws UIMAException { final JCas jCas = JCasSingleton.getJCasInstance(); final Entity e = new Entity(jCas); final Entity e2 = new Entity(jCas); ComparableEntitySpan span = new ComparableEntitySpan(e, 5, 10); assertEquals(-1, span.compareTo(new ComparableEntitySpan(e2, 11, 15))); assertEquals(1, span.compareTo(new ComparableEntitySpan(e2, 0, 4))); assertEquals(-1, span.compareTo(new ComparableEntitySpan(e2, 5, 15))); assertEquals(1, span.compareTo(new ComparableEntitySpan(e2, 5, 7))); assertEquals(0, span.compareTo(new ComparableEntitySpan(e2, 5, 10))); e.setValue("Hello"); assertEquals(1, span.compareTo(new ComparableEntitySpan(e2, 5, 10))); e.setValue(null); e2.setValue("Hello"); assertEquals(-1, span.compareTo(new ComparableEntitySpan(e2, 5, 10))); e.setValue("Howdy"); assertEquals("Howdy".compareTo("Hello"), span.compareTo(new ComparableEntitySpan(e2, 5, 10))); } }