1
2
3
4
5
6
7
8
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 import org.junit.Test;
25
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertTrue;
28
29
30
31
32
33 public class FileFunctionalTestCase extends AbstractFileFunctionalTestCase
34 {
35
36 public FileFunctionalTestCase(ConfigVariant variant, String configResources)
37 {
38 super(variant, configResources);
39 }
40
41 @Test
42 public void testSend() throws Exception
43 {
44 File target = File.createTempFile("mule-file-test-", ".txt");
45 target.deleteOnExit();
46
47 FileConnector connector =
48 (FileConnector) muleContext.getRegistry().lookupConnector("sendConnector");
49 connector.setWriteToDirectory(target.getParent());
50 Map<String, String> props = new HashMap<String, String>();
51 props.put(TARGET_FILE, target.getName());
52
53 MuleClient client = new MuleClient(muleContext);
54 client.dispatch("send", TEST_MESSAGE, props);
55 waitForFileSystem();
56
57 String result = new BufferedReader(new FileReader(target)).readLine();
58 assertEquals(TEST_MESSAGE, result);
59 }
60
61 @Test
62 public void testDirectRequest() throws Exception
63 {
64 File target = initForRequest();
65 MuleClient client = new MuleClient(muleContext);
66 String url = fileToUrl(target) + "?connector=receiveConnector";
67 logger.debug(url);
68 MuleMessage message = client.request(url, 100000);
69 checkReceivedMessage(message);
70 }
71
72 @Test
73 public void testRecursive() throws Exception
74 {
75 File directory = new File("./.mule/in");
76 File subDirectory = new File(directory.getAbsolutePath() + "/sub");
77 boolean success = subDirectory.mkdir();
78 assertTrue(success);
79 subDirectory.deleteOnExit();
80
81 File target = File.createTempFile("mule-file-test-", ".txt", subDirectory);
82 Writer out = new FileWriter(target);
83 out.write(TEST_MESSAGE);
84 out.close();
85 target.deleteOnExit();
86
87 MuleClient client = new MuleClient(muleContext);
88 Thread.sleep(1000);
89 MuleMessage message = client.request("vm://receive?connector=vmQueue", 100000);
90 assertEquals(TEST_MESSAGE, message.getPayloadAsString());
91 }
92 }