1b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot/** 2b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot * 3b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot */ 4b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotpackage org.junit.internal.builders; 5b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 6b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotimport org.junit.internal.runners.SuiteMethod; 7b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotimport org.junit.runner.Runner; 8b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotimport org.junit.runners.model.RunnerBuilder; 9b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 10b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotpublic class SuiteMethodBuilder extends RunnerBuilder { 11b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot @Override 12b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public Runner runnerForClass(Class<?> each) throws Throwable { 13b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot if (hasSuiteMethod(each)) 14b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot return new SuiteMethod(each); 15b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot return null; 16b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } 17b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 18b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot public boolean hasSuiteMethod(Class<?> testClass) { 19b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot try { 20b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot testClass.getMethod("suite"); 21b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } catch (NoSuchMethodException e) { 22b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot return false; 23b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } 24b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot return true; 25b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot } 26b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot}