1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.file;
12
13 import org.mule.api.MessagingException;
14 import org.mule.api.MuleException;
15 import org.mule.api.MuleMessage;
16 import org.mule.model.streaming.DelegatingInputStream;
17 import org.mule.module.client.MuleClient;
18 import org.mule.util.IOUtils;
19
20 import java.io.ByteArrayOutputStream;
21 import java.io.File;
22 import java.io.IOException;
23 import java.io.InputStream;
24 import java.net.MalformedURLException;
25
26 public class FileRequestorMoveDeleteTestCase extends AbstractFileMoveDeleteTestCase
27 {
28
29 public void testMoveAndDeleteStreaming() throws Exception
30 {
31 File inFile = initForRequest();
32 File moveToDir = configureConnector(inFile, true, true, true, null);
33
34 assertRequested(request(inFile), inFile, true);
35 assertFiles(inFile, moveToDir, true, true);
36 }
37
38 public void testMoveOnlyStreaming() throws Exception
39 {
40 File inFile = initForRequest();
41 File moveToDir = configureConnector(inFile, true, true, false, null);
42
43 assertRequested(request(inFile), inFile, true);
44 assertFiles(inFile, moveToDir, true, false);
45 }
46
47 public void testDeleteOnlyStreaming() throws Exception
48 {
49 File inFile = initForRequest();
50 File moveToDir = configureConnector(inFile, true, false, true, null);
51
52 assertRequested(request(inFile), inFile, true);
53 assertFiles(inFile, moveToDir, false, true);
54 }
55
56 public void testNoMoveNoDeleteStreaming() throws Exception
57 {
58 File inFile = initForRequest();
59 File moveToDir = configureConnector(inFile, true, false, false, null);
60
61 assertRequested(request(inFile), inFile, true);
62 assertFiles(inFile, moveToDir, false, false);
63 }
64
65 public void testMoveAndDelete() throws Exception
66 {
67 File inFile = initForRequest();
68 File moveToDir = configureConnector(inFile, false, true, true, null);
69
70 assertRequested(request(inFile), inFile, false);
71 assertFiles(inFile, moveToDir, true, true);
72 }
73
74 public void testMoveOnly() throws Exception
75 {
76 File inFile = initForRequest();
77 File moveToDir = configureConnector(inFile, false, true, false, null);
78
79 assertRequested(request(inFile), inFile, false);
80 assertFiles(inFile, moveToDir, true, false);
81 }
82
83 public void testDeleteOnly() throws Exception
84 {
85 File inFile = initForRequest();
86 File moveToDir = configureConnector(inFile, false, false, true, null);
87
88 assertRequested(request(inFile), inFile, false);
89 assertFiles(inFile, moveToDir, false, true);
90 }
91
92 public void testNoMoveNoDelete() throws Exception
93 {
94 File inFile = initForRequest();
95 File moveToDir = configureConnector(inFile, false, false, false, null);
96
97 assertRequested(request(inFile), inFile, false);
98 assertFiles(inFile, moveToDir, false, false);
99 }
100
101 public void testMoveAndDeleteFilePayload() throws Exception
102 {
103 File inFile = initForRequest();
104
105 File moveToDir = configureConnector(inFile, false, true, false, FileMuleMessageFactory.class);
106
107
108
109
110 }
111
112 public void testMoveOnlyFilePayload() throws Exception
113 {
114 File inFile = initForRequest();
115
116 File moveToDir = configureConnector(inFile, false, true, false, FileMuleMessageFactory.class);
117
118
119
120
121 }
122
123 public void testDeleteOnlyFilePayload() throws Exception
124 {
125 File inFile = initForRequest();
126
127 File moveToDir = configureConnector(inFile, false, false, true, FileMuleMessageFactory.class);
128
129
130
131
132 }
133
134 public void testNoMoveNoDeleteFilePayload() throws Exception
135 {
136 File inFile = initForRequest();
137
138 File moveToDir = configureConnector(inFile, false, false, false, FileMuleMessageFactory.class);
139
140
141
142
143 assertFiles(inFile, moveToDir, false, false);
144 }
145
146 protected void assertRequested(MuleMessage message, File inFile, boolean streaming)
147 throws IOException, MessagingException, InterruptedException
148 {
149
150
151 Thread.sleep(2000);
152
153 assertNotNull(message);
154 assertEquals(inFile.getName(), message.getOutboundProperty(FileConnector.PROPERTY_ORIGINAL_FILENAME));
155
156 assertNotNull(message.getPayload());
157 if (streaming)
158 {
159
160
161 assertTrue(message.getPayload() instanceof DelegatingInputStream);
162 InputStream fis = (InputStream) message.getPayload();
163 ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
164 IOUtils.copy(fis, byteOut);
165
166
167 assertFilesUntouched(inFile);
168
169 fis.close();
170 String result = new String(byteOut.toByteArray());
171 assertEquals(TEST_MESSAGE, result);
172 }
173 else
174 {
175 assertTrue(message.getPayload() instanceof byte[]);
176 assertEquals(TEST_MESSAGE, new String((byte[]) message.getPayload()));
177 }
178 }
179
180 protected MuleMessage request(File file) throws MuleException, MalformedURLException
181 {
182 MuleClient muleClient = new MuleClient(muleContext);
183 return muleClient.request(fileToUrl(file) + "?connector=moveDeleteConnector", 2000);
184 }
185 }