@SuppressWarnings("unchecked") @Test public void testAllDataMaxFetch() throws Exception { StringSessionFactory sessionFactory = new StringSessionFactory(); Streamer streamer = new Streamer(new StringRemoteFileTemplate(sessionFactory), null); streamer.setBeanFactory(mock(BeanFactory.class)); streamer.setRemoteDirectory("/foo"); streamer.setMaxFetchSize(1); streamer.setFilter(new AcceptOnceFileListFilter<>()); streamer.afterPropertiesSet(); Message<byte[]> received = (Message<byte[]>) this.transformer.transform(streamer.receive()); assertEquals("foo\nbar", new String(received.getPayload())); assertEquals("/foo", received.getHeaders().get(FileHeaders.REMOTE_DIRECTORY)); assertEquals("foo", received.getHeaders().get(FileHeaders.REMOTE_FILE)); // close after list, transform verify(StaticMessageHeaderAccessor.getCloseableResource(received), times(2)).close(); received = (Message<byte[]>) this.transformer.transform(streamer.receive()); assertEquals("baz\nqux", new String(received.getPayload())); assertEquals("/foo", received.getHeaders().get(FileHeaders.REMOTE_DIRECTORY)); assertEquals("bar", received.getHeaders().get(FileHeaders.REMOTE_FILE)); // close after list, transform verify(new IntegrationMessageHeaderAccessor(received).getCloseableResource(), times(4)).close(); verify(sessionFactory.getSession(), times(2)).list("/foo"); }
verify(new IntegrationMessageHeaderAccessor(receivedStream).getCloseableResource(), times(3)).close(); verify(new IntegrationMessageHeaderAccessor(receivedStream).getCloseableResource(), times(5)).close();