//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.core.history;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.apache.uima.UIMAException;
import org.apache.uima.cas.Type;
import org.apache.uima.fit.factory.JCasFactory;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.tcas.Annotation;
import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.impl.CustomResourceSpecifier_impl;
import org.junit.Test;
import uk.gov.dstl.baleen.core.history.impl.RecordableImpl;
import uk.gov.dstl.baleen.exceptions.BaleenException;
import com.google.common.collect.Maps;
public class HistoryInterfacesTests {
@Test
public void testAbstractBaleenHistory() throws ResourceInitializationException {
FakeBaleenHistory fbh = new FakeBaleenHistory();
fbh.initialize(new CustomResourceSpecifier_impl(), Maps.newHashMap());
assertTrue(fbh.isInitialized());
}
@Test
public void testAbstractBaleenHistoryWithException() {
FakeExceptionBaleenHistory fbh = new FakeExceptionBaleenHistory();
try {
fbh.initialize(new CustomResourceSpecifier_impl(), Maps.newHashMap());
fail("No exception thrown");
} catch(ResourceInitializationException e) {
// Success
}
}
@Test
public void testRecordable() throws UIMAException {
JCas jCas = JCasFactory.createJCas();
FakeRecordable fakeRecordable = new FakeRecordable(jCas);
assertEquals(new Annotation(jCas).getType().getName(), fakeRecordable.getTypeName());
}
@Test
public void testRecordableImpl() {
RecordableImpl impl = new RecordableImpl(1, "2", 3, 4, "5");
assertEquals(1, impl.getInternalId());
assertEquals("2", impl.getCoveredText());
assertEquals(3, impl.getBegin());
assertEquals(4, impl.getEnd());
assertEquals("5", impl.getTypeName());
assertNull(impl.getType());
}
private static class FakeBaleenHistory extends AbstractBaleenHistory {
private boolean initialized = false;
@Override
public void closeHistory(String documentId) {
//Do nothing
}
@Override
public DocumentHistory getHistory(String documentId) {
return null;
}
@Override
protected void initialize() throws BaleenException {
super.initialize();
initialized = true;
}
public boolean isInitialized() {
return initialized;
}
}
private static class FakeExceptionBaleenHistory extends AbstractBaleenHistory {
@Override
public void closeHistory(String documentId) {
//Do nothing
}
@Override
public DocumentHistory getHistory(String documentId) {
return null;
}
@Override
protected void initialize() throws BaleenException {
super.initialize();
throw new BaleenException("Testing");
}
}
private class FakeRecordable implements Recordable {
private JCas jCas;
public FakeRecordable(JCas jCas) {
this.jCas = jCas;
}
@Override
public long getInternalId() {
return 0;
}
@Override
public String getCoveredText() {
return null;
}
@Override
public int getBegin() {
return 0;
}
@Override
public int getEnd() {
return 0;
}
@Override
public Type getType() {
return new Annotation(jCas).getType();
}
}
}