1 17 18 package org.sape.carbon.core.util.reflection.test; 19 20 import java.util.ArrayList ; 21 import java.util.Arrays ; 22 import java.util.List ; 23 24 import org.sape.carbon.core.util.reflection.ClassTree; 25 26 import junit.extensions.ActiveTestSuite; 27 import junit.framework.Test; 28 import junit.framework.TestCase; 29 import junit.framework.TestSuite; 30 31 40 public class ClassTreeTest extends TestCase { 41 42 public ClassTreeTest(String name) { 43 super(name); 44 } 45 46 public static interface A {} 47 public static interface B extends A {} 48 public static interface C extends A {} 49 public static interface D extends B, C {} 50 public static class E implements C, B {} 51 public static interface F extends B {} 52 public static class G extends E implements F {} 53 public static class H {} 54 public static class I extends H {} 55 56 69 70 public void testClassInterfaceMix() { 71 ClassTree tree = new ClassTree(G.class); 72 73 List expectedResults = 74 new ArrayList (Arrays.asList( 75 new Class [] { Object .class, A.class, C.class, B.class, E.class, F.class, G.class })); 76 77 List results = tree.getOrderedList(); 78 79 assertEquals( 80 "The expected and result lists where not the same.", 81 expectedResults, 82 results); 83 } 84 85 public void testInterface() { 86 ClassTree tree = new ClassTree(D.class); 87 88 List expectedResults = 89 new ArrayList (Arrays.asList( 90 new Class [] { A.class, C.class, B.class, D.class })); 91 92 List results = tree.getOrderedList(); 93 94 assertEquals( 95 "The expected and result lists where not the same.", 96 expectedResults, 97 results); 98 } 99 100 public void testBaseInterface() { 101 ClassTree tree = new ClassTree(A.class); 102 103 List expectedResults = 104 new ArrayList (Arrays.asList( 105 new Class [] { A.class })); 106 107 List results = tree.getOrderedList(); 108 109 assertEquals( 110 "The expected and result lists where not the same.", 111 expectedResults, 112 results); 113 } 114 115 public void testClass() { 116 ClassTree tree = new ClassTree(I.class); 117 118 List expectedResults = 119 new ArrayList (Arrays.asList( 120 new Class [] { Object .class, H.class, I.class })); 121 122 List results = tree.getOrderedList(); 123 124 assertEquals( 125 "The expected and result lists where not the same.", 126 expectedResults, 127 results); 128 } 129 130 public void testBaseClass() { 131 ClassTree tree = new ClassTree(H.class); 132 133 List expectedResults = 134 new ArrayList (Arrays.asList( 135 new Class [] { Object .class, H.class })); 136 137 List results = tree.getOrderedList(); 138 139 assertEquals( 140 "The expected and result lists where not the same.", 141 expectedResults, 142 results); 143 } 144 145 149 public static Test suite() { 150 TestSuite masterSuite = new TestSuite(); 151 152 Test singleThreadedTests = getSingleThreadedTests(); 154 if (singleThreadedTests != null) { 155 masterSuite.addTest(singleThreadedTests); 156 } 157 158 Test multiThreadedTests = getMultiThreadedTests(); 160 if (multiThreadedTests != null) { 161 masterSuite.addTest(multiThreadedTests); 162 } 163 164 return masterSuite; 165 } 166 167 176 private static Test getSingleThreadedTests() { 177 TestSuite suite = new TestSuite(); 178 179 suite.addTest(new ClassTreeTest("testClassInterfaceMix")); 180 suite.addTest(new ClassTreeTest("testInterface")); 181 suite.addTest(new ClassTreeTest("testBaseInterface")); 182 suite.addTest(new ClassTreeTest("testClass")); 183 suite.addTest(new ClassTreeTest("testBaseClass")); 184 185 return suite; 186 } 187 188 197 private static Test getMultiThreadedTests() { 198 TestSuite suite = new ActiveTestSuite(); 199 205 return suite; 206 } 207 208 218 private static void addTest(TestSuite suite, String testName, int number) { 219 for (int count = 0; count < number; count++) { 220 suite.addTest(new ClassTreeTest(testName)); 221 } 222 } 223 } | Popular Tags |