Exemple #1
0
        public void ShouldPresentWithADeclarationAndOneScenarioWhenAValidFeatureFileWithOneScenarioIsLoaded()
        {
            // prepare
            var validContent = TestResources.FeatureFile_OneScenario;

            // do
            var parser = new StandardFeatureFileParser(validContent);

            // check
            Assert.IsNotNull(parser.Declaration);

            Assert.IsNotNull(parser.Declaration.Raw);
            Assert.IsNotNull(parser.Declaration.Name);
            Assert.IsNotNull(parser.Declaration.Story);
            Assert.AreNotEqual(string.Empty, parser.Declaration.Raw);
            Assert.AreNotEqual(string.Empty, parser.Declaration.Name);
            Assert.AreNotEqual(string.Empty, parser.Declaration.Story);

            Assert.IsNotNull(parser.Scenarions);
            Assert.AreNotEqual(0, parser.Scenarions.Count());
            foreach (var scenario in parser.Scenarions)
            {
                Assert.IsNotNull(scenario.Raw);
                Assert.IsNotNull(scenario.Name);
                Assert.IsNotNull(scenario.Text);
                Assert.AreNotEqual(string.Empty, scenario.Raw);
                Assert.AreNotEqual(string.Empty, scenario.Name);
                Assert.AreNotEqual(string.Empty, scenario.Text);
            }
        }
Exemple #2
0
        public void ShouldIndicateAnInvalidFeatureFileWhenOnlyDeclarationIsValid()
        {
            // prepare
            var invalidContent = TestResources.FeatureFile_MissingScenarios;

            // do
            var parser = new StandardFeatureFileParser(invalidContent);

            // check: [ExpectedException()]
        }
Exemple #3
0
        public void ShouldIndicateAnInvalidFeatureFileContentOnGibberish()
        {
            // prepare
            var invalidContent = "INVALID FEATURE";

            // do
            var parser = new StandardFeatureFileParser(invalidContent);

            // check: [ExpectedException()]
        }
Exemple #4
0
        public void ShouldIndicateAnInvalidFeatureFileContentOnEmpty()
        {
            // prepare
            var invalidContent = string.Empty;

            // do
            var parser = new StandardFeatureFileParser(invalidContent);

            // check: [ExpectedException()]
        }
Exemple #5
0
        public void EnsureTestFeature()
        {
            var featureAttrib = this.TestClass.GetCustomAttribute<TestFeatureAttribute>();
            if (featureAttrib == null)
            {
                throw new InvalidTestClassException(this.TestClass);
            }

            try
            {
                var featureRaw = this.ReadFeatureFile(featureAttrib.File);
                var parser = new StandardFeatureFileParser(featureRaw);
                this.testFeature = parser.ToFeature(featureAttrib.File);
            }
            catch (Exception inner)
            {
                throw new FeatureFileCouldNotBeLoadedException(
                    featureAttrib.File,
                    inner);
            }
        }
Exemple #6
0
        private Feature FeatureFromFeatureFile(string filePath)
        {
            var feature = new Feature();
            feature.File = filePath;

            var featureSpec = this.ReadFeatureFile(filePath);
            var parser = new StandardFeatureFileParser(featureSpec);
            feature.Name = parser.Declaration.Name;
            feature.Story = parser.Declaration.Story;

            foreach (var parsedScenario in parser.Scenarions)
            {
                feature.Scenarios.Add(new Scenario()
                {
                    @Name = parsedScenario.Name,
                    @Scope = parsedScenario.Scope,
                    @Statements = {
                        Given = parsedScenario.GivenStatement,
                        When = parsedScenario.WhenStatement,
                        Then = parsedScenario.ThenStatement
                    }
                });
            }

            return feature;
        }