package mmrnmhrm.tests;
import melnorme.lang.ide.core.utils.ResourceUtils;
import melnorme.utilbox.misc.MiscUtil;
import mmrnmhrm.core.CommonDeeWorkspaceTestNew;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.junit.After;
import org.junit.Before;
import dtool.tests.MockCompilerInstalls;
/**
* Initializes a common Dee test setup:
* - Creates common sample workspace projects.
* Statically loads some read only projects, and prepares the workbench, in case it wasn't cleared.
*/
public abstract class CommonDeeWorkspaceTest extends CommonDeeWorkspaceTestNew {
static {
setupTestDeeInstalls();
SamplePreExistingProject.checkForExistanceOfPreExistingProject();
SampleNonDeeProject.createAndSetupNonDeeProject();
}
protected static void setupTestDeeInstalls() {
MiscUtil.loadClass(MockCompilerInstalls.class);
checkTestSetupInvariants();
}
public static void checkTestSetupInvariants() {
}
@Before
@After
public void checkTestSetupInvariants_do() {
checkTestSetupInvariants();
}
public static IProject createAndOpenDeeProject(String name) throws CoreException {
return createAndOpenDeeProject(name, false);
}
public static IProject createAndOpenDeeProject(String name, boolean overwrite) throws CoreException {
IProject project = createAndOpenProject(name, overwrite);
return setupStandardDeeProject(project);
}
public static IProject setupStandardDeeProject(final IProject project) throws CoreException {
ResourceUtils.getWorkspace().run(new IWorkspaceRunnable() {
@Override
public void run(IProgressMonitor monitor) throws CoreException {
setupLangProject(project);
}
}, null);
return project;
}
}