1 package test.net.sourceforge.pmd.properties; 2 3 import junit.framework.TestCase; 4 import net.sourceforge.pmd.PropertyDescriptor; 5 import net.sourceforge.pmd.util.CollectionUtil; 6 7 11 public abstract class AbstractPropertyDescriptorTester extends TestCase { 12 13 private static final int maxCardinality = 10; 14 15 public static final String punctuationChars = "!@#$%^&*()_-+=[]{}\\|;:'\",.<>/?`~"; 16 public static final String whitespaceChars = " \t\n"; 17 public static final String digitChars = "0123456789"; 18 public static final String alphaChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmniopqrstuvwxyz"; 19 public static final String alphaNumericChars = digitChars + alphaChars; 20 public static final String allChars = punctuationChars + whitespaceChars + alphaNumericChars; 21 22 23 protected AbstractPropertyDescriptorTester() { } 24 25 30 protected abstract Object createValue(int count); 31 36 protected abstract PropertyDescriptor createProperty(int maxCount); 37 38 public void testAsDelimitedString() { 39 40 Object testValue = createValue(maxCardinality); 41 PropertyDescriptor pmdProp = createProperty(maxCardinality); 42 43 String storeValue = pmdProp.asDelimitedString(testValue); 44 45 Object returnedValue = pmdProp.valueFrom(storeValue); 46 47 assertTrue(CollectionUtil.areEqual(returnedValue, testValue)); 48 } 49 50 public void testValueFrom() { 51 52 Object testValue = createValue(1); 53 PropertyDescriptor pmdProp = createProperty(1); 54 55 String storeValue = pmdProp.asDelimitedString(testValue); 56 57 Object returnedValue = pmdProp.valueFrom(storeValue); 58 59 assertTrue(CollectionUtil.areEqual(returnedValue, testValue)); 60 } 61 62 63 public void testErrorFor() { 64 65 Object testValue = createValue(1); 66 PropertyDescriptor pmdProp = createProperty(1); 67 String errorMsg = pmdProp.errorFor(testValue); 68 assertTrue(errorMsg == null); 69 70 testValue = createValue(maxCardinality); 71 pmdProp = createProperty(maxCardinality); 72 errorMsg = pmdProp.errorFor(testValue); 73 assertTrue(errorMsg == null); 74 } 75 76 public void testType() { 77 78 PropertyDescriptor pmdProp = createProperty(1); 79 80 assertTrue(pmdProp.type() != null); 81 } 82 83 87 public static int randomInt() { 88 89 int randomVal = (int) (Math.random() * 100 + 1D); 90 return randomVal + (int) (Math.random() * 100000D); 91 } 92 93 99 public static int randomInt(int min, int max) { 100 if (max < min) max = min; 101 int range = Math.abs(max - min); 102 int x = (int) ((range * Math.random()) + .5); 103 return x + min; 104 } 105 106 111 public static char randomChar(char[] characters) { 112 return characters[randomInt(0, characters.length-1)]; 113 } 114 115 120 public static Object randomChoice(Object [] items) { 121 return items[randomInt(0, items.length-1)]; 122 } 123 124 130 protected static final char[] filter(char[] chars, char removeChar) { 131 int count = 0; 132 for (int i=0; i<chars.length; i++) if (chars[i] == removeChar) count++; 133 char[] results = new char[chars.length - count]; 134 135 int index = 0; 136 for (int i=0; i<chars.length; i++) { 137 if (chars[i] != removeChar) results[index++] = chars[i]; 138 } 139 return results; 140 } 141 } 142 | Popular Tags |