View Javadoc

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