@Test public void testEOF() { StringReader reader = new StringReader("test"); CharacterStreamReadingMessageSource source = new CharacterStreamReadingMessageSource(reader, -1, true); ApplicationEventPublisher publisher = mock(ApplicationEventPublisher.class); source.setApplicationEventPublisher(publisher); Message<?> message1 = source.receive(); assertEquals("test", message1.getPayload()); Message<?> message2 = source.receive(); assertNull(message2); verify(publisher).publishEvent(any(StreamClosedEvent.class)); }
SourcePollingChannelAdapter adapter = new SourcePollingChannelAdapter(); CountDownLatch latch = new CountDownLatch(2); source.setApplicationEventPublisher(e -> { if (e instanceof StreamClosedEvent) { if (latch.getCount() == 1) {