//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.uima;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.resource.ResourceInitializationException;
import org.junit.Before;
import org.junit.Test;
import uk.gov.dstl.baleen.exceptions.BaleenException;
import uk.gov.dstl.baleen.uima.testing.CounterTask;
import uk.gov.dstl.baleen.uima.testing.DummyTaskWithParams;
@SuppressWarnings("unchecked")
public class BaleenTaskTest extends AbstractBaleenTaskTest {
@Before
public void before() {
CounterTask.reset();
}
@Test
public void test() throws ResourceInitializationException, AnalysisEngineProcessException {
AnalysisEngine task = create(CounterTask.class);
assertEquals(0, CounterTask.getExecutedCount());
execute(task);
assertEquals(1, CounterTask.getExecutedCount());
task.destroy();
}
@Test
public void testWithDefaultParams() throws ResourceInitializationException, AnalysisEngineProcessException {
AnalysisEngine task = create(DummyTaskWithParams.class);
JobSettings settings = execute(task);
assertEquals("value", settings.get("key").get());
}
@Test
public void testWithParams() throws ResourceInitializationException, AnalysisEngineProcessException {
AnalysisEngine task = create(DummyTaskWithParams.class, "value", "different");
JobSettings settings = execute(task);
assertEquals("different", settings.get("key").get());
}
@Test
public void testTwoTasks() throws ResourceInitializationException, AnalysisEngineProcessException {
AnalysisEngine task1 = create(DummyTaskWithParams.class, "value", "different");
AnalysisEngine task2 = create(CounterTask.class);
JobSettings settings = execute(task1, task2);
assertEquals("different", settings.get("key").get());
}
@Test
public void fullTest()
throws ResourceInitializationException, AnalysisEngineProcessException, BaleenException,
InterruptedException {
wrapInJob(CounterTask.class);
assertEquals(0, CounterTask.getExecutedCount());
Thread.sleep(1000);
assertEquals(1, CounterTask.getExecutedCount());
}
@Test
public void fullTestWithTwoTasks()
throws ResourceInitializationException, AnalysisEngineProcessException, BaleenException,
InterruptedException {
wrapInJob(DummyTaskWithParams.class, CounterTask.class);
assertEquals(0, CounterTask.getExecutedCount());
assertNull(CounterTask.getLastSettingsForKey());
Thread.sleep(1000);
assertEquals(1, CounterTask.getExecutedCount());
assertEquals("value", CounterTask.getLastSettingsForKey().get());
}
}