/**
* Copyright (c) 2012 BMW Car IT and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jnario.feature.tests.unit.naming;
import com.google.inject.Inject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Extension;
import org.jnario.feature.feature.Feature;
import org.jnario.feature.feature.FeatureFactory;
import org.jnario.feature.feature.Given;
import org.jnario.feature.feature.GivenReference;
import org.jnario.feature.feature.Scenario;
import org.jnario.feature.feature.Step;
import org.jnario.feature.naming.StepNameProvider;
import org.jnario.feature.tests.unit.naming.StepNameProviderDescribeFeatureSpec;
import org.jnario.feature.tests.unit.naming.StepNameProviderDescribeScenarioSpec;
import org.jnario.feature.tests.unit.naming.StepNameProviderNameOfSpec;
import org.jnario.feature.tests.unit.naming.StepNameProviderRemoveArgumentsSpec;
import org.jnario.jnario.test.util.FeatureTestCreator;
import org.jnario.jnario.test.util.ModelStore;
import org.jnario.jnario.test.util.Query;
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;
/**
* @author Sebastian Benz - Initial contribution and API
*/
@Contains({ StepNameProviderNameOfSpec.class, StepNameProviderDescribeFeatureSpec.class, StepNameProviderRemoveArgumentsSpec.class, StepNameProviderDescribeScenarioSpec.class })
@CreateWith(FeatureTestCreator.class)
@Named("StepNameProvider")
@RunWith(ExampleGroupRunner.class)
@SuppressWarnings("all")
public class StepNameProviderSpec {
@Subject
public StepNameProvider subject;
@Inject
@Extension
@org.jnario.runner.Extension
public ModelStore modelStore;
public String desc(final Feature feature) {
return this.subject.describe(feature);
}
public String desc(final Scenario scen) {
return this.subject.describe(scen);
}
public Step firstStep() {
Query _query = Query.query(this.modelStore);
return _query.<Step>first(Step.class);
}
public String stepName() {
Step _firstStep = this.firstStep();
return this.subject.nameOf(_firstStep);
}
public String describeStep() {
Step _firstStep = this.firstStep();
return this.subject.describe(_firstStep);
}
public Given emptyStep() {
return FeatureFactory.eINSTANCE.createGiven();
}
public GivenReference emptyRef() {
return FeatureFactory.eINSTANCE.createGivenReference();
}
public Resource parseScenario(final CharSequence s) {
Resource _xblockexpression = null;
{
StringConcatenation _builder = new StringConcatenation();
_builder.append("Feature: example");
_builder.newLine();
_builder.append(s, "");
_builder.newLineIfNotEmpty();
final String input = _builder.toString();
_xblockexpression = this.modelStore.parseScenario(input);
}
return _xblockexpression;
}
}