package org.jnario.feature.tests.unit.resource; import com.google.inject.Inject; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.util.ITextRegion; import org.eclipse.xtext.xbase.lib.Extension; import org.jnario.feature.feature.Scenario; import org.jnario.feature.resource.FeatureLocationInFileProvider; import org.jnario.jnario.test.util.FeatureTestCreator; import org.jnario.jnario.test.util.ModelStore; import org.jnario.runner.CreateWith; import org.jnario.runner.ExampleGroupRunner; import org.jnario.runner.Named; import org.jnario.runner.Order; import org.jnario.runner.Subject; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @CreateWith(FeatureTestCreator.class) @Named("FeatureLocationInFileProvider") @RunWith(ExampleGroupRunner.class) @SuppressWarnings("all") public class FeatureLocationInFileProviderSpec { @Subject public FeatureLocationInFileProvider subject; CharSequence content; @Inject @Extension @org.jnario.runner.Extension public ModelStore _modelStore; @Test @Named("Scenario significant region spans over first line") @Order(1) public void _scenarioSignificantRegionSpansOverFirstLine() throws Exception { StringConcatenation _builder = new StringConcatenation(); _builder.append("Feature: My Feature"); _builder.newLine(); _builder.append("Scenario: My Scenario"); _builder.newLine(); _builder.append("\t"); _builder.append("Given something"); _builder.newLine(); this.parse(_builder); Scenario _firstScenario = this._modelStore.firstScenario(); CharSequence _siginificantRegion = this.siginificantRegion(_firstScenario); this.is(_siginificantRegion, "Scenario: My Scenario"); } @Test @Named("Scenario full text region spans over all steps") @Order(2) public void _scenarioFullTextRegionSpansOverAllSteps() throws Exception { StringConcatenation _builder = new StringConcatenation(); _builder.append("Feature: My Feature"); _builder.newLine(); _builder.append("Scenario: My Scenario"); _builder.newLine(); _builder.append("\t"); _builder.append("String something"); _builder.newLine(); _builder.append("\t"); _builder.append("Given something"); _builder.newLine(); _builder.append("\t"); _builder.append("And something else"); _builder.newLine(); this.parse(_builder); Scenario _firstScenario = this._modelStore.firstScenario(); CharSequence _region = this.region(_firstScenario); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("Scenario: My Scenario"); _builder_1.newLine(); _builder_1.append("\t"); _builder_1.append("String something"); _builder_1.newLine(); _builder_1.append("\t"); _builder_1.append("Given something"); _builder_1.newLine(); _builder_1.append("\t"); _builder_1.append("And something else"); _builder_1.newLine(); this.is(_region, _builder_1); } public void is(final CharSequence actual, final CharSequence expected) { String _string = expected.toString(); String _string_1 = actual.toString(); Assert.assertEquals(_string, _string_1); } public Resource parse(final CharSequence s) { Resource _xblockexpression = null; { this.content = s; _xblockexpression = this._modelStore.parseScenario(s); } return _xblockexpression; } public CharSequence siginificantRegion(final EObject object) { Scenario _firstScenario = this._modelStore.firstScenario(); ITextRegion _significantTextRegion = this.subject.getSignificantTextRegion(_firstScenario); return this.toText(_significantTextRegion); } public CharSequence region(final EObject object) { Scenario _firstScenario = this._modelStore.firstScenario(); ITextRegion _fullTextRegion = this.subject.getFullTextRegion(_firstScenario); return this.toText(_fullTextRegion); } public CharSequence toText(final ITextRegion region) { int _offset = region.getOffset(); int _offset_1 = region.getOffset(); int _length = region.getLength(); int _plus = (_offset_1 + _length); return this.content.subSequence(_offset, _plus); } }