Skip to content

Commit 5e34809

Browse files
committed
Upgrade to Mockito-5.3.0
Fix `ImapMailReceiverTests` and `Pop3MailReceiverTests` to not use mocks for messages
1 parent 3f27dfb commit 5e34809

File tree

3 files changed

+63
-65
lines changed

3 files changed

+63
-65
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ ext {
8989
mailVersion = '1.0.0'
9090
micrometerTracingVersion = '1.1.0-RC1'
9191
micrometerVersion = '1.11.0-RC1'
92-
mockitoVersion = '5.2.0'
92+
mockitoVersion = '5.3.0'
9393
mongoDriverVersion = '4.9.1'
9494
mysqlVersion = '8.0.32'
9595
pahoMqttClientVersion = '1.2.5'

spring-integration-mail/src/test/java/org/springframework/integration/mail/ImapMailReceiverTests.java

+40-45
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
@SpringJUnitConfig
105105
@ContextConfiguration(
106106
"classpath:org/springframework/integration/mail/config/ImapIdleChannelAdapterParserTests-context.xml")
107-
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
107+
@DirtiesContext
108108
public class ImapMailReceiverTests {
109109

110110
private AtomicInteger failed;
@@ -269,11 +269,11 @@ public void receiveAndMarkAsReadDontDelete() throws Exception {
269269
user.deliver(GreenMailUtil.createTextEmail("user", "sender", "subject", "body",
270270
imapIdleServer.getImap().getServerSetup()));
271271
AbstractMailReceiver receiver = new ImapMailReceiver();
272-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
273-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
272+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
273+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
274274
receiver = receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2);
275-
verify(msg1, times(1)).setFlag(Flag.SEEN, true);
276-
verify(msg2, times(1)).setFlag(Flag.SEEN, true);
275+
assertThat(msg1.getFlags().contains(Flag.SEEN)).isTrue();
276+
assertThat(msg2.getFlags().contains(Flag.SEEN)).isTrue();
277277
verify(receiver, times(0)).deleteMessages(Mockito.any());
278278
}
279279

@@ -312,28 +312,28 @@ private AbstractMailReceiver receiveAndMarkAsReadDontDeleteGuts(AbstractMailRece
312312
@Test
313313
public void receiveAndMarkAsReadDontDeletePassingFilter() throws Exception {
314314
AbstractMailReceiver receiver = new ImapMailReceiver();
315-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
316-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
315+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
316+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
317317
Expression selectorExpression = new SpelExpressionParser().parseExpression("true");
318318
receiver.setSelectorExpression(selectorExpression);
319319
receiver = receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2);
320-
verify(msg1, times(1)).setFlag(Flag.SEEN, true);
321-
verify(msg2, times(1)).setFlag(Flag.SEEN, true);
320+
assertThat(msg1.getFlags().contains(Flag.SEEN)).isTrue();
321+
assertThat(msg2.getFlags().contains(Flag.SEEN)).isTrue();
322322
verify(receiver, times(0)).deleteMessages(Mockito.any());
323323
}
324324

325325
@Test
326326
public void receiveAndMarkAsReadDontDeleteFiltered() throws Exception {
327327
AbstractMailReceiver receiver = new ImapMailReceiver();
328-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
329-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
328+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
329+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
330330
given(msg2.getSubject()).willReturn("foo"); // should not be marked seen
331331
Expression selectorExpression = new SpelExpressionParser()
332332
.parseExpression("subject == null OR !subject.equals('foo')");
333333
receiver.setSelectorExpression(selectorExpression);
334334
receiver = receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2);
335-
verify(msg1, times(1)).setFlag(Flag.SEEN, true);
336-
verify(msg2, never()).setFlag(Flag.SEEN, true);
335+
assertThat(msg1.getFlags().contains(Flag.SEEN)).isTrue();
336+
assertThat(msg2.getFlags().contains(Flag.SEEN)).isTrue();
337337
verify(receiver, times(0)).deleteMessages(Mockito.any());
338338
}
339339

@@ -400,8 +400,8 @@ public void receiveMarkAsReadAndDelete() throws Exception {
400400
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
401401
folderField.set(receiver, folder);
402402

403-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
404-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
403+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
404+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
405405
final Message[] messages = new Message[] {msg1, msg2};
406406
willAnswer(invocation -> {
407407
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
@@ -416,8 +416,10 @@ public void receiveMarkAsReadAndDelete() throws Exception {
416416

417417
willAnswer(invocation -> null).given(receiver).fetchMessages(messages);
418418
receiver.receive();
419-
verify(msg1, times(1)).setFlag(Flag.SEEN, true);
420-
verify(msg2, times(1)).setFlag(Flag.SEEN, true);
419+
420+
assertThat(msg1.getFlags().contains(Flag.SEEN)).isTrue();
421+
assertThat(msg2.getFlags().contains(Flag.SEEN)).isTrue();
422+
421423
verify(receiver, times(1)).deleteMessages(Mockito.any());
422424
}
423425

@@ -436,8 +438,8 @@ public void receiveAndDontMarkAsRead() throws Exception {
436438
folderField.set(receiver, folder);
437439

438440

439-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
440-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
441+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
442+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
441443
final Message[] messages = new Message[] {msg1, msg2};
442444
willAnswer(invocation -> null).given(receiver).openFolder();
443445

@@ -446,8 +448,8 @@ public void receiveAndDontMarkAsRead() throws Exception {
446448
willAnswer(invocation -> null).given(receiver).fetchMessages(messages);
447449
receiver.afterPropertiesSet();
448450
receiver.receive();
449-
verify(msg1, times(0)).setFlag(Flag.SEEN, true);
450-
verify(msg2, times(0)).setFlag(Flag.SEEN, true);
451+
assertThat(msg1.getFlags().contains(Flag.SEEN)).isFalse();
452+
assertThat(msg2.getFlags().contains(Flag.SEEN)).isFalse();
451453
}
452454

453455
@Test
@@ -465,8 +467,8 @@ public void receiveAndDontMarkAsReadButDelete() throws Exception {
465467
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
466468
folderField.set(receiver, folder);
467469

468-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
469-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
470+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
471+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
470472
final Message[] messages = new Message[] {msg1, msg2};
471473
willAnswer(invocation -> {
472474
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
@@ -482,10 +484,11 @@ public void receiveAndDontMarkAsReadButDelete() throws Exception {
482484
willAnswer(invocation -> null).given(receiver).fetchMessages(messages);
483485
receiver.afterPropertiesSet();
484486
receiver.receive();
485-
verify(msg1, times(0)).setFlag(Flag.SEEN, true);
486-
verify(msg2, times(0)).setFlag(Flag.SEEN, true);
487-
verify(msg1, times(1)).setFlag(Flag.DELETED, true);
488-
verify(msg2, times(1)).setFlag(Flag.DELETED, true);
487+
488+
assertThat(msg1.getFlags().contains(Flag.SEEN)).isFalse();
489+
assertThat(msg2.getFlags().contains(Flag.SEEN)).isFalse();
490+
assertThat(msg1.getFlags().contains(Flag.DELETED)).isTrue();
491+
assertThat(msg2.getFlags().contains(Flag.DELETED)).isTrue();
489492
}
490493

491494
@Test
@@ -501,8 +504,8 @@ public void receiveAndIgnoreMarkAsReadDontDelete() throws Exception {
501504
given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER));
502505
folderField.set(receiver, folder);
503506

504-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
505-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
507+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
508+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
506509
final Message[] messages = new Message[] {msg1, msg2};
507510
willAnswer(invocation -> {
508511
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
@@ -517,8 +520,8 @@ public void receiveAndIgnoreMarkAsReadDontDelete() throws Exception {
517520

518521
willAnswer(invocation -> null).given(receiver).fetchMessages(messages);
519522
receiver.receive();
520-
verify(msg1, times(1)).setFlag(Flag.SEEN, true);
521-
verify(msg2, times(1)).setFlag(Flag.SEEN, true);
523+
assertThat(msg1.getFlags().contains(Flag.SEEN)).isTrue();
524+
assertThat(msg2.getFlags().contains(Flag.SEEN)).isTrue();
522525
verify(receiver, times(0)).deleteMessages(Mockito.any());
523526
}
524527

@@ -535,9 +538,7 @@ public void testMessageHistory() throws Exception {
535538
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter);
536539
adapterAccessor.setPropertyValue("mailReceiver", receiver);
537540

538-
Message mailMessage = spy(GreenMailUtil.newMimeMessage("test1"));
539-
Flags flags = mock(Flags.class);
540-
given(mailMessage.getFlags()).willReturn(flags);
541+
Message mailMessage = GreenMailUtil.newMimeMessage("test1");
541542
final Message[] messages = new Message[] {mailMessage};
542543

543544
willAnswer(invocation -> {
@@ -603,10 +604,8 @@ protected Object handleRequestMessage(org.springframework.messaging.Message<?> r
603604
DirectFieldAccessor adapterAccessor = new DirectFieldAccessor(adapter);
604605
adapterAccessor.setPropertyValue("mailReceiver", receiver);
605606

606-
Message mailMessage = spy(GreenMailUtil.newMimeMessage("test1"));
607-
Flags flags = mock(Flags.class);
608-
given(mailMessage.getFlags()).willReturn(flags);
609-
final Message[] messages = new Message[] {mailMessage};
607+
Message mailMessage = GreenMailUtil.newMimeMessage("test1");
608+
Message[] messages = new Message[] {mailMessage};
610609

611610
willAnswer(invocation -> messages).given(receiver).searchForNewMessages();
612611

@@ -650,9 +649,7 @@ public void testNoInitialIdleDelayWhenRecentNotSupported() throws Exception {
650649

651650
willAnswer(invocation -> folder).given(receiver).getFolder();
652651

653-
Message mailMessage = spy(GreenMailUtil.newMimeMessage("test1"));
654-
Flags flags = mock(Flags.class);
655-
given(mailMessage.getFlags()).willReturn(flags);
652+
Message mailMessage = GreenMailUtil.newMimeMessage("test1");
656653
final Message[] messages = new Message[] {mailMessage};
657654

658655
final AtomicInteger shouldFindMessagesCounter = new AtomicInteger(2);
@@ -724,9 +721,7 @@ public void testInitialIdleDelayWhenRecentIsSupported() throws Exception {
724721

725722
willAnswer(invocation -> folder).given(receiver).getFolder();
726723

727-
Message mailMessage = spy(GreenMailUtil.newMimeMessage("test1"));
728-
Flags flags = mock(Flags.class);
729-
given(mailMessage.getFlags()).willReturn(flags);
724+
Message mailMessage = GreenMailUtil.newMimeMessage("test1");
730725
final Message[] messages = new Message[] {mailMessage};
731726

732727
willAnswer(invocation -> messages).given(receiver).searchForNewMessages();
@@ -747,7 +742,7 @@ public void testInitialIdleDelayWhenRecentIsSupported() throws Exception {
747742
* not receive any early messages.
748743
*/
749744
assertThat(channel.receive(100)).isNull();
750-
assertThat(channel.receive(10000)).isNotNull();
745+
assertThat(channel.receive(20000)).isNotNull();
751746
assertThat(idles.await(10, TimeUnit.SECONDS)).isTrue();
752747
adapter.stop();
753748
}

spring-integration-mail/src/test/java/org/springframework/integration/mail/Pop3MailReceiverTests.java

+22-19
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-2023 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -28,11 +28,10 @@
2828
import org.springframework.beans.DirectFieldAccessor;
2929
import org.springframework.beans.factory.BeanFactory;
3030

31+
import static org.assertj.core.api.Assertions.assertThat;
3132
import static org.mockito.Mockito.doAnswer;
3233
import static org.mockito.Mockito.mock;
3334
import static org.mockito.Mockito.spy;
34-
import static org.mockito.Mockito.times;
35-
import static org.mockito.Mockito.verify;
3635
import static org.mockito.Mockito.when;
3736

3837
/**
@@ -57,8 +56,8 @@ public void receiveAndDelete() throws Exception {
5756
when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
5857
folderField.set(receiver, folder);
5958

60-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
61-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
59+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
60+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
6261
final Message[] messages = new Message[] {msg1, msg2};
6362
doAnswer(invocation -> {
6463
DirectFieldAccessor accessor = new DirectFieldAccessor(invocation.getMock());
@@ -74,8 +73,9 @@ public void receiveAndDelete() throws Exception {
7473
doAnswer(invocation -> null).when(receiver).fetchMessages(messages);
7574
receiver.afterPropertiesSet();
7675
receiver.receive();
77-
verify(msg1, times(1)).setFlag(Flag.DELETED, true);
78-
verify(msg2, times(1)).setFlag(Flag.DELETED, true);
76+
77+
assertThat(msg1.getFlags().contains(Flag.DELETED)).isTrue();
78+
assertThat(msg2.getFlags().contains(Flag.DELETED)).isTrue();
7979
}
8080

8181
@Test
@@ -92,8 +92,8 @@ public void receiveAndDontDelete() throws Exception {
9292
when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
9393
folderField.set(receiver, folder);
9494

95-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
96-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
95+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
96+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
9797
final Message[] messages = new Message[] {msg1, msg2};
9898
doAnswer(invocation -> null).when(receiver).openFolder();
9999

@@ -102,8 +102,9 @@ public void receiveAndDontDelete() throws Exception {
102102
doAnswer(invocation -> null).when(receiver).fetchMessages(messages);
103103
receiver.afterPropertiesSet();
104104
receiver.receive();
105-
verify(msg1, times(0)).setFlag(Flag.DELETED, true);
106-
verify(msg2, times(0)).setFlag(Flag.DELETED, true);
105+
106+
assertThat(msg1.getFlags().contains(Flag.DELETED)).isFalse();
107+
assertThat(msg2.getFlags().contains(Flag.DELETED)).isFalse();
107108
}
108109

109110
@Test
@@ -119,8 +120,8 @@ public void receiveAndDontSetDeleteWithUrl() throws Exception {
119120
when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
120121
folderField.set(receiver, folder);
121122

122-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
123-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
123+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
124+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
124125
final Message[] messages = new Message[] {msg1, msg2};
125126
doAnswer(invocation -> null).when(receiver).openFolder();
126127

@@ -129,8 +130,9 @@ public void receiveAndDontSetDeleteWithUrl() throws Exception {
129130
doAnswer(invocation -> null).when(receiver).fetchMessages(messages);
130131
receiver.afterPropertiesSet();
131132
receiver.receive();
132-
verify(msg1, times(0)).setFlag(Flag.DELETED, true);
133-
verify(msg2, times(0)).setFlag(Flag.DELETED, true);
133+
134+
assertThat(msg1.getFlags().contains(Flag.DELETED)).isFalse();
135+
assertThat(msg2.getFlags().contains(Flag.DELETED)).isFalse();
134136
}
135137

136138
@Test
@@ -146,8 +148,8 @@ public void receiveAndDontSetDeleteWithoutUrl() throws Exception {
146148
when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
147149
folderField.set(receiver, folder);
148150

149-
Message msg1 = spy(GreenMailUtil.newMimeMessage("test1"));
150-
Message msg2 = spy(GreenMailUtil.newMimeMessage("test2"));
151+
Message msg1 = GreenMailUtil.newMimeMessage("test1");
152+
Message msg2 = GreenMailUtil.newMimeMessage("test2");
151153
final Message[] messages = new Message[] {msg1, msg2};
152154
doAnswer(invocation -> null).when(receiver).openFolder();
153155

@@ -156,8 +158,9 @@ public void receiveAndDontSetDeleteWithoutUrl() throws Exception {
156158
doAnswer(invocation -> null).when(receiver).fetchMessages(messages);
157159
receiver.afterPropertiesSet();
158160
receiver.receive();
159-
verify(msg1, times(0)).setFlag(Flag.DELETED, true);
160-
verify(msg2, times(0)).setFlag(Flag.DELETED, true);
161+
162+
assertThat(msg1.getFlags().contains(Flag.DELETED)).isFalse();
163+
assertThat(msg2.getFlags().contains(Flag.DELETED)).isFalse();
161164
}
162165

163166
}

0 commit comments

Comments
 (0)