From d2eee913d7d1dae5910b13d5cabb4228a066bbf0 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Tue, 23 Jul 2019 13:00:18 -0400 Subject: [PATCH] INT-3746: Polishing - move `InputStream` test later - add `name` for error messages - add test --- .../integration/file/remote/RemoteFileTemplate.java | 11 ++++++----- .../file/remote/RemoteFileTemplateTests.java | 11 +++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/remote/RemoteFileTemplate.java b/spring-integration-file/src/main/java/org/springframework/integration/file/remote/RemoteFileTemplate.java index 25cfa60c0b..f6816983fe 100644 --- a/spring-integration-file/src/main/java/org/springframework/integration/file/remote/RemoteFileTemplate.java +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/remote/RemoteFileTemplate.java @@ -490,10 +490,7 @@ public class RemoteFileTemplate implements RemoteFileOperations, Initializ Object payload = message.getPayload(); InputStream dataInputStream = null; String name = null; - if (payload instanceof InputStream) { - dataInputStream = (InputStream) payload; - } - else if (payload instanceof File) { + if (payload instanceof File) { File inputFile = (File) payload; if (inputFile.exists()) { dataInputStream = new BufferedInputStream(new FileInputStream(inputFile)); @@ -512,9 +509,13 @@ public class RemoteFileTemplate implements RemoteFileOperations, Initializ } dataInputStream = new ByteArrayInputStream(bytes); } + else if (payload instanceof InputStream) { + dataInputStream = (InputStream) payload; + name = "InputStream payload"; + } else { throw new IllegalArgumentException("Unsupported payload type. The only supported payloads are " + - "java.io.File, java.lang.String, byte[] and InputStream"); + "java.io.File, java.lang.String, byte[], and InputStream"); } if (dataInputStream == null) { return null; diff --git a/spring-integration-file/src/test/java/org/springframework/integration/file/remote/RemoteFileTemplateTests.java b/spring-integration-file/src/test/java/org/springframework/integration/file/remote/RemoteFileTemplateTests.java index f3ff3e90b7..710e185aff 100644 --- a/spring-integration-file/src/test/java/org/springframework/integration/file/remote/RemoteFileTemplateTests.java +++ b/spring-integration-file/src/test/java/org/springframework/integration/file/remote/RemoteFileTemplateTests.java @@ -25,13 +25,16 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.io.ByteArrayInputStream; import java.io.File; +import java.io.IOException; import java.io.InputStream; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; +import org.mockito.Mockito; import org.springframework.beans.factory.BeanFactory; import org.springframework.expression.common.LiteralExpression; @@ -119,4 +122,12 @@ public class RemoteFileTemplateTests { verify(this.session).write(any(InputStream.class), anyString()); } + @Test + public void testStream() throws IOException { + ByteArrayInputStream stream = new ByteArrayInputStream("foo".getBytes()); + this.template.send(new GenericMessage(stream), + FileExistsMode.IGNORE); + verify(this.session).write(Mockito.eq(stream), Mockito.any()); + } + }