From 0aec26ad4f91421039550f44059969489c680425 Mon Sep 17 00:00:00 2001 From: David Liu Date: Wed, 6 Aug 2014 13:40:36 +0300 Subject: [PATCH] INT-3478 SftpPAOnceFileListFilter use getFilename JIRA: https://jira.spring.io/browse/INT-3478 INT-3478: add test case Polishing --- ...ftpPersistentAcceptOnceFileListFilter.java | 7 ++-- ...rsistentAcceptOnceFileListFilterTests.java | 32 ++++++++++++++++--- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/filters/SftpPersistentAcceptOnceFileListFilter.java b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/filters/SftpPersistentAcceptOnceFileListFilter.java index 6dc09c305b..07325284db 100644 --- a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/filters/SftpPersistentAcceptOnceFileListFilter.java +++ b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/filters/SftpPersistentAcceptOnceFileListFilter.java @@ -13,10 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.integration.sftp.filters; - - import org.springframework.integration.file.filters.AbstractPersistentAcceptOnceFileListFilter; import org.springframework.integration.metadata.ConcurrentMetadataStore; @@ -27,6 +26,7 @@ import com.jcraft.jsch.ChannelSftp.LsEntry; * 'seen' this file. * * @author Gary Russell + * @author David Liu * @since 3.0 * */ @@ -43,8 +43,7 @@ public class SftpPersistentAcceptOnceFileListFilter extends AbstractPersistentAc @Override protected String fileName(LsEntry file) { - return file.getLongname(); + return file.getFilename(); } - } diff --git a/spring-integration-sftp/src/test/java/org/springframework/integration/sftp/filters/SftpPersistentAcceptOnceFileListFilterTests.java b/spring-integration-sftp/src/test/java/org/springframework/integration/sftp/filters/SftpPersistentAcceptOnceFileListFilterTests.java index 98d7d0d7e4..ea5122c385 100644 --- a/spring-integration-sftp/src/test/java/org/springframework/integration/sftp/filters/SftpPersistentAcceptOnceFileListFilterTests.java +++ b/spring-integration-sftp/src/test/java/org/springframework/integration/sftp/filters/SftpPersistentAcceptOnceFileListFilterTests.java @@ -13,24 +13,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.integration.sftp.filters; -import static org.junit.Assert.*; -import static org.mockito.Mockito.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; import java.lang.reflect.Constructor; import java.util.Arrays; import java.util.List; -import com.jcraft.jsch.ChannelSftp; -import com.jcraft.jsch.ChannelSftp.LsEntry; -import com.jcraft.jsch.SftpATTRS; import org.junit.Test; import org.springframework.integration.metadata.SimpleMetadataStore; +import com.jcraft.jsch.ChannelSftp; +import com.jcraft.jsch.ChannelSftp.LsEntry; +import com.jcraft.jsch.SftpATTRS; + /** * @author Gary Russell + * @author David Liu * @since 4.0.4 * */ @@ -62,4 +66,22 @@ public class SftpPersistentAcceptOnceFileListFilterTests { assertEquals(0, now.size()); } + @Test + public void testKeyUsingFileName() throws Exception { + SftpPersistentAcceptOnceFileListFilter filter = new SftpPersistentAcceptOnceFileListFilter( + new SimpleMetadataStore(), "rollback:"); + ChannelSftp channel = new ChannelSftp(); + SftpATTRS attrs = mock(SftpATTRS.class); + @SuppressWarnings("unchecked") + Constructor ctor = (Constructor) LsEntry.class.getDeclaredConstructors()[0]; + ctor.setAccessible(true); + LsEntry sftpFile1 = ctor.newInstance(channel, "foo", "same", attrs); + LsEntry sftpFile2 = ctor.newInstance(channel, "bar", "same", attrs); + LsEntry[] files = new LsEntry[] {sftpFile1, sftpFile2}; + List now = filter.filterFiles(files); + assertEquals(2, now.size()); + assertEquals("foo", now.get(0).getFilename()); + assertEquals("bar", now.get(1).getFilename()); + } + }