package messagebroker.handlers; import messagebroker.MessageHandlerContext; import messagebroker.UnknownMessageFormatException; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.io.OutputStream; import static org.mockito.Mockito.*; public class EchoMessageHandlerTest { private final MessageHandlerContext context = mock(MessageHandlerContext.class); private EchoMessageHandler messageHandler; public EchoMessageHandlerTest() { when(context.getOutputStream()).thenReturn(mock(OutputStream.class)); } @Before() public void setUp() { messageHandler = new EchoMessageHandler(context); } @Test public void shouldHandleEchoMessage() throws UnknownMessageFormatException, IOException { var message = "ECHO Some message"; messageHandler.handleMessage(message); verify(context.getOutputStream()).flush(); } @Test(expected = UnknownMessageFormatException.class) public void shouldThrowWhenMessageIsUnknown() throws UnknownMessageFormatException { var message = "Bad message"; messageHandler.handleMessage(message); } }