1
2
3
4
5
6
7 package org.mule.transport.file;
8
9 import org.mule.api.MuleMessage;
10 import org.mule.api.transport.MuleMessageFactory;
11 import org.mule.util.IOUtils;
12
13 import java.io.FileWriter;
14 import java.io.InputStream;
15 import java.io.Writer;
16 import java.util.Arrays;
17
18 import org.junit.Test;
19
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertTrue;
22
23 public class FileContentsMuleMessageFactoryTestCase extends AbstractFileMuleMessageFactoryTestCase
24 {
25 @Override
26 protected void doSetUp() throws Exception
27 {
28 super.doSetUp();
29 fillTempFile();
30 }
31
32 private void fillTempFile() throws Exception
33 {
34 Writer writer = new FileWriter(tempFile);
35 writer.write(TEST_MESSAGE);
36 writer.close();
37 }
38
39 @Override
40 protected MuleMessageFactory doCreateMuleMessageFactory()
41 {
42 return new FileContentsMuleMessageFactory(muleContext);
43 }
44
45 @Override
46 public void testValidPayload() throws Exception
47 {
48 MuleMessageFactory factory = createMuleMessageFactory();
49
50 Object payload = getValidTransportMessage();
51 MuleMessage message = factory.create(payload, encoding);
52 assertNotNull(message);
53 assertPayload(message);
54 }
55
56 @Test
57 public void testPayloadFromInputStream() throws Exception
58 {
59 MuleMessageFactory factory = createMuleMessageFactory();
60
61 InputStream stream = null;
62 try
63 {
64 stream = new ReceiverFileInputStream(tempFile, false, null);
65 MuleMessage message = factory.create(stream, encoding);
66 assertNotNull(message);
67
68
69
70 assertTrue(tempFile.delete());
71 assertPayload(message);
72 }
73 finally
74 {
75 IOUtils.closeQuietly(stream);
76 }
77 }
78
79 private void assertPayload(MuleMessage message)
80 {
81 byte[] expected = TEST_MESSAGE.getBytes();
82 byte[] result = (byte[]) message.getPayload();
83 assertTrue(Arrays.equals(expected, result));
84 }
85 }