From 8edfb976521e8c3881c140ee532ce3914f45afe5 Mon Sep 17 00:00:00 2001 From: Vimbayinashe Date: Thu, 3 Feb 2022 09:43:25 +0100 Subject: [PATCH 1/3] Add test for succesful connection --- .../storm/client/ClientHandlerTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/test/java/org/fungover/storm/client/ClientHandlerTest.java diff --git a/src/test/java/org/fungover/storm/client/ClientHandlerTest.java b/src/test/java/org/fungover/storm/client/ClientHandlerTest.java new file mode 100644 index 00000000..d885e70d --- /dev/null +++ b/src/test/java/org/fungover/storm/client/ClientHandlerTest.java @@ -0,0 +1,26 @@ +package org.fungover.storm.client; + +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.io.*; +import java.net.Socket; + +import static org.assertj.core.api.Assertions.assertThatNoException; +import static org.mockito.Mockito.mock; + +class ClientHandlerTest { + + @Test + void shouldNotThrowExceptionWhenThereIsASuccessfulConnection() throws IOException { + OutputStream outputStream = new ByteArrayOutputStream(); + InputStream inputStream = new ByteArrayInputStream("hello world".getBytes()); + Socket socket = mock(Socket.class); + Mockito.when(socket.getOutputStream()).thenReturn(outputStream); + Mockito.when(socket.getInputStream()).thenReturn(inputStream); + ClientHandler clientHandler = new ClientHandler(socket); + + assertThatNoException().isThrownBy(clientHandler::run); + } + +} From 0406afdeb1c869d849134f9b6f591ab110cfc770 Mon Sep 17 00:00:00 2001 From: Vimbayinashe Date: Thu, 3 Feb 2022 11:33:23 +0100 Subject: [PATCH 2/3] Add test for ClientHandler when there is a connection error --- pom.xml | 6 ++++++ .../fungover/storm/client/ClientHandlerTest.java | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/pom.xml b/pom.xml index 3a6efb60..19d7cd06 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,12 @@ log4j-core 2.17.1 + + io.github.hakky54 + logcaptor + 2.7.8 + test + diff --git a/src/test/java/org/fungover/storm/client/ClientHandlerTest.java b/src/test/java/org/fungover/storm/client/ClientHandlerTest.java index d885e70d..24ffd935 100644 --- a/src/test/java/org/fungover/storm/client/ClientHandlerTest.java +++ b/src/test/java/org/fungover/storm/client/ClientHandlerTest.java @@ -1,14 +1,17 @@ package org.fungover.storm.client; +import nl.altindag.log.LogCaptor; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import java.io.*; import java.net.Socket; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatNoException; import static org.mockito.Mockito.mock; + class ClientHandlerTest { @Test @@ -23,4 +26,16 @@ void shouldNotThrowExceptionWhenThereIsASuccessfulConnection() throws IOExceptio assertThatNoException().isThrownBy(clientHandler::run); } + @Test + void shouldLogAnErrorWhenThereIsAConnectionError() throws IOException { + LogCaptor logCaptor = LogCaptor.forName("SERVER"); + Socket socket = new Socket(); + ClientHandler clientHandler = new ClientHandler(socket); + + socket.close(); + clientHandler.run(); + + assertThat(logCaptor.getErrorLogs()).hasSize(1); + } + } From 43f839d5de98a6d24494fd2102b6eb5f3a2ea2d8 Mon Sep 17 00:00:00 2001 From: Vimbayinashe Date: Thu, 3 Feb 2022 11:56:23 +0100 Subject: [PATCH 3/3] Refactor ClientHandlerTest --- .../fungover/storm/client/ClientHandlerTest.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/test/java/org/fungover/storm/client/ClientHandlerTest.java b/src/test/java/org/fungover/storm/client/ClientHandlerTest.java index 24ffd935..fc4a03e7 100644 --- a/src/test/java/org/fungover/storm/client/ClientHandlerTest.java +++ b/src/test/java/org/fungover/storm/client/ClientHandlerTest.java @@ -8,22 +8,22 @@ import java.net.Socket; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatNoException; import static org.mockito.Mockito.mock; class ClientHandlerTest { @Test - void shouldNotThrowExceptionWhenThereIsASuccessfulConnection() throws IOException { - OutputStream outputStream = new ByteArrayOutputStream(); - InputStream inputStream = new ByteArrayInputStream("hello world".getBytes()); + void shouldNotLogAnErrorWhenThereIsASuccessfulConnection() throws IOException { + LogCaptor logCaptor = LogCaptor.forName("SERVER"); Socket socket = mock(Socket.class); - Mockito.when(socket.getOutputStream()).thenReturn(outputStream); - Mockito.when(socket.getInputStream()).thenReturn(inputStream); + Mockito.when(socket.getOutputStream()).thenReturn(new ByteArrayOutputStream()); + Mockito.when(socket.getInputStream()).thenReturn(new ByteArrayInputStream("Hello Storm!".getBytes())); ClientHandler clientHandler = new ClientHandler(socket); - assertThatNoException().isThrownBy(clientHandler::run); + clientHandler.run(); + + assertThat(logCaptor.getErrorLogs()).isEmpty(); } @Test