@Override protected File fetchSource() { return source.getFile(); }
@Override protected void onSourceConsumed(File fetchedSource) { source.onConsumed(fetchedSource); }
@Test(timeout = DEFAULT_CONVERSION_TIMEOUT) public void testFileSourceToFileConsumerFuture() throws Exception { File source = validFile(true), target = makeTarget(true); IFileSource fileSource = mock(IFileSource.class); when(fileSource.getFile()).thenReturn(source); IFileConsumer fileConsumer = mock(IFileConsumer.class); assertTrue(getConverter().convert(fileSource).as(validInputType()).to(target, fileConsumer).as(validTargetType()).schedule().get()); assertTrue(source.exists()); assertTrue(target.exists()); verify(fileSource, times(1)).getFile(); verify(fileSource, times(1)).onConsumed(source); verifyNoMoreInteractions(fileSource); verify(fileConsumer, times(1)).onComplete(target); verifyNoMoreInteractions(fileConsumer); }
@Test(timeout = DEFAULT_CONVERSION_TIMEOUT) public void testFileSourceToFileConsumerExecute() throws Exception { File source = validFile(true), target = makeTarget(true); IFileSource fileSource = mock(IFileSource.class); when(fileSource.getFile()).thenReturn(source); IFileConsumer fileConsumer = mock(IFileConsumer.class); assertTrue(getConverter().convert(fileSource).as(validInputType()).to(target, fileConsumer).as(validTargetType()).execute()); assertTrue(source.exists()); assertTrue(target.exists()); verify(fileSource, times(1)).getFile(); verify(fileSource, times(1)).onConsumed(source); verifyNoMoreInteractions(fileSource); verify(fileConsumer, times(1)).onComplete(target); verifyNoMoreInteractions(fileConsumer); }
@Override public void onConsumed(InputStream inputStream) { try { close(inputStream); } finally { fileSource.onConsumed(file); } }
@Override public InputStream getInputStream() { file = fileSource.getFile(); try { FileInputStream fileInputStream = new FileInputStream(file); fileInputStream.getChannel().lock(0L, Long.MAX_VALUE, true); return fileInputStream; } catch (FileNotFoundException e) { throw new FileSystemInteractionException(String.format("Could not find file %s", file), e); } catch (IOException e) { throw new FileSystemInteractionException(String.format("Could not read file %s", file), e); } }