package ch.retorte.intervalmusiccompositor.messagebus; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.*; import java.time.LocalDateTime; import org.junit.Before; import org.junit.Test; public class DebugMessagePrinterTest { private DebugMessagePrinter handler; private LocalDateTime currentDate = LocalDateTime.now(); @Before public void setup() { handler = spy(new DebugMessagePrinter()); } @Test public void shouldWriteDebugMessagesToStdOut() { // given DebugMessage message = mock(DebugMessage.class); doReturn(currentDate).when(message).getDate(); // when handler.handle(message); // then verify(handler, times(1)).printToStdOut(anyString()); } @Test public void shouldNicelyFormatDebugMessage() { // given DebugMessage message = new DebugMessage("SomeClassName", "SomeMessage", currentDate); // when handler.handle(message); // then verify(handler, times(1)).printToStdOut(formattedDate() + " - SomeClassName - SomeMessage"); } private String formattedDate() { return DebugMessage.format(currentDate); } }