1   /*
2    * Copyright (C) The MetaClass Group. All rights reserved.
3    *
4    * This software is published under the terms of the Spice
5    * Software License version 1.1, a copy of which has been included
6    * with this distribution in the LICENSE.txt file.
7    */
8   package org.codehaus.metaclass.model;
9   
10  import java.util.Properties;
11  import junit.framework.TestCase;
12  
13  /***
14   * @author Peter Donald
15   * @version $Revision: 1.2 $ $Date: 2003/11/28 11:14:54 $
16   */
17  public class AttributeTestCase
18      extends TestCase
19  {
20      public void testAttributeOnlyWithName()
21      {
22          final Attribute attribute = new Attribute( "dna.service" );
23          assertEquals( "attribute.getName() == dna.service",
24                        "dna.service", attribute.getName() );
25          assertEquals( "attribute.getValue() == null",
26                        null, attribute.getValue() );
27          assertEquals( "attribute.getParameterCount() == 0",
28                        0, attribute.getParameterCount() );
29          assertEquals( "attribute.getParameterNames().length == 0",
30                        0, attribute.getParameterNames().length );
31          assertEquals( "attribute.getParameter('key') == null",
32                        null, attribute.getParameter( "key" ) );
33          assertEquals( "attribute.getParameter('dummy','foo') == foo",
34                        "foo", attribute.getParameter( "key", "foo" ) );
35      }
36  
37      public void testAttributeWithNameAndValue()
38      {
39          final Attribute attribute = new Attribute( "dna.service", "blah" );
40          assertEquals( "attribute.getName() == dna.service",
41                        "dna.service", attribute.getName() );
42          assertEquals( "attribute.getValue() == blah",
43                        "blah", attribute.getValue() );
44          assertEquals( "attribute.getParameterCount() == 0",
45                        0, attribute.getParameterCount() );
46          assertEquals( "attribute.getParameterNames().length == 0",
47                        0, attribute.getParameterNames().length );
48          assertEquals( "attribute.getParameter('key') == null",
49                        null, attribute.getParameter( "key" ) );
50          assertEquals( "attribute.getParameter('dummy','foo') == foo",
51                        "foo", attribute.getParameter( "key", "foo" ) );
52      }
53  
54      public void testAttributeWithNameAndParameters()
55      {
56          final Properties parameters = new Properties();
57          parameters.setProperty( "key", "value" );
58          final Attribute attribute = new Attribute( "dna.service", parameters );
59          assertEquals( "attribute.getName() == dna.service",
60                        "dna.service", attribute.getName() );
61          assertEquals( "attribute.getValue() == null",
62                        null, attribute.getValue() );
63          assertEquals( "attribute.getParameterCount() == 1",
64                        1, attribute.getParameterCount() );
65          assertEquals( "attribute.getParameterNames().length == 1",
66                        1, attribute.getParameterNames().length );
67          assertEquals( "attribute.getParameter('key') == value",
68                        "value", attribute.getParameter( "key" ) );
69          assertEquals( "attribute.getParameter('dummy','foo') == value",
70                        "value", attribute.getParameter( "key", "foo" ) );
71      }
72  
73      public void testAttributeWithNullName()
74      {
75          try
76          {
77              new Attribute( null );
78          }
79          catch( final NullPointerException npe )
80          {
81              assertEquals( "npe for name", "name", npe.getMessage() );
82          }
83      }
84  }