View Javadoc
1   package org.codehaus.plexus.configuration;
2   
3   /*
4    * Copyright 2001-2006 Codehaus Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  import junit.framework.TestCase;
20  import org.codehaus.plexus.component.repository.io.PlexusTools;
21  
22  import java.io.StringReader;
23  
24  /**
25   * @author Jason van Zyl
26   * @version $Id$
27   */
28  public abstract class ConfigurationTestHelper
29      extends TestCase
30  {
31      public static PlexusConfiguration getTestConfiguration()
32          throws Exception
33      {
34          return PlexusTools.buildConfiguration( "<Test String>", new StringReader( ConfigurationTestHelper.getXmlConfiguration() ) );
35      }
36  
37      public static String getXmlConfiguration()
38      {
39          return "<configuration>" +
40                 "<empty-element></empty-element>" +
41                 "<singleton attribute='attribute' />" +
42                 "<string string='string'>string</string>" +
43                 "<number number='0'>0</number>" +
44                 "<not-a-number not-a-number='foo'>not-a-number</not-a-number>" +
45                 "<boolean-true boolean-true='true'>true</boolean-true>" +
46                 "<boolean-false boolean-false='false'>false</boolean-false>" +
47                 "<not-a-boolean>not-a-boolean</not-a-boolean>" +
48                 "</configuration>";
49      }
50  
51      public static void testConfiguration( PlexusConfiguration c )
52          throws Exception
53      {
54          // Exercise all value/attribute retrieval methods.
55  
56          // Values
57  
58  // TODO: uncomment once maven can test the latest plexus-utils
59  //        assertNull( c.getChild( "singleton" ).getValue( null ) );
60  
61          // String
62  
63          assertEquals( "string", c.getValue( "string" ) );
64  
65          assertEquals( "string", c.getChild( "string" ).getValue() );
66  
67          assertEquals( "string", c.getChild( "ne-string" ).getValue( "string" ) );
68  
69          assertNull( c.getChild( "not-existing" ).getValue( null ) );
70  
71          assertEquals( "''", "'" + c.getChild( "empty-element" ).getValue() + "'" );
72  
73          assertEquals( "", c.getChild( "empty-element" ).getValue( null ) );
74  
75          // Attributes
76  
77          assertEquals( "string", c.getChild( "string" ).getAttribute( "string" ));
78  
79          assertEquals( "attribute", c.getChild( "singleton" ).getAttribute( "attribute" ));
80      }
81  }