|
28 | 28 | import static org.mockito.Mockito.spy; |
29 | 29 | import static org.mockito.Mockito.times; |
30 | 30 | import static org.mockito.Mockito.verify; |
| 31 | +import static org.mockito.Mockito.when; |
31 | 32 |
|
32 | 33 | import java.io.IOException; |
33 | 34 | import java.lang.reflect.Field; |
|
91 | 92 | * @author Gary Russell |
92 | 93 | * @author Artem Bilan |
93 | 94 | * @author Alexander Pinske |
| 95 | + * @author Dominik Simmen |
94 | 96 | */ |
95 | 97 | @SpringJUnitConfig |
96 | 98 | @ContextConfiguration( |
@@ -309,6 +311,53 @@ public void receiveAndMarkAsReadDontDeleteFiltered() throws Exception { |
309 | 311 | verify(receiver, times(0)).deleteMessages(Mockito.any()); |
310 | 312 | } |
311 | 313 |
|
| 314 | + @Test |
| 315 | + public void receiveAndDebugIsDisabledNotLogFiltered() throws Exception { |
| 316 | + AbstractMailReceiver receiver = new ImapMailReceiver(); |
| 317 | + |
| 318 | + LogAccessor logger = spy(TestUtils.getPropertyValue(receiver, "logger", LogAccessor.class)); |
| 319 | + new DirectFieldAccessor(receiver).setPropertyValue("logger", logger); |
| 320 | + when(logger.isDebugEnabled()).thenReturn(false); |
| 321 | + |
| 322 | + Message msg1 = mock(MimeMessage.class); |
| 323 | + Message msg2 = mock(MimeMessage.class); |
| 324 | + Expression selectorExpression = new SpelExpressionParser().parseExpression("false"); |
| 325 | + receiver.setSelectorExpression(selectorExpression); |
| 326 | + receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2); |
| 327 | + verify(logger, times(2)).isDebugEnabled(); |
| 328 | + verify(msg1, never()).isExpunged(); |
| 329 | + verify(msg2, never()).isExpunged(); |
| 330 | + verify(msg1, never()).getSubject(); |
| 331 | + verify(msg2, never()).getSubject(); |
| 332 | + verify(logger, never()).debug(Mockito.startsWith("Expunged message received")); |
| 333 | + verify(logger, never()).debug(org.mockito.ArgumentMatchers.contains("will be discarded by the matching filter")); |
| 334 | + } |
| 335 | + |
| 336 | + @Test |
| 337 | + public void receiveExpungedAndNotExpungedLogFiltered() throws Exception { |
| 338 | + AbstractMailReceiver receiver = new ImapMailReceiver(); |
| 339 | + |
| 340 | + LogAccessor logger = spy(TestUtils.getPropertyValue(receiver, "logger", LogAccessor.class)); |
| 341 | + new DirectFieldAccessor(receiver).setPropertyValue("logger", logger); |
| 342 | + when(logger.isDebugEnabled()).thenReturn(true); |
| 343 | + |
| 344 | + Message msg1 = mock(MimeMessage.class); |
| 345 | + Message msg2 = mock(MimeMessage.class); |
| 346 | + given(msg1.isExpunged()).willReturn(true); |
| 347 | + given(msg1.getSubject()).willReturn("msg1"); |
| 348 | + given(msg2.getSubject()).willReturn("msg2"); |
| 349 | + Expression selectorExpression = new SpelExpressionParser().parseExpression("false"); |
| 350 | + receiver.setSelectorExpression(selectorExpression); |
| 351 | + receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2); |
| 352 | + verify(logger, times(2)).isDebugEnabled(); |
| 353 | + verify(msg1).isExpunged(); |
| 354 | + verify(msg2).isExpunged(); |
| 355 | + verify(msg1, never()).getSubject(); |
| 356 | + verify(msg2).getSubject(); |
| 357 | + verify(logger).debug(Mockito.startsWith("Expunged message discarded")); |
| 358 | + verify(logger).debug(org.mockito.ArgumentMatchers.contains("'msg2' will be discarded by the matching filter")); |
| 359 | + } |
| 360 | + |
312 | 361 |
|
313 | 362 | @Test |
314 | 363 | public void receiveMarkAsReadAndDelete() throws Exception { |
|
0 commit comments