StringPropertyTest xref

View Javadoc
1 package net.sourceforge.pmd.properties;
2 
3 import net.sourceforge.pmd.PropertyDescriptor;
4 import net.sourceforge.pmd.lang.rule.properties.StringMultiProperty;
5 import net.sourceforge.pmd.lang.rule.properties.StringProperty;
6 
7 /**
8  * Evaluates the functionality of the StringProperty descriptor by testing its ability to catch creation
9  * errors (illegal args), flag invalid strings per any specified expressions, and serialize/deserialize
10  * groups of strings onto/from a string buffer.
11  * 
12  * @author Brian Remedios
13  */
14 public class StringPropertyTest extends AbstractPropertyDescriptorTester {
15 
16 	private static final int maxStringLength = 52;
17 	private static final char delimiter = '|';
18 	private static final char[] charSet = filter(allChars.toCharArray(), delimiter);
19 	
20 	public StringPropertyTest() {
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 newString();
32 		
33 		String[] values = new String[count];
34 		for (int i=0; i<count; i++) values[i] = (String)createValue(1);
35 		return values;
36 	}
37 
38 	/**
39 	 * Method createBadValue.
40 	 * @param count int
41 	 * @return Object
42 	 */
43 	protected Object createBadValue(int count) {
44 
45 		if (count == 1) return null;
46 		
47 		Object[] values = new Object[count];
48 		for (int i=0; i<count; i++) values[i] = createBadValue(1);
49 		return values;
50 	}
51 	
52 	/**
53 	 * Method newString.
54 	 * @return String
55 	 */
56 	private String newString() {
57 		
58 		int strLength = randomInt(0, maxStringLength);
59 		
60 		char[] chars = new char[strLength];
61 		for (int i=0; i<chars.length; i++) chars[i] = randomCharIn(charSet);
62 		return new String(chars);
63 	}
64 	
65 	/**
66 	 * Method randomCharIn.
67 	 * @param chars char[]
68 	 * @return char
69 	 */
70 	private char randomCharIn(char[] chars) {
71 		return randomChar(chars);
72 	}
73 	
74 	/**
75 	 * Method createProperty.
76 	 * @param multiValue boolean
77 	 * @return PropertyDescriptor
78 	 */
79 	protected PropertyDescriptor createProperty(boolean multiValue) {
80 		return multiValue ?
81 			new StringMultiProperty("testString", "Test string property", new String[] {"hello", "world"}, 1.0f, delimiter) :
82 			new StringProperty("testString", "Test string property", "brian", 1.0f);			
83 		}
84 
85 	/**
86 	 * Method createBadProperty.
87 	 * @param multiValue boolean
88 	 * @return PropertyDescriptor
89 	 */
90 	protected PropertyDescriptor createBadProperty(boolean multiValue) {
91 		return multiValue ?
92 			new StringMultiProperty("testString", "Test string property", new String[] {"hello", "world", "a"+delimiter+"b"}, 1.0f, delimiter) :
93 			new StringProperty("", "Test string property", "brian", 1.0f);			
94 		}
95 
96 public static junit.framework.Test suite() {
97 return new junit.framework.JUnit4TestAdapter(StringPropertyTest.class);
98 }
99 }

AltStyle によって変換されたページ (->オリジナル) /