package org.example.entities.ui.tests; import java.util.List; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.emf.ecore.EValidator; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.xtext.junit4.ui.AbstractWorkbenchTest; import org.eclipse.xtext.junit4.ui.util.IResourcesSetupUtil; import org.eclipse.xtext.junit4.ui.util.JavaProjectSetupUtil; import org.eclipse.xtext.ui.XtextProjectHelper; import org.eclipse.xtext.xbase.lib.Conversions; import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.ObjectExtensions; import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @SuppressWarnings("all") public class EntitiesWorkbenchTest extends AbstractWorkbenchTest { private final String TEST_PROJECT = "mytestproject"; @Before @Override public void setUp() { try { super.setUp(); this.createJavaProjectWithXtextNature(); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } public void createJavaProjectWithXtextNature() { try { IJavaProject _createJavaProject = JavaProjectSetupUtil.createJavaProject(this.TEST_PROJECT); final Procedure1<IJavaProject> _function = new Procedure1<IJavaProject>() { @Override public void apply(final IJavaProject it) { try { IProject _project = it.getProject(); IResourcesSetupUtil.addNature(_project, XtextProjectHelper.NATURE_ID); JavaProjectSetupUtil.addSourceFolder(it, "entities-gen"); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } }; ObjectExtensions.<IJavaProject>operator_doubleArrow(_createJavaProject, _function); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } public void checkEntityProgram(final String contents, final int expectedErrors) { try { final IFile file = IResourcesSetupUtil.createFile((this.TEST_PROJECT + "/src/test.entities"), contents); IResourcesSetupUtil.waitForAutoBuild(); IMarker[] _findMarkers = file.findMarkers(EValidator.MARKER, true, IResource.DEPTH_INFINITE); int _size = ((List<IMarker>)Conversions.doWrapArray(_findMarkers)).size(); Assert.assertEquals(expectedErrors, _size); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } @Test public void testValidProgram() { this.checkEntityProgram("entity E {}", 0); } @Test public void testNotValidProgram() { this.checkEntityProgram("foo", 1); } }