From 1b3edc0e239d28488ee6acd33b7438d2e8ea9910 Mon Sep 17 00:00:00 2001 From: Johannes Theiner Date: Mon, 25 Jun 2018 17:41:20 +0200 Subject: [PATCH] so jetzt ? --- .../praktikum/praktikum4/ClientRunnable.java | 4 +-- .../praktikum/praktikum4/KlausurenServer.java | 6 ++-- src/main/resources/log4j.properties | 14 ++++---- .../hs/java2/tests/KlausurenServerTest.java | 4 +-- .../hs/java2/tests/KlausurenServerTest3.java | 36 ++++++++++--------- .../joethei/hs/java2/tests/TestAppender.java | 27 ++++++++++++++ 6 files changed, 59 insertions(+), 32 deletions(-) create mode 100644 src/test/java/de/joethei/hs/java2/tests/TestAppender.java diff --git a/src/main/java/de/joethei/hs/java2/praktikum/praktikum4/ClientRunnable.java b/src/main/java/de/joethei/hs/java2/praktikum/praktikum4/ClientRunnable.java index e7bbf68..4cdbb58 100644 --- a/src/main/java/de/joethei/hs/java2/praktikum/praktikum4/ClientRunnable.java +++ b/src/main/java/de/joethei/hs/java2/praktikum/praktikum4/ClientRunnable.java @@ -15,7 +15,7 @@ public class ClientRunnable implements Runnable{ try { bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); } catch (IOException e) { - KlausurenServer.getLogger().fatal(this, e.getCause()); + KlausurenServer.getLogger().fatal("Fehler beim erstellen des Sockets", e.getCause()); } } @@ -35,7 +35,7 @@ public class ClientRunnable implements Runnable{ Thread.currentThread().interrupt(); } catch (IOException e) { - KlausurenServer.getLogger().error(this, e.getCause()); + KlausurenServer.getLogger().error("Fehler beim einlesen der Eingabe", e.getCause()); } } } \ No newline at end of file diff --git a/src/main/java/de/joethei/hs/java2/praktikum/praktikum4/KlausurenServer.java b/src/main/java/de/joethei/hs/java2/praktikum/praktikum4/KlausurenServer.java index c9cb3b8..3069bb0 100644 --- a/src/main/java/de/joethei/hs/java2/praktikum/praktikum4/KlausurenServer.java +++ b/src/main/java/de/joethei/hs/java2/praktikum/praktikum4/KlausurenServer.java @@ -113,7 +113,7 @@ public class KlausurenServer { logger.info("server shutdown"); Thread.currentThread().interrupt(); } catch (IOException e) { - logger.error(this, e.getCause()); + logger.error("Fehler beim Server beenden", e.getCause()); } }; @@ -138,7 +138,7 @@ public class KlausurenServer { data.put(array[0], set); } } catch (IOException e) { - logger.error(this, e.getCause()); + logger.error("Fehler beim laden der Datei", e.getCause()); } } @@ -158,7 +158,7 @@ public class KlausurenServer { } } catch (IOException e) { - logger.error(this, e.getCause()); + logger.error("Fehler beim speichern", e.getCause()); } finally { assert printWriter != null; printWriter.close(); diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index 393e087..dcc99a7 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -1,8 +1,6 @@ -# Root logger option -log4j.rootLogger=INFO, stdout - -# Direct log messages to stdout -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n \ No newline at end of file +log4j.rootCategory=INFO, CONSOLE +log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender +log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout +log4j.appender.CONSOLE.layout.ConversionPattern=%d %p [%c] - %m%n +# un-comment this will fail the test +#log4j.logger.com.haim.logging=DEBUG \ No newline at end of file diff --git a/src/test/java/de/joethei/hs/java2/tests/KlausurenServerTest.java b/src/test/java/de/joethei/hs/java2/tests/KlausurenServerTest.java index d16ac82..05d9700 100644 --- a/src/test/java/de/joethei/hs/java2/tests/KlausurenServerTest.java +++ b/src/test/java/de/joethei/hs/java2/tests/KlausurenServerTest.java @@ -67,12 +67,12 @@ public class KlausurenServerTest { assertEquals("1 ", sendRequest("put max@maier 5, 6, 7, 8")); assertEquals("1", sendRequest("stop")); //Thread.sleep(1000L); - server = new KlausurenServer(6768); + KlausurenServer.main(new String[]{"6768"}); Thread.sleep(100L); assertEquals("1 [5,6,7,8]", sendRequest("getall", 6768)); assertEquals("1 5,6,7,8", sendRequest("del max@maier", 6768)); assertEquals("1 5,6", sendRequest("del max@baum", 6768)); - + assertEquals("1", sendRequest("stop", 6768)); } private String sendRequest(String command, int port) { diff --git a/src/test/java/de/joethei/hs/java2/tests/KlausurenServerTest3.java b/src/test/java/de/joethei/hs/java2/tests/KlausurenServerTest3.java index 42e4458..33d395c 100644 --- a/src/test/java/de/joethei/hs/java2/tests/KlausurenServerTest3.java +++ b/src/test/java/de/joethei/hs/java2/tests/KlausurenServerTest3.java @@ -1,8 +1,8 @@ package de.joethei.hs.java2.tests; import de.joethei.hs.java2.praktikum.praktikum4.KlausurenServer; -import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.Logger; +import org.apache.log4j.Priority; import org.apache.log4j.spi.LoggingEvent; import org.junit.Test; import org.junit.runner.RunWith; @@ -10,14 +10,11 @@ import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.powermock.api.mockito.PowerMockito; import org.powermock.modules.junit4.PowerMockRunner; -import java.io.*; import java.net.Socket; -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.verify; +import static org.junit.Assert.*; @RunWith(PowerMockRunner.class) public class KlausurenServerTest3 { @@ -27,24 +24,29 @@ public class KlausurenServerTest3 { @Mock private Socket socket; - @Mock - AppenderSkeleton appender; + + TestAppender appender = new TestAppender(); + @Captor ArgumentCaptor logCaptor; - @Test(expected = IOException.class) - public void ioException() throws Exception { - PowerMockito.whenNew(OutputStreamWriter.class).withArguments(new Socket().getOutputStream()).thenAnswer(invocationOnMock -> { - throw new IOException("TestCase"); - }); + @Test + public void ioException() { + + appender.setThreshold(Priority.INFO); Logger.getLogger("KlausurenServer").addAppender(appender); - verify(appender).doAppend(logCaptor.capture()); - - assertEquals("test", "test", logCaptor.getValue().getRenderedMessage()); - - KlausurenServer klausurenServer = new KlausurenServer(6770); + assertTrue(appender.messages.contains("Fehler beim Server beenden")); + assertFalse(appender.messages.contains("Fehler beim erstellen des Sockets")); + assertFalse(appender.messages.contains("Hallo Welt")); + + + } + + @Test + public void getLogger() { + assertEquals(Logger.getLogger("KlausurenServer"), KlausurenServer.getLogger()); } } \ No newline at end of file diff --git a/src/test/java/de/joethei/hs/java2/tests/TestAppender.java b/src/test/java/de/joethei/hs/java2/tests/TestAppender.java new file mode 100644 index 0000000..10f9336 --- /dev/null +++ b/src/test/java/de/joethei/hs/java2/tests/TestAppender.java @@ -0,0 +1,27 @@ +package de.joethei.hs.java2.tests; + +import org.apache.log4j.AppenderSkeleton; +import org.apache.log4j.spi.LoggingEvent; + +import java.util.ArrayList; +import java.util.List; + +public class TestAppender extends AppenderSkeleton { + + List messages = new ArrayList<>(); + + @Override + protected void append(LoggingEvent loggingEvent) { + messages.add(loggingEvent.getMessage().toString()); + } + + @Override + public void close() { + + } + + @Override + public boolean requiresLayout() { + return false; + } +} \ No newline at end of file