/******************************************************************************* * Copyright (c) 2012 Google, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Google, Inc. - initial API and implementation *******************************************************************************/ package com.windowtester.runtime.internal.junit4.runner; import org.junit.runner.Description; import org.junit.runner.Runner; import org.junit.runner.notification.RunNotifier; import com.windowtester.internal.runtime.junit.core.IExecutionContext; import com.windowtester.internal.runtime.junit.core.launcher.IApplicationLauncher; import com.windowtester.runtime.internal.junit4.mirror.runners.InitializationError; import com.windowtester.runtime.internal.junit4.runners.UITestClassMethodsRunner; import com.windowtester.runtime.internal.junit4.runners.UITestClassRunner; /** * <p> * * @author Phil Quitslund * */ public class JUnit4RunnerDelegate implements ITestRunnerDelegate, IExecutionContextProvider { private final Runner _runner; private IExecutionContextProvider _contextProvider; public JUnit4RunnerDelegate(Class<?> cls) throws InitializationError { // try { _runner = new UITestClassRunner(cls, new UITestClassMethodsRunner(cls, this, this), (IExecutionContextProvider)this, this); // } catch (InitializationError e) { // throw new IllegalStateException(e); //TODO: reconsider this error-handling scheme // } } private Runner getRunner() { return _runner; } /* (non-Javadoc) * @see com.windowtester.runtime.internal.junit4.runners.ITestRunnerDelegate#getDescription() */ public Description getDescription() { return getRunner().getDescription(); } /* (non-Javadoc) * @see com.windowtester.runtime.internal.junit4.runners.ITestRunnerDelegate#run(org.junit.runner.notification.RunNotifier, com.windowtester.runtime.internal.junit4.runner.IExecutionContextProvider) */ public void run(final RunNotifier notifier, IExecutionContextProvider execContext) { _contextProvider = execContext; getRunner().run(notifier); } /* (non-Javadoc) * @see com.windowtester.runtime.internal.junit4.runner.IExecutionContextProvider#getExecutionContext() */ public IExecutionContext getExecutionContext() { return getContextProvider().getExecutionContext(); } private IExecutionContextProvider getContextProvider() { return _contextProvider; } /* (non-Javadoc) * @see com.windowtester.runtime.internal.junit4.runner.IExecutionContextProvider#getLauncher() */ public IApplicationLauncher getLauncher() { return getContextProvider().getLauncher(); } }