package org.example.entities.tests; import com.google.inject.Inject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.formatting.INodeModelFormatter; import org.eclipse.xtext.junit4.InjectWith; import org.eclipse.xtext.junit4.XtextRunner; import org.eclipse.xtext.junit4.util.ParseHelper; import org.eclipse.xtext.nodemodel.ICompositeNode; import org.eclipse.xtext.parser.IParseResult; import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.Extension; import org.example.entities.EntitiesInjectorProvider; import org.example.entities.entities.Model; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(XtextRunner.class) @InjectWith(EntitiesInjectorProvider.class) @SuppressWarnings("all") public class EntitiesFormatterTest { @Inject @Extension private ParseHelper<Model> _parseHelper; @Inject @Extension private INodeModelFormatter _iNodeModelFormatter; @Test public void testEntities() { StringConcatenation _builder = new StringConcatenation(); _builder.append("entity E1 { } entity E2 {}"); _builder.newLine(); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("entity E1 {"); _builder_1.newLine(); _builder_1.append("}"); _builder_1.newLine(); _builder_1.newLine(); _builder_1.append("entity E2 {"); _builder_1.newLine(); _builder_1.append("}"); this.assertFormattedAs(_builder, _builder_1); } @Test public void testAttributes() { StringConcatenation _builder = new StringConcatenation(); _builder.append("entity E1 { int i ; string s; boolean b ;}"); _builder.newLine(); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("entity E1 {"); _builder_1.newLine(); _builder_1.append("\t"); _builder_1.append("int i;"); _builder_1.newLine(); _builder_1.append("\t"); _builder_1.append("string s;"); _builder_1.newLine(); _builder_1.append("\t"); _builder_1.append("boolean b;"); _builder_1.newLine(); _builder_1.append("}"); this.assertFormattedAs(_builder, _builder_1); } public void assertFormattedAs(final CharSequence input, final CharSequence expected) { try { String _string = expected.toString(); Model _parse = this._parseHelper.parse(input); Resource _eResource = _parse.eResource(); IParseResult _parseResult = ((XtextResource) _eResource).getParseResult(); ICompositeNode _rootNode = _parseResult.getRootNode(); int _length = input.length(); INodeModelFormatter.IFormattedRegion _format = this._iNodeModelFormatter.format(_rootNode, 0, _length); String _formattedText = _format.getFormattedText(); Assert.assertEquals(_string, _formattedText); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } }