blob: c3511c0e2eeaa95cb7437c6380e59bc370f2ece9 [file] [log] [blame]
/**
*
*/
package org.eclipse.jst.j2ee.archive.emftests;
import java.util.HashSet;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jst.j2ee.application.ApplicationFactory;
import org.eclipse.jst.j2ee.application.ApplicationPackage;
import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchiveFactory;
import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchivePackage;
import org.eclipse.jst.j2ee.ejb.EjbFactory;
import org.eclipse.jst.j2ee.ejb.EjbPackage;
import org.eclipse.jst.j2ee.webapplication.WebapplicationFactory;
import org.eclipse.jst.j2ee.webapplication.WebapplicationPackage;
import org.eclipse.wst.common.internal.emf.resource.RendererFactory;
import org.eclipse.wst.common.tests.BaseTestCase;
import org.eclipse.wst.common.tests.ProjectUtility;
import org.eclipse.wst.validation.internal.operations.ValidationBuilder;
/**
* @author itewk
*
*/
public abstract class GeneralEMFTest extends BaseTestCase {
private RendererFactory testingFactory;
private RendererFactory defaultFactory;
public static final String VALIDATOR_JOB_FAMILY = "validators";
public GeneralEMFTest(String name) {
super(name);
defaultFactory = RendererFactory.getDefaultRendererFactory();
testingFactory = RendererFactory.getDefaultRendererFactory();
}
public GeneralEMFTest(String name, RendererFactory factory) {
super(name);
defaultFactory = RendererFactory.getDefaultRendererFactory();
testingFactory = factory;
}
protected void setUp() throws Exception {
//set the default factory to the factory needed for this test run
RendererFactory.setDefaultRendererFactory(testingFactory);
super.setUp();
}
protected void tearDown() throws Exception {
//set the default factory back to the orginal default
RendererFactory.setDefaultRendererFactory(defaultFactory);
// Wait for all validation jobs to end before ending test....
waitOnJobs();
super.tearDown();
}
protected CommonarchiveFactory getArchiveFactory() {
return CommonarchivePackage.eINSTANCE.getCommonarchiveFactory();
}
protected EjbFactory getEjbFactory() {
return EjbPackage.eINSTANCE.getEjbFactory();
}
protected ApplicationFactory getApplicationFactory() {
return ApplicationPackage.eINSTANCE.getApplicationFactory();
}
protected WebapplicationFactory getWebAppFactory() {
return WebapplicationPackage.eINSTANCE.getWebapplicationFactory();
}
protected HashSet ignorableAttributes(){
HashSet set = new HashSet();
set.add("id");
return set;
}
public static void waitOnJobs() throws InterruptedException {
IProject[] projects = ProjectUtility.getAllProjects();
for (int i = 0; i < projects.length; i++) {
IProject project = projects[i];
Job.getJobManager().join(project.getName() + VALIDATOR_JOB_FAMILY,null);
}
Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_BUILD,null);
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD,null);
Job.getJobManager().join(ValidationBuilder.FAMILY_VALIDATION_JOB,null);
}
}