You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2020/09/15 18:57:55 UTC
[logging-log4j2] 02/10: Migrate more appender tests to JUnit 5
This is an automated email from the ASF dual-hosted git repository.
mattsicker pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit e0d78a4494ad07edfdbbc38f321c21a66dc3d439
Author: Matt Sicker <bo...@gmail.com>
AuthorDate: Sun Sep 13 16:30:42 2020 -0500
Migrate more appender tests to JUnit 5
Backported from 3.x.
Signed-off-by: Matt Sicker <bo...@gmail.com>
---
.../log4j/core/appender/InMemoryAppenderTest.java | 15 +-
.../core/appender/MemoryMappedFileManagerTest.java | 28 ++-
.../core/appender/OutputStreamManagerTest.java | 18 +-
.../core/appender/RandomAccessFileManagerTest.java | 37 ++--
.../core/appender/ReconfigureAppenderTest.java | 6 +-
.../core/appender/ScriptAppenderSelectorTest.java | 87 +++-----
.../core/appender/SocketAppenderBuilderTest.java | 9 +-
.../log4j/core/appender/TlsSyslogFrameTest.java | 16 +-
.../log4j/core/appender/WriterAppenderTest.java | 224 +++++++++++----------
9 files changed, 202 insertions(+), 238 deletions(-)
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/InMemoryAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/InMemoryAppenderTest.java
index 75d4929..fe0c359 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/InMemoryAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/InMemoryAppenderTest.java
@@ -24,13 +24,10 @@ import org.apache.logging.log4j.core.layout.PatternLayout;
import org.apache.logging.log4j.message.SimpleMessage;
import org.apache.logging.log4j.test.appender.InMemoryAppender;
import org.apache.logging.log4j.util.Strings;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
-/**
- *
- */
public class InMemoryAppenderTest {
@Test
@@ -68,15 +65,15 @@ public class InMemoryAppenderTest {
.setMessage(new SimpleMessage("Test")) //
.build();
app.start();
- assertTrue("Appender did not start", app.isStarted());
+ assertTrue(app.isStarted(), "Appender did not start");
app.append(event);
app.append(event);
final String msg = app.toString();
- assertNotNull("No message", msg);
+ assertNotNull(msg, "No message");
final String expectedHeader = header == null ? "" : header;
final String expected = expectedHeader + "Test" + Strings.LINE_SEPARATOR + "Test" + Strings.LINE_SEPARATOR;
- assertTrue("Incorrect message: " + msg, msg.equals(expected));
+ assertEquals(expected, msg, "Incorrect message: " + msg);
app.stop();
- assertFalse("Appender did not stop", app.isStarted());
+ assertFalse(app.isStarted(), "Appender did not stop");
}
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java
index 84f7a4e..e5bb0d2 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManagerTest.java
@@ -16,17 +16,16 @@
*/
package org.apache.logging.log4j.core.appender;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+
+import static org.junit.jupiter.api.Assertions.*;
/**
* Tests the MemoryMappedFileManager class.
@@ -35,12 +34,13 @@ import org.junit.Test;
*/
public class MemoryMappedFileManagerTest {
+ @TempDir
+ File tempDir;
+
@Test
public void testRemapAfterInitialMapSizeExceeded() throws IOException {
final int mapSize = 64; // very small, on purpose
- final File file = File.createTempFile("log4j2", "test");
- file.deleteOnExit();
- assertEquals(0, file.length());
+ final File file = new File(tempDir, "memory-mapped-file.bin");
final boolean append = false;
final boolean immediateFlush = false;
@@ -57,8 +57,8 @@ public class MemoryMappedFileManagerTest {
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line = reader.readLine();
for (int i = 0; i < 1000; i++) {
- assertNotNull("line", line);
- assertTrue("line incorrect", line.contains("Message " + i));
+ assertNotNull(line, "line");
+ assertTrue(line.contains("Message " + i), "line incorrect");
line = reader.readLine();
}
}
@@ -66,9 +66,7 @@ public class MemoryMappedFileManagerTest {
@Test
public void testAppendDoesNotOverwriteExistingFile() throws IOException {
- final File file = File.createTempFile("log4j2", "test");
- file.deleteOnExit();
- assertEquals(0, file.length());
+ final File file = new File(tempDir, "memory-mapped-file.bin");
final int initialLength = 4 * 1024;
@@ -77,7 +75,7 @@ public class MemoryMappedFileManagerTest {
fos.write(new byte[initialLength], 0, initialLength);
fos.flush();
}
- assertEquals("all flushed to disk", initialLength, file.length());
+ assertEquals(initialLength, file.length(), "all flushed to disk");
final boolean isAppend = true;
final boolean immediateFlush = false;
@@ -86,6 +84,6 @@ public class MemoryMappedFileManagerTest {
manager.writeBytes(new byte[initialLength], 0, initialLength);
}
final int expected = initialLength * 2;
- assertEquals("appended, not overwritten", expected, file.length());
+ assertEquals(expected, file.length(), "appended, not overwritten");
}
}
\ No newline at end of file
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/OutputStreamManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/OutputStreamManagerTest.java
index 884d6b8..86d1990 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/OutputStreamManagerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/OutputStreamManagerTest.java
@@ -20,28 +20,24 @@ package org.apache.logging.log4j.core.appender;
import java.util.List;
import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.junit.LoggerContextRule;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.junit.LoggerContextSource;
import org.apache.logging.log4j.status.StatusData;
import org.apache.logging.log4j.status.StatusLogger;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
/**
* OutputStreamManager Tests.
*/
public class OutputStreamManagerTest {
- private static final String CONFIG = "multipleIncompatibleAppendersTest.xml";
-
- @ClassRule
- public static LoggerContextRule context = new LoggerContextRule(CONFIG);
@Test
- public void narrow() throws Exception {
- final Logger logger = LogManager.getLogger(OutputStreamManagerTest.class);
+ @LoggerContextSource("multipleIncompatibleAppendersTest.xml")
+ public void narrow(final LoggerContext context) {
+ final Logger logger = context.getLogger(OutputStreamManagerTest.class);
logger.info("test");
final List<StatusData> statusData = StatusLogger.getLogger().getStatusData();
StatusData data = statusData.get(0);
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
index fac3171..62b2bec 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileManagerTest.java
@@ -23,19 +23,18 @@ import java.io.OutputStream;
import java.io.RandomAccessFile;
import org.apache.logging.log4j.core.util.NullOutputStream;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
/**
* Tests the RandomAccessFileManager class.
*/
public class RandomAccessFileManagerTest {
- @ClassRule
- public static TemporaryFolder folder = new TemporaryFolder();
+ @TempDir
+ File tempDir;
/**
* Test method for
@@ -44,7 +43,7 @@ public class RandomAccessFileManagerTest {
*/
@Test
public void testWrite_multiplesOfBufferSize() throws IOException {
- final File file = folder.newFile();
+ final File file = new File(tempDir, "random-access-file.bin");
try (final RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
final OutputStream os = NullOutputStream.getInstance();
final RandomAccessFileManager manager = new RandomAccessFileManager(null, raf, file.getName(),
@@ -56,7 +55,8 @@ public class RandomAccessFileManagerTest {
// all data is written if exceeds buffer size
assertEquals(RandomAccessFileManager.DEFAULT_BUFFER_SIZE * 3, raf.length());
- }}
+ }
+ }
/**
* Test method for
@@ -65,7 +65,7 @@ public class RandomAccessFileManagerTest {
*/
@Test
public void testWrite_dataExceedingBufferSize() throws IOException {
- final File file = folder.newFile();
+ final File file = new File(tempDir, "random-access-file.bin");
try (final RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
final OutputStream os = NullOutputStream.getInstance();
final RandomAccessFileManager manager = new RandomAccessFileManager(null, raf, file.getName(),
@@ -79,11 +79,12 @@ public class RandomAccessFileManagerTest {
manager.flush();
assertEquals(size, raf.length()); // all data written to file now
- }}
+ }
+ }
@Test
public void testConfigurableBufferSize() throws IOException {
- final File file = folder.newFile();
+ final File file = new File(tempDir, "random-access-file.bin");
try (final RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
final OutputStream os = NullOutputStream.getInstance();
final int bufferSize = 4 * 1024;
@@ -94,11 +95,12 @@ public class RandomAccessFileManagerTest {
// check the resulting buffer size is what was requested
assertEquals(bufferSize, manager.getBufferSize());
- }}
+ }
+ }
@Test
public void testWrite_dataExceedingMinBufferSize() throws IOException {
- final File file = folder.newFile();
+ final File file = new File(tempDir, "random-access-file.bin");
try (final RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
final OutputStream os = NullOutputStream.getInstance();
final int bufferSize = 1;
@@ -113,12 +115,13 @@ public class RandomAccessFileManagerTest {
manager.flush();
assertEquals(size, raf.length()); // all data written to file now
- }}
+ }
+ }
@Test
public void testAppendDoesNotOverwriteExistingFile() throws IOException {
final boolean isAppend = true;
- final File file = folder.newFile();
+ final File file = new File(tempDir, "random-access-file.bin");
assertEquals(0, file.length());
final byte[] bytes = new byte[4 * 1024];
@@ -128,12 +131,12 @@ public class RandomAccessFileManagerTest {
fos.write(bytes, 0, bytes.length);
fos.flush();
}
- assertEquals("all flushed to disk", bytes.length, file.length());
+ assertEquals(bytes.length, file.length(), "all flushed to disk");
final RandomAccessFileManager manager = RandomAccessFileManager.getFileManager(
file.getAbsolutePath(), isAppend, true, RandomAccessFileManager.DEFAULT_BUFFER_SIZE, null, null, null);
manager.write(bytes, 0, bytes.length, true);
final int expected = bytes.length * 2;
- assertEquals("appended, not overwritten", expected, file.length());
+ assertEquals(expected, file.length(), "appended, not overwritten");
}
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ReconfigureAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ReconfigureAppenderTest.java
index bbdf01d..6adc018 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ReconfigureAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ReconfigureAppenderTest.java
@@ -32,12 +32,8 @@ import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFact
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.apache.logging.log4j.core.layout.PatternLayout;
import org.apache.logging.log4j.core.util.Builder;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
-/**
- * Class Description goes here.
- * Created by rgoers on 2019-02-02
- */
public class ReconfigureAppenderTest {
private RollingFileAppender appender;
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java
index fbea216..6b3800f 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ScriptAppenderSelectorTest.java
@@ -16,79 +16,44 @@
*/
package org.apache.logging.log4j.core.appender;
-import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.MarkerManager;
-import org.apache.logging.log4j.categories.Scripts;
-import org.apache.logging.log4j.core.Logger;
-import org.apache.logging.log4j.junit.LoggerContextRule;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.junit.LoggerContextSource;
+import org.apache.logging.log4j.spi.ExtendedLogger;
import org.apache.logging.log4j.test.appender.ListAppender;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.hasSize;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
-@RunWith(Parameterized.class)
-@Category(Scripts.Groovy.class)
public class ScriptAppenderSelectorTest {
- @Parameterized.Parameters(name = "{0}")
- public static Object[][] getParameters() {
- // @formatter:off
- return new Object[][] {
- { "log4j-appender-selector-groovy.xml" },
- { "log4j-appender-selector-javascript.xml" },
- };
- // @formatter:on
- }
-
- @Rule
- public final LoggerContextRule loggerContextRule;
-
- public ScriptAppenderSelectorTest(final String configLocation) {
- this.loggerContextRule = new LoggerContextRule(configLocation);
+ @Test
+ @LoggerContextSource("log4j-appender-selector-javascript.xml")
+ void testJavaScriptSelector(final Configuration config) {
+ verify(config);
}
- private ListAppender getListAppender() {
- return loggerContextRule.getListAppender("SelectIt");
+ @Test
+ @LoggerContextSource("log4j-appender-selector-groovy.xml")
+ void testGroovySelector(final Configuration config) {
+ verify(config);
}
- private void logAndCheck() {
- final Marker marker = MarkerManager.getMarker("HEXDUMP");
- final Logger logger = loggerContextRule.getLogger(ScriptAppenderSelectorTest.class);
+ static void verify(final Configuration config) {
+ assertNull(config.getAppender("List1"), "List1 appender should not be initialized");
+ assertNull(config.getAppender("List2"), "List2 appender should not be initialized");
+ final ListAppender listAppender = config.getAppender("SelectIt");
+ assertNotNull(listAppender);
+ final ExtendedLogger logger = config.getLoggerContext().getLogger(ScriptAppenderSelectorTest.class);
logger.error("Hello");
- final ListAppender listAppender = getListAppender();
- assertEquals("Incorrect number of events", 1, listAppender.getEvents().size());
+ assertThat(listAppender.getEvents(), hasSize(1));
logger.error("World");
- assertEquals("Incorrect number of events", 2, listAppender.getEvents().size());
- logger.error(marker, "DEADBEEF");
- assertEquals("Incorrect number of events", 3, listAppender.getEvents().size());
- }
-
- @Test(expected = AssertionError.class)
- public void testAppender1Absence() {
- loggerContextRule.getListAppender("List1");
- }
-
- @Test(expected = AssertionError.class)
- public void testAppender2Absence() {
- loggerContextRule.getListAppender("List2");
+ assertThat(listAppender.getEvents(), hasSize(2));
+ logger.error(MarkerManager.getMarker("HEXDUMP"), "DEADBEEF");
+ assertThat(listAppender.getEvents(), hasSize(3));
}
- @Test
- public void testAppenderPresence() {
- getListAppender();
- }
-
- @Test
- public void testLogging1() {
- logAndCheck();
- }
-
- @Test
- public void testLogging2() {
- logAndCheck();
- }
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderBuilderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderBuilderTest.java
index bdfd35a..3636af3 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderBuilderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderBuilderTest.java
@@ -16,9 +16,9 @@
*/
package org.apache.logging.log4j.core.appender;
-import org.apache.logging.log4j.core.appender.SocketAppender;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
public class SocketAppenderBuilderTest {
@@ -27,6 +27,7 @@ public class SocketAppenderBuilderTest {
*/
@Test
public void testDefaultImmediateFlush() {
- Assert.assertTrue(SocketAppender.newBuilder().isImmediateFlush());
+ assertTrue(SocketAppender.newBuilder().isImmediateFlush(),
+ "Regression of LOG4J2-1620: default value for immediateFlush should be true");
}
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java
index 887ba99..a1df85a 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/TlsSyslogFrameTest.java
@@ -19,8 +19,10 @@ package org.apache.logging.log4j.core.appender;
import java.nio.charset.StandardCharsets;
import org.apache.logging.log4j.util.Chars;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
public class TlsSyslogFrameTest {
private static final String TEST_MESSAGE = "The quick brown fox jumps over the lazy dog";
@@ -29,16 +31,16 @@ public class TlsSyslogFrameTest {
public void equals() {
final TlsSyslogFrame first = new TlsSyslogFrame(TEST_MESSAGE);
final TlsSyslogFrame second = new TlsSyslogFrame(TEST_MESSAGE);
- Assert.assertEquals(first, second);
- Assert.assertEquals(first.hashCode(), second.hashCode());
+ assertEquals(first, second);
+ assertEquals(first.hashCode(), second.hashCode());
}
@Test
public void notEquals() {
final TlsSyslogFrame first = new TlsSyslogFrame("A message");
final TlsSyslogFrame second = new TlsSyslogFrame("B message");
- Assert.assertNotEquals(first, second);
- Assert.assertNotEquals(first.hashCode(), second.hashCode());
+ assertNotEquals(first, second);
+ assertNotEquals(first.hashCode(), second.hashCode());
}
@Test
@@ -46,6 +48,6 @@ public class TlsSyslogFrameTest {
final TlsSyslogFrame frame = new TlsSyslogFrame(TEST_MESSAGE);
final int length = TEST_MESSAGE.getBytes(StandardCharsets.UTF_8).length;
final String expected = Integer.toString(length) + Chars.SPACE + TEST_MESSAGE;
- Assert.assertEquals(expected, frame.toString());
+ assertEquals(expected, frame.toString());
}
}
\ No newline at end of file
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/WriterAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/WriterAppenderTest.java
index dd4b8e0..392862e 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/WriterAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/WriterAppenderTest.java
@@ -1,109 +1,115 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-package org.apache.logging.log4j.core.appender;
-
-import java.io.ByteArrayOutputStream;
-import java.io.CharArrayWriter;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.sql.SQLException;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.Appender;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.config.Configuration;
-import org.apache.logging.log4j.core.layout.PatternLayout;
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-
-/**
- * Tests {@link WriterAppender}.
- */
-public class WriterAppenderTest {
-
- private static final String TEST_MSG = "FOO ERROR";
-
- @Rule
- public TestName testName = new TestName();
-
- private String getName(final Writer writer) {
- return writer.getClass().getSimpleName() + "." + testName.getMethodName();
- }
-
- private void test(final ByteArrayOutputStream out, final Writer writer) throws SQLException {
- final String name = getName(writer);
- addAppender(writer, name);
- final Logger logger = LogManager.getLogger(name);
- logger.error(TEST_MSG);
- final String actual = out.toString();
- Assert.assertTrue(actual, actual.contains(TEST_MSG));
- }
-
- private void test(final Writer writer) throws SQLException {
- final String name = getName(writer);
- addAppender(writer, name);
- final Logger logger = LogManager.getLogger(name);
- logger.error(TEST_MSG);
- final String actual = writer.toString();
- Assert.assertTrue(actual, actual.contains(TEST_MSG));
- }
-
- private void addAppender(final Writer writer, final String writerName) {
- final LoggerContext context = LoggerContext.getContext(false);
- final Configuration config = context.getConfiguration();
- final PatternLayout layout = PatternLayout.createDefaultLayout(config);
- final Appender appender = WriterAppender.createAppender(layout, null, writer, writerName, false, true);
- appender.start();
- config.addAppender(appender);
- ConfigurationTestUtils.updateLoggers(appender, config);
- }
-
- @Test
- public void testWriterAppenderToCharArrayWriter() throws SQLException {
- test(new CharArrayWriter());
- }
-
- @Test
- public void testWriterAppenderToOutputStreamWriter() throws SQLException {
- final ByteArrayOutputStream out = new ByteArrayOutputStream();
- final Writer writer = new OutputStreamWriter(out);
- test(out, writer);
- }
-
- @Test
- public void testWriterAppenderToPrintWriter() throws SQLException {
- final ByteArrayOutputStream out = new ByteArrayOutputStream();
- final Writer writer = new PrintWriter(out);
- test(out, writer);
- }
-
- @Test
- public void testWriterAppenderToStringWriter() throws SQLException {
- test(new StringWriter());
- }
-
- @Test
- public void testBuilder() {
- // This should compile
- WriterAppender.newBuilder().setTarget(new StringWriter()).setName("testWriterAppender").build();
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.core.appender;
+
+import java.io.ByteArrayOutputStream;
+import java.io.CharArrayWriter;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.lang.reflect.Method;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.layout.PatternLayout;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsString;
+
+/**
+ * Tests {@link WriterAppender}.
+ */
+public class WriterAppenderTest {
+
+ private static final String TEST_MSG = "FOO ERROR";
+
+ private String testMethodName;
+
+ @BeforeEach
+ void setUp(final TestInfo testInfo) {
+ testMethodName = testInfo.getTestMethod().map(Method::getName).orElseGet(testInfo::getDisplayName);
+ }
+
+ private String getName(final Writer writer) {
+ return writer.getClass().getSimpleName() + "." + testMethodName;
+ }
+
+ private void test(final ByteArrayOutputStream out, final Writer writer) {
+ final String name = getName(writer);
+ addAppender(writer, name);
+ final Logger logger = LogManager.getLogger(name);
+ logger.error(TEST_MSG);
+ final String actual = out.toString();
+ assertThat(actual, containsString(TEST_MSG));
+ }
+
+ private void test(final Writer writer) {
+ final String name = getName(writer);
+ addAppender(writer, name);
+ final Logger logger = LogManager.getLogger(name);
+ logger.error(TEST_MSG);
+ final String actual = writer.toString();
+ assertThat(actual, containsString(TEST_MSG));
+ }
+
+ private void addAppender(final Writer writer, final String writerName) {
+ final LoggerContext context = LoggerContext.getContext(false);
+ final Configuration config = context.getConfiguration();
+ final PatternLayout layout = PatternLayout.createDefaultLayout(config);
+ final Appender appender = WriterAppender.createAppender(layout, null, writer, writerName, false, true);
+ appender.start();
+ config.addAppender(appender);
+ ConfigurationTestUtils.updateLoggers(appender, config);
+ }
+
+ @Test
+ public void testWriterAppenderToCharArrayWriter() {
+ test(new CharArrayWriter());
+ }
+
+ @Test
+ public void testWriterAppenderToOutputStreamWriter() {
+ final ByteArrayOutputStream out = new ByteArrayOutputStream();
+ final Writer writer = new OutputStreamWriter(out);
+ test(out, writer);
+ }
+
+ @Test
+ public void testWriterAppenderToPrintWriter() {
+ final ByteArrayOutputStream out = new ByteArrayOutputStream();
+ final Writer writer = new PrintWriter(out);
+ test(out, writer);
+ }
+
+ @Test
+ public void testWriterAppenderToStringWriter() {
+ test(new StringWriter());
+ }
+
+ @Test
+ public void testBuilder() {
+ // This should compile
+ WriterAppender.newBuilder().setTarget(new StringWriter()).setName("testWriterAppender").build();
+ }
+}