View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.transport.sftp;
8   
9   import org.mule.api.MuleException;
10  import org.mule.api.endpoint.EndpointURI;
11  import org.mule.api.endpoint.ImmutableEndpoint;
12  import org.mule.endpoint.MuleEndpointURI;
13  import org.mule.module.client.MuleClient;
14  
15  import org.junit.Test;
16  
17  import static org.junit.Assert.assertEquals;
18  import static org.junit.Assert.assertFalse;
19  import static org.junit.Assert.assertTrue;
20  
21  public class SftpEndpointTestCase extends AbstractSftpTestCase
22  {
23  
24      @Override
25      protected String getConfigResources()
26      {
27          return "mule-sftp-endpoint-config.xml";
28      }
29  
30      /*
31       * For general guidelines on writing transports see
32       * http://mule.mulesource.org/display/MULE/Writing+Transports
33       */
34      @Test
35      public void testValidEndpointURI() throws Exception
36      {
37          // TODO test creating and asserting Endpoint values eg
38  
39          EndpointURI url = new MuleEndpointURI("sftp://ms/data", muleContext);
40          assertEquals("sftp", url.getScheme());
41          assertEquals("ms", url.getHost());
42          assertEquals(0, url.getParams().size());
43          assertEquals("/data", url.getPath());
44  
45      }
46  
47      @Test
48      public void testValidEndpointURIWithUserAndPasswd() throws Exception
49      {
50          EndpointURI url = new MuleEndpointURI("sftp://user1:passwd1@localhost:4242/data2", muleContext);
51          assertEquals("sftp", url.getScheme());
52          assertEquals("localhost", url.getHost());
53          assertEquals(4242, url.getPort());
54          assertEquals("passwd1", url.getPassword());
55          assertEquals("user1", url.getUser());
56  
57          assertEquals(0, url.getParams().size());
58  
59      }
60  
61      @Test
62      public void testEndpointConfig() throws MuleException
63      {
64          MuleClient muleClient = new MuleClient(muleContext);
65          ImmutableEndpoint endpoint1 = (ImmutableEndpoint) muleClient.getProperty("inboundEndpoint1");
66  
67          EndpointURI url1 = endpoint1.getEndpointURI();
68          assertEquals("sftp", url1.getScheme());
69          assertEquals("foobar-host", url1.getHost());
70          assertEquals(4243, url1.getPort());
71          assertEquals("passw0rd", url1.getPassword());
72          assertEquals("user42", url1.getUser());
73  
74          assertEquals("sftp://user42:passw0rd@foobar-host:4243/data", url1.getUri().toString());
75  
76          // Verify that both endpoints in the config are equal
77          ImmutableEndpoint endpoint2 = (ImmutableEndpoint) muleClient.getProperty("inboundEndpoint2");
78          EndpointURI url2 = endpoint2.getEndpointURI();
79  
80          assertEquals("sftp", url2.getScheme());
81          assertEquals("foobar-host", url2.getHost());
82          assertEquals(4243, url2.getPort());
83          assertEquals("passw0rd", url2.getPassword());
84          assertEquals("user42", url2.getUser());
85  
86          assertEquals(url1.getUri().toString(), url2.getUri().toString());
87  
88          ImmutableEndpoint outboundEndpoint1 = (ImmutableEndpoint) muleClient.getProperty("outboundEndpoint1");
89          ImmutableEndpoint outboundEndpoint2 = (ImmutableEndpoint) muleClient.getProperty("outboundEndpoint2");
90  
91          SftpUtil oUtil1 = new SftpUtil(outboundEndpoint1);
92          SftpUtil oUtil2 = new SftpUtil(outboundEndpoint2);
93  
94          assertTrue("'keepFileOnError' should be on by default", oUtil1.isKeepFileOnError());
95          assertFalse("'keepFileOnError' should be false", oUtil2.isKeepFileOnError());
96      }
97  
98  }