1   /*
2    * $Id: FileNamespaceHandlerTestCase.java 11678 2008-05-02 12:03:07Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.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.tck.FunctionalTestCase;
16  import org.mule.transport.file.filters.FilenameRegexFilter;
17  import org.mule.transport.file.transformers.FileToByteArray;
18  import org.mule.transport.file.transformers.FileToString;
19  
20  import java.util.List;
21  
22  public class FileNamespaceHandlerTestCase extends FunctionalTestCase
23  {
24      protected String getConfigResources()
25      {
26          return "file-namespace-config.xml";
27      }
28  
29      public void testConfig() throws Exception
30      {
31          FileConnector c = (FileConnector)muleContext.getRegistry().lookupConnector("fileConnector");
32          assertNotNull(c);
33          
34          assertEquals(1234, c.getFileAge());
35          assertEquals("abc", c.getMoveToDirectory());
36          assertEquals("bcd", c.getMoveToPattern());
37          assertEquals("cde", c.getOutputPattern());
38          assertEquals(2345, c.getPollingFrequency());
39          // don't test these - they force directory creation
40          //assertEquals("efg", c.getReadFromDirectory());
41          //assertEquals("fgh", c.getWriteToDirectory());
42          assertEquals(false, c.isAutoDelete());
43          assertEquals(true, c.isOutputAppend());
44          assertEquals(true, c.isSerialiseObjects());
45          assertEquals(false, c.isStreaming());
46  
47          // Not implemented yet, see MULE-2671
48          //assertNull(c.getComparator());
49          //assertFalse(c.isReverseOrder());
50  
51          FilenameParser parser = c.getFilenameParser();
52          assertTrue(parser.getClass().getName(), c.getFilenameParser() instanceof DummyFilenameParser);
53  
54          assertTrue(c.isConnected());
55          assertTrue(c.isStarted());
56      }
57  
58      public void testSecondConnector() throws Exception
59      {
60          FileConnector c = (FileConnector)muleContext.getRegistry().lookupConnector("secondConnector");
61          assertNotNull(c);
62  
63          FilenameParser parser = c.getFilenameParser();
64          assertTrue(parser.getClass().getName(), c.getFilenameParser() instanceof SimpleFilenameParser);
65  
66          assertTrue(c.isConnected());
67          assertTrue(c.isStarted());
68      }
69  
70      public void testThirdConnector() throws Exception
71      {
72          FileConnector c = (FileConnector)muleContext.getRegistry().lookupConnector("thirdConnector");
73          assertNotNull(c);
74  
75          FilenameParser parser = c.getFilenameParser();
76          assertTrue(parser.getClass().getName(), c.getFilenameParser() instanceof ExpressionFilenameParser);
77  
78          assertTrue(c.isConnected());
79          assertTrue(c.isStarted());
80      }
81  
82      public void testTransformersOnEndpoints() throws Exception
83      {
84          Object transformer1 = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint("ep1").getTransformers().get(0);
85          assertNotNull(transformer1);
86          assertEquals(FileToByteArray.class, transformer1.getClass());
87  
88          Object transformer2 = muleContext.getRegistry().lookupEndpointFactory().getInboundEndpoint("ep2").getTransformers().get(0);
89          assertNotNull(transformer2);
90          assertEquals(FileToString.class, transformer2.getClass());
91      }
92      
93      public void testFileFilter() throws Exception
94      {
95          Service service = muleContext.getRegistry().lookupService("Test");
96          assertNotNull(service);
97          List endpoints = service.getInboundRouter().getEndpoints();
98          assertEquals(1, endpoints.size());
99  
100         InboundEndpoint endpoint = (InboundEndpoint) endpoints.get(0);
101         Filter filter = endpoint.getFilter();
102         assertNotNull(filter);
103 
104         assertTrue(filter instanceof FilenameRegexFilter);
105         final FilenameRegexFilter f = (FilenameRegexFilter) filter;
106         assertEquals(false, f.isCaseSensitive());
107         assertEquals("(^SemDirector_Report-\\d)(.*)(tab$)", f.getPattern());
108     }
109 }