public void GetScenarioTags_Retrieves_Tags_Of_Feature_And_Scenario_Combined() { //arrange. var featureTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "featuretag-1"), new Gherkin.Ast.Tag(null, "featuretag-2") }; var scenarioTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "scenarioTag-1"), new Gherkin.Ast.Tag(null, "scenarioTag-2"), new Gherkin.Ast.Tag(null, "scenarioTag-3") }; var scenarioName = "scenario name 123"; var feature = new Gherkin.Ast.Feature( featureTags, null, null, null, null, null, new Gherkin.Ast.ScenarioDefinition[] { new Gherkin.Ast.Scenario(scenarioTags, null, null, scenarioName, null, null) }); //act. var scenarioTagNames = feature.GetScenarioTags(scenarioName); //assert. Assert.NotNull(scenarioTagNames); var expectedTagNames = featureTags.Union(scenarioTags).Select(t => t.Name); Assert.Equal(expectedTagNames, scenarioTagNames); }
public void IsScenarioIgnored_Does_Not_Treat_Ignored_If_No_Ignore_Tag() { //arrange. var featureTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "featuretag-1"), new Gherkin.Ast.Tag(null, "featuretag-2") }; var scenarioTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "scenarioTag-1"), new Gherkin.Ast.Tag(null, "scenarioTag-2"), new Gherkin.Ast.Tag(null, "scenarioTag-3") }; var scenarioName = "scenario name 123"; var feature = new Gherkin.Ast.Feature( featureTags, null, null, null, null, null, new Gherkin.Ast.ScenarioDefinition[] { new Gherkin.Ast.Scenario(scenarioTags, null, null, scenarioName, null, null) }); //act. var isIgnored = feature.IsScenarioIgnored(scenarioName); //assert. Assert.False(isIgnored); }
public void IsScenarioIgnored_Treats_Ignored_If_Scenario_Is_Ignored() { //arrange. var featureTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "featuretag-1"), new Gherkin.Ast.Tag(null, "featuretag-2") }; var scenarioTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "scenarioTag-1"), new Gherkin.Ast.Tag(null, GherkinFeatureExtensions.IgnoreTag), new Gherkin.Ast.Tag(null, "scenarioTag-3") }; var scenarioName = "scenario name 123"; var feature = new Gherkin.Ast.Feature( featureTags, null, null, null, null, null, new Gherkin.Ast.ScenarioDefinition[] { new Gherkin.Ast.Scenario(scenarioTags, null, null, scenarioName, null, null) }); //act. var isIgnored = feature.IsScenarioIgnored(scenarioName); //assert. Assert.True(isIgnored); }
public void IsScenarioIgnored_Requires_Arguments( Gherkin.Ast.Feature feature, string scenarioName ) { //act / assert. Assert.Throws <ArgumentNullException>(() => feature.IsScenarioIgnored(scenarioName)); }
public void GetScenarioTags_Requires_Arguments( Gherkin.Ast.Feature feature, string scenarioName ) { //act / assert. Assert.Throws <ArgumentNullException>(() => feature.GetScenarioTags(scenarioName)); }
public void IsExamplesIgnored_Requires_Arguments( Gherkin.Ast.Feature feature, string scenarioOutlineName, string examplesName ) { //act / assert. Assert.Throws <ArgumentNullException>(() => feature.IsExamplesIgnored(scenarioOutlineName, examplesName)); }
public Feature Parse(TextReader featureFileReader) { var gherkinParser = new Gherkin.Parser(); Gherkin.Ast.Feature feature = gherkinParser.Parse(featureFileReader); Feature result = new Mapper(feature.Language).MapToFeature(feature); return(result); }
public void GetExamplesTags_Retrieves_Tags_Of_Feature_And_OutLine_And_Examples_Combined() { //arrange. var featureTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "featuretag-1"), new Gherkin.Ast.Tag(null, "featuretag-2") }; var outlineTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "outlinetag-1"), new Gherkin.Ast.Tag(null, "outlinetag-2"), new Gherkin.Ast.Tag(null, "outlinetag-3") }; var examplesTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "examplestag-1"), new Gherkin.Ast.Tag(null, "examplestag-2"), new Gherkin.Ast.Tag(null, "examplestag-2"), new Gherkin.Ast.Tag(null, "examplestag-3") }; var scenarioOutlineName = "scenario name 123"; var examplesName = "examples name 123"; var feature = new Gherkin.Ast.Feature( featureTags, null, null, null, null, null, new Gherkin.Ast.ScenarioDefinition[] { new Gherkin.Ast.ScenarioOutline(outlineTags, null, null, scenarioOutlineName, null, null, new Gherkin.Ast.Examples[] { new Gherkin.Ast.Examples(examplesTags, null, null, examplesName, null, null, null) }) }); //act. var examplesTagNames = feature.GetExamplesTags(scenarioOutlineName, examplesName); //assert. Assert.NotNull(examplesTagNames); var expectedTagNames = featureTags.Union(outlineTags).Union(examplesTags).Select(t => t.Name); Assert.Equal(expectedTagNames, examplesTagNames); }
public void IsExamplesIgnored_Treats_Ignored_If_Examples_Is_Ignored() { //arrange. var featureTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "featuretag-1"), new Gherkin.Ast.Tag(null, "featuretag-2") }; var outlineTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "outlinetag-1"), new Gherkin.Ast.Tag(null, "outlinetag-2"), new Gherkin.Ast.Tag(null, "outlinetag-3") }; var examplesTags = new Gherkin.Ast.Tag[] { new Gherkin.Ast.Tag(null, "examplestag-1"), new Gherkin.Ast.Tag(null, "examplestag-2"), new Gherkin.Ast.Tag(null, GherkinFeatureExtensions.IgnoreTag), new Gherkin.Ast.Tag(null, "examplestag-3") }; var scenarioOutlineName = "scenario name 123"; var examplesName = "examples name 123"; var feature = new Gherkin.Ast.Feature( featureTags, null, null, null, null, null, new Gherkin.Ast.ScenarioDefinition[] { new Gherkin.Ast.ScenarioOutline(outlineTags, null, null, scenarioOutlineName, null, null, new Gherkin.Ast.Examples[] { new Gherkin.Ast.Examples(examplesTags, null, null, examplesName, null, null, null) }) }); //act. var isIgnored = feature.IsExamplesIgnored(scenarioOutlineName, examplesName); //assert. Assert.True(isIgnored); }
/// <summary> /// Converts the provided <see cref="Gherkin.Ast.Feature"/> instance into a <see cref="Augurk.Entities.Feature"/> instance. /// </summary> /// <param name="feature">The <see cref="Gherkin.Ast.Feature"/> instance that should be converted.</param> /// <param name="dialect">The <see cref="GherkinDialect"/> that is being used for this feature.</param> /// <returns>The converted <see cref="Augurk.Entities.Feature"/> instance.</returns> public static Feature ConvertToFeature(this Gherkin.Ast.Feature feature, GherkinDialect dialect) { if (feature == null) { throw new ArgumentNullException("feature"); } var background = feature.Children.OfType <Gherkin.Ast.Background>().FirstOrDefault(); var scenarios = feature.Children.Where(definition => !(definition is Gherkin.Ast.Background)); return(new Feature() { Title = feature.Name, Description = feature.Description, Tags = feature.Tags.ConvertToStrings(), Scenarios = scenarios.Select(scenario => scenario.ConvertToScenario(dialect)).ToArray(), Background = background?.ConvertToBackground(dialect), Location = feature.Location.ConvertToSourceLocation() }); }