blob: e373455879c678152513f4e1ec9ca2ca05b1ac28 [file] [log] [blame]
package org.eclipse.jst.validation.test.junit;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jst.validation.test.internal.registry.OperationTestcase;
import org.eclipse.jst.validation.test.internal.registry.ValidatorTestcase;
import org.eclipse.jst.validation.test.internal.util.BVTValidationUtility;
import org.eclipse.wst.validation.internal.ValidatorMetaData;
/**
* Wraps the existing validation bvt code in a JUnit artifact
* so that the tests can be run within JUnit. Instances of this
* class wrap all of the ValidatorSuite instances that must be run.
*/
public class BVTSuite extends TestSuite {
private Map _validatorSuites = null;
public BVTSuite() {
_validatorSuites = new HashMap();
loadValidatorSuites();
loadOperationSuites();
}
private void loadValidatorSuites() {
IProgressMonitor monitor = new NullProgressMonitor();
ValidatorTestcase[] tmds = BVTValidationUtility.getValidatorTests(monitor);
for(int i=0; i<tmds.length; i++) {
ValidatorTestcase tmd = tmds[i];
if(tmd.isVisible()) {
ValidatorMetaData vmd = tmd.getValidatorMetaData();
ValidatorSuite vs = (ValidatorSuite)_validatorSuites.get(vmd);
if(vs == null) {
vs = new ValidatorSuite(vmd);
}
ValidatorTest vt = new ValidatorTest(tmd, vs);
vs.addTest(vt);
_validatorSuites.put(vmd, vs);
}
}
Iterator iterator = _validatorSuites.values().iterator();
while(iterator.hasNext()) {
ValidatorSuite vs = (ValidatorSuite)iterator.next();
addTest(vs);
}
}
private void loadOperationSuites() {
IProgressMonitor monitor = new NullProgressMonitor();
OperationTestcase[] tmds = BVTValidationUtility.getOperationTests(monitor);
OperationSuite os = new OperationSuite();
for(int i=0; i<tmds.length; i++) {
OperationTestcase tmd = tmds[i];
if(tmd.isVisible()) {
OperationTest ot = new OperationTest(tmd, os);
os.addTest(ot);
}
}
addTest(os);
}
public static Test suite() {
return new BVTSuite();
}
public String toString() {
return "Validation BVT Suite"; //$NON-NLS-1$
}
}