1
2
3
4
5
6
7 package org.mule.transport.file;
8
9 import org.mule.api.endpoint.InboundEndpoint;
10 import org.mule.api.routing.filter.Filter;
11 import org.mule.api.service.Service;
12 import org.mule.service.ServiceCompositeMessageSource;
13 import org.mule.tck.junit4.FunctionalTestCase;
14 import org.mule.transport.file.filters.FilenameRegexFilter;
15 import org.mule.transport.file.transformers.FileToByteArray;
16 import org.mule.transport.file.transformers.FileToString;
17 import org.mule.util.FileUtils;
18
19 import java.io.File;
20 import java.util.List;
21
22 import org.junit.Test;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertFalse;
26 import static org.junit.Assert.assertNotNull;
27 import static org.junit.Assert.assertTrue;
28
29 public class FileNamespaceHandlerTestCase extends FunctionalTestCase
30 {
31
32 @Override
33 protected String getConfigResources()
34 {
35 return "file-namespace-config.xml";
36 }
37
38 @Override
39 protected void doTearDown() throws Exception
40 {
41 File workDir = new File(".mule");
42 assertTrue(FileUtils.deleteTree(workDir));
43
44 super.doTearDown();
45 }
46
47 @Test
48 public void testConfig() throws Exception
49 {
50 FileConnector c = (FileConnector)muleContext.getRegistry().lookupConnector("fileConnector");
51 assertNotNull(c);
52
53 assertEquals(1234, c.getFileAge());
54 assertEquals("abc", c.getMoveToDirectory());
55 assertEquals("bcd", c.getMoveToPattern());
56 assertEquals("cde", c.getOutputPattern());
57 assertEquals(2345, c.getPollingFrequency());
58 assertEquals(".mule/readFromDirectory", c.getReadFromDirectory());
59 assertEquals(".mule/writeToDirectory", c.getWriteToDirectory());
60 assertEquals(".mule/workDirectory", c.getWorkDirectory());
61 assertEquals("#[function:uuid]", c.getWorkFileNamePattern());
62 assertEquals(false, c.isAutoDelete());
63 assertEquals(true, c.isOutputAppend());
64 assertEquals(true, c.isSerialiseObjects());
65 assertEquals(false, c.isStreaming());
66 assertTrue(c.isRecursive());
67
68
69
70
71
72 FilenameParser parser = c.getFilenameParser();
73 assertTrue(parser.getClass().getName(), c.getFilenameParser() instanceof DummyFilenameParser);
74
75 assertTrue(c.isConnected());
76 assertTrue(c.isStarted());
77 }
78
79 @Test
80 public void testThirdConnector() throws Exception
81 {
82 FileConnector c = (FileConnector)muleContext.getRegistry().lookupConnector("thirdConnector");
83 assertNotNull(c);
84
85 FilenameParser parser = c.getFilenameParser();
86 assertTrue(parser.getClass().getName(), c.getFilenameParser() instanceof ExpressionFilenameParser);
87
88 assertTrue(c.isConnected());
89 assertTrue(c.isStarted());
90 assertFalse(c.isRecursive());
91 }
92
93 @Test
94 public void testTransformersOnEndpoints() throws Exception
95 {
96 Object transformer1 = muleContext.getEndpointFactory().getInboundEndpoint("ep1").getTransformers().get(0);
97 assertNotNull(transformer1);
98 assertEquals(FileToByteArray.class, transformer1.getClass());
99
100 Object transformer2 = muleContext.getEndpointFactory().getInboundEndpoint("ep2").getTransformers().get(0);
101 assertNotNull(transformer2);
102 assertEquals(FileToString.class, transformer2.getClass());
103 }
104
105 @Test
106 public void testFileFilter() throws Exception
107 {
108 Service service = muleContext.getRegistry().lookupService("Test");
109 assertNotNull(service);
110 List endpoints = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints();
111 assertEquals(1, endpoints.size());
112
113 InboundEndpoint endpoint = (InboundEndpoint) endpoints.get(0);
114 Filter filter = endpoint.getFilter();
115 assertNotNull(filter);
116
117 assertTrue(filter instanceof FilenameRegexFilter);
118 final FilenameRegexFilter f = (FilenameRegexFilter) filter;
119 assertEquals(false, f.isCaseSensitive());
120 assertEquals("(^SemDirector_Report-\\d)(.*)(tab$)", f.getPattern());
121 }
122 }