public void GetBackground_Retrieves_If_Present()
        {
            var sut        = new FeatureFile(CreateGherkinDocumentWithBackground());
            var background = sut.GetBackground();

            Assert.NotNull(background);
        }
Example #2
0
 public override int GetHashCode()
 {
     unchecked
     {
         return((base.GetHashCode() * 397) ^ (FeatureFile.GetHashCode()));
     }
 }
        public void GetBackground_Gives_Null_If_Not_Present()
        {
            var sut        = new FeatureFile(CreateGherkinDocumentWithScenario("test"));
            var background = sut.GetBackground();

            Assert.Null(background);
        }
Example #4
0
        public override int GetHashCode()
        {
            int result = FeatureFile.GetHashCode();

            result = (result * 397) ^ Scenario.GetHashCode();
            return(result);
        }
Example #5
0
        public void Constructor_WithFeature_SetsContentProperty()
        {
            var feature = new Feature();

            var featureFile = new FeatureFile("filename.ext", parentFolder, feature);

            featureFile.Content.ShouldEqual(feature);
        }
Example #6
0
 public override int GetHashCode()
 {
     unchecked
     {
         int result = base.GetHashCode();
         result = (result * 397) ^ FeatureFile.GetHashCode();
         result = (result * 397) ^ Scenario.GetHashCode();
         return(result);
     }
 }
Example #7
0
 public override int GetHashCode()
 {
     unchecked
     {
         int result = FeatureFile.GetHashCode();
         result = (result * 397) ^ Scenario.GetHashCode();
         result = (result * 397) ^ Example.ToString().GetHashCode();
         return(result);
     }
 }
        public void GetScenarioOutline_Gives_Null_If_Not_Found()
        {
            //arrange.
            var sut = new FeatureFile(CreateGherkinDocumentWithScenarioOutline("existing"));

            //act.
            var scenario = sut.GetScenarioOutline("non-existing");

            //assert.
            Assert.Null(scenario);
        }
        public void Ctor_Initializes_Properties()
        {
            //arrange.
            var gherkinDocument = new Gherkin.Ast.GherkinDocument(null, null);

            //act.
            var sut = new FeatureFile(gherkinDocument);

            //assert.
            Assert.Same(gherkinDocument, sut.GherkinDocument);
        }
Example #10
0
        Feature Parse(string FeatureFilePath, string Content)
        {
            Project.LoadFrom(FeatureItem);

            var FeatureFile = new FeatureFile(FeatureFilePath)
            {
                Content = Content
            };

            return(FeatureParser.FeatureFrom(FeatureFile, FeatureItem));
        }
        public void GetScenarioOutline_Retrieves_If_Found()
        {
            //arrange.
            var scenarioName = "name exists";
            var sut          = new FeatureFile(CreateGherkinDocumentWithScenarioOutline(scenarioName));

            //act.
            var scenario = sut.GetScenarioOutline(scenarioName);

            //assert.
            Assert.NotNull(scenario);
            Assert.Same(sut.GherkinDocument.Feature.Children.First(), scenario);
        }
        public Feature FeatureFrom(FeatureFile FeatureFile, FeatureItem FeatureItem)
        {
            if (FeatureFile == null) return new Feature();
            Content = FeatureFile.Content;

            return new Feature
            {
                FileName = FeatureFile.Name,
                Namespace = FeatureItem.DefaultNamespace,
                Name = Name,
                Scenarios = ScenarioParser.ScenariosFrom(Content)
            };
        }
        public void When_the_Runner_for_a_Feature_is_generated()
        {
            var FeatureFile = new FeatureFile
            {
                Name = "RaconteurFeature1",
                Content = "Feature: Feature Name",
            };

            var Project = new VsFeatureItem
            {
                DefaultNamespace = "Features",
            };

            var Parser = ObjectFactory.NewFeatureParser;

            var RunnerGenerator = new RunnerGenerator();

            var Feature = Parser.FeatureFrom(FeatureFile, Project);

            Runner = RunnerGenerator.RunnerFor(Feature);
        }
        public void ExtractScnario_Extracts_Scenario_With_DataTable()
        {
            //arrange.
            var scenarioName    = "scenario213";
            var featureInstance = new FeatureWithDataTableScenarioStep();
            var sut             = FeatureClass.FromFeatureInstance(featureInstance);

            var featureFile = new FeatureFile(CreateGherkinDocument(scenarioName,
                                                                    "When " + FeatureWithDataTableScenarioStep.Steptext + Environment.NewLine +
                                                                    @"  | First argument | Second argument | Result |
    | 1              |       2         |       3|
    | a              |   b             | c      |
"
                                                                    ));

            //act.
            var scenario = sut.ExtractScenario(scenarioName, featureFile);

            //assert.
            Assert.NotNull(scenario);
        }
        void When_a_step_contains_arguments()
        {
            var featureFile = new FeatureFile
            {
                Content =
                @"
                    Feature: Feature Name

                    Scenario: Scenario Name
                        If ""X"" happens
                "
            };

            var Parser = ObjectFactory.NewFeatureParser;

            RunnerGenerator = new RunnerGenerator();

            var Feature = Parser.FeatureFrom(featureFile, new VsFeatureItem());

            Runner = RunnerGenerator.RunnerFor(Feature);
        }
        public void When_the_Scenario_for_a_feature_is_generated()
        {
            var featureFile = new FeatureFile
            {
                Content =
                @"
                    Feature: Feature Name
                        In order to do something
                        Another thing should happen

                    Scenario: Scenario Name
                "
            };

            var Parser = ObjectFactory.NewFeatureParser;

            RunnerGenerator = new RunnerGenerator();

            var Feature = Parser.FeatureFrom(featureFile, new VsFeatureItem());

            Runner = RunnerGenerator.RunnerFor(Feature);
        }
        public void ExtractScenario_Extracts_Scenario_With_DocString()
        {
            //arrange.
            var featureInstance  = new FeatureWithDocStringScenarioStep();
            var sut              = FeatureClass.FromFeatureInstance(featureInstance);
            var scenarioName     = "scenario-121kh2";
            var docStringContent = @"some content
+++
with multi lines
---
in it";
            var featureFile      = new FeatureFile(CreateGherkinDocument(scenarioName,
                                                                         "Given " + FeatureWithDocStringScenarioStep.StepWithDocStringText + @"
" + @"""""""
" + docStringContent + @"
"""""""));

            //act.
            var scenario = sut.ExtractScenario(scenarioName, featureFile);

            //assert.
            Assert.NotNull(scenario);
        }
        public void When_a_Scenario_with_steps_is_generated()
        {
            var featureFile = new FeatureFile
            {
                Content =
                @"
                    Feature: Feature Name

                    Scenario: Scenario Name
                        If something happens
                        Then something else should happen
                        If something happens
                        And another thing too
                "
            };

            var Parser = ObjectFactory.NewFeatureParser;

            RunnerGenerator = new RunnerGenerator();

            var Feature = Parser.FeatureFrom(featureFile, new VsFeatureItem());

            Runner = RunnerGenerator.RunnerFor(Feature);
        }
        Feature Parse(string FeatureFilePath, string Content)
        {
            Project.LoadFrom(FeatureItem);

            var FeatureFile = new FeatureFile(FeatureFilePath){Content = Content};

            return FeatureParser.FeatureFrom(FeatureFile, FeatureItem);
        }
Example #20
0
 public override int GetHashCode()
 {
     return(FeatureFile.GetHashCode());
 }
Example #21
0
 public Feature FeatureFrom(FeatureFile FeatureFile, FeatureItem FeatureItem)
 {
     return(ParseFeature(FeatureFile.Name, FeatureFile.Content, FeatureItem));
 }
        Feature FeatureFrom(string FeatureFilePath, string Content)
        {
            var FeatureFile = new FeatureFile(FeatureFilePath){Content = Content};

            return FeatureParser.FeatureFrom(FeatureFile, FeatureItem);
        }
Example #23
0
        public void FeatureFile_Implements_ITreeItem()
        {
            var featureFile = new FeatureFile("filename.ext", parentFolder, new Feature());

            featureFile.ShouldImplement <ITreeItem>();
        }
Example #24
0
        public Feature FeatureFrom(FeatureFile FeatureFile, FeatureItem FeatureItem)
        {
            Content = FeatureFile.Content.TrimLines();
            Assembly = FeatureItem.Assembly;

            if (IsNotAValidFeature) return InvalidFeature;

            return new Feature
            {
                FileName = FeatureFile.Name,
                Namespace = FeatureItem.DefaultNamespace,
                Name = Name,
                Scenarios = ScenarioTokenizer.ScenariosFrom(Content),
                StepLibraries = StepLibraries
            };
        }