View Javadoc

1   /*
2    * $Id: FileNamespaceHandlerTestCase.java 19191 2010-08-25 21:05:23Z tcarlson $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  package org.mule.transport.file;
11  
12  import org.mule.api.endpoint.InboundEndpoint;
13  import org.mule.api.routing.filter.Filter;
14  import org.mule.api.service.Service;
15  import org.mule.service.ServiceCompositeMessageSource;
16  import org.mule.tck.FunctionalTestCase;
17  import org.mule.transport.file.filters.FilenameRegexFilter;
18  import org.mule.transport.file.transformers.FileToByteArray;
19  import org.mule.transport.file.transformers.FileToString;
20  import org.mule.util.FileUtils;
21  
22  import java.io.File;
23  import java.util.List;
24  
25  public class FileNamespaceHandlerTestCase extends FunctionalTestCase
26  {
27      protected String getConfigResources()
28      {
29          return "file-namespace-config.xml";
30      }
31  
32      @Override
33      protected void doTearDown() throws Exception
34      {
35          File workDir = new File(".mule");
36          assertTrue(FileUtils.deleteTree(workDir));
37          
38          super.doTearDown();
39      }
40  
41      public void testConfig() throws Exception
42      {
43          FileConnector c = (FileConnector)muleContext.getRegistry().lookupConnector("fileConnector");
44          assertNotNull(c);
45          
46          assertEquals(1234, c.getFileAge());
47          assertEquals("abc", c.getMoveToDirectory());
48          assertEquals("bcd", c.getMoveToPattern());
49          assertEquals("cde", c.getOutputPattern());
50          assertEquals(2345, c.getPollingFrequency());
51          assertEquals(".mule/readFromDirectory", c.getReadFromDirectory());
52          assertEquals(".mule/writeToDirectory", c.getWriteToDirectory());
53          assertEquals(".mule/workDirectory", c.getWorkDirectory());
54          assertEquals("#[function:uuid]", c.getWorkFileNamePattern());
55          assertEquals(false, c.isAutoDelete());
56          assertEquals(true, c.isOutputAppend());
57          assertEquals(true, c.isSerialiseObjects());
58          assertEquals(false, c.isStreaming());
59          assertTrue(c.isRecursive());
60  
61          // Not implemented yet, see MULE-2671
62          //assertNull(c.getComparator());
63          //assertFalse(c.isReverseOrder());
64  
65          FilenameParser parser = c.getFilenameParser();
66          assertTrue(parser.getClass().getName(), c.getFilenameParser() instanceof DummyFilenameParser);
67  
68          assertTrue(c.isConnected());
69          assertTrue(c.isStarted());
70      }
71  
72      public void testThirdConnector() throws Exception
73      {
74          FileConnector c = (FileConnector)muleContext.getRegistry().lookupConnector("thirdConnector");
75          assertNotNull(c);
76  
77          FilenameParser parser = c.getFilenameParser();
78          assertTrue(parser.getClass().getName(), c.getFilenameParser() instanceof ExpressionFilenameParser);
79  
80          assertTrue(c.isConnected());
81          assertTrue(c.isStarted());
82          assertFalse(c.isRecursive());
83      }
84  
85      public void testTransformersOnEndpoints() throws Exception
86      {
87          Object transformer1 = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint("ep1").getTransformers().get(0);
88          assertNotNull(transformer1);
89          assertEquals(FileToByteArray.class, transformer1.getClass());
90  
91          Object transformer2 = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint("ep2").getTransformers().get(0);
92          assertNotNull(transformer2);
93          assertEquals(FileToString.class, transformer2.getClass());
94      }
95      
96      public void testFileFilter() throws Exception
97      {
98          Service service = muleContext.getRegistry().lookupService("Test");
99          assertNotNull(service);
100         List endpoints = ((ServiceCompositeMessageSource) service.getMessageSource()).getEndpoints();
101         assertEquals(1, endpoints.size());
102 
103         InboundEndpoint endpoint = (InboundEndpoint) endpoints.get(0);
104         Filter filter = endpoint.getFilter();
105         assertNotNull(filter);
106 
107         assertTrue(filter instanceof FilenameRegexFilter);
108         final FilenameRegexFilter f = (FilenameRegexFilter) filter;
109         assertEquals(false, f.isCaseSensitive());
110         assertEquals("(^SemDirector_Report-\\d)(.*)(tab$)", f.getPattern());
111     }
112 }