1
2
3
4
5
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
27
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 }