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