1   package test.net.sourceforge.pmd.properties;
2   
3   import java.util.ArrayList;
4   import java.util.HashMap;
5   
6   import net.sourceforge.pmd.PropertyDescriptor;
7   import net.sourceforge.pmd.properties.EnumeratedProperty;
8   
9   /**
10   */
11  public class EnumeratedPropertyTest extends AbstractPropertyDescriptorTester {
12  
13  	private static final String[] keys = new String[] {
14  		"map",
15  		"emptyArray",
16  		"list",
17  		"string",
18  		};
19  
20      private static final Object[] values = new Object[] {
21          new HashMap(),
22          new Object[0],
23          new ArrayList(),
24          "Hello World!",
25          };
26      
27  	public EnumeratedPropertyTest() {
28  		super();
29  	}
30  
31  	/**
32  	 * Method createValue.
33  	 * @param count int
34  	 * @return Object
35  	 */
36  	protected Object createValue(int count) {
37  		
38  		if (count == 1) return randomChoice(values);
39  		
40  		Object[] values = new Object[count];
41  		for (int i=0; i<values.length; i++) values[i] = createValue(1);
42  		return values;
43  	}
44  
45  	/**
46  	 * Method createProperty.
47  	 * @param maxCount int
48  	 * @return PropertyDescriptor
49  	 */
50  	protected PropertyDescriptor createProperty(int maxCount) {
51  		
52  		return maxCount == 1 ?
53  			new EnumeratedProperty<Object>("testEnumerations", "Test enumerations with complex types", keys, values, 1.0f) :
54  			new EnumeratedProperty<Object>("testEnumerations", "Test enumerations with complex types", keys, values, 1.0f, 3);	
55  	}
56  
57      public static junit.framework.Test suite() {
58          return new junit.framework.JUnit4TestAdapter(EnumeratedPropertyTest.class);
59      }
60  }