package org.erlide.ui.wizards;
import java.net.URI;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.operation.IRunnableContext;
import org.erlide.engine.NewProjectData;
import org.erlide.engine.model.root.ErlangProjectProperties;
import org.erlide.ui.tests.util.DummyRunnableContext;
import org.erlide.ui.tests.util.WorkbenchHelper;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class ProjectCreatorTest {
private ProjectCreator creator;
private static URI location;
private static IRunnableContext context;
private static String name;
private IProject prj = null;
@BeforeClass
public static void init() {
name = "demo111";
location = null;
context = new DummyRunnableContext();
WorkbenchHelper.waitForWorkbench();
}
@Before
public void setup() throws CoreException {
if (prj != null) {
if (prj.exists()) {
prj.delete(true, null);
}
if (prj.exists()) {
throw new IllegalArgumentException();
}
prj = null;
}
}
@After
public void teardown() throws CoreException {
final IWorkspace w = ResourcesPlugin.getWorkspace();
final IProject p = w.getRoot().getProject(name);
if (p.exists()) {
p.delete(true, null);
}
}
// @Test
// public void createSimpleProject() throws CoreException {
// final NewProjectData info = new NewProjectData(factory);
// info.copyFrom(ErlangProjectProperties.DEFAULT);
// creator = new ProjectCreator(name, location, new IProject[] {}, info, context,
// null);
// prj = creator.createProject();
// assertThat(prj, is(not(nullValue())));
//
// final IErlProject erlPrj = ErlangEngine.getInstance().getModel().findProject(prj);
// assertThat(erlPrj, is(not(nullValue())));
//
// final ErlangProjectProperties props = erlPrj.getProperties();
// assertThat(props.getOutputDir(), is((IPath) new Path("ebin")));
//
// }
@Test(expected = CoreException.class)
public void createExistingProjectShouldCrash() throws CoreException {
final NewProjectData info = new NewProjectData();
info.copyFrom(ErlangProjectProperties.DEFAULT);
creator = new ProjectCreator(name, location, new IProject[] {}, info, context,
null);
prj = creator.createProject();
prj = creator.createProject();
}
}