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()); } }
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); }
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); }
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>(); }
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); }
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); }
public static bool MatchPrefix(this ITagFilterMatcher tagFilterMatcher, string tagFilter, SpecFlowDocument document) { return tagFilterMatcher.MatchPrefix(tagFilter, document.SpecFlowFeature.Tags.Select(t => t.GetNameWithoutAt())); }
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; }
private string SerializeDocument(SpecFlowDocument feature) { using (var writer = new Utf8StringWriter()) { SerializeDocument(feature, writer); return writer.ToString(); } }
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; }
public IFeatureGenerator CreateGenerator(SpecFlowDocument document) { var providerItem = FindProvider(document); return providerItem.Value.CreateGenerator(document); }
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"); }