//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.uima;
import static org.junit.Assert.*;
import org.junit.Test;
import uk.gov.dstl.baleen.core.metrics.Metrics;
import uk.gov.dstl.baleen.core.metrics.MetricsFactory;
public class UimaMonitorTest {
private static final String ENTITY_TYPE_1 = "type_1";
private static final String ENTITY_TYPE_2 = "type_2";
private static final String FUNCTION = "test_function";
private static final String PIPELINE = "test_pipeline";
@Test
public void testEntityAdded() {
UimaMonitor monitor = new UimaMonitor(PIPELINE, this.getClass());
monitor.entityAdded(ENTITY_TYPE_1);
monitor.entityAdded(ENTITY_TYPE_1);
monitor.entityAdded(ENTITY_TYPE_2);
monitor.entityAdded(ENTITY_TYPE_2);
monitor.entityAdded(ENTITY_TYPE_1);
monitor.persistCounts();
Metrics m = MetricsFactory.getMetrics(PIPELINE, this.getClass());
assertEquals(3, m.getCounter(ENTITY_TYPE_1 + "-added").getCount());
assertEquals(2, m.getCounter(ENTITY_TYPE_2 + "-added").getCount());
}
@Test
public void testEntityRemoved() {
UimaMonitor monitor = new UimaMonitor( PIPELINE, this.getClass());
monitor.entityRemoved(ENTITY_TYPE_1);
monitor.entityRemoved(ENTITY_TYPE_1);
monitor.entityRemoved(ENTITY_TYPE_2);
monitor.entityRemoved(ENTITY_TYPE_2);
monitor.entityRemoved(ENTITY_TYPE_1);
monitor.persistCounts();
Metrics m = MetricsFactory.getMetrics(PIPELINE, this.getClass());
assertEquals(3, m.getCounter(ENTITY_TYPE_1 + "-removed").getCount());
assertEquals(2, m.getCounter(ENTITY_TYPE_2 + "-removed").getCount());
}
@Test
public void testTiming() {
UimaMonitor monitor = new UimaMonitor(PIPELINE,this.getClass());
monitor.startFunction(FUNCTION);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// Do nothing
}
monitor.finishFunction(FUNCTION);
Metrics m = MetricsFactory.getMetrics(PIPELINE, this.getClass());
assertTrue(m.getTimer(FUNCTION).getSnapshot().getValues()[0] > 0);
}
@Test
public void testMetrics() {
UimaMonitor monitor = new UimaMonitor(PIPELINE,this.getClass());
assertNotNull(monitor.counter("a"));
assertNotNull(monitor.meter("b"));
assertNotNull(monitor.histogram("c"));
assertNotNull(monitor.timer("d"));
}
@Test
public void testLogger() {
UimaMonitor monitor = new UimaMonitor(PIPELINE,this.getClass());
monitor.trace("test");
monitor.debug("test");
monitor.info("test");
monitor.warn("test");
monitor.error("test");
}
}