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)

Reply via email to