|
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; |
|
100 | 101 | * @author Gary Russell |
101 | 102 | * @author Artem Bilan |
102 | 103 | * @author Alexander Pinske |
| 104 | + * @author Dominik Simmen |
103 | 105 | */ |
104 | 106 | @SpringJUnitConfig |
105 | 107 | @ContextConfiguration( |
@@ -336,6 +338,53 @@ public void receiveAndMarkAsReadDontDeleteFiltered() throws Exception { |
336 | 338 | verify(receiver, times(0)).deleteMessages(Mockito.any()); |
337 | 339 | } |
338 | 340 |
|
| 341 | + @Test |
| 342 | + public void receiveAndDebugIsDisabledNotLogFiltered() throws Exception { |
| 343 | + AbstractMailReceiver receiver = new ImapMailReceiver(); |
| 344 | + |
| 345 | + LogAccessor logger = spy(TestUtils.getPropertyValue(receiver, "logger", LogAccessor.class)); |
| 346 | + new DirectFieldAccessor(receiver).setPropertyValue("logger", logger); |
| 347 | + when(logger.isDebugEnabled()).thenReturn(false); |
| 348 | + |
| 349 | + Message msg1 = mock(MimeMessage.class); |
| 350 | + Message msg2 = mock(MimeMessage.class); |
| 351 | + Expression selectorExpression = new SpelExpressionParser().parseExpression("false"); |
| 352 | + receiver.setSelectorExpression(selectorExpression); |
| 353 | + receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2); |
| 354 | + verify(logger, times(2)).isDebugEnabled(); |
| 355 | + verify(msg1, never()).isExpunged(); |
| 356 | + verify(msg2, never()).isExpunged(); |
| 357 | + verify(msg1, never()).getSubject(); |
| 358 | + verify(msg2, never()).getSubject(); |
| 359 | + verify(logger, never()).debug(Mockito.startsWith("Expunged message received")); |
| 360 | + verify(logger, never()).debug(org.mockito.ArgumentMatchers.contains("will be discarded by the matching filter")); |
| 361 | + } |
| 362 | + |
| 363 | + @Test |
| 364 | + public void receiveExpungedAndNotExpungedLogFiltered() throws Exception { |
| 365 | + AbstractMailReceiver receiver = new ImapMailReceiver(); |
| 366 | + |
| 367 | + LogAccessor logger = spy(TestUtils.getPropertyValue(receiver, "logger", LogAccessor.class)); |
| 368 | + new DirectFieldAccessor(receiver).setPropertyValue("logger", logger); |
| 369 | + when(logger.isDebugEnabled()).thenReturn(true); |
| 370 | + |
| 371 | + Message msg1 = mock(MimeMessage.class); |
| 372 | + Message msg2 = mock(MimeMessage.class); |
| 373 | + given(msg1.isExpunged()).willReturn(true); |
| 374 | + given(msg1.getSubject()).willReturn("msg1"); |
| 375 | + given(msg2.getSubject()).willReturn("msg2"); |
| 376 | + Expression selectorExpression = new SpelExpressionParser().parseExpression("false"); |
| 377 | + receiver.setSelectorExpression(selectorExpression); |
| 378 | + receiveAndMarkAsReadDontDeleteGuts(receiver, msg1, msg2); |
| 379 | + verify(logger, times(2)).isDebugEnabled(); |
| 380 | + verify(msg1).isExpunged(); |
| 381 | + verify(msg2).isExpunged(); |
| 382 | + verify(msg1, never()).getSubject(); |
| 383 | + verify(msg2).getSubject(); |
| 384 | + verify(logger).debug(Mockito.startsWith("Expunged message discarded")); |
| 385 | + verify(logger).debug(org.mockito.ArgumentMatchers.contains("'msg2' will be discarded by the matching filter")); |
| 386 | + } |
| 387 | + |
339 | 388 |
|
340 | 389 | @Test |
341 | 390 | public void receiveMarkAsReadAndDelete() throws Exception { |
|
0 commit comments