Ejemplo n.º 1
0
        protected virtual void CheckSemanticErrors(SpecFlowDocument specFlowDocument)
        {
            if (specFlowDocument?.SpecFlowFeature == null)
            {
                return;
            }

            var errors = new List <ParserException>();

            CheckForDuplicateScenarios(specFlowDocument.SpecFlowFeature, errors);

            CheckForDuplicateExamples(specFlowDocument.SpecFlowFeature, errors);

            CheckForMissingExamples(specFlowDocument.SpecFlowFeature, errors);

            // collect
            if (errors.Count == 1)
            {
                throw errors[0];
            }
            if (errors.Count > 1)
            {
                throw new CompositeParserException(errors.ToArray());
            }
        }
Ejemplo n.º 2
0
        public SpecFlowDocument Parse(TextReader featureFileReader, string sourceFilePath)
        {
            var parser = new Parser <SpecFlowDocument>(CreateAstBuilder(sourceFilePath));
            SpecFlowDocument specFlowDocument = parser.Parse(CreateTokenScanner(featureFileReader), CreateTokenMatcher());

            CheckSemanticErrors(specFlowDocument);

            return(specFlowDocument);
        }
        public SpecFlowDocument Parse(TextReader featureFileReader, SpecFlowDocumentLocation documentLocation)
        {
            var parser = new Parser <SpecFlowDocument>(CreateAstBuilder(documentLocation));
            SpecFlowDocument specFlowDocument = parser.Parse(CreateTokenScanner(featureFileReader), CreateTokenMatcher());

            CheckSemanticErrors(specFlowDocument);

            return(specFlowDocument);
        }
Ejemplo n.º 4
0
        public SpecFlowDocument Parse(TextReader featureFileReader, string sourceFilePath)
        {
            var parser       = new Parser <SpecFlowDocument>(new SpecFlowAstBuilder(sourceFilePath));
            var tokenMatcher = new TokenMatcher(dialectProvider);
            SpecFlowDocument specFlowDocument = parser.Parse(new TokenScanner(featureFileReader), tokenMatcher);

            CheckSemanticErrors(specFlowDocument);

            return(specFlowDocument);
        }
Ejemplo n.º 5
0
        private void CheckSemanticErrors(SpecFlowDocument specFlowDocument)
        {
            var errors = new List <ParserException>();

            CheckForDuplicateScenarios(specFlowDocument.SpecFlowFeature, errors);

            CheckForDuplicateExamples(specFlowDocument.SpecFlowFeature, errors);

            // collect
            if (errors.Count == 1)
            {
                throw errors[0];
            }
            if (errors.Count > 1)
            {
                throw new CompositeParserException(errors.ToArray());
            }
        }
        public TestClassGenerationContext(IUnitTestGeneratorProvider unitTestGeneratorProvider, SpecFlowDocument document, CodeNamespace ns, CodeTypeDeclaration testClass, CodeMemberField testRunnerField, CodeMemberMethod testClassInitializeMethod, CodeMemberMethod testClassCleanupMethod, CodeMemberMethod testInitializeMethod, CodeMemberMethod testCleanupMethod, CodeMemberMethod scenarioInitializeMethod, CodeMemberMethod scenarioCleanupMethod, CodeMemberMethod featureBackgroundMethod, bool generateRowTests)
        {
            UnitTestGeneratorProvider = unitTestGeneratorProvider;
            Document = document;
            Namespace = ns;
            TestClass = testClass;
            TestRunnerField = testRunnerField;
            TestClassInitializeMethod = testClassInitializeMethod;
            TestClassCleanupMethod = testClassCleanupMethod;
            TestInitializeMethod = testInitializeMethod;
            TestCleanupMethod = testCleanupMethod;
            ScenarioInitializeMethod = scenarioInitializeMethod;
            ScenarioCleanupMethod = scenarioCleanupMethod;
            FeatureBackgroundMethod = featureBackgroundMethod;
            GenerateRowTests = generateRowTests;

            CustomData = new Dictionary<string, object>();
        }
Ejemplo n.º 7
0
        protected virtual void CheckSemanticErrors(SpecFlowDocument specFlowDocument)
        {
            if (specFlowDocument?.SpecFlowFeature == null)
            {
                return;
            }

            var errors = semanticValidators
                         .SelectMany(x => x.Validate(specFlowDocument.SpecFlowFeature))
                         .ToList();

            // collect
            if (errors.Count == 1)
            {
                throw errors[0];
            }
            if (errors.Count > 1)
            {
                throw new CompositeParserException(errors.ToArray());
            }
        }
 public abstract IFeatureGenerator CreateGenerator(SpecFlowDocument document);
 public bool CanGenerate(SpecFlowDocument document)
 {
     return tagFilterMatcher.MatchPrefix(registeredName, document);
 }
Ejemplo n.º 10
0
 private void SerializeDocument(SpecFlowDocument feature, TextWriter writer)
 {
     var oldFeature = CompatibleAstConverter.ConvertToCompatibleFeature(feature);
     oldFeature.SourceFile = null;
     XmlSerializer serializer = new XmlSerializer(typeof(Feature));
     serializer.Serialize(writer, oldFeature);
 }
Ejemplo n.º 11
0
 public static bool MatchPrefix(this ITagFilterMatcher tagFilterMatcher, string tagFilter, SpecFlowDocument document)
 {
     return tagFilterMatcher.MatchPrefix(tagFilter, document.SpecFlowFeature.Tags.Select(t => t.GetNameWithoutAt()));
 }
Ejemplo n.º 12
0
 public static bool GetTagValue(this ITagFilterMatcher tagFilterMatcher, string tagFilter, SpecFlowDocument document, out string value)
 {
     return tagFilterMatcher.GetTagValue(tagFilter, document.SpecFlowFeature.Tags.Select(t => t.GetNameWithoutAt()), out value);
 }
 public override IFeatureGenerator CreateGenerator(SpecFlowDocument feature)
 {
     return DummyGenerator;
 }
Ejemplo n.º 14
0
 private string SerializeDocument(SpecFlowDocument feature)
 {
     using (var writer = new Utf8StringWriter())
     {
         SerializeDocument(feature, writer);
         return writer.ToString();
     }
 }
Ejemplo n.º 15
0
 private void SerializeDocument(SpecFlowDocument feature, string fileName)
 {
     using (var writer = new StreamWriter(fileName, false, Encoding.UTF8))
     {
         SerializeDocument(feature, writer);
     }
 }
 public bool CanGenerate(SpecFlowDocument document)
 {
     return true;
 }
 public IFeatureGenerator CreateGenerator(SpecFlowDocument document)
 {
     return unitTestFeatureGenerator;
 }
Ejemplo n.º 18
0
 public IFeatureGenerator CreateGenerator(SpecFlowDocument document)
 {
     var providerItem = FindProvider(document);
     return providerItem.Value.CreateGenerator(document);
 }
Ejemplo n.º 19
0
 private KeyValuePair<string, IFeatureGeneratorProvider> FindProvider(SpecFlowDocument feature)
 {
     return providers.First(item => item.Value.CanGenerate(feature));
 }
 protected void GenerateFeature(IFeatureGenerator generator, SpecFlowDocument document)
 {
     generator.GenerateUnitTestFixture(document, "dummy", "dummyNS");
 }