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.file;
8   
9   import org.mule.api.MuleMessage;
10  import org.mule.module.client.MuleClient;
11  
12  import java.io.BufferedReader;
13  import java.io.File;
14  import java.io.FileReader;
15  import java.io.FileWriter;
16  import java.io.Writer;
17  import java.util.HashMap;
18  import java.util.Map;
19  
20  import org.junit.Test;
21  
22  import static org.junit.Assert.assertEquals;
23  import static org.junit.Assert.assertTrue;
24  
25  /**
26   * We are careful here to access the file sstem in a generic way.  This means setting directories
27   * dynamically.
28   */
29  public class FileFunctionalTestCase extends AbstractFileFunctionalTestCase
30  {
31  
32      @Test
33      public void testSend() throws Exception
34      {
35          File target = File.createTempFile("mule-file-test-", ".txt");
36          target.deleteOnExit();
37  
38          FileConnector connector =
39                  (FileConnector) muleContext.getRegistry().lookupConnector("sendConnector");
40          connector.setWriteToDirectory(target.getParent());
41          Map<String, String> props = new HashMap<String, String>();
42          props.put(TARGET_FILE, target.getName());
43  
44          MuleClient client = new MuleClient(muleContext);
45          client.dispatch("send", TEST_MESSAGE, props);
46          waitForFileSystem();
47  
48          String result = new BufferedReader(new FileReader(target)).readLine();
49          assertEquals(TEST_MESSAGE, result);
50      }
51  
52      @Test
53      public void testDirectRequest() throws Exception
54      {
55          File target = initForRequest();
56          MuleClient client = new MuleClient(muleContext);
57          String url = fileToUrl(target) + "?connector=receiveConnector";
58          logger.debug(url);
59          MuleMessage message = client.request(url, 100000);
60          checkReceivedMessage(message);
61      }
62      
63      @Test
64      public void testRecursive() throws Exception
65      {
66          File directory = new File("./.mule/in");
67          File subDirectory = new File(directory.getAbsolutePath() + "/sub");
68          boolean success = subDirectory.mkdir();
69          assertTrue(success);
70          subDirectory.deleteOnExit();
71  
72          File target = File.createTempFile("mule-file-test-", ".txt", subDirectory);
73          Writer out = new FileWriter(target);
74          out.write(TEST_MESSAGE);
75          out.close();
76          target.deleteOnExit();
77  
78          MuleClient client = new MuleClient(muleContext);
79          Thread.sleep(1000);
80          MuleMessage message = client.request("vm://receive?connector=vmQueue", 100000);
81          assertEquals(TEST_MESSAGE, message.getPayloadAsString());
82      }
83  }