package org.erlide.engine.model.erlang;
import org.eclipse.core.runtime.CoreException;
import org.erlide.engine.model.root.IErlModule;
import org.erlide.engine.model.root.IErlProject;
import org.erlide.engine.util.ErlideTestUtils;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
public class ErlModelTestBase {
protected static IErlProject[] projects;
protected static void setupProjects() throws CoreException {
ErlideTestUtils.initProjects();
// We set up projects here, it's quite costly
final String name1 = "testproject1";
final IErlProject project1 = ErlideTestUtils
.createProject(ErlideTestUtils.getTmpPath(name1), name1);
final String name2 = "testproject2";
final IErlProject project2 = ErlideTestUtils
.createProject(ErlideTestUtils.getTmpPath(name2), name2);
projects = new IErlProject[] { project1, project2 };
}
@BeforeClass
public static void setUpBeforeClass() throws Exception {
setupProjects();
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
ErlideTestUtils.deleteProjects();
}
protected IErlModule module;
protected IErlProject project;
public void setupModules() throws CoreException {
ErlideTestUtils.initModulesAndIncludes();
project = projects[0];
module = ErlideTestUtils.createModule(projects[0], "xx.erl",
"-module(xx).\n-include(\"yy.hrl\").\n"
+ "f(A) ->\n lists:reverse(A).\n");
}
protected void tearDownModules() throws CoreException {
ErlideTestUtils.deleteModules();
ErlideTestUtils.refreshProjects();
}
@Before
public void setUp() throws Exception {
setupModules();
}
@After
public void tearDown() throws Exception {
tearDownModules();
}
}