blob: 3abd0fb6825c32baf6ccdf22a14a33d9da923520 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.validation.test.junit;
import junit.framework.TestCase;
import org.eclipse.core.resources.IProject;
import org.eclipse.jst.validation.test.internal.registry.TestcaseUtility;
import org.eclipse.jst.validation.test.internal.registry.ValidatorTestcase;
import org.eclipse.jst.validation.test.internal.util.BVTRunner;
import org.eclipse.wst.validation.internal.operations.ValidatorManager;
/**
* Instances of this class represent one <test>, contributed in
* plugin.xml, for one validator.
*/
public class ValidatorTest extends TestCase {
private ValidatorTestcase _tmd = null;
private ValidatorSuite _suite = null;
public ValidatorTest(ValidatorTestcase tmd, ValidatorSuite suite) {
super(tmd.getName()); // the method named "test" runs the test.
_tmd = tmd;
_suite = suite;
}
public JUnitBuffer getBuffer() {
return _suite.getBuffer();
}
public String toString() {
return _tmd.getProjectName();
}
/* (non-Javadoc)
* @see junit.framework.TestCase#runTest()
*/
protected void runTest() throws Throwable {
try {
IProject project = TestcaseUtility.findProject(_tmd);
if((project == null) || !project.exists()) {
// File needs to be imported (i.e., set up the test).
if(!BVTRunner.singleton().setupTests(getBuffer(), _tmd, false)) {
fail("Could not import input from directory " + TestcaseUtility.getInputDir(_tmd)); //$NON-NLS-1$
}
}
if(!project.isAccessible()) {
fail("Project " + project.getName() + " is not accessible."); //$NON-NLS-1$ //$NON-NLS-2$
}
_tmd.run(getBuffer(), project);
if(!getBuffer().isSuccessful(_tmd.getName())) {
fail(_tmd.getName() + " failed. Read the log for details. " + getBuffer().getLogFileName()); //$NON-NLS-1$
}
ValidatorManager vm = ValidatorManager.getManager();
ValidatorManager.addProjectBuildValidationSupport(project);
vm.enableValidator("ClasspathDependencyValidator");
vm.disableValidator("EarValidator");
vm.enableValidator("WarValidator", project, true, false);
vm.disableValidator("EJBValidator", project, true, true);
}
finally {
// Whether this test case fails or not, send its results to the log.
getBuffer().delineate(_tmd.getName());
}
}
}