### Question:
RaftMessageMonitoringHandler implements LifecycleMessageHandler<RaftMessages.ReceivedInstantClusterIdAwareMessage<?>> { @Override public synchronized void handle( RaftMessages.ReceivedInstantClusterIdAwareMessage<?> incomingMessage ) { Instant start = clock.instant(); logDelay( incomingMessage, start ); timeHandle( incomingMessage, start ); } RaftMessageMonitoringHandler( LifecycleMessageHandler<RaftMessages.ReceivedInstantClusterIdAwareMessage<?>> raftMessageHandler,
            Clock clock, Monitors monitors ); static ComposableMessageHandler composable( Clock clock, Monitors monitors ); @Override synchronized void handle( RaftMessages.ReceivedInstantClusterIdAwareMessage<?> incomingMessage ); @Override void start( ClusterId clusterId ); @Override void stop();  }### Answer:
@Test public void shouldSendMessagesToDelegate() { handler.handle( message ); verify( downstream ).handle( message ); }
@Test public void shouldUpdateDelayMonitor() { handler.handle( message ); verify( monitor ).setDelay( messageQueueDelay ); }
@Test public void shouldTimeDelegate() { handler.handle( message ); verify( monitor ).updateTimer( RaftMessages.Type.HEARTBEAT, messageProcessingDelay ); }