package org.jnario.feature.tests.unit.jvmmodel; import com.google.common.collect.Iterables; import com.google.inject.Inject; import java.util.Set; import org.eclipse.xtend.core.xtend.XtendField; import org.eclipse.xtext.xbase.lib.Conversions; import org.eclipse.xtext.xbase.lib.Extension; import org.eclipse.xtext.xbase.lib.Functions.Function1; import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.jnario.feature.feature.StepImplementation; import org.jnario.feature.jvmmodel.StepContextProvider; import org.jnario.feature.tests.unit.jvmmodel.StepContextProviderUsedFieldsSpec; import org.jnario.jnario.test.util.FeatureTestCreator; import org.jnario.jnario.test.util.ModelStore; import org.jnario.runner.Contains; import org.jnario.runner.CreateWith; import org.jnario.runner.ExampleGroupRunner; import org.jnario.runner.Named; import org.jnario.runner.Subject; import org.junit.runner.RunWith; @Contains(StepContextProviderUsedFieldsSpec.class) @CreateWith(FeatureTestCreator.class) @Named("StepContextProvider") @RunWith(ExampleGroupRunner.class) @SuppressWarnings("all") public class StepContextProviderSpec { @Subject public StepContextProvider subject; @Inject @Extension @org.jnario.runner.Extension public ModelStore m; public Set<XtendField> fields(final String... names) { Set<XtendField> _xblockexpression = null; { final Set<String> expected = IterableExtensions.<String>toSet(((Iterable<String>)Conversions.doWrapArray(names))); Iterable<XtendField> _filter = Iterables.<XtendField>filter(this.m, XtendField.class); final Function1<XtendField, Boolean> _function = new Function1<XtendField, Boolean>() { public Boolean apply(final XtendField it) { String _name = it.getName(); return Boolean.valueOf(expected.contains(_name)); } }; Iterable<XtendField> _filter_1 = IterableExtensions.<XtendField>filter(_filter, _function); _xblockexpression = IterableExtensions.<XtendField>toSet(_filter_1); } return _xblockexpression; } public Set<XtendField> usedFields(final CharSequence content) { Set<XtendField> _xblockexpression = null; { this.m.parseScenario(content); final StepImplementation step = this.m.<StepImplementation>first(StepImplementation.class); _xblockexpression = this.subject.usedFields(step); } return _xblockexpression; } }