1   /*
2    * $Id: ExpressionFilenameParserTestCase.java 11295 2008-03-09 17:13:18Z rossmason $
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  
11  package org.mule.transport.file;
12  
13  import org.mule.api.transport.MessageAdapter;
14  import org.mule.tck.AbstractMuleTestCase;
15  import org.mule.transport.DefaultMessageAdapter;
16  import org.mule.transport.file.FileConnector;
17  
18  /**
19   * Test the syntax of the SimpleFilename parser
20   */
21  public class ExpressionFilenameParserTestCase extends AbstractMuleTestCase
22  {
23      private ExpressionFilenameParser parser;
24      private MessageAdapter adapter;
25  
26      protected void doSetUp() throws Exception
27      {
28          super.doSetUp();
29  
30          parser = new ExpressionFilenameParser();
31  
32          adapter = new DefaultMessageAdapter("hello");
33          adapter.setProperty("foo", "bar");
34          adapter.setProperty(FileConnector.PROPERTY_ORIGINAL_FILENAME, "originalName");
35          adapter.setProperty(FileConnector.PROPERTY_FILENAME, "newName");
36      }
37  
38      public void testAntStyleParsing()
39      {
40          String result = parser.getFilename(adapter, "Test1_${function:count}.txt");
41          assertEquals("Test1_0.txt", result);
42  
43          result = parser.getFilename(adapter, "Test2_${function:datestamp-yyMMdd}.txt");
44          assertEquals(16, result.length());
45  
46          result = parser.getFilename(adapter, "Test3_${function:datestamp}.txt");
47          assertEquals(31, result.length());
48  
49          result = parser.getFilename(adapter, "Test4_${function:systime}.txt");
50          assertFalse(result.equals("Test4_${function:systime}.txt"));
51  
52          result = parser.getFilename(adapter, "Test5_${function:uuid}.txt");
53          assertFalse(result.equals("Test5_${function:uuid}.txt"));
54  
55          result = parser.getFilename(adapter, "Test6_${function:count}.txt");
56          assertEquals("Test6_1.txt", result);
57  
58          result = parser.getFilename(adapter, "Test7_${header:originalFilename}.txt");
59          assertEquals("Test7_originalName.txt", result);
60  
61          result = parser.getFilename(adapter, "Test8_${header:foo}.txt");
62          assertEquals("Test8_bar.txt", result);
63  
64          result = parser.getFilename(adapter, "Test9_${header:xxx}.txt");
65          assertEquals("Test9_${header:xxx}.txt", result);
66  
67      }
68  
69      public void testSquareStyleParsing()
70      {
71          String result = parser.getFilename(adapter, "Test1_[function:count].txt");
72          assertEquals("Test1_0.txt", result);
73  
74          result = parser.getFilename(adapter, "Test2_[function:dateStamp-yyMMdd].txt");
75          assertEquals("got result: " + result, 16, result.length());
76  
77          result = parser.getFilename(adapter, "Test3_[function:dateStamp].txt");
78          assertEquals("got result: '" + result, 31, result.length());
79  
80          result = parser.getFilename(adapter, "Test4_[function:systime].txt");
81          assertFalse(result.equals("Test4_[function:systime].txt"));
82  
83          result = parser.getFilename(adapter, "Test5_[function:uuid].txt");
84          assertFalse(result.equals("Test5_[function:uuid].txt"));
85  
86          result = parser.getFilename(adapter, "Test6_[function:count].txt");
87          assertEquals("Test6_1.txt", result);
88  
89          result = parser.getFilename(adapter, "Test7_[header:originalFilename].txt");
90          assertEquals("Test7_originalName.txt", result);
91  
92          result = parser.getFilename(adapter, "Test8_[header:foo].txt");
93          assertEquals("Test8_bar.txt", result);
94  
95          result = parser.getFilename(adapter, "Test9_[header:xxx].txt");
96          assertEquals("Test9_[header:xxx].txt", result);
97      }
98  
99  }