package org.jboss.tools.seam.core.test.refactoring;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater;
import org.jboss.tools.common.base.test.AbstractRefactorTest;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.ProjectImportTestSetup;
public class SeamRefactoringTest extends AbstractRefactorTest {
static String warProjectName = "Test1";
static String earProjectName = "Test1-ear";
static String ejbProjectName = "Test1-ejb";
static IProject warProject;
static IProject earProject;
static IProject ejbProject;
static ISeamProject seamWarProject;
static ISeamProject seamEjbProject;
public SeamRefactoringTest(String name){
super(name);
}
protected void setUp() throws Exception {
loadProjects();
List<IProject> projectList = new ArrayList<IProject>();
projectList.add(ejbProject);
projectList.add(warProject);
J2EEComponentClasspathUpdater.getInstance().forceUpdate(projectList);
loadProjects();
}
private void loadProjects() throws Exception {
earProject = ProjectImportTestSetup.loadProject(earProjectName);
earProject.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
ejbProject = ProjectImportTestSetup.loadProject(ejbProjectName);
warProject = ProjectImportTestSetup.loadProject(warProjectName);
seamEjbProject = loadSeamProject(ejbProject);
seamWarProject = loadSeamProject(warProject);
}
private ISeamProject loadSeamProject(IProject project) throws CoreException {
JobUtils.waitForIdle();
//System.out.println("Project - "+project);
ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, true);
assertNotNull("Seam project for " + project.getName() + " is null", seamProject);
return seamProject;
}
}