View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
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          // Not implemented yet, see MULE-2671
69          //assertNull(c.getComparator());
70          //assertFalse(c.isReverseOrder());
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 }