MINOR: Replace easymock with mockito in log4j-appender (#10852)

Reviewers: Ismael Juma <ismael@juma.me.uk>
This commit is contained in:
dengziming 2021-06-30 16:25:08 +08:00 committed by GitHub
parent 19edbda164
commit b1562a90e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 15 deletions

View File

@ -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 {

View File

@ -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<byte[], byte[]> producer = EasyMock.niceMock(MockProducer.class);
Future<RecordMetadata> 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<byte[], byte[]> producer = mock(MockProducer.class);
CompletableFuture<RecordMetadata> 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();