Fix compatibility with the latest Reactor
* Fix missed long-running tests according components under testing changes
This commit is contained in:
@@ -894,7 +894,7 @@ public abstract class MessagingGatewaySupport extends AbstractEndpoint
|
||||
|
||||
@Override
|
||||
public boolean send(Message<?> message, long timeout) {
|
||||
return this.replyMono.tryEmitValue(message).hasSucceeded();
|
||||
return this.replyMono.tryEmitValue(message).isSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -147,12 +147,12 @@ public class TcpOutboundGatewayTests {
|
||||
gateway.setRemoteTimeout(60000);
|
||||
gateway.setSendTimeout(61000);
|
||||
// ensure this did NOT change the remote timeout
|
||||
assertThat(TestUtils.getPropertyValue(gateway, "remoteTimeoutExpression.literalValue")).isEqualTo("60000");
|
||||
assertThat(TestUtils.getPropertyValue(gateway, "remoteTimeoutExpression.value")).isEqualTo(60000L);
|
||||
gateway.setRequestTimeout(60000);
|
||||
for (int i = 100; i < 200; i++) {
|
||||
gateway.handleMessage(MessageBuilder.withPayload("Test" + i).build());
|
||||
}
|
||||
Set<String> replies = new HashSet<String>();
|
||||
Set<String> replies = new HashSet<>();
|
||||
for (int i = 100; i < 200; i++) {
|
||||
Message<?> m = replyChannel.receive(10000);
|
||||
assertThat(m).isNotNull();
|
||||
@@ -207,7 +207,7 @@ public class TcpOutboundGatewayTests {
|
||||
for (int i = 100; i < 110; i++) {
|
||||
gateway.handleMessage(MessageBuilder.withPayload("Test" + i).build());
|
||||
}
|
||||
Set<String> replies = new HashSet<String>();
|
||||
Set<String> replies = new HashSet<>();
|
||||
for (int i = 100; i < 110; i++) {
|
||||
Message<?> m = replyChannel.receive(10000);
|
||||
assertThat(m).isNotNull();
|
||||
@@ -348,7 +348,7 @@ public class TcpOutboundGatewayTests {
|
||||
* The payload of the last message received by the remote side;
|
||||
* used to verify the correct response is received.
|
||||
*/
|
||||
final AtomicReference<String> lastReceived = new AtomicReference<String>();
|
||||
final AtomicReference<String> lastReceived = new AtomicReference<>();
|
||||
final CountDownLatch serverLatch = new CountDownLatch(2);
|
||||
|
||||
this.executor.execute(() -> {
|
||||
@@ -447,7 +447,7 @@ public class TcpOutboundGatewayTests {
|
||||
|
||||
@Test
|
||||
void testCachingFailover() throws Exception {
|
||||
final AtomicReference<ServerSocket> serverSocket = new AtomicReference<ServerSocket>();
|
||||
final AtomicReference<ServerSocket> serverSocket = new AtomicReference<>();
|
||||
final CountDownLatch latch = new CountDownLatch(1);
|
||||
final AtomicBoolean done = new AtomicBoolean();
|
||||
final CountDownLatch serverLatch = new CountDownLatch(1);
|
||||
@@ -489,7 +489,7 @@ public class TcpOutboundGatewayTests {
|
||||
TcpConnectionSupport mockConn1 = makeMockConnection();
|
||||
when(factory1.getConnection()).thenReturn(mockConn1);
|
||||
doThrow(new UncheckedIOException(new IOException("fail")))
|
||||
.when(mockConn1).send(Mockito.any(Message.class));
|
||||
.when(mockConn1).send(Mockito.any(Message.class));
|
||||
|
||||
AbstractClientConnectionFactory factory2 = new TcpNetClientConnectionFactory("localhost",
|
||||
serverSocket.get().getLocalPort());
|
||||
@@ -498,7 +498,7 @@ public class TcpOutboundGatewayTests {
|
||||
factory2.setSoTimeout(10000);
|
||||
factory2.setSingleUse(false);
|
||||
|
||||
List<AbstractClientConnectionFactory> factories = new ArrayList<AbstractClientConnectionFactory>();
|
||||
List<AbstractClientConnectionFactory> factories = new ArrayList<>();
|
||||
factories.add(factory1);
|
||||
factories.add(factory2);
|
||||
FailoverClientConnectionFactory failoverFactory = new FailoverClientConnectionFactory(factories);
|
||||
@@ -515,7 +515,7 @@ public class TcpOutboundGatewayTests {
|
||||
gateway.afterPropertiesSet();
|
||||
gateway.start();
|
||||
|
||||
GenericMessage<String> message = new GenericMessage<String>("foo");
|
||||
GenericMessage<String> message = new GenericMessage<>("foo");
|
||||
gateway.handleMessage(message);
|
||||
Message<?> reply = outputChannel.receive(0);
|
||||
assertThat(reply).isNotNull();
|
||||
@@ -572,7 +572,7 @@ public class TcpOutboundGatewayTests {
|
||||
when(factory1.getConnection()).thenReturn(mockConn1);
|
||||
when(factory1.isSingleUse()).thenReturn(true);
|
||||
doThrow(new UncheckedIOException(new IOException("fail")))
|
||||
.when(mockConn1).send(Mockito.any(Message.class));
|
||||
.when(mockConn1).send(Mockito.any(Message.class));
|
||||
CachingClientConnectionFactory cachingFactory1 = new CachingClientConnectionFactory(factory1, 1);
|
||||
|
||||
AbstractClientConnectionFactory factory2 = new TcpNetClientConnectionFactory("localhost",
|
||||
@@ -584,7 +584,7 @@ public class TcpOutboundGatewayTests {
|
||||
CachingClientConnectionFactory cachingFactory2 = new CachingClientConnectionFactory(factory2, 1);
|
||||
|
||||
// Failover
|
||||
List<AbstractClientConnectionFactory> factories = new ArrayList<AbstractClientConnectionFactory>();
|
||||
List<AbstractClientConnectionFactory> factories = new ArrayList<>();
|
||||
factories.add(cachingFactory1);
|
||||
factories.add(cachingFactory2);
|
||||
FailoverClientConnectionFactory failoverFactory = new FailoverClientConnectionFactory(factories);
|
||||
@@ -600,7 +600,7 @@ public class TcpOutboundGatewayTests {
|
||||
gateway.afterPropertiesSet();
|
||||
gateway.start();
|
||||
|
||||
GenericMessage<String> message = new GenericMessage<String>("foo");
|
||||
GenericMessage<String> message = new GenericMessage<>("foo");
|
||||
gateway.handleMessage(message);
|
||||
Message<?> reply = outputChannel.receive(0);
|
||||
assertThat(reply).isNotNull();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -54,12 +54,9 @@ import javax.mail.search.AndTerm;
|
||||
import javax.mail.search.FlagTerm;
|
||||
import javax.mail.search.FromTerm;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
@@ -67,6 +64,7 @@ import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.core.log.LogAccessor;
|
||||
import org.springframework.expression.Expression;
|
||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
import org.springframework.integration.channel.DirectChannel;
|
||||
@@ -74,9 +72,9 @@ import org.springframework.integration.channel.QueueChannel;
|
||||
import org.springframework.integration.handler.AbstractReplyProducingMessageHandler;
|
||||
import org.springframework.integration.history.MessageHistory;
|
||||
import org.springframework.integration.mail.support.DefaultMailHeaderMapper;
|
||||
import org.springframework.integration.test.condition.LongRunningTest;
|
||||
import org.springframework.integration.test.mail.TestMailServer;
|
||||
import org.springframework.integration.test.mail.TestMailServer.ImapServer;
|
||||
import org.springframework.integration.test.support.LongRunningIntegrationTest;
|
||||
import org.springframework.integration.test.util.TestUtils;
|
||||
import org.springframework.messaging.MessageHeaders;
|
||||
import org.springframework.messaging.PollableChannel;
|
||||
@@ -84,7 +82,8 @@ import org.springframework.scheduling.TaskScheduler;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
|
||||
import org.springframework.util.MimeTypeUtils;
|
||||
|
||||
import com.sun.mail.imap.IMAPFolder;
|
||||
|
||||
@@ -93,15 +92,13 @@ import com.sun.mail.imap.IMAPFolder;
|
||||
* @author Gary Russell
|
||||
* @author Artem Bilan
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringJUnitConfig
|
||||
@ContextConfiguration(
|
||||
"classpath:org/springframework/integration/mail/config/ImapIdleChannelAdapterParserTests-context.xml")
|
||||
@DirtiesContext
|
||||
@LongRunningTest
|
||||
public class ImapMailReceiverTests {
|
||||
|
||||
@ClassRule
|
||||
public static final LongRunningIntegrationTest longTests = new LongRunningIntegrationTest();
|
||||
|
||||
private AtomicInteger failed;
|
||||
|
||||
private ImapServer imapIdleServer;
|
||||
@@ -109,7 +106,7 @@ public class ImapMailReceiverTests {
|
||||
@Autowired
|
||||
private ApplicationContext context;
|
||||
|
||||
@Before
|
||||
@BeforeEach
|
||||
public void setup() throws InterruptedException {
|
||||
failed = new AtomicInteger(0);
|
||||
this.imapIdleServer = TestMailServer.imap(0);
|
||||
@@ -120,7 +117,7 @@ public class ImapMailReceiverTests {
|
||||
assertThat(n < 100).isTrue();
|
||||
}
|
||||
|
||||
@After
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
this.imapIdleServer.stop();
|
||||
}
|
||||
@@ -192,7 +189,7 @@ public class ImapMailReceiverTests {
|
||||
setUpScheduler(receiver, taskScheduler);
|
||||
receiver.setUserFlag("testSIUserFlag");
|
||||
receiver.afterPropertiesSet();
|
||||
Log logger = spy(TestUtils.getPropertyValue(receiver, "logger", Log.class));
|
||||
LogAccessor logger = spy(TestUtils.getPropertyValue(receiver, "logger", LogAccessor.class));
|
||||
new DirectFieldAccessor(receiver).setPropertyValue("logger", logger);
|
||||
ImapIdleChannelAdapter adapter = new ImapIdleChannelAdapter(receiver);
|
||||
QueueChannel channel = new QueueChannel();
|
||||
@@ -222,7 +219,7 @@ public class ImapMailReceiverTests {
|
||||
MessageHeaders headers = received.getHeaders();
|
||||
assertThat(headers.get(MailHeaders.RAW_HEADERS)).isNotNull();
|
||||
assertThat(headers.get(MailHeaders.CONTENT_TYPE)).isEqualTo("TEXT/PLAIN; charset=ISO-8859-1");
|
||||
assertThat(headers.get(MessageHeaders.CONTENT_TYPE)).isEqualTo("TEXT/PLAIN; charset=ISO-8859-1");
|
||||
assertThat(headers.get(MessageHeaders.CONTENT_TYPE)).isEqualTo(MimeTypeUtils.TEXT_PLAIN_VALUE);
|
||||
assertThat(headers.get(MailHeaders.FROM)).isEqualTo("Bar <bar@baz>");
|
||||
String[] toHeader = headers.get(MailHeaders.TO, String[].class);
|
||||
assertThat(toHeader).isNotEmpty();
|
||||
@@ -259,6 +256,7 @@ public class ImapMailReceiverTests {
|
||||
|
||||
private AbstractMailReceiver receiveAndMarkAsReadDontDeleteGuts(AbstractMailReceiver receiver, Message msg1,
|
||||
Message msg2) throws NoSuchFieldException, IllegalAccessException, MessagingException {
|
||||
|
||||
((ImapMailReceiver) receiver).setShouldMarkMessagesAsRead(true);
|
||||
receiver = spy(receiver);
|
||||
receiver.setBeanFactory(mock(BeanFactory.class));
|
||||
@@ -269,7 +267,7 @@ public class ImapMailReceiverTests {
|
||||
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
|
||||
folderField.set(receiver, folder);
|
||||
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
|
||||
willAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
|
||||
@@ -334,7 +332,7 @@ public class ImapMailReceiverTests {
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
willAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
|
||||
int folderOpenMode = (int) accessor.getPropertyValue("folderOpenMode");
|
||||
@@ -370,7 +368,7 @@ public class ImapMailReceiverTests {
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
willAnswer(invocation -> null).given(receiver).openFolder();
|
||||
|
||||
willAnswer(invocation -> messages).given(receiver).searchForNewMessages();
|
||||
@@ -399,7 +397,7 @@ public class ImapMailReceiverTests {
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
willAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
|
||||
int folderOpenMode = (int) accessor.getPropertyValue("folderOpenMode");
|
||||
@@ -435,7 +433,7 @@ public class ImapMailReceiverTests {
|
||||
|
||||
Message msg1 = mock(MimeMessage.class);
|
||||
Message msg2 = mock(MimeMessage.class);
|
||||
final Message[] messages = new Message[] { msg1, msg2 };
|
||||
final Message[] messages = new Message[]{ msg1, msg2 };
|
||||
willAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
|
||||
int folderOpenMode = (int) accessor.getPropertyValue("folderOpenMode");
|
||||
@@ -470,7 +468,7 @@ public class ImapMailReceiverTests {
|
||||
MimeMessage mailMessage = mock(MimeMessage.class);
|
||||
Flags flags = mock(Flags.class);
|
||||
given(mailMessage.getFlags()).willReturn(flags);
|
||||
final Message[] messages = new Message[] { mailMessage };
|
||||
final Message[] messages = new Message[]{ mailMessage };
|
||||
|
||||
willAnswer(invocation -> {
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor((invocation.getMock()));
|
||||
@@ -538,7 +536,7 @@ public class ImapMailReceiverTests {
|
||||
MimeMessage mailMessage = mock(MimeMessage.class);
|
||||
Flags flags = mock(Flags.class);
|
||||
given(mailMessage.getFlags()).willReturn(flags);
|
||||
final Message[] messages = new Message[] { mailMessage };
|
||||
final Message[] messages = new Message[]{ mailMessage };
|
||||
|
||||
willAnswer(invocation -> messages).given(receiver).searchForNewMessages();
|
||||
|
||||
@@ -585,7 +583,7 @@ public class ImapMailReceiverTests {
|
||||
MimeMessage mailMessage = mock(MimeMessage.class);
|
||||
Flags flags = mock(Flags.class);
|
||||
given(mailMessage.getFlags()).willReturn(flags);
|
||||
final Message[] messages = new Message[] { mailMessage };
|
||||
final Message[] messages = new Message[]{ mailMessage };
|
||||
|
||||
final AtomicInteger shouldFindMessagesCounter = new AtomicInteger(2);
|
||||
willAnswer(invocation -> {
|
||||
@@ -658,7 +656,7 @@ public class ImapMailReceiverTests {
|
||||
MimeMessage mailMessage = mock(MimeMessage.class);
|
||||
Flags flags = mock(Flags.class);
|
||||
given(mailMessage.getFlags()).willReturn(flags);
|
||||
final Message[] messages = new Message[] { mailMessage };
|
||||
final Message[] messages = new Message[]{ mailMessage };
|
||||
|
||||
willAnswer(invocation -> messages).given(receiver).searchForNewMessages();
|
||||
|
||||
@@ -667,7 +665,7 @@ public class ImapMailReceiverTests {
|
||||
final CountDownLatch idles = new CountDownLatch(2);
|
||||
willAnswer(invocation -> {
|
||||
idles.countDown();
|
||||
Thread.sleep(1000);
|
||||
Thread.sleep(500);
|
||||
return null;
|
||||
}).given(folder).idle();
|
||||
|
||||
@@ -714,7 +712,7 @@ public class ImapMailReceiverTests {
|
||||
Folder folder = mock(Folder.class);
|
||||
given(folder.exists()).willReturn(true);
|
||||
given(folder.isOpen()).willReturn(true);
|
||||
given(folder.search(Mockito.any())).willReturn(new Message[] { });
|
||||
given(folder.search(Mockito.any())).willReturn(new Message[]{ });
|
||||
given(store.getFolder(Mockito.any(URLName.class))).willReturn(folder);
|
||||
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
|
||||
|
||||
@@ -796,7 +794,7 @@ public class ImapMailReceiverTests {
|
||||
given(folder.isOpen()).willReturn(true);
|
||||
|
||||
Message message = new MimeMessage(null, new ClassPathResource("test.mail").getInputStream());
|
||||
given(folder.search(Mockito.any())).willReturn(new Message[] { message });
|
||||
given(folder.search(Mockito.any())).willReturn(new Message[]{ message });
|
||||
given(store.getFolder(Mockito.any(URLName.class))).willReturn(folder);
|
||||
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
|
||||
DirectFieldAccessor df = new DirectFieldAccessor(receiver);
|
||||
@@ -811,8 +809,8 @@ public class ImapMailReceiverTests {
|
||||
public void testNullMessages() throws Exception {
|
||||
Message message1 = mock(Message.class);
|
||||
Message message2 = mock(Message.class);
|
||||
final Message[] messages1 = new Message[] { null, null, message1 };
|
||||
final Message[] messages2 = new Message[] { message2 };
|
||||
final Message[] messages1 = new Message[]{ null, null, message1 };
|
||||
final Message[] messages2 = new Message[]{ message2 };
|
||||
final SearchTermStrategy searchTermStrategy = mock(SearchTermStrategy.class);
|
||||
class TestReceiver extends ImapMailReceiver {
|
||||
|
||||
@@ -872,9 +870,9 @@ public class ImapMailReceiverTests {
|
||||
storeField.set(receiver, store);
|
||||
|
||||
ImapIdleChannelAdapter adapter = new ImapIdleChannelAdapter(receiver);
|
||||
Log logger = spy(TestUtils.getPropertyValue(adapter, "logger", Log.class));
|
||||
LogAccessor logger = spy(TestUtils.getPropertyValue(adapter, "logger", LogAccessor.class));
|
||||
new DirectFieldAccessor(adapter).setPropertyValue("logger", logger);
|
||||
willDoNothing().given(logger).warn(anyString(), any(Throwable.class));
|
||||
willDoNothing().given(logger).warn(any(Throwable.class), anyString());
|
||||
willAnswer(i -> {
|
||||
i.callRealMethod();
|
||||
throw new FolderClosedException(folder, "test");
|
||||
|
||||
Reference in New Issue
Block a user