This is an automated email from the ASF dual-hosted git repository.
chia7712 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new f06dff1 KAFKA-10887 Migrate log4j-appender module to JUnit 5 (#9785)
f06dff1 is described below
commit f06dff11030b3eebc9baa8e7ff95a1ce0c8f5997
Author: Geordie <[email protected]>
AuthorDate: Sun Jan 10 14:59:31 2021 +0800
KAFKA-10887 Migrate log4j-appender module to JUnit 5 (#9785)
Reviewers: Chia-Ping Tsai <[email protected]>
---
build.gradle | 6 +-
.../log4jappender/KafkaLog4jAppenderTest.java | 92 +++++++++-------------
2 files changed, 40 insertions(+), 58 deletions(-)
diff --git a/build.gradle b/build.gradle
index 483b444..5163452 100644
--- a/build.gradle
+++ b/build.gradle
@@ -241,7 +241,7 @@ subprojects {
}
}
- def shouldUseJUnit5 = ["tools", "raft"].contains(it.project.name)
+ def shouldUseJUnit5 = ["tools", "raft",
"log4j-appender"].contains(it.project.name)
def testLoggingEvents = ["passed", "skipped", "failed"]
def testShowStandardStreams = false
def testExceptionFormat = 'full'
@@ -1783,8 +1783,8 @@ project(':log4j-appender') {
compile libs.slf4jlog4j
testCompile project(':clients').sourceSets.test.output
- testCompile libs.junitJupiterApi
- testCompile libs.junitVintageEngine
+ testCompile libs.junitJupiter
+ testCompile libs.hamcrest
testCompile libs.easymock
}
diff --git
a/log4j-appender/src/test/java/org/apache/kafka/log4jappender/KafkaLog4jAppenderTest.java
b/log4j-appender/src/test/java/org/apache/kafka/log4jappender/KafkaLog4jAppenderTest.java
index 7b54efa..f0953e6 100644
---
a/log4j-appender/src/test/java/org/apache/kafka/log4jappender/KafkaLog4jAppenderTest.java
+++
b/log4j-appender/src/test/java/org/apache/kafka/log4jappender/KafkaLog4jAppenderTest.java
@@ -16,11 +16,9 @@
*/
package org.apache.kafka.log4jappender;
-import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
-
import org.apache.kafka.clients.producer.MockProducer;
import org.apache.kafka.clients.producer.RecordMetadata;
import org.apache.kafka.common.config.ConfigException;
@@ -29,9 +27,8 @@ import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.helpers.LogLog;
import org.easymock.EasyMock;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.util.Properties;
@@ -39,48 +36,40 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeoutException;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
public class KafkaLog4jAppenderTest {
private Logger logger = Logger.getLogger(KafkaLog4jAppenderTest.class);
- @Before
+ @BeforeEach
public void setup() {
LogLog.setInternalDebugging(true);
}
@Test
public void testKafkaLog4jConfigs() {
- // host missing
- Properties props = new Properties();
- props.put("log4j.rootLogger", "INFO");
- props.put("log4j.appender.KAFKA",
"org.apache.kafka.log4jappender.KafkaLog4jAppender");
- props.put("log4j.appender.KAFKA.layout",
"org.apache.log4j.PatternLayout");
- props.put("log4j.appender.KAFKA.layout.ConversionPattern", "%-5p: %c -
%m%n");
- props.put("log4j.appender.KAFKA.Topic", "test-topic");
- props.put("log4j.logger.kafka.log4j", "INFO, KAFKA");
+ Properties hostMissingProps = new Properties();
+ hostMissingProps.put("log4j.rootLogger", "INFO");
+ hostMissingProps.put("log4j.appender.KAFKA",
"org.apache.kafka.log4jappender.KafkaLog4jAppender");
+ hostMissingProps.put("log4j.appender.KAFKA.layout",
"org.apache.log4j.PatternLayout");
+ hostMissingProps.put("log4j.appender.KAFKA.layout.ConversionPattern",
"%-5p: %c - %m%n");
+ hostMissingProps.put("log4j.appender.KAFKA.Topic", "test-topic");
+ hostMissingProps.put("log4j.logger.kafka.log4j", "INFO, KAFKA");
- try {
- PropertyConfigurator.configure(props);
- Assert.fail("Missing properties exception was expected !");
- } catch (ConfigException ex) {
- // It's OK!
- }
+ assertThrows(ConfigException.class, () ->
PropertyConfigurator.configure(hostMissingProps), "Missing properties exception
was expected !");
- // topic missing
- props = new Properties();
- props.put("log4j.rootLogger", "INFO");
- props.put("log4j.appender.KAFKA",
"org.apache.kafka.log4jappender.KafkaLog4jAppender");
- props.put("log4j.appender.KAFKA.layout",
"org.apache.log4j.PatternLayout");
- props.put("log4j.appender.KAFKA.layout.ConversionPattern", "%-5p: %c -
%m%n");
- props.put("log4j.appender.KAFKA.brokerList", "127.0.0.1:9093");
- props.put("log4j.logger.kafka.log4j", "INFO, KAFKA");
+ Properties topicMissingProps = new Properties();
+ topicMissingProps.put("log4j.rootLogger", "INFO");
+ topicMissingProps.put("log4j.appender.KAFKA",
"org.apache.kafka.log4jappender.KafkaLog4jAppender");
+ topicMissingProps.put("log4j.appender.KAFKA.layout",
"org.apache.log4j.PatternLayout");
+ topicMissingProps.put("log4j.appender.KAFKA.layout.ConversionPattern",
"%-5p: %c - %m%n");
+ topicMissingProps.put("log4j.appender.KAFKA.brokerList",
"127.0.0.1:9093");
+ topicMissingProps.put("log4j.logger.kafka.log4j", "INFO, KAFKA");
- try {
- PropertyConfigurator.configure(props);
- Assert.fail("Missing properties exception was expected !");
- } catch (ConfigException ex) {
- // It's OK!
- }
+ assertThrows(ConfigException.class, () ->
PropertyConfigurator.configure(topicMissingProps), "Missing properties
exception was expected !");
}
@Test
@@ -90,9 +79,8 @@ public class KafkaLog4jAppenderTest {
PropertyConfigurator.configure(props);
MockKafkaLog4jAppender mockKafkaLog4jAppender =
getMockKafkaLog4jAppender();
- assertThat(
-
mockKafkaLog4jAppender.getProducerProperties().getProperty(SaslConfigs.SASL_MECHANISM),
- equalTo("PLAIN"));
+
+
assertEquals(mockKafkaLog4jAppender.getProducerProperties().getProperty(SaslConfigs.SASL_MECHANISM),
"PLAIN");
}
@Test
@@ -107,9 +95,7 @@ public class KafkaLog4jAppenderTest {
PropertyConfigurator.configure(props);
MockKafkaLog4jAppender mockKafkaLog4jAppender =
getMockKafkaLog4jAppender();
- assertThat(
-
mockKafkaLog4jAppender.getProducerProperties().getProperty(SaslConfigs.SASL_JAAS_CONFIG),
- equalTo("jaas-config"));
+
assertEquals(mockKafkaLog4jAppender.getProducerProperties().getProperty(SaslConfigs.SASL_JAAS_CONFIG),
"jaas-config");
}
@Test
@@ -130,13 +116,11 @@ public class KafkaLog4jAppenderTest {
for (int i = 1; i <= 5; ++i) {
logger.error(getMessage(i));
}
-
- Assert.assertEquals(
- 5, (getMockKafkaLog4jAppender()).getHistory().size());
+ assertEquals(getMockKafkaLog4jAppender().getHistory().size(), 5);
}
- @Test(expected = RuntimeException.class)
- public void
testLog4jAppendsWithSyncSendAndSimulateProducerFailShouldThrowException() {
+ @Test
+ public void testSyncSendAndSimulateProducerFailShouldThrowException() {
Properties props = getLog4jConfig(true);
props.put("log4j.appender.KAFKA.IgnoreExceptions", "false");
PropertyConfigurator.configure(props);
@@ -144,11 +128,11 @@ public class KafkaLog4jAppenderTest {
MockKafkaLog4jAppender mockKafkaLog4jAppender =
getMockKafkaLog4jAppender();
replaceProducerWithMocked(mockKafkaLog4jAppender, false);
- logger.error(getMessage(0));
+ assertThrows(RuntimeException.class, () ->
logger.error(getMessage(0)));
}
@Test
- public void
testLog4jAppendsWithSyncSendWithoutIgnoringExceptionsShouldNotThrowException() {
+ public void testSyncSendWithoutIgnoringExceptionsShouldNotThrowException()
{
Properties props = getLog4jConfig(true);
props.put("log4j.appender.KAFKA.IgnoreExceptions", "false");
PropertyConfigurator.configure(props);
@@ -156,29 +140,27 @@ public class KafkaLog4jAppenderTest {
MockKafkaLog4jAppender mockKafkaLog4jAppender =
getMockKafkaLog4jAppender();
replaceProducerWithMocked(mockKafkaLog4jAppender, true);
- logger.error(getMessage(0));
+ assertDoesNotThrow(() -> logger.error(getMessage(0)));
}
@Test
- public void
testLog4jAppendsWithRealProducerConfigWithSyncSendShouldNotThrowException() {
+ public void testRealProducerConfigWithSyncSendShouldNotThrowException() {
Properties props = getLog4jConfigWithRealProducer(true);
PropertyConfigurator.configure(props);
- logger.error(getMessage(0));
+ assertDoesNotThrow(() -> logger.error(getMessage(0)));
}
- @Test(expected = RuntimeException.class)
- public void
testLog4jAppendsWithRealProducerConfigWithSyncSendAndNotIgnoringExceptionsShouldThrowException()
{
+ @Test
+ public void
testRealProducerConfigWithSyncSendAndNotIgnoringExceptionsShouldThrowException()
{
Properties props = getLog4jConfigWithRealProducer(false);
PropertyConfigurator.configure(props);
- logger.error(getMessage(0));
+ assertThrows(RuntimeException.class, () ->
logger.error(getMessage(0)));
}
private void replaceProducerWithMocked(MockKafkaLog4jAppender
mockKafkaLog4jAppender, boolean success) {
- @SuppressWarnings("unchecked")
MockProducer<byte[], byte[]> producer =
EasyMock.niceMock(MockProducer.class);
- @SuppressWarnings("unchecked")
Future<RecordMetadata> futureMock = EasyMock.niceMock(Future.class);
try {
if (!success)