@Test
public void testFeatureFileParsing() {
final FeatureFileParser parser = new FeatureFileParser();
final FeatureFile ff = parser.loadFeatureFile(new File("./target/test-classes/features/example2.feature"));
Assert.assertNotNull(ff);
Assert.assertNotNull(ff.getName());
Assert.assertNotNull(ff.getScenarios());
Assert.assertThat(ff.getScenarios().size(), is(4));
final Scenario sc1 = ff.getScenarios().get(1);
Assert.assertTrue(sc1.hasBackground());
Assert.assertThat(sc1.getBackground().getSteps().size(), is(1));
Assert.assertThat(sc1.getSteps().size(), is(4));
final Step withEmailAddress = ff.getScenarios().get(0).getSteps().get(0);
Assert.assertThat(withEmailAddress.getLine(), is("Given something with an@emailaddress.com"));
final Scenario sc2 = ff.getScenarios().get(2);
Assert.assertTrue(sc2.isOutline());
Assert.assertThat(sc2.getSteps().size(), is(6));
Assert.assertThat(sc2.getExampleParameters().size(), is(8));
final Scenario sc3 = ff.getScenarios().get(3);
Assert.assertThat(sc3.getSteps().size(), is(5));
final Step step = sc3.getSteps().get(2);
Assert.assertThat(step.getInlineTable().size(), is(1));
final Map<String, String> inlineTableRow0 = step.getInlineTable().get(0);
Assert.assertThat(inlineTableRow0.size(), is(4));
Assert.assertFalse(ff.getScenarios().get(0).getTags().isEmpty());
// TODO - test out the tags
final Set<String> tags = ff.getScenarios().get(0).getTags();
Assert.assertNotNull(tags);
Assert.assertTrue(tags.contains("@tag1"));
Assert.assertTrue(tags.contains("@tag2"));
}