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