package javasplitter; import org.junit.Test; import static org.junit.Assert.*; public class ExecutionTimingAuditableLifecycleListenerTest { @Test public void testTimingExecutions() throws InterruptedException { final int threads = 500; final int iterations = 5000; final int total = threads * iterations; final StatsCollector statsCollector = new UnboundedStatsCollector(); final AuditableLifecycleListener listener = new ExecutionTimingAuditableLifecycleListener(statsCollector); final MultithreadedStressTester stressTester = new MultithreadedStressTester(threads, iterations); stressTester.stress( new Runnable() { @Override public void run() { final Auditable sleeping = new SleepingAuditable(); final Auditable iterating = new IteratingAuditable(); final AuditableInvoker invoker = new AuditableInvoker(sleeping, iterating); invoker.addListener(listener); invoker.invoke(); } } ); assertEquals(total, statsCollector.timesValidated(SleepingAuditable.class)); assertEquals(total, statsCollector.timesValidated(IteratingAuditable.class)); assertEquals(total, statsCollector.timesProcessed(SleepingAuditable.class)); assertEquals(total, statsCollector.timesProcessed(IteratingAuditable.class)); } }