1/* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16package vogar.target.junit; 17 18import java.util.concurrent.atomic.AtomicReference; 19import javax.annotation.Nullable; 20import vogar.monitor.TargetMonitor; 21import vogar.target.RunnerFactory; 22import vogar.target.TargetRunner; 23import vogar.target.TestEnvironment; 24 25/** 26 * Creates a Runner for JUnit 3 or JUnit 4 tests. 27 */ 28public class JUnitRunnerFactory implements RunnerFactory { 29 30 @Override @Nullable 31 public TargetRunner newRunner(TargetMonitor monitor, String qualification, 32 Class<?> klass, AtomicReference<String> skipPastReference, 33 TestEnvironment testEnvironment, int timeoutSeconds, String[] args) { 34 if (supports(klass)) { 35 return new JUnitTargetRunner(monitor, skipPastReference, testEnvironment, 36 timeoutSeconds, klass, qualification, args); 37 } else { 38 return null; 39 } 40 } 41 42 private boolean supports(Class<?> klass) { 43 return Junit3.isJunit3Test(klass) || Junit4.isJunit4Test(klass); 44 } 45}