/******************************************************************************* * Copyright (c) 2007-2012 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.test.util; import junit.extensions.TestSetup; import junit.framework.Test; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; /** * @author eskimo * */ public class ProjectImportTestSetup extends TestSetup { private String bundleName; protected String[] projectPaths; protected String[] projectNames; protected IProject[] projects; /** * @param test */ public ProjectImportTestSetup(Test test, String bundleName, String projectPath, String projectName) { super(test); this.bundleName = bundleName; this.projectPaths = new String[]{projectPath}; this.projectNames = new String[]{projectName}; } public ProjectImportTestSetup(Test test, String bundleName, String[] projectPaths, String[] projectNames) { super(test); this.bundleName = bundleName; this.projectPaths = projectPaths; this.projectNames = projectNames; } public IProject importProject() throws Exception { return importProjects()[0]; } public IProject[] importProjects() throws Exception { projects = new IProject[projectPaths.length]; JobUtils.waitForIdle(); for (int i = 0; i < projectPaths.length; i++) { projects[i] = ResourcesUtils.importProject(bundleName, projectPaths[i]); projects[i].build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null); } return projects; } public static IProject loadProject(String projectName) throws CoreException { IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); assertNotNull("Can't load " + projectName, project); //$NON-NLS-1$ try { project.build(IncrementalProjectBuilder.FULL_BUILD, null); } catch (CoreException e) { JUnitUtils.fail(e.getMessage(), e); } JobUtils.waitForIdle(); return project; } @Override protected void setUp() throws Exception { importProjects(); } @Override protected void tearDown() throws Exception { boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false); for (int i = 0; i < projectNames.length; i++) { ResourcesUtils.deleteProject(projectNames[i]); JobUtils.waitForIdle(); } ResourcesUtils.setBuildAutomatically(saveAutoBuild); } public void deleteProjects() throws Exception { tearDown(); } }