1bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com/* 2bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * Copyright (C) 2011 The Android Open Source Project 3bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * 4bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * Licensed under the Apache License, Version 2.0 (the "License"); 5bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * you may not use this file except in compliance with the License. 6bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * You may obtain a copy of the License at 7bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * 8bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * http://www.apache.org/licenses/LICENSE-2.0 9bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * 10bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * Unless required by applicable law or agreed to in writing, software 11bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * distributed under the License is distributed on an "AS IS" BASIS, 12bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * See the License for the specific language governing permissions and 14bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * limitations under the License. 15bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com */ 16bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com 17bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.compackage vogar.target.junit; 18bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com 19ec87632c66b964e58a87d7d77fa154326113a027kroot@google.comimport java.lang.reflect.Modifier; 20bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.comimport junit.framework.Test; 21bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.comimport junit.framework.TestCase; 22ec87632c66b964e58a87d7d77fa154326113a027kroot@google.comimport vogar.ClassAnalyzer; 23bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com 24bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com/** 25bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com * Utilities for manipulating JUnit tests. 26bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com */ 27ec87632c66b964e58a87d7d77fa154326113a027kroot@google.compublic final class Junit3 { 28ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com private Junit3() {} 29bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com 30ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com public static boolean isJunit3Test(Class<?> klass) { 31ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com // public class FooTest extends TestCase {...} 32ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com // or 33ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com // public class FooSuite { 34ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com // public static Test suite() {...} 35ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com // } 36ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com return (TestCase.class.isAssignableFrom(klass) && !Modifier.isAbstract(klass.getModifiers())) 37ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com || new ClassAnalyzer(klass).hasMethod(true, Test.class, "suite"); 38ec87632c66b964e58a87d7d77fa154326113a027kroot@google.com } 39bd8bda78cc5740aeae8de67b52f1d86e208f4864jessewilson@google.com} 40