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