From b1562a90e013be43bdc14de33d0cceea04230819 Mon Sep 17 00:00:00 2001 From: dengziming Date: Wed, 30 Jun 2021 16:25:08 +0800 Subject: [PATCH] MINOR: Replace easymock with mockito in log4j-appender (#10852) Reviewers: Ismael Juma --- build.gradle | 2 +- .../log4jappender/KafkaLog4jAppenderTest.java | 27 +++++++++---------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 11f0218bd04..eac5be0c0f8 100644 --- a/build.gradle +++ b/build.gradle @@ -2199,7 +2199,7 @@ project(':log4j-appender') { testImplementation project(':clients').sourceSets.test.output testImplementation libs.junitJupiter testImplementation libs.hamcrest - testImplementation libs.easymock + testImplementation libs.mockitoCore } javadoc { 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 9711d29f315..7ec56335fa3 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 @@ -21,23 +21,25 @@ 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.TopicPartition; import org.apache.kafka.common.config.ConfigException; import org.apache.kafka.common.config.SaslConfigs; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.helpers.LogLog; -import org.easymock.EasyMock; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.nio.charset.StandardCharsets; import java.util.Properties; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeoutException; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class KafkaLog4jAppenderTest { @@ -159,17 +161,14 @@ public class KafkaLog4jAppenderTest { } private void replaceProducerWithMocked(MockKafkaLog4jAppender mockKafkaLog4jAppender, boolean success) { - MockProducer producer = EasyMock.niceMock(MockProducer.class); - Future futureMock = EasyMock.niceMock(Future.class); - try { - if (!success) - EasyMock.expect(futureMock.get()) - .andThrow(new ExecutionException("simulated timeout", new TimeoutException())); - } catch (InterruptedException | ExecutionException e) { - // just mocking - } - EasyMock.expect(producer.send(EasyMock.anyObject())).andReturn(futureMock); - EasyMock.replay(producer, futureMock); + @SuppressWarnings("unchecked") + MockProducer producer = mock(MockProducer.class); + CompletableFuture future = new CompletableFuture<>(); + if (success) + future.complete(new RecordMetadata(new TopicPartition("tp", 0), 0, 0, 0, 0, 0)); + else + future.completeExceptionally(new TimeoutException("simulated timeout")); + when(producer.send(any())).thenReturn(future); // reconfiguring mock appender mockKafkaLog4jAppender.setKafkaProducer(producer); mockKafkaLog4jAppender.activateOptions();