junit Spring集成FTP|如何测试在FTP提取完成后将远程文件移动到远程服务器中另一个目录代码

pqwbnv8z  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(134)

我们有一个远程FTP服务器,其中有一个包含某些文本文件的文件夹“test/”,“test/”文件夹中有另一个子目录“archive/”。
FTP服务器-〉-测试/---abc. txt---xyz. txt---存档/
我们可以通过Spring Integration流程下载本地目录中的所有文本文件,并将文件移动到同一个ftp服务器上的另一个远程位置。现在我们正在寻找测试以下代码的方法。

工作代码:

@Bean
    public IntegrationFlow integrationFlow() {            
        File localDirectory = new File("tmp/");
        FtpInboundChannelAdapterSpec ftpInboundChannelAdapterSpec = Ftp.inboundAdapter(gimmeFactory())
                .remoteDirectory("test/")
                .autoCreateLocalDirectory(true)
                .regexFilter(".*\\.txt$")
                .localDirectory(localDirectory)
                .preserveTimestamp(true)
                .remoteFileSeparator("/");

        return IntegrationFlows
                .from(ftpInboundChannelAdapterSpec, e -> e.poller(Pollers.fixedDelay(Duration.ofSeconds(5))))
                .handle(Ftp.outboundGateway(gimmeFactory(), AbstractRemoteFileOutboundGateway.Command.LS, "'test/'")
                        .options(AbstractRemoteFileOutboundGateway.Option.NAME_ONLY))
                .split()
                .handle(Ftp.outboundGateway(gimmeFactory(), AbstractRemoteFileOutboundGateway.Command.MV, "'test/' +payload").renameExpression("'test/archive/' +payload"))
                .channel("nullChannel")
                .get();
}

我已经通过了许多文章,但不能得到这个确切的解决方案。有人能请帮助我在这里测试上述工作代码。提前感谢。

ut6juiuv

ut6juiuv1#

该框架使用ApacheMina进行集成测试;你也可以这样做。
https://github.com/spring-projects/spring-integration/blob/main/spring-integration-ftp/src/test/java/org/springframework/integration/ftp/FtpTestSupport.java#L56

相关问题