コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public void IsScenarioIgnored_Requires_Arguments(
     Gherkin.Ast.Feature feature,
     string scenarioName
     )
 {
     //act / assert.
     Assert.Throws <ArgumentNullException>(() => feature.IsScenarioIgnored(scenarioName));
 }
コード例 #5
0
 public void GetScenarioTags_Requires_Arguments(
     Gherkin.Ast.Feature feature,
     string scenarioName
     )
 {
     //act / assert.
     Assert.Throws <ArgumentNullException>(() => feature.GetScenarioTags(scenarioName));
 }
コード例 #6
0
 public void IsExamplesIgnored_Requires_Arguments(
     Gherkin.Ast.Feature feature,
     string scenarioOutlineName,
     string examplesName
     )
 {
     //act / assert.
     Assert.Throws <ArgumentNullException>(() => feature.IsExamplesIgnored(scenarioOutlineName, examplesName));
 }
コード例 #7
0
ファイル: FeatureParser.cs プロジェクト: vavavivi/pickles
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        /// <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()
            });
        }