private DeveroomTag CreateFeatureStructure(string[] featureTags, string[] scenarioTags, string[] scenarioOutlineTags = null, string[] soHeaders = null, string[][] soCells = null, bool includeScenario = true, bool includeOutline = true, string[] outlineExamplesTags = null) { featureTags = featureTags ?? new string[0]; scenarioTags = scenarioTags ?? new string[0]; scenarioOutlineTags = scenarioOutlineTags ?? new string[0]; outlineExamplesTags = outlineExamplesTags ?? new string[0]; soHeaders = soHeaders ?? new[] { "param1", "param2" }; soCells = soCells ?? new[] { new[] { "r1c1", "r1c2" }, new[] { "r2c1", "r2c2" } }; var scenarioDefinitions = new List <StepsContainer>(); scenarioDefinitions.Add(new Background(null, "Background", "my background", null, new Step[0])); if (includeScenario) { scenarioDefinitions.Add(new SingleScenario(scenarioTags.Select(t => new Tag(null, t)).ToArray(), null, "Scenario", "my scenario", null, new Step[0])); } if (includeOutline) { scenarioDefinitions.Add(new ScenarioOutline(scenarioOutlineTags.Select(t => new Tag(null, t)).ToArray(), null, "Scenario Outline", "my scenario outline", null, new Step[0], new Examples[] { new Examples(outlineExamplesTags.Select(t => new Tag(null, t)).ToArray(), null, "Examples", "my examples", null, new TableRow(null, soHeaders.Select(h => new TableCell(null, h)).ToArray()), soCells.Select(r => new TableRow(null, r.Select(c => new TableCell(null, c)).ToArray())).ToArray()), })); } var feature = new Feature(featureTags.Select(t => new Tag(null, t)).ToArray(), null, "en", "Feature", "my feature", null, scenarioDefinitions.ToArray()); var featureTag = new DeveroomTag(DeveroomTagTypes.FeatureBlock, default(SnapshotSpan), feature); var backgroundTag = new DeveroomTag(DeveroomTagTypes.ScenarioDefinitionBlock, default(SnapshotSpan), feature.Children.OfType <Background>().First()); featureTag.AddChild(backgroundTag); if (includeScenario) { var scenarioTag = new DeveroomTag(DeveroomTagTypes.ScenarioDefinitionBlock, default(SnapshotSpan), feature.Children.OfType <Scenario>().First()); featureTag.AddChild(scenarioTag); } if (includeOutline) { var scenarioOutlineTag = new DeveroomTag(DeveroomTagTypes.ScenarioDefinitionBlock, default(SnapshotSpan), feature.Children.OfType <ScenarioOutline>().First()); featureTag.AddChild(scenarioOutlineTag); } return(featureTag); }
private void AddClassificationForTag(List <ClassificationSpan> classifications, DeveroomTag tag, SnapshotSpan span) { if (TagClassificationTypeMapping.TryGetValue(tag.Type, out var classification)) { classifications.Add(new ClassificationSpan(span, _classificationTypeRegistry.GetClassificationType(classification))); } }