package org.axonframework.metrics; import com.codahale.metrics.ConsoleReporter; import org.axonframework.commandhandling.CommandMessage; import org.axonframework.commandhandling.GenericCommandMessage; import org.axonframework.eventhandling.EventMessage; import org.axonframework.monitoring.MessageMonitor; import org.junit.Before; import org.junit.Test; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import static org.axonframework.eventhandling.GenericEventMessage.asEventMessage; import static org.junit.Assert.assertTrue; public class GlobalMetricRegistryTest { private GlobalMetricRegistry subject; @Before public void setUp() throws Exception { subject = new GlobalMetricRegistry(); } @Test public void createEventProcessorMonitor() throws Exception { MessageMonitor<? super EventMessage<?>> monitor1 = subject.registerEventProcessor("test1"); MessageMonitor<? super EventMessage<?>> monitor2 = subject.registerEventProcessor("test2"); monitor1.onMessageIngested(asEventMessage("test")).reportSuccess(); monitor2.onMessageIngested(asEventMessage("test")).reportSuccess(); ByteArrayOutputStream out = new ByteArrayOutputStream(); ConsoleReporter.forRegistry(subject.getRegistry()).outputTo(new PrintStream(out)).build().report(); String output = new String(out.toByteArray()); assertTrue(output.contains("test1")); assertTrue(output.contains("test2")); } @Test public void createEventBusMonitor() throws Exception { MessageMonitor<EventMessage<?>> monitor = subject.registerEventBus("eventBus"); monitor.onMessageIngested(asEventMessage("test")).reportSuccess(); ByteArrayOutputStream out = new ByteArrayOutputStream(); ConsoleReporter.forRegistry(subject.getRegistry()).outputTo(new PrintStream(out)).build().report(); String output = new String(out.toByteArray()); assertTrue(output.contains("eventBus")); } @Test public void createCommandBusMonitor() throws Exception { MessageMonitor<CommandMessage<?>> monitor = subject.registerCommandBus("commandBus"); monitor.onMessageIngested(new GenericCommandMessage<>("test")).reportSuccess(); ByteArrayOutputStream out = new ByteArrayOutputStream(); ConsoleReporter.forRegistry(subject.getRegistry()).outputTo(new PrintStream(out)).build().report(); String output = new String(out.toByteArray()); assertTrue(output.contains("commandBus")); } }