View Javadoc

1   /*
2    *   Copyright (C) Christian Schulte, 2011-293
3    *   All rights reserved.
4    *
5    *   Redistribution and use in source and binary forms, with or without
6    *   modification, are permitted provided that the following conditions
7    *   are met:
8    *
9    *     o Redistributions of source code must retain the above copyright
10   *       notice, this list of conditions and the following disclaimer.
11   *
12   *     o Redistributions in binary form must reproduce the above copyright
13   *       notice, this list of conditions and the following disclaimer in
14   *       the documentation and/or other materials provided with the
15   *       distribution.
16   *
17   *   THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
18   *   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
19   *   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
20   *   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
21   *   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22   *   NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23   *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24   *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25   *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26   *   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27   *
28   *   $JOMC: KeyValueTypeTest.java 3878 2011-10-24 00:58:09Z schulte2005 $
29   *
30   */
31  package org.jomc.ant.types.test;
32  
33  import java.net.URL;
34  import org.apache.tools.ant.BuildException;
35  import org.apache.tools.ant.Location;
36  import org.jomc.ant.types.KeyValueType;
37  import org.junit.Test;
38  import static org.junit.Assert.assertEquals;
39  import static org.junit.Assert.assertNotNull;
40  import static org.junit.Assert.assertNull;
41  import static org.junit.Assert.fail;
42  
43  /**
44   * Test cases for class {@code org.jomc.ant.types.KeyValueType}.
45   *
46   * @author <a href="mailto:schulte2005@users.sourceforge.net">Christian Schulte</a>
47   * @version $JOMC: KeyValueTypeTest.java 3878 2011-10-24 00:58:09Z schulte2005 $
48   */
49  public class KeyValueTypeTest
50  {
51  
52      /** Creates a new {@code KeyValueTypeTest} instance. */
53      public KeyValueTypeTest()
54      {
55          super();
56      }
57  
58      @Test
59      public void testGetValue() throws Exception
60      {
61          final KeyValueType keyValueType = new KeyValueType();
62  
63          try
64          {
65              keyValueType.getObject( null );
66              fail( "Expected NullPointerException not thrown." );
67          }
68          catch ( final NullPointerException e )
69          {
70              assertNotNull( e.getMessage() );
71              System.out.println( e.toString() );
72          }
73  
74          assertNull( keyValueType.getObject( new Location( "TEST" ) ) );
75  
76          keyValueType.setValue( "TEST" );
77          assertEquals( "TEST", keyValueType.getObject( new Location( "TEST" ) ) );
78  
79          keyValueType.setValue( null );
80          keyValueType.setType( Object.class );
81          assertEquals( Object.class, keyValueType.getObject( new Location( "TEST" ) ).getClass() );
82  
83          keyValueType.setValue( "file:///" );
84          keyValueType.setType( URL.class );
85          assertEquals( URL.class, keyValueType.getObject( new Location( "TEST" ) ).getClass() );
86  
87          keyValueType.setValue( "TEST" );
88          keyValueType.setType( Object.class );
89  
90          try
91          {
92              keyValueType.getObject( new Location( "TEST" ) );
93              fail( "Expected BuildException not thrown." );
94          }
95          catch ( final BuildException e )
96          {
97              assertNotNull( e.getMessage() );
98              System.out.println( e.toString() );
99          }
100     }
101 
102 }