package org.jbehave.core.parsers;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import org.jbehave.core.model.Story;
import org.jbehave.core.model.TableTransformers;
import org.junit.Test;
public class TransformingStoryParserBehaviour {
private static final String NL = "\n";
@Test
public void shouldTransformAndParseStory() {
StoryParser delegate = new RegexStoryParser(new TableTransformers());
StoryTransformer transformer = new StoryTransformer() {
public String transform(String storyAsText) {
return storyAsText.replaceAll(",", "|");
}
};
StoryParser parser = new TransformingStoryParser(delegate, transformer);
String storyAsText = "Scenario: a scenario " + NL +
"Given a scenario Given" + NL +
"When I parse it to When" + NL +
"And I parse it to And" + NL +
"!-- And ignore me too" + NL +
"Then I should get steps Then" + NL +
"Examples:" + NL +
",Given,When,Then,And," + NL +
",Dato che,Quando,Allora,E,";
Story story = parser.parseStory(storyAsText);
assertThat(story.getScenarios().get(0).getExamplesTable().getRowCount(), equalTo(1));
}
}