package org.erlide.formatting; import com.google.inject.Inject; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.junit4.AbstractXtextTests; import org.eclipse.xtext.junit4.InjectWith; import org.eclipse.xtext.junit4.XtextRunner; import org.eclipse.xtext.nodemodel.ICompositeNode; import org.eclipse.xtext.nodemodel.util.NodeModelUtils; import org.eclipse.xtext.parser.IParseResult; import org.eclipse.xtext.resource.SaveOptions; import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.serializer.ISerializer; import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.InputOutput; import org.eclipse.xtext.xbase.lib.Pair; import org.erlide.ErlangInjectorProvider; import org.erlide.erlang.ErlangTestSetup; import org.erlide.erlang.Module; import org.erlide.erlang.util.ErlangTestingHelper; import org.hamcrest.Matcher; import org.hamcrest.Matchers; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(XtextRunner.class) @InjectWith(ErlangInjectorProvider.class) @SuppressWarnings("all") public class FormattingTest extends AbstractXtextTests { @Inject private ErlangTestingHelper parser; public String dumpCode(final String code) { try { String _xblockexpression = null; { final XtextResource r = this.getResourceFromString(code); IParseResult _parseResult = r.getParseResult(); ICompositeNode _rootNode = _parseResult.getRootNode(); String _compactDump = NodeModelUtils.compactDump(_rootNode, false); _xblockexpression = InputOutput.<String>println(_compactDump); } return _xblockexpression; } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } public String serializeFormatted(final EObject obj) { ISerializer _serializer = this.getSerializer(); SaveOptions.Builder _newBuilder = SaveOptions.newBuilder(); SaveOptions.Builder _format = _newBuilder.format(); SaveOptions _options = _format.getOptions(); return _serializer.serialize(obj, _options); } @Test public void test() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module (x)."); final String code = _builder.toString(); final Pair<Module, List<Integer>> module = this.parser.parse(code); Module _key = module.getKey(); final String actual = this.serializeFormatted(_key); Matcher<? super String> _is = Matchers.<String>is(code); Assert.<String>assertThat(actual, _is); } @Before @Override public void setUp() throws Exception { super.setUp(); this.with(ErlangTestSetup.class); } }