package org.example.smalljava.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.xtend2.lib.StringConcatenation; 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 SmallJavaWorkbenchTest 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); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } }; ObjectExtensions.<IJavaProject>operator_doubleArrow(_createJavaProject, _function); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } public void checkSmallJavaPrograms(final String program1, final String program2, final int expectedErrors) { try { final IFile file1 = IResourcesSetupUtil.createFile((this.TEST_PROJECT + "/src/test1.smalljava"), program1); final IFile file2 = IResourcesSetupUtil.createFile((this.TEST_PROJECT + "/src/test2.smalljava"), program2); IResourcesSetupUtil.waitForAutoBuild(); IMarker[] _findMarkers = file1.findMarkers(EValidator.MARKER, true, IResource.DEPTH_INFINITE); int _size = ((List<IMarker>)Conversions.doWrapArray(_findMarkers)).size(); Assert.assertEquals(expectedErrors, _size); IMarker[] _findMarkers_1 = file2.findMarkers(EValidator.MARKER, true, IResource.DEPTH_INFINITE); int _size_1 = ((List<IMarker>)Conversions.doWrapArray(_findMarkers_1)).size(); Assert.assertEquals(expectedErrors, _size_1); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } @Test public void testValidPrograms() { StringConcatenation _builder = new StringConcatenation(); _builder.append("package my.pack;"); _builder.newLine(); _builder.append("class C {}"); _builder.newLine(); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("package my.pack;"); _builder_1.newLine(); _builder_1.append("class D {}"); _builder_1.newLine(); this.checkSmallJavaPrograms(_builder.toString(), _builder_1.toString(), 0); } @Test public void testNotValidPrograms() { StringConcatenation _builder = new StringConcatenation(); _builder.append("package my.pack;"); _builder.newLine(); _builder.append("class D {}"); _builder.newLine(); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("package my.pack;"); _builder_1.newLine(); _builder_1.append("class D {}"); _builder_1.newLine(); this.checkSmallJavaPrograms(_builder.toString(), _builder_1.toString(), 1); } }