/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/UriConfigurationTest.java
Java | 254 lines | 200 code | 34 blank | 20 comment | 0 complexity | 302c66fdb1735fd4c8fb65766b12bc9f MD5 | raw file
- /**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.apache.camel.component.file.remote;
- import org.apache.camel.Exchange;
- import org.apache.camel.Processor;
- import org.apache.camel.test.junit4.CamelTestSupport;
- import org.junit.Test;
- /**
- * @version
- */
- public class UriConfigurationTest extends CamelTestSupport {
- @Test
- public void testFtpConfigurationDefaults() {
- FtpEndpoint<?> endpoint = context.getEndpoint("ftp://hostname", FtpEndpoint.class);
- RemoteFileConfiguration config = endpoint.getConfiguration();
- assertEquals("ftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(21, config.getPort());
- assertNull(config.getUsername());
- assertNull(config.getPassword());
- assertEquals(false, config.isBinary());
- assertEquals(RemoteFileConfiguration.PathSeparator.UNIX, config.getSeparator());
- }
- @Test
- public void testSftpConfigurationDefaults() {
- SftpEndpoint endpoint = context.getEndpoint("sftp://hostname", SftpEndpoint.class);
- RemoteFileConfiguration config = endpoint.getConfiguration();
- assertEquals("sftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(22, config.getPort());
- assertNull(config.getUsername());
- assertNull(config.getPassword());
- assertEquals(false, config.isBinary());
- assertEquals(RemoteFileConfiguration.PathSeparator.UNIX, config.getSeparator());
- }
-
- @Test
- public void testFtpsConfigurationDefaults() {
- FtpsEndpoint endpoint = context.getEndpoint("ftps://hostname", FtpsEndpoint.class);
- FtpsConfiguration config = endpoint.getFtpsConfiguration();
- assertEquals("ftps", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(21, config.getPort());
- assertNull(config.getUsername());
- assertNull(config.getPassword());
- assertEquals(false, config.isBinary());
- assertEquals(false, config.isImplicit());
- assertEquals("TLS", config.getSecurityProtocol());
- assertEquals(RemoteFileConfiguration.PathSeparator.UNIX, config.getSeparator());
- }
- @Test
- public void testFtpsExplicitConfigurationDefaults() {
- FtpsEndpoint endpoint = context.getEndpoint("ftps://hostname:990?isImplicit=true", FtpsEndpoint.class);
- FtpsConfiguration config = endpoint.getFtpsConfiguration();
- assertEquals("ftps", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(990, config.getPort());
- assertNull(config.getUsername());
- assertNull(config.getPassword());
- assertEquals(false, config.isBinary());
- assertEquals(true, config.isImplicit());
- assertEquals("TLS", config.getSecurityProtocol());
- }
- @Test
- public void testFtpExplicitConfiguration() {
- FtpEndpoint<?> endpoint = context.getEndpoint("ftp://user@hostname:1021/some/file?password=secret&binary=true", FtpEndpoint.class);
- RemoteFileConfiguration config = endpoint.getConfiguration();
- assertEquals("ftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(1021, config.getPort());
- assertEquals("user", config.getUsername());
- assertEquals("secret", config.getPassword());
- assertEquals(true, config.isBinary());
- }
- @Test
- public void testSftpExplicitConfiguration() {
- SftpEndpoint endpoint = context.getEndpoint("sftp://user@hostname:1021/some/file?password=secret&binary=true", SftpEndpoint.class);
- RemoteFileConfiguration config = endpoint.getConfiguration();
- assertEquals("sftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(1021, config.getPort());
- assertEquals("user", config.getUsername());
- assertEquals("secret", config.getPassword());
- assertEquals(true, config.isBinary());
- }
-
- @Test
- public void testFtpsExplicitConfiguration() {
- FtpsEndpoint endpoint = context.getEndpoint("ftps://user@hostname:1021/some/file?password=secret&binary=true&securityProtocol=SSL&isImplicit=true", FtpsEndpoint.class);
- FtpsConfiguration config = endpoint.getFtpsConfiguration();
- assertEquals("ftps", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(1021, config.getPort());
- assertEquals("user", config.getUsername());
- assertEquals("secret", config.getPassword());
- assertEquals(true, config.isBinary());
- assertEquals(true, config.isImplicit());
- assertEquals("SSL", config.getSecurityProtocol());
- }
-
- @Test
- public void testRemoteFileEndpointFiles() {
- assertRemoteFileEndpointFile("ftp://hostname/foo/bar", "foo/bar");
- assertRemoteFileEndpointFile("ftp://hostname/foo/bar/", "foo/bar/");
- assertRemoteFileEndpointFile("ftp://hostname/foo/", "foo/");
- assertRemoteFileEndpointFile("ftp://hostname/foo", "foo");
- assertRemoteFileEndpointFile("ftp://hostname/", "");
- assertRemoteFileEndpointFile("ftp://hostname", "");
- assertRemoteFileEndpointFile("ftp://hostname//", "");
- assertRemoteFileEndpointFile("ftp://hostname//foo/bar", "foo/bar");
- assertRemoteFileEndpointFile("ftp://hostname//foo/bar/", "foo/bar/");
- assertRemoteFileEndpointFile("sftp://user@hostname:123//foo/bar?password=secret", "foo/bar");
- assertRemoteFileEndpointFile("sftp://user@hostname:123?password=secret", "");
- assertRemoteFileEndpointFile("sftp://hostname/foo/bar", "foo/bar");
- assertRemoteFileEndpointFile("sftp://hostname/foo/bar/", "foo/bar/");
- assertRemoteFileEndpointFile("sftp://hostname/foo/", "foo/");
- assertRemoteFileEndpointFile("sftp://hostname/foo", "foo");
- assertRemoteFileEndpointFile("sftp://hostname/", "");
- assertRemoteFileEndpointFile("sftp://hostname", "");
- assertRemoteFileEndpointFile("sftp://hostname//", "");
- assertRemoteFileEndpointFile("sftp://hostname//foo/bar", "foo/bar");
- assertRemoteFileEndpointFile("sftp://hostname//foo/bar/", "foo/bar/");
- assertRemoteFileEndpointFile("ftps://user@hostname:123//foo/bar?password=secret", "foo/bar");
- assertRemoteFileEndpointFile("ftps://user@hostname:123?password=secret", "");
- assertRemoteFileEndpointFile("ftps://hostname/foo/bar", "foo/bar");
- assertRemoteFileEndpointFile("ftps://hostname/foo/bar/", "foo/bar/");
- assertRemoteFileEndpointFile("ftps://hostname/foo/", "foo/");
- assertRemoteFileEndpointFile("ftps://hostname/foo", "foo");
- assertRemoteFileEndpointFile("ftps://hostname/", "");
- assertRemoteFileEndpointFile("ftps://hostname", "");
- assertRemoteFileEndpointFile("ftps://hostname//", "");
- assertRemoteFileEndpointFile("ftps://hostname//foo/bar", "foo/bar");
- assertRemoteFileEndpointFile("ftps://hostname//foo/bar/", "foo/bar/");
- assertRemoteFileEndpointFile("ftps://hostname//////foo/bar/", "foo/bar/");
- }
- private void assertRemoteFileEndpointFile(String endpointUri, String expectedFile) {
- RemoteFileEndpoint<?> endpoint = resolveMandatoryEndpoint(context, endpointUri, RemoteFileEndpoint.class);
- assertNotNull("Could not find endpoint: " + endpointUri, endpoint);
- String file = endpoint.getConfiguration().getDirectory();
- assertEquals("For uri: " + endpointUri + " the file is not equal", expectedFile, file);
- }
- @Test
- public void testSftpKnownHostsFileConfiguration() {
- SftpEndpoint endpoint = context.getEndpoint("sftp://user@hostname:1021/some/file?password=secret&binary=true&knownHostsFile=/home/janstey/.ssh/known_hosts", SftpEndpoint.class);
- SftpConfiguration config = endpoint.getConfiguration();
- assertEquals("sftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(1021, config.getPort());
- assertEquals("user", config.getUsername());
- assertEquals("secret", config.getPassword());
- assertEquals(true, config.isBinary());
- assertEquals("/home/janstey/.ssh/known_hosts", config.getKnownHostsFile());
- }
- @Test
- public void testPasswordInContextPathConfiguration() {
- FtpEndpoint<?> endpoint = context.getEndpoint("ftp://user:secret@hostname:1021/some/file", FtpEndpoint.class);
- RemoteFileConfiguration config = endpoint.getConfiguration();
-
- assertEquals("ftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals(1021, config.getPort());
- assertEquals("user", config.getUsername());
- assertEquals("secret", config.getPassword());
- }
-
- @Test
- public void testStartingDirectoryWithDot() throws Exception {
- FtpEndpoint<?> endpoint = context.getEndpoint("ftp://user@hostname?password=secret", FtpEndpoint.class);
- FtpConfiguration config = endpoint.getConfiguration();
- config.setHost("somewhere");
- config.setDirectory("temp.dir");
- endpoint.createConsumer(new Processor() {
- public void process(Exchange exchange) throws Exception {
- // do nothing
- }
- });
- }
- @Test
- public void testPathSeparatorAuto() {
- FtpEndpoint<?> endpoint = context.getEndpoint("ftp://hostname/foo/bar?separator=Auto", FtpEndpoint.class);
- RemoteFileConfiguration config = endpoint.getConfiguration();
- assertEquals("ftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals("foo/bar", config.getDirectory());
- assertEquals(RemoteFileConfiguration.PathSeparator.Auto, config.getSeparator());
- assertEquals("foo/bar/hello.txt", config.normalizePath("foo/bar/hello.txt"));
- assertEquals("foo\\bar\\hello.txt", config.normalizePath("foo\\bar\\hello.txt"));
- }
- @Test
- public void testPathSeparatorUnix() {
- FtpEndpoint<?> endpoint = context.getEndpoint("ftp://hostname/foo/bar?separator=UNIX", FtpEndpoint.class);
- RemoteFileConfiguration config = endpoint.getConfiguration();
- assertEquals("ftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals("foo/bar", config.getDirectory());
- assertEquals(RemoteFileConfiguration.PathSeparator.UNIX, config.getSeparator());
- assertEquals("foo/bar/hello.txt", config.normalizePath("foo/bar/hello.txt"));
- assertEquals("foo/bar/hello.txt", config.normalizePath("foo\\bar\\hello.txt"));
- }
- @Test
- public void testPathSeparatorWindows() {
- FtpEndpoint<?> endpoint = context.getEndpoint("ftp://hostname/foo/bar?separator=Windows", FtpEndpoint.class);
- RemoteFileConfiguration config = endpoint.getConfiguration();
- assertEquals("ftp", config.getProtocol());
- assertEquals("hostname", config.getHost());
- assertEquals("foo/bar", config.getDirectory());
- assertEquals(RemoteFileConfiguration.PathSeparator.Windows, config.getSeparator());
- assertEquals("foo\\bar\\hello.txt", config.normalizePath("foo/bar/hello.txt"));
- assertEquals("foo\\bar\\hello.txt", config.normalizePath("foo\\bar\\hello.txt"));
- }
- }