//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.uima; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.Map; import org.apache.uima.UIMAException; import org.apache.uima.jcas.JCas; import org.apache.uima.jcas.tcas.Annotation; import org.apache.uima.resource.ResourceInitializationException; import org.apache.uima.resource.ResourceSpecifier; import org.apache.uima.resource.impl.CustomResourceSpecifier_impl; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import com.google.common.collect.Maps; import uk.gov.dstl.baleen.uima.testing.JCasSingleton; @RunWith(MockitoJUnitRunner.Silent.class) public class BaleenResourceTest { JCas jCas; Annotation annotation; private CustomResourceSpecifier_impl specifier; @Before public void setUp() throws UIMAException { jCas = JCasSingleton.getJCasInstance(); annotation = new Annotation(jCas); specifier = new CustomResourceSpecifier_impl(); } @Test public void testDestroy() throws ResourceInitializationException { FakeBaleenResource annotator = new FakeBaleenResource(true); annotator.initialize(new CustomResourceSpecifier_impl(), Maps.newHashMap()); annotator.destroy(); assertTrue(annotator.destroyed); } @Test public void testDoInitialize() throws ResourceInitializationException { FakeBaleenResource annotator = new FakeBaleenResource(true); boolean rvTrue = annotator.initialize(new CustomResourceSpecifier_impl(), Maps.newHashMap()); assertTrue(annotator.initialised); assertTrue(rvTrue); FakeBaleenResource failAnnotator = new FakeBaleenResource(false); boolean rvFalse = failAnnotator.initialize(new CustomResourceSpecifier_impl(), Maps.newHashMap()); assertTrue(failAnnotator.initialised); assertFalse(rvFalse); } @Test public void testGetMonitor() throws ResourceInitializationException { FakeBaleenResource annotator = new FakeBaleenResource(true); annotator.initialize(specifier, Maps.newHashMap()); assertNotNull(annotator.getMonitor()); } private class FakeBaleenResource extends BaleenResource { private boolean initialised; private boolean destroyed; private boolean intialisedReturn; public FakeBaleenResource(boolean intialisedReturn) { this.intialisedReturn = intialisedReturn; } @Override protected boolean doInitialize(ResourceSpecifier specifier, Map<String, Object> additionalParams) throws ResourceInitializationException { super.doInitialize(specifier, additionalParams); initialised = true; return intialisedReturn; } @Override protected void doDestroy() { super.doDestroy(); destroyed = true; } } }