View Javadoc

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