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 Object[][] mixedItems = new Object[][] {
14  		{"map",			new HashMap()},
15  		{"emptyArray",	new Object[0]},
16  		{"list",		new ArrayList()},
17  		{"string",		"Hello World!"},
18  		};
19  	
20  	public EnumeratedPropertyTest() {
21  		super();
22  	}
23  
24  	/***
25  	 * Method createValue.
26  	 * @param count int
27  	 * @return Object
28  	 */
29  	protected Object createValue(int count) {
30  		
31  		if (count == 1) return ((Object[])randomChoice(mixedItems))[1];
32  		
33  		Object[] values = new Object[count];
34  		for (int i=0; i<values.length; i++) values[i] = createValue(1);
35  		return values;
36  	}
37  
38  	/***
39  	 * Method createProperty.
40  	 * @param maxCount int
41  	 * @return PropertyDescriptor
42  	 */
43  	protected PropertyDescriptor createProperty(int maxCount) {
44  		
45  		return maxCount == 1 ?
46  			new EnumeratedProperty("testEnumerations", "Test enumerations with complex types", mixedItems, 1.0f) :
47  			new EnumeratedProperty("testEnumerations", "Test enumerations with complex types", mixedItems, 1.0f, 3);	
48  	}
49  
50  }