├── .editorconfig ├── .gitattributes ├── .github └── workflows │ └── build.yml ├── .gitignore ├── .nuget └── packages.config ├── .nuke ├── build.schema.json └── parameters.json ├── Build.md ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── Output ├── Cucumber │ └── cucumberResult.json ├── Dhtml │ ├── Index.html │ ├── css │ │ ├── bootstrap.min.css │ │ ├── print.css │ │ └── styles.css │ ├── image.png │ ├── img │ │ ├── glyphicons-halflings-white.png │ │ ├── glyphicons-halflings.png │ │ └── link.png │ ├── js │ │ ├── Chart.StackedBar.js │ │ ├── Chart.min.js │ │ ├── Markdown.Converter.js │ │ ├── Markdown.Extra.js │ │ ├── bootstrap.min.js │ │ ├── featureSearch.js │ │ ├── featuresModel.js │ │ ├── heirarchyBuilder.js │ │ ├── html5.js │ │ ├── jquery-1.8.3.min.js │ │ ├── jquery.highlight-4.closure.js │ │ ├── knockout-3.4.0.js │ │ ├── knockout.mapping-latest.js │ │ ├── logger.js │ │ ├── picklesOverview.js │ │ ├── stringFormatting.js │ │ ├── typeaheadList.js │ │ └── underscore-min.js │ ├── pickledFeatures.js │ └── test.jpg ├── Excel │ └── features.xlsx ├── Html │ ├── Features │ │ ├── 00BasicGherkin │ │ │ ├── BasicGherkin.html │ │ │ ├── index.html │ │ │ └── test.jpg │ │ ├── 01TestRunner │ │ │ ├── TestRunnerIsNotImportant.html │ │ │ └── index.html │ │ ├── 02TagsAndHooks │ │ │ ├── Hooks.html │ │ │ ├── TagDemo.html │ │ │ └── index.html │ │ ├── 031ScenarioContext │ │ │ ├── ScenarioContext.html │ │ │ └── index.html │ │ ├── 032FeatureContext │ │ │ ├── FeatureContextFeatures.html │ │ │ └── index.html │ │ ├── 03ScenarioOutline │ │ │ ├── ScenarioOutline.html │ │ │ └── index.html │ │ ├── 04Background │ │ │ ├── BackgroundFeature.html │ │ │ └── index.html │ │ ├── 05TablesAndAssist │ │ │ ├── TableScenario.html │ │ │ └── index.html │ │ ├── 06CompareToAssist │ │ │ ├── CompareTo.html │ │ │ └── index.html │ │ ├── 07Localization │ │ │ ├── Svenska.html │ │ │ ├── Vlaams.html │ │ │ └── index.html │ │ ├── 08AttributeOverloading │ │ │ ├── AttributeOverloading.html │ │ │ └── index.html │ │ ├── 09CallingStepsFromSteps │ │ │ ├── CallingStepsFromSteps.html │ │ │ └── index.html │ │ ├── 10StepTransformation │ │ │ ├── StepTransformation.html │ │ │ └── index.html │ │ ├── 11ContextInjection │ │ │ ├── ContextInjection.html │ │ │ └── index.html │ │ ├── 12NestedFolders │ │ │ ├── ChildFolder │ │ │ │ ├── ChildChildFolder │ │ │ │ │ ├── NestedFolderExample.html │ │ │ │ │ └── index.html │ │ │ │ └── index.html │ │ │ └── index.html │ │ ├── 13MultilineText │ │ │ ├── MultilineFeatureExample.html │ │ │ └── index.html │ │ ├── 14MarkdownExample │ │ │ ├── MarkdownExamples.html │ │ │ ├── image.png │ │ │ └── index.html │ │ ├── 15Pickles │ │ │ ├── InteractiveDHTMLView.html │ │ │ ├── NotTestedAutomatedManualTags.html │ │ │ └── index.html │ │ ├── Arithmetic.html │ │ ├── Trigonometry.html │ │ ├── Workflow │ │ │ ├── ClearingScreen.html │ │ │ └── index.html │ │ └── index.html │ ├── css │ │ ├── font-awesome.css │ │ ├── fonts │ │ │ ├── FontAwesome.ttf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ └── fontawesome-webfont.woff │ │ ├── global.css │ │ ├── master.css │ │ ├── print.css │ │ ├── reset.css │ │ └── structure.css │ ├── img │ │ ├── failure.png │ │ ├── inconclusive.png │ │ └── success.png │ ├── index.html │ ├── js │ │ ├── jquery.js │ │ └── scripts.js │ └── readme.html ├── JSON │ └── pickledFeatures.json ├── Markdown │ ├── fail.png │ ├── features.md │ ├── inconclusive.png │ └── pass.png └── Word │ └── Pickles.docx ├── Pickles.sln ├── README.md ├── build.cmd ├── build.ps1 ├── build.sh ├── build ├── .editorconfig ├── Build.cs ├── Configuration.cs ├── Directory.Build.props ├── Directory.Build.targets ├── _build.csproj └── _build.csproj.DotSettings ├── docs ├── .gitattributes ├── .gitignore ├── CNAME ├── Content │ ├── bootstrap-theme.css │ ├── bootstrap-theme.css.map │ ├── bootstrap-theme.min.css │ ├── bootstrap-theme.min.css.map │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── bootswatch.flatly.min.css │ └── custom.css ├── Images │ ├── BasicGherkin.png │ ├── DynamicHtml.png │ ├── Excel.png │ ├── StaticHtml.png │ ├── Word.png │ ├── pickles.png │ └── pickles.svg ├── Output │ ├── Cucumber │ │ └── cucumberResult.json │ ├── Dhtml │ │ ├── Index.html │ │ ├── css │ │ │ ├── bootstrap.min.css │ │ │ ├── print.css │ │ │ └── styles.css │ │ ├── image.png │ │ ├── img │ │ │ ├── glyphicons-halflings-white.png │ │ │ ├── glyphicons-halflings.png │ │ │ └── link.png │ │ ├── js │ │ │ ├── Chart.StackedBar.js │ │ │ ├── Chart.min.js │ │ │ ├── Markdown.Converter.js │ │ │ ├── Markdown.Extra.js │ │ │ ├── bootstrap.min.js │ │ │ ├── featureSearch.js │ │ │ ├── featuresModel.js │ │ │ ├── heirarchyBuilder.js │ │ │ ├── html5.js │ │ │ ├── jquery-1.8.3.min.js │ │ │ ├── jquery.highlight-4.closure.js │ │ │ ├── knockout-3.4.0.js │ │ │ ├── knockout.mapping-latest.js │ │ │ ├── logger.js │ │ │ ├── picklesOverview.js │ │ │ ├── stringFormatting.js │ │ │ ├── typeaheadList.js │ │ │ └── underscore-min.js │ │ ├── pickledFeatures.js │ │ └── test.jpg │ ├── Excel │ │ └── features.xlsx │ ├── Html │ │ ├── Features │ │ │ ├── 00BasicGherkin │ │ │ │ ├── BasicGherkin.html │ │ │ │ ├── index.html │ │ │ │ └── test.jpg │ │ │ ├── 01TestRunner │ │ │ │ ├── TestRunnerIsNotImportant.html │ │ │ │ └── index.html │ │ │ ├── 02TagsAndHooks │ │ │ │ ├── Hooks.html │ │ │ │ ├── TagDemo.html │ │ │ │ └── index.html │ │ │ ├── 031ScenarioContext │ │ │ │ ├── ScenarioContext.html │ │ │ │ └── index.html │ │ │ ├── 032FeatureContext │ │ │ │ ├── FeatureContextFeatures.html │ │ │ │ └── index.html │ │ │ ├── 03ScenarioOutline │ │ │ │ ├── ScenarioOutline.html │ │ │ │ └── index.html │ │ │ ├── 04Background │ │ │ │ ├── BackgroundFeature.html │ │ │ │ └── index.html │ │ │ ├── 05TablesAndAssist │ │ │ │ ├── TableScenario.html │ │ │ │ └── index.html │ │ │ ├── 06CompareToAssist │ │ │ │ ├── CompareTo.html │ │ │ │ └── index.html │ │ │ ├── 07Localization │ │ │ │ ├── Svenska.html │ │ │ │ ├── Vlaams.html │ │ │ │ └── index.html │ │ │ ├── 08AttributeOverloading │ │ │ │ ├── AttributeOverloading.html │ │ │ │ └── index.html │ │ │ ├── 09CallingStepsFromSteps │ │ │ │ ├── CallingStepsFromSteps.html │ │ │ │ └── index.html │ │ │ ├── 10StepTransformation │ │ │ │ ├── StepTransformation.html │ │ │ │ └── index.html │ │ │ ├── 11ContextInjection │ │ │ │ ├── ContextInjection.html │ │ │ │ └── index.html │ │ │ ├── 12NestedFolders │ │ │ │ ├── ChildFolder │ │ │ │ │ ├── ChildChildFolder │ │ │ │ │ │ ├── NestedFolderExample.html │ │ │ │ │ │ └── index.html │ │ │ │ │ └── index.html │ │ │ │ └── index.html │ │ │ ├── 13MultilineText │ │ │ │ ├── MultilineFeatureExample.html │ │ │ │ └── index.html │ │ │ ├── 14MarkdownExample │ │ │ │ ├── MarkdownExamples.html │ │ │ │ ├── image.png │ │ │ │ └── index.html │ │ │ ├── 15Pickles │ │ │ │ ├── InteractiveDHTMLView.html │ │ │ │ ├── NotTestedAutomatedManualTags.html │ │ │ │ └── index.html │ │ │ ├── Arithmetic.html │ │ │ ├── Trigonometry.html │ │ │ ├── Workflow │ │ │ │ ├── ClearingScreen.html │ │ │ │ └── index.html │ │ │ └── index.html │ │ ├── css │ │ │ ├── font-awesome.css │ │ │ ├── fonts │ │ │ │ ├── FontAwesome.ttf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ └── fontawesome-webfont.woff │ │ │ ├── global.css │ │ │ ├── master.css │ │ │ ├── print.css │ │ │ ├── reset.css │ │ │ └── structure.css │ │ ├── img │ │ │ ├── failure.png │ │ │ ├── inconclusive.png │ │ │ └── success.png │ │ ├── index.html │ │ ├── js │ │ │ ├── jquery.js │ │ │ └── scripts.js │ │ └── readme.html │ ├── JSON │ │ └── pickledFeatures.json │ ├── Markdown │ │ ├── fail.png │ │ ├── features.md │ │ ├── inconclusive.png │ │ └── pass.png │ └── Word │ │ └── Pickles.docx ├── README.md ├── Scripts │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── jquery-2.1.4.intellisense.js │ ├── jquery-2.1.4.js │ ├── jquery-2.1.4.min.js │ └── jquery-2.1.4.min.map ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── index.html ├── index_template.html ├── packages.config ├── picklesdoc.github.com.sln └── picklesdoc.github.com.sln.GhostDoc.xml ├── global.json ├── packages └── nuget │ └── nuget.exe ├── pickles.png └── src ├── AutoTest.config ├── DocumentationBuilders.Markdown_Tests.playlist ├── Examples ├── Features │ ├── 00BasicGherkin │ │ ├── BasicGherkin.feature │ │ └── test.jpg │ ├── 01TestRunner │ │ └── TestRunnerIsNotImportant.feature │ ├── 02TagsAndHooks │ │ ├── Hooks.feature │ │ └── TagDemo.feature │ ├── 031ScenarioContext │ │ └── ScenarioContext.feature │ ├── 032FeatureContext │ │ └── FeatureContextFeatures.feature │ ├── 03ScenarioOutline │ │ └── ScenarioOutline.feature │ ├── 04Background │ │ └── BackgroundFeature.feature │ ├── 05TablesAndAssist │ │ └── TableScenario.feature │ ├── 06CompareToAssist │ │ └── CompareTo.feature │ ├── 07Localization │ │ ├── Svenska.feature │ │ └── Vlaams.feature │ ├── 08AttributeOverloading │ │ └── AttributeOverloading.feature │ ├── 09CallingStepsFromSteps │ │ └── CallingStepsFromSteps.feature │ ├── 10StepTransformation │ │ └── StepTransformation.feature │ ├── 11ContextInjection │ │ └── ContextInjection.feature │ ├── 12NestedFolders │ │ └── ChildFolder │ │ │ └── ChildChildFolder │ │ │ └── NestedFolderExample.feature │ ├── 13MultilineText │ │ └── MultilineFeatureExample.feature │ ├── 14MarkdownExample │ │ ├── MarkdownExamples.feature │ │ └── image.png │ ├── 15Pickles │ │ ├── InteractiveDHTMLView.feature │ │ └── NotTestedAutomatedManualTags.feature │ ├── Arithmetic.feature │ ├── Trigonometry.feature │ └── Workflow │ │ └── ClearingScreen.feature └── readme.txt ├── Pickles.BaseDhtmlFiles ├── Index.html ├── css │ ├── bootstrap.min.css │ ├── print.css │ └── styles.css ├── img │ ├── glyphicons-halflings-white.png │ ├── glyphicons-halflings.png │ └── link.png ├── js │ ├── Chart.StackedBar.js │ ├── Chart.min.js │ ├── Markdown.Converter.js │ ├── Markdown.Extra.js │ ├── bootstrap.min.js │ ├── featureSearch.js │ ├── featuresModel.js │ ├── heirarchyBuilder.js │ ├── html5.js │ ├── jquery-1.8.3.min.js │ ├── jquery.highlight-4.closure.js │ ├── knockout-3.4.0.js │ ├── knockout.mapping-latest.js │ ├── logger.js │ ├── picklesOverview.js │ ├── stringFormatting.js │ ├── typeaheadList.js │ └── underscore-min.js ├── pickledFeatures.js └── tests │ ├── Tests.html │ ├── qunit-1.10.0.css │ ├── qunit-1.10.0.js │ └── tests.js ├── Pickles.CommandLine.UnitTests ├── Pickles.CommandLine.UnitTests.csproj ├── TestResults │ └── TestResults.xml ├── WhenParsingCommandLineArguments.cs └── app.config ├── Pickles.CommandLine ├── CommandLineArgumentParser.cs ├── NLog.config ├── NugetPack.cmd ├── Pickles.CommandLine.csproj ├── Pickles.CommandLine.nuspec ├── Program.cs ├── Properties │ └── PublishProfiles │ │ ├── FolderProfile.pubxml │ │ └── FolderProfile1.pubxml ├── app.config └── runtimeconfig.template.json ├── Pickles.DocumentationBuilders.Cucumber.UnitTests ├── App.config ├── AutomationLayer │ └── StepDefinitions.cs ├── CucumberDocumentationBuilderTests.cs ├── FeatureTest │ ├── SettingUriForAFeature.feature │ └── SettingUriForAFeature.feature.cs ├── FormattingAFeature.feature ├── FormattingAFeature.feature.cs ├── Pickles.DocumentationBuilders.Cucumber.UnitTests.csproj ├── Properties │ └── AssemblyInfo.cs └── TestResults │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Cucumber ├── CucumberDocumentationBuilder.cs ├── CucumberTestResults.cs ├── Pickles.DocumentationBuilders.Cucumber.csproj └── app.config ├── Pickles.DocumentationBuilders.Dhtml.UnitTests ├── Pickles.DocumentationBuilders.Dhtml.UnitTests.csproj ├── TestResults │ └── TestResults.xml ├── WhenDoingSomeIntegrationTests.cs └── app.config ├── Pickles.DocumentationBuilders.Dhtml ├── DhtmlDocumentationBuilder.cs ├── DhtmlModule.cs ├── DhtmlResourceWriter.cs ├── JsonTweaker.cs ├── Pickles.DocumentationBuilders.Dhtml.csproj ├── Resources │ ├── Index.html │ ├── css │ │ ├── bootstrap.min.css │ │ ├── print.css │ │ └── styles.css │ ├── img │ │ ├── glyphicons-halflings-white.png │ │ ├── glyphicons-halflings.png │ │ └── link.png │ ├── js │ │ ├── Chart.StackedBar.js │ │ ├── Chart.min.js │ │ ├── Markdown.Converter.js │ │ ├── Markdown.Extra.js │ │ ├── bootstrap.min.js │ │ ├── featureSearch.js │ │ ├── featuresModel.js │ │ ├── heirarchyBuilder.js │ │ ├── html5.js │ │ ├── jquery-1.8.3.min.js │ │ ├── jquery.highlight-4.closure.js │ │ ├── knockout-3.4.0.js │ │ ├── knockout.mapping-latest.js │ │ ├── logger.js │ │ ├── picklesOverview.js │ │ ├── stringFormatting.js │ │ ├── typeaheadList.js │ │ └── underscore-min.js │ ├── pickledFeatures.js │ └── tests │ │ ├── Tests.html │ │ ├── qunit-1.10.0.css │ │ ├── qunit-1.10.0.js │ │ └── tests.js └── app.config ├── Pickles.DocumentationBuilders.Excel.UnitTests ├── Pickles.DocumentationBuilders.Excel.UnitTests.csproj ├── TestResults │ └── TestResults.xml ├── WhenAddingADocumentStringToAWorksheet.cs ├── WhenAddingAFeatureToAWorksheet.cs ├── WhenAddingAScenarioToAWorksheet.cs ├── WhenAddingAStepToAWorksheet.cs ├── WhenAddingATableOfContentsToAWorksheet.cs ├── WhenAddingATableToAWorksheet.cs ├── WhenCreatingSheetNamesFromFeatures.cs └── app.config ├── Pickles.DocumentationBuilders.Excel ├── ExcelDocumentStringFormatter.cs ├── ExcelDocumentationBuilder.cs ├── ExcelFeatureFormatter.cs ├── ExcelModule.cs ├── ExcelScenarioFormatter.cs ├── ExcelSheetNameGenerator.cs ├── ExcelStepFormatter.cs ├── ExcelTableFormatter.cs ├── ExcelTableOfContentsFormatter.cs └── Pickles.DocumentationBuilders.Excel.csproj ├── Pickles.DocumentationBuilders.Html.UnitTests ├── AutomationLayer │ ├── CurrentScenarioContext.cs │ ├── Hooks.cs │ └── StepDefinitions.cs ├── FormattingAFeature.feature ├── FormattingAFeature.feature.cs ├── FormattingAFeatureUsingStrike.feature ├── FormattingAFeatureUsingStrike.feature.cs ├── Pickles.DocumentationBuilders.Html.UnitTests.csproj ├── StrikeMarkdownProviderTests.cs ├── TestResults │ └── TestResults.xml ├── WhenFormattingFeatures.cs ├── WhenFormattingLocalizedFeatures.cs ├── WhenFormattingMultilineStrings.cs ├── WhenFormattingScenario.cs ├── WhenFormattingStep.cs ├── WhenFormattingTables.cs └── app.config ├── Pickles.DocumentationBuilders.Html ├── Extensions │ └── NamespaceExtensions.cs ├── HtmlContentFormatter.cs ├── HtmlDescriptionFormatter.cs ├── HtmlDocumentFormatter.cs ├── HtmlDocumentationBuilder.cs ├── HtmlFeatureFormatter.cs ├── HtmlFooterFormatter.cs ├── HtmlHeaderFormatter.cs ├── HtmlImageResultFormatter.cs ├── HtmlIndexFormatter.cs ├── HtmlMarkdownFormatter.cs ├── HtmlModule.cs ├── HtmlMultilineStringFormatter.cs ├── HtmlNamespace.cs ├── HtmlResource.cs ├── HtmlResourceSet.cs ├── HtmlResourceWriter.cs ├── HtmlScenarioFormatter.cs ├── HtmlStepFormatter.cs ├── HtmlTableFormatter.cs ├── HtmlTableOfContentsFormatter.cs ├── IHtmlFeatureFormatter.cs ├── Pickles.DocumentationBuilders.Html.csproj ├── ResourceWriter.cs └── Resources │ ├── css │ ├── font-awesome.css │ ├── fonts │ │ ├── FontAwesome.ttf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ └── fontawesome-webfont.woff │ ├── global.css │ ├── master.css │ ├── print.css │ ├── reset.css │ └── structure.css │ ├── img │ ├── failure.png │ ├── inconclusive.png │ └── success.png │ └── js │ ├── jquery.js │ └── scripts.js ├── Pickles.DocumentationBuilders.Json.UnitTests ├── AutomationLayer │ └── StepDefinitions.cs ├── FormattingAFeature.feature ├── IJsonFeatureElementExtensionsTests.cs ├── Pickles.DocumentationBuilders.Json.UnitTests.csproj ├── TestResults │ └── TestResults.xml └── app.config ├── Pickles.DocumentationBuilders.Json ├── IJsonFeatureElement.cs ├── IJsonFeatureElementExtensions.cs ├── JSONDocumentationBuilder.cs ├── JsonComment.cs ├── JsonExample.cs ├── JsonFeature.cs ├── JsonFeatureWithMetaInfo.cs ├── JsonKeyword.cs ├── JsonMapper.cs ├── JsonModule.cs ├── JsonScenario.cs ├── JsonStep.cs ├── JsonTable.cs ├── JsonTableHeader.cs ├── JsonTableRow.cs ├── JsonTestResult.cs ├── Mapper │ ├── CommentToJsonCommentMapper.cs │ ├── ExampleToJsonExampleMapper.cs │ ├── FeatureToJsonFeatureMapper.cs │ ├── KeywordToJsonKeywordMapper.cs │ ├── ScenarioToJsonScenarioMapper.cs │ ├── StepToJsonStepMapper.cs │ ├── TableRowToJsonTableHeaderMapper.cs │ ├── TableRowToJsonTableRowMapper.cs │ ├── TableToJsonTableMapper.cs │ └── TestResultToJsonTestResultMapper.cs ├── Pickles.DocumentationBuilders.Json.csproj ├── SummaryGenerator.cs └── app.config ├── Pickles.DocumentationBuilders.Markdown.AcceptanceTests ├── App.config ├── Features │ ├── Feature Background.feature │ ├── Feature Background.feature.cs │ ├── Feature Description.feature │ ├── Feature Description.feature.cs │ ├── Feature Heading.feature │ ├── Feature Heading.feature.cs │ ├── Feature Tags.feature │ ├── Feature Tags.feature.cs │ ├── File Location.feature │ ├── File Location.feature.cs │ ├── Scenario Heading.feature │ ├── Scenario Heading.feature.cs │ ├── Scenario Outline.feature │ ├── Scenario Outline.feature.cs │ ├── Scenario Status Icons.feature │ ├── Scenario Status Icons.feature.cs │ ├── Scenario Steps.feature │ ├── Scenario Steps.feature.cs │ ├── Scenario Tags.feature │ ├── Scenario Tags.feature.cs │ ├── Title.feature │ └── Title.feature.cs ├── Pickles.DocumentationBuilders.Markdown.AcceptanceTests.csproj ├── Steps │ ├── GherkinTreeSteps.cs │ └── MarkdownSteps.cs └── TestResults │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Markdown.UnitTests ├── App.config ├── Blocks_Tests │ ├── BackgroundBlock_Tests.cs │ ├── Block_Tests.cs │ ├── FeatureBlock_Tests.cs │ ├── ScenarioBlock_Tests.cs │ ├── StepBlock_Tests.cs │ ├── TableBlock_Tests.cs │ └── TitleBlock_Tests.cs ├── Documentation_Tests.cs ├── Lines_Tests.cs ├── Localization_Tests.cs ├── MarkdownDocumentationBuilder_Tests.cs ├── MockBlock.cs ├── MockStylist.cs ├── Pickles.DocumentationBuilders.Markdown.UnitTests.csproj ├── Stylist_Tests.cs └── TestResults │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Markdown ├── Blocks │ ├── BackgroundBlock.cs │ ├── Block.cs │ ├── FeatureBlock.cs │ ├── ScenarioBlock.cs │ ├── StepBlock.cs │ ├── TableBlock.cs │ └── TitleBlock.cs ├── Documentation.cs ├── Lines.cs ├── Localization.Designer.cs ├── Localization.resx ├── MarkdownDocumentationBuilder.cs ├── Pickles.DocumentationBuilders.Markdown.csproj ├── Properties │ └── AssemblyInfo.cs ├── Resource │ ├── fail_32.png │ ├── inconclusive_32.png │ └── pass_32.png ├── Stylist.cs └── app.config ├── Pickles.DocumentationBuilders.Word.UnitTests ├── Pickles.DocumentationBuilders.Word.UnitTests.csproj ├── TestResults │ └── TestResults.xml ├── WhenBuildingWordDocuments.cs ├── WordDescriptionFormatterTests.cs └── app.config ├── Pickles.DocumentationBuilders.Word ├── Extensions │ └── BodyExtensions.cs ├── Pickles.DocumentationBuilders.Word.csproj ├── TableOfContentsAdder │ ├── PtOpenXmlUtil.cs │ ├── PtUtil.cs │ └── TocAdder.cs ├── WordBackgroundFormatter.cs ├── WordDescriptionFormatter.cs ├── WordDocumentationBuilder.cs ├── WordFeatureFormatter.cs ├── WordFontApplicator.cs ├── WordHeaderFooterFormatter.cs ├── WordModule.cs ├── WordScenarioFormatter.cs ├── WordStepFormatter.cs ├── WordStyleApplicator.cs └── WordTableFormatter.cs ├── Pickles.MSBuild ├── NugetPack.bat ├── NugetPack.cmd ├── Pickles.MSBuild.csproj ├── Pickles.MSBuild.nuspec ├── Pickles.cs ├── app.config └── build │ └── Pickles.MSBuild.targets ├── Pickles.ObjectModel ├── DataStructures │ └── Tree.cs ├── DirectoryCrawler │ ├── FeatureNode.cs │ ├── FolderNode.cs │ ├── INode.cs │ ├── ImageNode.cs │ └── MarkdownNode.cs ├── DocumentationBuilders │ └── IDocumentationBuilder.cs ├── DocumentationFormat.cs ├── Extensions │ ├── StringExtensions.cs │ ├── TreeNodeExtensions.cs │ └── UriExtensions.cs ├── IConfiguration.cs ├── ILanguageServices.cs ├── ILanguageServicesRegistry.cs ├── IMarkdownProvider.cs ├── ObjectModel │ ├── Comment.cs │ ├── Example.cs │ ├── Feature.cs │ ├── IFeatureElement.cs │ ├── ITestResults.cs │ ├── Keyword.cs │ ├── Location.cs │ ├── Scenario.cs │ ├── ScenarioBase.cs │ ├── Step.cs │ ├── Table.cs │ ├── TableRow.cs │ └── TestResult.cs ├── Pickles.ObjectModel.csproj └── TestResultsFormat.cs ├── Pickles.PowerShell ├── NugetPack.cmd ├── Pickle_Features.cs ├── Pickles.PowerShell.csproj ├── Pickles.nuspec ├── app.config └── init.ps1 ├── Pickles.Test.CL ├── App.config ├── Pickles.Test.CL.csproj ├── Program.cs └── Properties │ └── AssemblyInfo.cs ├── Pickles.Test ├── App.config ├── AssertExtensions.cs ├── BaseFixture.cs ├── ConfigurationTests.cs ├── CultureAwareDialectProviderTests.cs ├── DataStructures │ └── TreeTests.cs ├── DescriptionProcessorTests.cs ├── DirectoryCrawlers │ ├── FolderDirectoryTreeNodeTests.cs │ ├── ImageFileDetectorTests.cs │ └── RelevantFileDetectorTests.cs ├── EncodingDetectorTests.cs ├── Extensions │ ├── PathExtensionsTests.cs │ ├── StringExtensionsTests.cs │ ├── UriExtensionsTests.cs │ └── XElementExtensions.cs ├── FakeFolderStructures │ ├── AcceptanceTest │ │ ├── AdvancedFeature.feature │ │ └── LevelOne.feature │ ├── FeatureCrawlerTests │ │ ├── LevelOne.feature │ │ ├── LevelOneIgnoredFeature.feature │ │ ├── LevelOneRemoveTagsToHide.feature │ │ ├── SubLevelOne │ │ │ ├── LevelOneSublevelOne.feature │ │ │ ├── LevelOneSublevelTwo.feature │ │ │ ├── SubLevelTwo │ │ │ │ ├── IgnoreThisDirectory │ │ │ │ │ └── IgnoreThisFile.ignore │ │ │ │ └── LevelOneSublevelOneSubLevelTwo.feature │ │ │ └── ignorethisfile.ignore │ │ ├── image.png │ │ └── index.md │ ├── JSON │ │ ├── Features │ │ │ ├── OneScenarioTransferingMoneyBetweenAccountsFailing.feature │ │ │ ├── TransferBetweenAccounts_WithSuccess.feature │ │ │ ├── TwoScenariosTransferingFundsOneFailingOneSuccess.feature │ │ │ └── TwoScenariosTransferingMoneyBetweenAccoutsWithSuccess.feature │ │ └── results-example-failing-and-pasing-mstest.trx │ └── OrderingTests │ │ ├── A │ │ ├── a-a.feature │ │ └── a-b.feature │ │ └── B │ │ ├── b-a.feature │ │ └── b-b.feature ├── FeatureNodeFactoryTests.cs ├── FeatureParserTests.cs ├── FileSystemBasedFeatureParserTests.cs ├── FileSystemExtensions.cs ├── Formatters │ ├── HtmlContentFormatterTests.cs │ ├── HtmlDocumentationBuilderTests.cs │ ├── HtmlScenarioFormatterTests.cs │ ├── JSON │ │ ├── WhenCreatingAFeatureWithMetaInfo.cs │ │ ├── WhenCreatingAFeatureWithMetaInfoAndTestResultInMstestFormat.cs │ │ └── WhenFormattingAFolderStructureWithFeatures.cs │ └── TableOfContentsShouldBeCreatedFromAFolderStructure.cs ├── GlobalSuppressions.cs ├── Helpers │ ├── JSONStringAssertHelpers.cs │ ├── XElementExentions.cs │ └── XElementExtensions.cs ├── LanguageServicesRegistryTests.cs ├── NamespaceExtensionsTests.cs ├── ObjectModel │ ├── Factory.cs │ ├── Json │ │ ├── CommentToJsonCommentMapperTests.cs │ │ ├── ExampleToJsonExampleMapperTests.cs │ │ ├── FeatureToJsonFeatureMapperTests.cs │ │ ├── JsonScenarioTests.cs │ │ ├── KeywordToJsonKeywordMapperTests.cs │ │ ├── ScenarioToJsonScenarioMapperTests.cs │ │ ├── StepToJsonStepMapperTests.cs │ │ ├── TableRowToJsonTableRowMapperTests.cs │ │ ├── TableToJsonTableMapperTests.cs │ │ └── TestResultToJsonTestResultMapperTests.cs │ ├── MapperTestsForBackground.cs │ ├── MapperTestsForComment.cs │ ├── MapperTestsForDataTable.cs │ ├── MapperTestsForDocString.cs │ ├── MapperTestsForExample.cs │ ├── MapperTestsForFeature.cs │ ├── MapperTestsForLocation.cs │ ├── MapperTestsForScenario.cs │ ├── MapperTestsForScenarioOutline.cs │ ├── MapperTestsForStep.cs │ ├── MapperTestsForTag.cs │ └── MappingTestsForKeyword.cs ├── ParserFileFactory.cs ├── Pickles.Test.csproj ├── Resources.Designer.cs ├── Resources.resx ├── Resources │ └── test.jpg ├── TestResultExtensionsTests.cs ├── TestResults │ └── TestResults.xml ├── WhenCrawlingFoldersForFeatures.cs ├── WhenDeterminingRelevantFilesToConsider.cs ├── WhenParsingFeatureFiles.cs ├── WhenParsingLocalizedFeatureFiles.cs ├── WhenResolvingADocumentationBuilder.cs ├── WhenResolvingAMarkdownProvider.cs └── WhenWorkingWithHtmlResources.cs ├── Pickles.TestFrameworks.UnitTests ├── CucumberJson │ ├── WhenParsingCucumberJsonFromJSResultsFile.cs │ ├── WhenParsingCucumberJsonFromJSResultsFileWithIndividualResults.cs │ ├── WhenParsingCucumberJsonFromJSResultsFileWithMissingElements.cs │ ├── WhenParsingCucumberJsonFromRubyResultsFile.cs │ ├── WhenParsingCucumberJsonFromRubyResultsFileWithIndividualResults.cs │ ├── results-example-cucumberjs-json.json │ ├── results-example-cucumberjs-missing-elements-array.json │ └── results-example-json.json ├── MsTest │ ├── MsTestElementExtensionsTests.cs │ ├── WhenParsingMsTestResultsFile.cs │ ├── WhenParsingMsTestResultsFileWithEmptyExampleValues.cs │ ├── WhenParsingMsTestResultsFileWithIgnoredExample.cs │ ├── WhenParsingMsTestResultsFileWithIndividualResults.cs │ ├── WhenParsingMsTestResultsFileWithMissingTraits.cs │ ├── WhenParsingMultipleMsTestTestResultsFiles.cs │ ├── resuls-example-mstest-emptyexamplevalues.trx │ ├── results-example-mstest - Run 1 (failing).trx │ ├── results-example-mstest - Run 2 (passing).trx │ ├── results-example-mstest-ignoredexample.trx │ ├── results-example-mstest-missingTraits.trx │ └── results-example-mstest.trx ├── NUnit │ ├── NUnit2 │ │ ├── WhenDeterminingTheSignatureOfAnNUnitExampleRow.cs │ │ ├── WhenParsingMultipleNUnitResultsFilesForASingleFeature.cs │ │ ├── WhenParsingNUnitResultsFile.cs │ │ ├── WhenParsingNUnitResultsFileWithIndividualResults.cs │ │ ├── WhenParsingProblematicScenarioOutlineResults.cs │ │ ├── WhenParsingnUnit2ResultsFileWithMissingTraits.cs │ │ ├── results-example-nunit - Run 1.xml │ │ ├── results-example-nunit - Run 2.xml │ │ ├── results-example-nunit-missingTraits.xml │ │ ├── results-example-nunit.xml │ │ └── results-problem-with-outline-results-nunit.xml │ └── NUnit3 │ │ ├── WhenDeterminingTheSignatureOfAnNunit3ExampleRow.cs │ │ ├── WhenParsingNUnitResultsFileWithIndividualResults.cs │ │ ├── WhenParsingNunit3ResultsFile.cs │ │ ├── WhenParsingNunit3ResultsFileForNunit2Tests.cs │ │ ├── WhenParsingnUnit3ResultsFileWithMissingTraits.cs │ │ ├── results-example-nunit2-with-nunit3-runner.xml │ │ ├── results-example-nunit3-missingTraits.xml │ │ └── results-example-nunit3.xml ├── Pickles.TestFrameworks.UnitTests.csproj ├── SpecRun │ ├── WhenParsingMultipleTestResultsTests.cs │ ├── WhenParsingSpecRunTestResultsFile.cs │ ├── WhenParsingSpecRunTestResultsFileWithIndividualResults.cs │ └── results-example-specrun.html ├── StandardTestSuite.cs ├── StandardTestSuiteForScenarioOutlines.cs ├── TestResults │ └── TestResults.xml ├── VsTest │ ├── WhenParsingMsTestResultsFileWithIgnoredExample.cs │ ├── WhenParsingMultipleVsTestTestResultsFiles.cs │ ├── WhenParsingVsTestResultsFile.cs │ ├── WhenParsingVsTestResultsFileWithIndividualResults.cs │ ├── WhenParsingVsTestResultsFileWithMissingTraits.cs │ ├── results-example-vstest - Run 1 (failing).trx │ ├── results-example-vstest - Run 2 (passing).trx │ ├── results-example-vstest-ignoredexample.trx │ ├── results-example-vstest-missingTraits.trx │ └── results-example-vstest.trx ├── WhenParsingTestResultFiles.cs ├── WhenResolvingTestResults.cs ├── XUnit │ ├── XUnit1 │ │ ├── WhenDeterminingTheSignatureOfAnXUnitExampleRow.cs │ │ ├── WhenParsingXUnitResultsFileWithIndividualResults.cs │ │ ├── WhenParsingxUnitResultsFile.cs │ │ ├── WhenParsingxUnitResultsFileWithMissingTraits.cs │ │ ├── results-example-xunit.xml │ │ └── results-example-xunit1-missingTraits.xml │ └── XUnit2 │ │ ├── WhenDeterminingTheSignatureOfAnXUnit2ExampleRow.cs │ │ ├── WhenMatchingAnXunit2ScenarioOutlineExample.cs │ │ ├── WhenParsingXUnitResultsFileWithIndividualResults.cs │ │ ├── WhenParsingxUnit2ResultsFile.cs │ │ ├── WhenParsingxUnit2ResultsFileWithMissingTraits.cs │ │ ├── results-example-xunit2-missingTraits.xml │ │ └── results-example-xunit2.xml └── app.config ├── Pickles.TestFrameworks ├── CodeFormattingExtensions.cs ├── CucumberJson │ ├── CucumberJsonResults.cs │ ├── CucumberJsonSingleResultLoader.cs │ ├── CucumberJsonSingleResults.cs │ ├── Element.cs │ ├── Feature.cs │ ├── Match.cs │ ├── Result.cs │ ├── Step.cs │ └── Tag.cs ├── IScenarioOutlineExampleMatcher.cs ├── ISingleResultLoader.cs ├── MsTest │ ├── MsTestElementExtensions.cs │ ├── MsTestExampleSignatureBuilder.cs │ ├── MsTestResults.cs │ ├── MsTestScenarioExampleMatcher.cs │ ├── MsTestSingleResultLoader.cs │ └── MsTestSingleResults.cs ├── MultipleTestRunsBase.cs ├── NUnit │ ├── NUnit2 │ │ ├── NUnit2ExampleSignatureBuilder.cs │ │ ├── NUnit2Results.cs │ │ ├── NUnit2ScenarioOutlineExampleMatcher.cs │ │ ├── NUnit2SingleResultLoader.cs │ │ └── NUnit2SingleResults.cs │ ├── NUnit3 │ │ ├── NUnit3ExampleSignatureBuilder.cs │ │ ├── NUnit3Results.cs │ │ ├── NUnit3ScenarioExampleMatcher.cs │ │ ├── NUnit3SingleResult.cs │ │ ├── NUnit3SingleResultLoader.cs │ │ ├── results-example-nunit3.cs │ │ └── results-example-nunit3.xsd │ ├── NUnitSingleResultsBase.cs │ ├── NUnitXElementExtensions.cs │ └── TestResultAndName.cs ├── Pickles.TestFrameworks.csproj ├── SingleTestRunBase.cs ├── SpecFlowNameMapping.cs ├── SpecRun │ ├── Factory.cs │ ├── SpecRunExampleSignatureBuilder.cs │ ├── SpecRunFeature.cs │ ├── SpecRunResults.cs │ ├── SpecRunScenario.cs │ ├── SpecRunScenarioOutlineExampleMatcher.cs │ ├── SpecRunSingleResultLoader.cs │ └── SpecRunSingleResults.cs ├── VsTest │ ├── VsTestElementExtensions.cs │ ├── VsTestExampleSignatureBuilder.cs │ ├── VsTestResults.cs │ ├── VsTestScenarioExampleMatcher.cs │ ├── VsTestSingleResultLoader.cs │ └── VsTestSingleResults.cs ├── XDocumentLoader.cs ├── XUnit │ ├── XUnit1 │ │ ├── XUnit1Results.cs │ │ ├── XUnit1ScenarioOutlineExampleMatcher.cs │ │ ├── XUnit1SingleResult.cs │ │ └── XUnit1SingleResultLoader.cs │ ├── XUnit2 │ │ ├── XUnit2Results.cs │ │ ├── XUnit2ScenarioOutlineExampleMatcher.cs │ │ ├── XUnit2SingleResultLoader.cs │ │ ├── XUnit2SingleResults.cs │ │ ├── results-example-xunit2.cs │ │ └── results-example-xunit2.xsd │ └── xUnitExampleSignatureBuilder.cs ├── XmlDeserializer.cs └── app.config ├── Pickles.gpState ├── Pickles.ncrunchsolution ├── Pickles.sln.DotSettings ├── Pickles.sln.GhostDoc.xml ├── Pickles.v2.ncrunchsolution ├── Pickles.v3.ncrunchsolution ├── Pickles ├── CommandLineArgumentHelpTexts.cs ├── Configuration.cs ├── ConfigurationReporter.cs ├── CultureAwareDialectProvider.cs ├── DescriptionProcessor.cs ├── DirectoryCrawler │ ├── DirectoryTreeCrawler.cs │ ├── FeatureNodeFactory.cs │ ├── ImageFileDetector.cs │ ├── ParsingReport.cs │ └── RelevantFileDetector.cs ├── DocumentationBuilders │ └── Cucumber │ │ └── CucumberDocumentationBuilder.cs ├── EncodingDetector.cs ├── Extensions │ ├── FileSystemExtensions.cs │ ├── PathExtensions.cs │ └── StringExtensions.cs ├── FeatureFilter.cs ├── FeatureParseException.cs ├── FeatureParser.cs ├── FeatureToggles │ └── AlternateMarkdownProvider.cs ├── FileSystemBasedFeatureParser.cs ├── GlobalSuppressions.cs ├── LanguageServices.cs ├── LanguageServicesRegistry.cs ├── MarkdownProvider.cs ├── ObjectModel │ └── Mapper.cs ├── Pickles.CommandLine.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Cucumber.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Dhtml.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Excel.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Html.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Json.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Markdown.AcceptanceTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Markdown.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.DocumentationBuilders.Word.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.Test │ └── TestResults │ │ └── TestResults.xml ├── Pickles.TestFrameworks.UnitTests │ └── TestResults │ │ └── TestResults.xml ├── Pickles.csproj ├── PicklesModule.cs ├── Properties │ ├── Resources.Designer.cs │ └── Resources.resx ├── Runner.cs ├── StrikeMarkdownProvider.cs ├── TestFrameworks │ └── NullTestResults.cs └── app.config ├── Settings.StyleCop ├── VersionInfo.cs ├── markdowndeep ├── Abbreviation.cs ├── Block.cs ├── BlockProcessor.cs ├── FootnoteReference.cs ├── HtmlTag.cs ├── LinkDefinition.cs ├── LinkInfo.cs ├── MardownDeep.cs ├── Properties │ └── AssemblyInfo.cs ├── SpanFormatter.cs ├── StringScanner.cs ├── TableSpec.cs ├── Token.cs ├── Utils.cs ├── markdowndeep.csproj └── markdowndeep.sln └── packages.nonnuget └── Strike.Jint ├── Jint.dll └── Strike.Jint.dll /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = CRLF 5 | indent_style = space 6 | trim_trailing_whitespace = true 7 | indent_size = 4 8 | 9 | [*.csproj] 10 | indent_style = space 11 | indent_size = 2 12 | 13 | [*.resx] 14 | indent_style = space 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set default behaviour to automatically normalize line endings. 2 | * text=auto -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build-pickles 2 | on: 3 | push: 4 | branches: 5 | - release/* 6 | jobs: 7 | build: 8 | runs-on: windows-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | name: Checkout Code 13 | 14 | - name: Setup NuGet 15 | uses: NuGet/setup-nuget@v1.0.5 16 | #with: 17 | # NuGet API Key to configure. 18 | #nuget-api-key: # optional 19 | # Source to scope the NuGet API Key to. 20 | #nuget-api-key-source: # optional 21 | 22 | - name: Restore NuGet Packages 23 | run: nuget restore src\pickles\pickles.sln 24 | 25 | - name: Run build 26 | run: build.bat 27 | 28 | #- name: Build and Publish Web App 29 | # run: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild SimpleFrameworkApp.sln /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfile 30 | 31 | #- name: Upload Artifact 32 | # uses: actions/upload-artifact@v1.0.0 33 | # with: 34 | # name: published_webapp 35 | # path: bin\Release\Publish 36 | -------------------------------------------------------------------------------- /.nuget/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.nuke/parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./build.schema.json", 3 | "Solution": "src/Pickles/Pickles.sln" 4 | } -------------------------------------------------------------------------------- /Build.md: -------------------------------------------------------------------------------- 1 | #Development Environment 2 | 3 | Install the nuke-build tool in order to run the build commands: 4 | 5 | ``` 6 | dotnet tool install Nuke.GlobalTool --global 7 | ``` 8 | 9 | Install the dotnet-nugetize tool to assist with debugging packaging issues 10 | 11 | ``` 12 | dotnet tool install -g dotnet-nugetize 13 | ``` 14 | 15 | #Build 16 | 17 | set version number in _build\Build.cs 18 | 19 | PowerShell 20 | 21 | - To execute all build targets use the following commands: 22 | 23 | set-executionpolicy -scope process -executionpolicy bypass 24 | .\build.ps1 25 | 26 | - To only run a specific target and it's dependencies include the target name after the build command: 27 | 28 | set-executionpolicy -scope process -executionpolicy bypass 29 | .\build.ps1 -target publish 30 | 31 | Build Targets 32 | - Clean 33 | - Test 34 | - Publish 35 | - GenerateSampleOutput 36 | - Pack 37 | - PublishNuGet 38 | 39 | 40 | #Test NuGet Packages Locally 41 | 42 | - create an empty folder 43 | - at the command line enter "dotnet new tool-manifest" 44 | - at the command line enter "dotnet tool install --add-source " 45 | -------------------------------------------------------------------------------- /Output/Dhtml/css/print.css: -------------------------------------------------------------------------------- 1 | #FolderNav, #TopNav { display: none !important; } 2 | -------------------------------------------------------------------------------- /Output/Dhtml/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/Output/Dhtml/image.png -------------------------------------------------------------------------------- /Output/Dhtml/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/Output/Dhtml/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /Output/Dhtml/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/Output/Dhtml/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /Output/Dhtml/img/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/Output/Dhtml/img/link.png -------------------------------------------------------------------------------- /Output/Dhtml/js/jquery.highlight-4.closure.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | highlight v4 4 | 5 | Highlights arbitrary terms. 6 | 7 | 8 | 9 | MIT license. 10 | 11 | Johann Burkard 12 | 13 | 14 | 15 | */ 16 | 17 | jQuery.fn.highlight=function(c){function e(b,c){var d=0;if(3==b.nodeType){var a=b.data.toUpperCase().indexOf(c);if(0<=a){d=document.createElement("span");d.className="highlight";a=b.splitText(a);a.splitText(c.length);var f=a.cloneNode(!0);d.appendChild(f);a.parentNode.replaceChild(d,a);d=1}}else if(1==b.nodeType&&b.childNodes&&!/(script|style)/i.test(b.tagName))for(a=0;a))] 7 | public class Configuration : Enumeration 8 | { 9 | public static Configuration Debug = new Configuration { Value = nameof(Debug) }; 10 | public static Configuration Release = new Configuration { Value = nameof(Release) }; 11 | 12 | public static implicit operator string(Configuration configuration) 13 | { 14 | return configuration.Value; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /build/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /build/Directory.Build.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /build/_build.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net6.0 6 | 7 | CS0649;CS0169 8 | .. 9 | .. 10 | 1 11 | e07f83f3-1c7c-480c-9443-a8ad1bfc6b83 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | .vs/config/applicationhost.config 2 | packages/ 3 | .vs/picklesdoc.github.com/v14/.suo 4 | -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | www.picklesdoc.com 2 | -------------------------------------------------------------------------------- /docs/Content/custom.css: -------------------------------------------------------------------------------- 1 | div.carousel-caption { 2 | background-color: #446280; 3 | background-color: rgba(68, 98, 128, 0.7); 4 | } 5 | 6 | @media (max-width: 992px) { 7 | a.forkmeongithub { 8 | display: none; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /docs/Images/BasicGherkin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Images/BasicGherkin.png -------------------------------------------------------------------------------- /docs/Images/DynamicHtml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Images/DynamicHtml.png -------------------------------------------------------------------------------- /docs/Images/Excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Images/Excel.png -------------------------------------------------------------------------------- /docs/Images/StaticHtml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Images/StaticHtml.png -------------------------------------------------------------------------------- /docs/Images/Word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Images/Word.png -------------------------------------------------------------------------------- /docs/Images/pickles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Images/pickles.png -------------------------------------------------------------------------------- /docs/Output/Dhtml/css/print.css: -------------------------------------------------------------------------------- 1 | #FolderNav, #TopNav { display: none !important; } 2 | -------------------------------------------------------------------------------- /docs/Output/Dhtml/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Output/Dhtml/image.png -------------------------------------------------------------------------------- /docs/Output/Dhtml/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Output/Dhtml/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /docs/Output/Dhtml/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Output/Dhtml/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /docs/Output/Dhtml/img/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/docs/Output/Dhtml/img/link.png -------------------------------------------------------------------------------- /docs/Output/Dhtml/js/jquery.highlight-4.closure.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | highlight v4 4 | 5 | Highlights arbitrary terms. 6 | 7 | 8 | 9 | MIT license. 10 | 11 | Johann Burkard 12 | 13 | 14 | 15 | */ 16 | 17 | jQuery.fn.highlight=function(c){function e(b,c){var d=0;if(3==b.nodeType){var a=b.data.toUpperCase().indexOf(c);if(0<=a){d=document.createElement("span");d.className="highlight";a=b.splitText(a);a.splitText(c.length);var f=a.cloneNode(!0);d.appendChild(f);a.parentNode.replaceChild(d,a);d=1}}else if(1==b.nodeType&&b.childNodes&&!/(script|style)/i.test(b.tagName))for(a=0;a 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "6.0.302" 4 | } 5 | } -------------------------------------------------------------------------------- /packages/nuget/nuget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/packages/nuget/nuget.exe -------------------------------------------------------------------------------- /pickles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/pickles.png -------------------------------------------------------------------------------- /src/AutoTest.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/AutoTest.config -------------------------------------------------------------------------------- /src/Examples/Features/00BasicGherkin/BasicGherkin.feature: -------------------------------------------------------------------------------- 1 | Feature: Showing basic gherkin syntax 2 | In order to see that gherkin is a very simple language 3 | As a SpecFlow evangelist 4 | I want to show that basic syntax 5 | 6 | ![Test Image](test.jpg) 7 | 8 | Scenario: Simple GWT 9 | Given the initial state of the application is Running 10 | When I ask what the application state is 11 | Then I should see Running as the answer 12 | 13 | Scenario: Using And and But 14 | Given the initial state of the application is Running 15 | And I have authorization to ask application state 16 | When I ask what the application state is 17 | Then I should see Running as the answer 18 | And I should see the time of the application 19 | But the state of the application should not be Stopped 20 | -------------------------------------------------------------------------------- /src/Examples/Features/00BasicGherkin/test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Examples/Features/00BasicGherkin/test.jpg -------------------------------------------------------------------------------- /src/Examples/Features/01TestRunner/TestRunnerIsNotImportant.feature: -------------------------------------------------------------------------------- 1 | Feature: The test runner is not (very) important 2 | In order to show that the test runner is just for the autogenerated stuff in SpecFlow 3 | As a SpecFlow evanglist 4 | I want to be able to call my steps in the same manner inspite of the testrunner configured 5 | 6 | Scenario: A couple of simple steps 7 | Given I have step defintions in place 8 | When I call a step 9 | Then the step should have been called -------------------------------------------------------------------------------- /src/Examples/Features/02TagsAndHooks/Hooks.feature: -------------------------------------------------------------------------------- 1 | Feature: Addition 2 | In order to explain the order in which hooks are run 3 | As a SpecFlow evanglist 4 | I wan to be able to hook into pre and post conditions in SpecFlow 5 | 6 | Scenario: Hooking into pre conditions for Test Runs in SpecFlow 7 | Given the scenario is running 8 | Then the BeforeTestRun hook should have been executed 9 | 10 | Scenario: Hooking into pre conditions for Features in SpecFlow 11 | Given the scenario is running 12 | Then the BeforeFeature hook should have been executed 13 | 14 | Scenario: Hooking into pre conditions for Scenarios in SpecFlow 15 | Given the scenario is running 16 | Then the BeforeScenario hook should have been executed 17 | 18 | Scenario: Hooking into pre conditions for ScenarioBlocks in SpecFlow 19 | Given the scenario is running 20 | Then the BeforeScenarioBlock hook should have been executed 21 | 22 | Scenario: Hooking into pre conditions for Steps in SpecFlow 23 | Given the scenario is running 24 | Then the BeforeStep hook should have been executed 25 | 26 | -------------------------------------------------------------------------------- /src/Examples/Features/02TagsAndHooks/TagDemo.feature: -------------------------------------------------------------------------------- 1 | @allAboutTags @important 2 | Feature: Tag demonstrator 3 | In order to show the capabilities of tags in SpecFlow 4 | As a SpecFlow evanglist 5 | I want to write scenarios that has tags and show their usage in code 6 | 7 | @ignore 8 | Scenario: Ignored scenario 9 | Given that my scenario has the @ignore tag 10 | When I run the scenario 11 | Then the scenario is ignored 12 | And the missing step definitions are not reported 13 | 14 | Scenario: A scenario without tags 15 | Given that my scenario has 0 tags 16 | When I run the scenario 17 | Then before scenario hook with '' is run 18 | 19 | @testTag1 20 | Scenario: A scenario with 1 tag 21 | Given that my scenario has 1 tags 22 | When I run the scenario 23 | Then before scenario hook with 'testTag1' is run 24 | 25 | @testTag1 @testTag2 @testTag3 26 | Scenario: A scenario with 3 tags 27 | Given that my scenario has 3 tags 28 | When I run the scenario 29 | Then before scenario hook with 'testTag1, testTag2, testTag3' is run 30 | 31 | @testTag1 @testTag3 32 | Scenario: A scenario with 2 tags 33 | Given that my scenario has 2 tags 34 | When I run the scenario 35 | Then before scenario hook with 'testTag1, testTag3' is run -------------------------------------------------------------------------------- /src/Examples/Features/031ScenarioContext/ScenarioContext.feature: -------------------------------------------------------------------------------- 1 | Feature: Scenario Context features 2 | In order to show how to use ScenarioContext 3 | As a SpecFlow evangelist 4 | I want to write some simple scenarios with data in ScenarioContext 5 | 6 | Scenario: Store and retrive Person Marcus from ScenarioContext 7 | When I store a person called Marcus in the Current ScenarioContext 8 | Then a person called Marcus can easily be retrieved 9 | 10 | @showUpInScenarioInfo @andThisToo 11 | Scenario: Showing information of the scenario 12 | When I execute any scenario 13 | Then the ScenarioInfo contains the following information 14 | | Field | Value | 15 | | Tags | showUpInScenarioInfo, andThisToo | 16 | | Title | Showing information of the scenario | 17 | 18 | Scenario: Show the type of step we're currently on 19 | Given I have a Given step 20 | And I have another Given step 21 | When I have a When step 22 | Then I have a Then step 23 | 24 | #This is not so easy to write a scenario for but I've created an AfterScenario-hook 25 | #To see this in action remove the @ignore tag below 26 | @ignore @showingErrorHandling 27 | Scenario: Display error information in AfterScenario 28 | When an error occurs in a step 29 | 30 | Scenario: Pending step 31 | When I set the ScenarioContext.Current to pending 32 | Then this step will not even be executed -------------------------------------------------------------------------------- /src/Examples/Features/032FeatureContext/FeatureContextFeatures.feature: -------------------------------------------------------------------------------- 1 | @showUpInScenarioInfo @andThisToo 2 | Feature: FeatureContext features 3 | In order to show how to use FeatureContext 4 | As a SpecFlow evangelist 5 | I want to write some simple scenarios with data in FeatureContext 6 | 7 | Scenario: Store and retrive Person Marcus from FeatureContext Current 8 | When I store a person called Marcus in the current FeatureContext 9 | Then a person called Marcus can easily be retrieved from the current FeatureContext 10 | 11 | Scenario: Showing information of the feature 12 | When I execute any scenario in the feature 13 | Then the FeatureInfo contains the following information 14 | | Field | Value | 15 | | Tags | showUpInScenarioInfo, andThisToo | 16 | | Title | FeatureContext features | 17 | | TargetLanguage | CSharp | 18 | | Language | en-US | 19 | | Description | In order to | -------------------------------------------------------------------------------- /src/Examples/Features/03ScenarioOutline/ScenarioOutline.feature: -------------------------------------------------------------------------------- 1 | Feature: Scenario outline 2 | In order to not have to type the same scenario over and over 3 | As a SpecFlow evangelist 4 | I want to show how to use ScenarioOutline 5 | 6 | 7 | # This is called Abstrakt Scenario in Swedish (!!!) 8 | Scenario Outline: Add two positive numbers with many examples 9 | Given I enter into the calculator 10 | And I enter into the calculator 11 | When I perform add 12 | Then the result should be 13 | 14 | @small @short_test 15 | Examples: less than 100 16 | | number 1 | number 2 | result | 17 | | 10 | 20 | 30 | 18 | | 20 | 20 | 40 | 19 | | 20 | 30 | 50 | 20 | 21 | @big 22 | Examples: more than 100 23 | | number 1 | number 2 | result | 24 | | 100 | 20 | 120 | 25 | | 1000 | 20 | 1020 | 26 | 27 | # This is called Abstrakt Scenario in Swedish (!!!) 28 | Scenario Outline: Add two negative numbers with many examples 29 | Given I enter into the calculator 30 | And I enter into the calculator 31 | When I perform add 32 | Then the result should be 33 | 34 | Examples: less than 100 35 | | number 1 | number 2 | result | 36 | | 10 | 20 | 30 | 37 | | 20 | 20 | 40 | 38 | | 20 | 30 | 50 | 39 | 40 | Examples: more than 100 41 | | number 1 | number 2 | result | 42 | | 100 | 20 | 120 | 43 | | 1000 | 20 | 1020 | 44 | -------------------------------------------------------------------------------- /src/Examples/Features/04Background/BackgroundFeature.feature: -------------------------------------------------------------------------------- 1 | Feature: Show the use of background 2 | In order to show how to use the Background keyword of Gherkin 3 | As a SpecFlow evanglist 4 | I want to show that background steps are called before any scenario step 5 | 6 | Background: 7 | Given I have initialized the Sum-variable to 0 8 | When I add 1 to the Sum-variable 9 | 10 | Scenario: Add 1 to the sum 11 | When I add 1 to the Sum-variable 12 | Then the total sum should be 2 13 | 14 | Scenario: Add 2 to the sum 15 | When I add 2 to the Sum-variable 16 | Then the total sum should be 3 17 | -------------------------------------------------------------------------------- /src/Examples/Features/07Localization/Svenska.feature: -------------------------------------------------------------------------------- 1 | # language: sv 2 | # you could also use app.config -> 3 | # to get swedish (for example) through all your features 4 | Egenskap: Svenska - Summering 5 | För att slippa att göra dumma fel 6 | Som räknare 7 | Vill jag kunna lägga summera 8 | 9 | Scenario: Summera 5 och 7 ska vara 12 10 | Givet att jag har knappat in 5 11 | Och att jag har knappat in 7 12 | När jag summerar 13 | Så ska resultatet vara 12 14 | -------------------------------------------------------------------------------- /src/Examples/Features/07Localization/Vlaams.feature: -------------------------------------------------------------------------------- 1 | # language: nl-BE 2 | Functionaliteit: Test de Cultuur in het Vlaams 3 | 4 | Scenario: Het Scenario 5 | Stel dat ik 50 ingeef 6 | En dat ik 70 ingeef 7 | Als ik plus druk 8 | Dan moet het resultaat 120 zijn 9 | -------------------------------------------------------------------------------- /src/Examples/Features/08AttributeOverloading/AttributeOverloading.feature: -------------------------------------------------------------------------------- 1 | Feature: Attribute overloading 2 | In order to show that steps can be used with multiple attributes 3 | As a SpecFlow Evangelist 4 | I want to show that similar attributes can be applied to the same step definition 5 | 6 | Scenario: Checking number for evenness 7 | Given I have this simple step 8 | And this simple step 9 | And also this step 10 | When I do something 11 | Then I could validate that the number 2 is even 12 | And that the number 4 is even 13 | But the number 3 is odd -------------------------------------------------------------------------------- /src/Examples/Features/09CallingStepsFromSteps/CallingStepsFromSteps.feature: -------------------------------------------------------------------------------- 1 | Feature: Calling Steps from StepDefinitions 2 | In order to create steps of a higher abstraction 3 | As a SpecFlow evangelist 4 | I want reuse other steps in my step definitions 5 | 6 | Scenario: Log in 7 | Given I am on the index page 8 | When I enter my unsername nad password 9 | And I click the login button 10 | Then the welcome page should be displayed 11 | 12 | Scenario: Do something meaningful 13 | Given I am logged in 14 | When I dosomething meaningful 15 | Then I should get rewarded -------------------------------------------------------------------------------- /src/Examples/Features/10StepTransformation/StepTransformation.feature: -------------------------------------------------------------------------------- 1 | Feature: Step Argument Transformations 2 | In order to reduce the amount of code and repetitive tasks in my steps 3 | As a SpecFlow evanglist 4 | I want to define reusable transformations for my step arguments 5 | 6 | Scenario: Steps with non-string arguments 7 | Given Dan has been registered at date 2003/03/13 8 | And Aslak has been registered at terminal 2 9 | Then I should be able to see Aslak at terminal 2 -------------------------------------------------------------------------------- /src/Examples/Features/11ContextInjection/ContextInjection.feature: -------------------------------------------------------------------------------- 1 | Feature: Injecting context into step specifications 2 | In order to don't have to rely on the global shared state 3 | and to be able to define the contexts required for each scenario. 4 | As a SpecFlow Evanglist 5 | I would like to have the system automatically inject an instance of any class as 6 | defined in the constructor of a step file 7 | 8 | Scenario: Feature with no context 9 | Given a feature which requires no context 10 | Then everything is dandy 11 | 12 | Scenario: Feature with a single context 13 | Given a feature which requires a single context 14 | Then the context is set 15 | 16 | Scenario: Feature with multiple contexts 17 | Given a feature which requires multiple contexts 18 | Then the contexts are set 19 | 20 | Scenario: Feature with recursive contexts 21 | Given a feature which requires a recursive context 22 | Then the context is set 23 | And its sub-context is set 24 | 25 | Scenario: Feature with a dependent context 26 | Given a feature which requires a single context 27 | Then the context is set 28 | And the context was created by the feature with a single context scenario -------------------------------------------------------------------------------- /src/Examples/Features/12NestedFolders/ChildFolder/ChildChildFolder/NestedFolderExample.feature: -------------------------------------------------------------------------------- 1 | Feature: Nested Folder Example 2 | In order to test nested folder output 3 | As a silly contributer 4 | I want to create an example of something several folders deep 5 | 6 | @nestedFolders 7 | Scenario: Nested - Add two numbers 8 | Given I have entered 50 into the calculator 9 | And I have entered 70 into the calculator 10 | When I press add 11 | Then the result should be 120 on the screen 12 | -------------------------------------------------------------------------------- /src/Examples/Features/13MultilineText/MultilineFeatureExample.feature: -------------------------------------------------------------------------------- 1 | Feature: Multiline Feature Example 2 | In order capture this particular Gherkin feature 3 | As a Pickles contributer 4 | I want to demonstrate an example of using multiline text in a Scenario 5 | 6 | @mytag 7 | Scenario: Mutliline Output 8 | Given I have read in some text from the user 9 | """ 10 | This is line 1. 11 | This is line 2! 12 | This is line 3!! 13 | """ 14 | When I process this input 15 | Then the result will be saved to the multiline text data store 16 | -------------------------------------------------------------------------------- /src/Examples/Features/14MarkdownExample/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Examples/Features/14MarkdownExample/image.png -------------------------------------------------------------------------------- /src/Examples/Features/15Pickles/InteractiveDHTMLView.feature: -------------------------------------------------------------------------------- 1 | Feature: Interactive DHTML View 2 | In order to increase stakeholder engagement with pickled specs 3 | As a SpecFlow evangelist 4 | I want to adjust the level of detail in the DHTML view to suite my audience 5 | So that I do not overwhelm them. 6 | 7 | Scenario: Scenario with large data table 8 | Given a feature with a large table of data: 9 | | heading | page # | 10 | | Chapter 1 | 1 | 11 | | Chapter 2 | 5 | 12 | | Chapter 3 | 10 | 13 | | Chapter 4 | 15 | 14 | | Chapter 5 | 20 | 15 | | Chapter 6 | 25 | 16 | | Chapter 7 | 30 | 17 | | Chapter 8 | 35 | 18 | | Chapter 9 | 40 | 19 | | Chapter 10 | 45 | 20 | | Chapter 11 | 50 | 21 | | Chapter 12 | 55 | 22 | | Chapter 13 | 60 | 23 | | Chapter 14 | 65 | 24 | | Chapter 15 | 70 | 25 | | Chapter 16 | 75 | 26 | | Chapter 17 | 80 | 27 | | Chapter 18 | 85 | 28 | | Chapter 19 | 90 | 29 | | Chapter 20 | 95 | 30 | | Chapter 21 | 100 | 31 | | Chapter 22 | 105 | 32 | When I click on the table heading 33 | Then the table body should collapse 34 | -------------------------------------------------------------------------------- /src/Examples/Features/15Pickles/NotTestedAutomatedManualTags.feature: -------------------------------------------------------------------------------- 1 | Feature: Kinds of verification 2 | In order to increase stakeholder engagement with pickled specs 3 | As a SpecFlow evangelist 4 | I want to make clear how many scenarios are automated, manually tested and not tested 5 | So that the stakeholders have a better overview of progress 6 | 7 | @automated 8 | Scenario: Verified automatically 9 | Given a feature that is verified automatically 10 | When I run pickles 11 | Then it appears in the @automated summary 12 | 13 | @manual 14 | Scenario: Verified manually 15 | Given a feature that is verified manually 16 | When I run pickles 17 | Then it appears in the @manual summary 18 | 19 | @notTested_waitingForAutomation 20 | Scenario: Verified automatically 21 | Given a feature that is not verified 22 | When I run pickles 23 | Then it appears in the @notTested summary 24 | -------------------------------------------------------------------------------- /src/Examples/Features/Arithmetic.feature: -------------------------------------------------------------------------------- 1 | Feature: Arithmetic 2 | In order to avoid silly mistakes 3 | As a math idiot 4 | I want to be able to perform arithmetic on the calculator 5 | 6 | When $a \ne 0$, there are two solutions to $\(ax^2 + bx + c = 0\)$ and they are 7 | $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ 8 | 9 | @arithmetic @fast 10 | Scenario: Add two numbers 11 | 12 | $50 + 70 = 120$ 13 | 14 | # In the DHTML version, the description will be rendered with mathematical formulas if the experimental features are enabled. 15 | Given I have entered 50 into the calculator 16 | And I have entered 70 into the calculator 17 | When I press add 18 | Then the result should be 120 on the screen 19 | 20 | @arithmetic @fast 21 | Scenario: Subtract two numbers 22 | Given I have entered 50 into the calculator 23 | And I have entered 70 into the calculator 24 | When I press subtract 25 | Then the result should be -20 on the screen 26 | 27 | @arithmetic @fast 28 | Scenario: Multiply two numbers 29 | Given I have entered 50 into the calculator 30 | And I have entered 70 into the calculator 31 | When I press multiply 32 | Then the result should be 3500 on the screen 33 | 34 | @arithmetic @fast 35 | Scenario: Divide two numbers 36 | Given I have entered 50 into the calculator 37 | And I have entered 2 into the calculator 38 | When I press divide 39 | Then the result should be 25 on the screen 40 | -------------------------------------------------------------------------------- /src/Examples/Features/Trigonometry.feature: -------------------------------------------------------------------------------- 1 | Feature: Trigonometry 2 | In order to avoid perform more advanced calculations 3 | As a math idiot 4 | I want to be able to use trigonometric functions 5 | 6 | @trigonometric @fast 7 | Scenario: Sine 8 | Given I have entered 90 into the calculator 9 | When I press sin 10 | Then the result should be 1 on the screen 11 | 12 | @trigonometric @fast 13 | Scenario: Cosine 14 | Given I have entered 0 into the calculator 15 | When I press cos 16 | Then the result should be 1 on the screen 17 | 18 | @trigonometric @fast 19 | Scenario: Tangent 20 | Given I have entered 45 into the calculator 21 | When I press tan 22 | Then the result should be 1 on the screen 23 | -------------------------------------------------------------------------------- /src/Examples/Features/Workflow/ClearingScreen.feature: -------------------------------------------------------------------------------- 1 | Feature: Clearing Screen 2 | In order to restart a new set of calculations 3 | As a math idiot 4 | I want to be able to clear the screen 5 | 6 | @workflow @slow 7 | Scenario: Clear the screen 8 | Given I have entered 50 into the calculator 9 | And I have entered 70 into the calculator 10 | When I press C 11 | Then the screen should be empty 12 | -------------------------------------------------------------------------------- /src/Examples/readme.txt: -------------------------------------------------------------------------------- 1 | In the Features-folders you'll find quite a large population of .feature files that you can use to test out pickles on. -------------------------------------------------------------------------------- /src/Pickles.BaseDhtmlFiles/css/print.css: -------------------------------------------------------------------------------- 1 | #FolderNav, #TopNav { display: none !important; } 2 | -------------------------------------------------------------------------------- /src/Pickles.BaseDhtmlFiles/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.BaseDhtmlFiles/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /src/Pickles.BaseDhtmlFiles/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.BaseDhtmlFiles/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /src/Pickles.BaseDhtmlFiles/img/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.BaseDhtmlFiles/img/link.png -------------------------------------------------------------------------------- /src/Pickles.BaseDhtmlFiles/js/jquery.highlight-4.closure.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | highlight v4 4 | 5 | Highlights arbitrary terms. 6 | 7 | 8 | 9 | MIT license. 10 | 11 | Johann Burkard 12 | 13 | 14 | 15 | */ 16 | 17 | jQuery.fn.highlight=function(c){function e(b,c){var d=0;if(3==b.nodeType){var a=b.data.toUpperCase().indexOf(c);if(0<=a){d=document.createElement("span");d.className="highlight";a=b.splitText(a);a.splitText(c.length);var f=a.cloneNode(!0);d.appendChild(f);a.parentNode.replaceChild(d,a);d=1}}else if(1==b.nodeType&&b.childNodes&&!/(script|style)/i.test(b.tagName))for(a=0;a 2 | 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/Pickles.CommandLine/NugetPack.cmd: -------------------------------------------------------------------------------- 1 | nuget pack Pickles.CommandLine.csproj -Properties Configuration=Release 2 | -------------------------------------------------------------------------------- /src/Pickles.CommandLine/Properties/PublishProfiles/FolderProfile.pubxml: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | 7 | Release 8 | Any CPU 9 | bin\Release\netcoreapp3.1\publish\linux-x64\ 10 | FileSystem 11 | netcoreapp3.1 12 | linux-x64 13 | true 14 | false 15 | 16 | -------------------------------------------------------------------------------- /src/Pickles.CommandLine/Properties/PublishProfiles/FolderProfile1.pubxml: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | 7 | Release 8 | Any CPU 9 | bin\Release\net6.0\publish\linux-x64\ 10 | FileSystem 11 | net6.0 12 | linux-x64 13 | true 14 | false 15 | false 16 | 17 | -------------------------------------------------------------------------------- /src/Pickles.CommandLine/runtimeconfig.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "configProperties": { 3 | "System.Globalization.Invariant": false 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Cucumber.UnitTests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Setting ComVisible to false makes the types in this assembly not visible 6 | // to COM components. If you need to access a type in this assembly from 7 | // COM, set the ComVisible attribute to true on that type. 8 | [assembly: ComVisible(false)] 9 | 10 | // The following GUID is for the ID of the typelib if this project is exposed to COM 11 | [assembly: Guid("4c0cda28-8c6a-4f14-b2c6-d1873de66641")] 12 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Cucumber/CucumberTestResults.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | namespace PicklesDoc.Pickles.DocumentationBuilders.Cucumber 22 | { 23 | public enum CucumberTestResults 24 | { 25 | Passed, 26 | Failed, 27 | Undefined, 28 | Skipped, 29 | Pending, 30 | Ambiguous 31 | } 32 | } -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Cucumber/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Dhtml.UnitTests/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Dhtml/DhtmlModule.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using Autofac; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Dhtml 24 | { 25 | public class DhtmlModule : Module 26 | { 27 | protected override void Load(ContainerBuilder builder) 28 | { 29 | builder.RegisterType().SingleInstance(); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Dhtml/Resources/css/print.css: -------------------------------------------------------------------------------- 1 | #FolderNav, #TopNav { display: none !important; } 2 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Dhtml/Resources/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Dhtml/Resources/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Dhtml/Resources/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Dhtml/Resources/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Dhtml/Resources/img/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Dhtml/Resources/img/link.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Dhtml/Resources/js/jquery.highlight-4.closure.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | highlight v4 4 | 5 | Highlights arbitrary terms. 6 | 7 | 8 | 9 | MIT license. 10 | 11 | Johann Burkard 12 | 13 | 14 | 15 | */ 16 | 17 | jQuery.fn.highlight=function(c){function e(b,c){var d=0;if(3==b.nodeType){var a=b.data.toUpperCase().indexOf(c);if(0<=a){d=document.createElement("span");d.className="highlight";a=b.splitText(a);a.splitText(c.length);var f=a.cloneNode(!0);d.appendChild(f);a.parentNode.replaceChild(d,a);d=1}}else if(1==b.nodeType&&b.childNodes&&!/(script|style)/i.test(b.tagName))for(a=0;a 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html.UnitTests/FormattingAFeatureUsingStrike.feature: -------------------------------------------------------------------------------- 1 | Feature: Formatting a Feature Using Strike 2 | 3 | @enableExperimentalFeatures 4 | Scenario: Description with image should render correctly 5 | 6 | Given I have this feature description 7 | """ 8 | Including a picture: ![](./image.png) 9 | """ 10 | When I generate the documentation 11 | Then the result should be 12 | """ 13 |
14 |

a feature

15 |
16 |

Including a picture:

17 |
18 |
    19 |
20 | """ 21 | 22 | Scenario: Description with image with extra attributes should render correctly 23 | 24 | Given I have this feature description 25 | """ 26 | Including a picture: ![alt text](./image.png "Image Title") 27 | """ 28 | When I generate the documentation 29 | Then the result should be 30 | """ 31 |
32 |

a feature

33 |
34 |

Including a picture: alt text

35 |
36 |
    37 |
38 | """ 39 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/HtmlHeaderFormatter.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Xml.Linq; 23 | 24 | namespace PicklesDoc.Pickles.DocumentationBuilders.Html 25 | { 26 | public class HtmlHeaderFormatter 27 | { 28 | public XElement Format() 29 | { 30 | XNamespace xmlns = HtmlNamespace.Xhtml; 31 | return new XElement(xmlns + "div", new XAttribute("id", "top")); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/HtmlNamespace.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Xml.Linq; 23 | 24 | namespace PicklesDoc.Pickles.DocumentationBuilders.Html 25 | { 26 | public static class HtmlNamespace 27 | { 28 | /// 29 | /// An XNamespace instance for http://www.w3.org/1999/xhtml. 30 | /// 31 | public static readonly XNamespace Xhtml = XNamespace.Get("http://www.w3.org/1999/xhtml"); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/HtmlResource.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Html 24 | { 25 | public class HtmlResource 26 | { 27 | public string File { get; set; } 28 | 29 | public Uri Uri { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/IHtmlFeatureFormatter.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Xml.Linq; 23 | 24 | using PicklesDoc.Pickles.ObjectModel; 25 | 26 | namespace PicklesDoc.Pickles.DocumentationBuilders.Html 27 | { 28 | public interface IHtmlFeatureFormatter 29 | { 30 | XElement Format(Feature feature); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/css/fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Html/Resources/css/fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Html/Resources/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Html/Resources/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Html/Resources/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/css/master.css: -------------------------------------------------------------------------------- 1 | @import url("reset.css"); 2 | 3 | @import url("global.css"); 4 | 5 | @import url("structure.css"); 6 | 7 | @import url("font-awesome.css"); -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/css/print.css: -------------------------------------------------------------------------------- 1 | #toc { display: none; } -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/css/reset.css: -------------------------------------------------------------------------------- 1 | html, body, div, span, applet, object, iframe, 2 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 3 | a, abbr, acronym, address, big, cite, code, 4 | del, dfn, em, font, img, ins, kbd, q, s, samp, 5 | small, strike, strong, sub, sup, tt, var, 6 | dl, dt, dd, ol, ul, li, 7 | fieldset, form, label, legend, 8 | table, caption, tbody, tfoot, thead, tr, th, td { 9 | border: 0; 10 | font-family: inherit; 11 | font-size: 100%; 12 | font-style: inherit; 13 | font-weight: inherit; 14 | margin: 0; 15 | outline: 0; 16 | padding: 0; 17 | vertical-align: baseline; 18 | } 19 | /* remember to define focus styles! */ 20 | 21 | :focus { outline: 0; } 22 | 23 | body { 24 | background: white; 25 | color: black; 26 | line-height: 1; 27 | } 28 | 29 | ol, ul { list-style: none; } 30 | /* tables still need 'cellspacing="0"' in the markup */ 31 | 32 | table { 33 | border-collapse: separate; 34 | border-spacing: 0; 35 | } 36 | 37 | caption, th, td { 38 | font-weight: normal; 39 | text-align: left; 40 | } 41 | 42 | blockquote:before, blockquote:after, 43 | q:before, q:after { content: ""; } 44 | 45 | blockquote, q { quotes: "" ""; } -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/img/failure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Html/Resources/img/failure.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/img/inconclusive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Html/Resources/img/inconclusive.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/img/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Html/Resources/img/success.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Html/Resources/js/scripts.js: -------------------------------------------------------------------------------- 1 | function initializeToc() { 2 | $(".tocCollapser").one("click", function() { 3 | collapseToc(); 4 | }); 5 | } 6 | 7 | function collapseToc() { 8 | /* set class of toc element to collapsed. CSS will do the rest*/ 9 | $("#toc").addClass("collapsed"); 10 | 11 | /* change the text and title of the collapser to make it appear as an expander */ 12 | var tocCollapser = $(".tocCollapser"); 13 | tocCollapser.text("»"); 14 | tocCollapser.attr("title", "Expand Table of Content"); 15 | 16 | /* register a one-time handler for the click event that will expand the toc. */ 17 | $(".tocCollapser").one("click", function() { 18 | expandToc(); 19 | }); 20 | } 21 | 22 | function expandToc() { 23 | /* removes the collapsed class of toc element. CSS will do the rest*/ 24 | $("#toc").removeClass("collapsed"); 25 | 26 | /* change the text and title of the collapser to make it appear as an collapser again */ 27 | var tocCollapser = $(".tocCollapser"); 28 | tocCollapser.text("«"); 29 | tocCollapser.attr("title", "Collapse Table of Content"); 30 | 31 | /* register a one-time handler for the click event that will collapse the toc. */ 32 | $(".tocCollapser").one("click", function() { 33 | collapseToc(); 34 | }); 35 | } 36 | 37 | function showImageLink(scenarioSlug) { 38 | var url = window.location.origin + window.location.pathname + window.location.search; 39 | 40 | if (scenarioSlug != null && scenarioSlug != '') { 41 | url = url + '#' + scenarioSlug; 42 | } 43 | 44 | window.prompt("Scenario Link: (Ctrl+C to copy)", url); 45 | } -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json.UnitTests/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/IJsonFeatureElement.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Collections.Generic; 23 | 24 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json 25 | { 26 | public interface IJsonFeatureElement 27 | { 28 | JsonFeature Feature { get; set; } 29 | 30 | string Name { get; set; } 31 | 32 | string Slug { get; set; } 33 | 34 | string Description { get; set; } 35 | 36 | List Steps { get; set; } 37 | 38 | List Tags { get; set; } 39 | 40 | JsonTestResult Result { get; set; } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/JsonComment.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json 24 | { 25 | public class JsonComment 26 | { 27 | public string Text { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/JsonExample.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Collections.Generic; 23 | 24 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json 25 | { 26 | public class JsonExample 27 | { 28 | public string Name { get; set; } 29 | 30 | public string Description { get; set; } 31 | 32 | public JsonTable TableArgument { get; set; } 33 | 34 | public List Tags { get; set; } 35 | 36 | public string NativeKeyword { get; set; } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/JsonModule.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using Autofac; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json 24 | { 25 | public class JsonModule : Module 26 | { 27 | protected override void Load(ContainerBuilder builder) 28 | { 29 | builder.RegisterType().SingleInstance(); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/JsonTable.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System.Collections.Generic; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json 24 | { 25 | public class JsonTable 26 | { 27 | public JsonTableHeader HeaderRow { get; set; } 28 | 29 | public List DataRows { get; set; } 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/JsonTableHeader.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System.Collections.Generic; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json 24 | { 25 | public class JsonTableHeader : List 26 | { 27 | public JsonTableHeader(IEnumerable cells) 28 | { 29 | AddRange(cells); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/JsonTestResult.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json 24 | { 25 | public class JsonTestResult 26 | { 27 | public bool WasExecuted { get; set; } 28 | 29 | public bool WasSuccessful { get; set; } 30 | 31 | public bool WasProvided { get; set; } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/Mapper/CommentToJsonCommentMapper.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | using PicklesDoc.Pickles.ObjectModel; 24 | 25 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json.Mapper 26 | { 27 | public class CommentToJsonCommentMapper 28 | { 29 | public JsonComment Map(Comment comment) 30 | { 31 | if (comment == null) 32 | { 33 | return null; 34 | } 35 | 36 | return new JsonComment { Text = comment.Text }; 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/Mapper/TableRowToJsonTableHeaderMapper.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | using PicklesDoc.Pickles.ObjectModel; 24 | 25 | namespace PicklesDoc.Pickles.DocumentationBuilders.Json.Mapper 26 | { 27 | public class TableRowToJsonTableHeaderMapper 28 | { 29 | public JsonTableHeader Map(TableRow tableRow) 30 | { 31 | return tableRow == null ? null : new JsonTableHeader(tableRow.Cells.ToArray()); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Json/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown.AcceptanceTests/Features/Feature Background.feature: -------------------------------------------------------------------------------- 1 | Feature: Background Steps 2 | In order to document the background Gherkin steps run before each scenario 3 | As a reader of the generated documentation 4 | I want the background steps to be included in the Markdown output. 5 | 6 | Scenario: Output has background given step for feature 7 | 8 | Given I have a feature called 'My Background Steps Feature' 9 | And I have a background section 10 | And I have the background steps 11 | | Keyword | Step | 12 | | Given | I have a simple given step | 13 | 14 | When I generate Markdown output 15 | 16 | Then the Markdown output has the lines in the following order 17 | | Content | 18 | | #### Background: | 19 | | > | 20 | | > **Given** I have a simple given step | 21 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown.AcceptanceTests/Features/Feature Description.feature: -------------------------------------------------------------------------------- 1 | Feature: Feature Description 2 | In order include the description (In order, As a, I want) for each feature 3 | As a reader of the generated documentation 4 | I want the feature description included below the feature heading. 5 | 6 | Scenario: Output has feature description for feature 7 | Given I have a feature called 'My Described Feature' 8 | 9 | And I have the description 10 | | Description | 11 | | In order to include the description (In order, As a, I want) for each feature | 12 | | As a reader of the generated documentation | 13 | | I want the feature description included below the feature heading. | 14 | 15 | When I generate Markdown output 16 | 17 | Then the Markdown output has the lines in the following order 18 | | Content | 19 | | ### My Described Feature | 20 | | In order to include the description (In order, As a, I want) for each feature | 21 | | As a reader of the generated documentation | 22 | | I want the feature description included below the feature heading. | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown.AcceptanceTests/Features/Feature Heading.feature: -------------------------------------------------------------------------------- 1 | Feature: Feature Heading 2 | In order to identify each feature file in the documentation 3 | As a reader of the generated documentation 4 | I want the feature title visually differentiated from the other text. 5 | 6 | Scenario: Output has feature section for each feature 7 | 8 | Given I have a feature called 'My First Feature' 9 | And I have a feature called 'My Second Feature' 10 | 11 | When I generate Markdown output 12 | 13 | Then the Markdown output has the lines in the following order 14 | | Content | 15 | | ### My First Feature | 16 | | ### My Second Feature | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown.AcceptanceTests/Features/Feature Tags.feature: -------------------------------------------------------------------------------- 1 | Feature: Feature Tags 2 | In order to include the tags for each feature 3 | As a reader of the generated documentation 4 | I want the feature tags included in single line above the feature heading. 5 | 6 | Scenario: Output has tags for feature 7 | Given I have a feature called 'My Tagged Feature' 8 | And I have the tags 9 | | Tag | 10 | | @ignore | 11 | | @tagtwo | 12 | 13 | When I generate Markdown output 14 | 15 | Then the Markdown output has the lines in the following order 16 | | Content | 17 | | *`@ignore`* *`@tagtwo`* | 18 | | ### My Tagged Feature | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown.AcceptanceTests/Features/File Location.feature: -------------------------------------------------------------------------------- 1 | Feature: File Location 2 | In order to control where the document is created 3 | As a document reader 4 | I want a to be able to specify an output folder for the document 5 | 6 | 7 | Scenario: Output is written to specified location 8 | 9 | Given I specify the output folder as 'testing' 10 | 11 | When I generate Markdown output 12 | 13 | Then the file 'features.md' exists in folder 'testing' -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown.AcceptanceTests/Features/Scenario Tags.feature: -------------------------------------------------------------------------------- 1 | Feature: Scenario Tags 2 | In order to include the tags for each scenario 3 | As a reader of the generated documentation 4 | I want the scenario tags included in single line above the scenario heading. 5 | 6 | Scenario: Output has tags for scenario 7 | Given I have a feature called 'My Tagged Feature' 8 | And I have a scenario called 'Scenario With Tags' 9 | And I have the scenario tags 10 | | Tag | 11 | | @ignore | 12 | | @tagtwo | 13 | 14 | When I generate Markdown output 15 | 16 | Then the Markdown output has the lines in the following order 17 | | Content | 18 | | *`@ignore`* *`@tagtwo`* | 19 | | #### Scenario: Scenario With Tags | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown.AcceptanceTests/Features/Title.feature: -------------------------------------------------------------------------------- 1 | Feature: Title 2 | In order to easily tell that this file is a Gherkin output file 3 | As a document reader 4 | I want a title in the document as the first line 5 | 6 | Scenario: Output has title on first line 7 | 8 | When I generate Markdown output 9 | 10 | Then the Markdown output has the line 11 | | Line No. | Content | 12 | | 1 | # Features | 13 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown.UnitTests/MockBlock.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2018 Darren Comeau 4 | // Copyright 2018-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using PicklesDoc.Pickles.DocumentationBuilders.Markdown.Blocks; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Markdown.UnitTests 24 | { 25 | class MockBlock : Block 26 | { 27 | 28 | public MockBlock(Stylist style) : base(style) 29 | { 30 | } 31 | 32 | public void Add(string line) 33 | { 34 | lines.Add(line); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown/Blocks/BackgroundBlock.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2018 Darren Comeau 4 | // Copyright 2018-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using PicklesDoc.Pickles.ObjectModel; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders.Markdown.Blocks 24 | { 25 | class BackgroundBlock : ScenarioBlock 26 | { 27 | public BackgroundBlock(Scenario scenario, Stylist style) : base(scenario,style) 28 | { 29 | } 30 | 31 | protected override Lines Heading() 32 | { 33 | var lines = new Lines 34 | { 35 | style.AsBackgroundHeading(scenario.Name) 36 | }; 37 | 38 | return lines; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | [assembly: InternalsVisibleTo("PicklesDoc.Pickles.DocumentationBuilders.Markdown.UnitTests")] 5 | [assembly: InternalsVisibleTo("PicklesDoc.Pickles.DocumentationBuilders.Markdown.AcceptanceTests")] 6 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown/Resource/fail_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Markdown/Resource/fail_32.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown/Resource/inconclusive_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Markdown/Resource/inconclusive_32.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown/Resource/pass_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.DocumentationBuilders.Markdown/Resource/pass_32.png -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Markdown/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Pickles.DocumentationBuilders.Word/WordFontApplicator.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using DocumentFormat.OpenXml.Packaging; 23 | using DocumentFormat.OpenXml.Wordprocessing; 24 | 25 | namespace PicklesDoc.Pickles.DocumentationBuilders.Word 26 | { 27 | public class WordFontApplicator 28 | { 29 | public FontTablePart AddFontTablePartToPackage(WordprocessingDocument doc) 30 | { 31 | var part = doc.MainDocumentPart.AddNewPart(); 32 | var root = new Fonts(); 33 | root.Save(part); 34 | return part; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/Pickles.MSBuild/NugetPack.bat: -------------------------------------------------------------------------------- 1 | nuget pack Pickles.MSBuild.csproj -Properties Configuration=Release 2 | -------------------------------------------------------------------------------- /src/Pickles.MSBuild/NugetPack.cmd: -------------------------------------------------------------------------------- 1 | nuget pack Pickles.MSBuild.nuspec -Version %1 2 | -------------------------------------------------------------------------------- /src/Pickles.MSBuild/build/Pickles.MSBuild.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $(MSBuildProjectDirectory)\pickles-site 6 | $(MSBuildProjectDirectory)\Features 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/DocumentationBuilders/IDocumentationBuilder.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using PicklesDoc.Pickles.DataStructures; 22 | 23 | namespace PicklesDoc.Pickles.DocumentationBuilders 24 | { 25 | public interface IDocumentationBuilder 26 | { 27 | void Build(Tree features); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ILanguageServices.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | namespace PicklesDoc.Pickles 21 | { 22 | public interface ILanguageServices 23 | { 24 | string[] BackgroundKeywords { get; } 25 | 26 | string[] WhenStepKeywords { get; } 27 | 28 | string[] GivenStepKeywords { get; } 29 | 30 | string[] ThenStepKeywords { get; } 31 | 32 | string[] AndStepKeywords { get; } 33 | 34 | string[] ButStepKeywords { get; } 35 | 36 | string[] ExamplesKeywords { get; } 37 | 38 | string Language { get; } 39 | } 40 | } -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ILanguageServicesRegistry.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | namespace PicklesDoc.Pickles 21 | { 22 | public interface ILanguageServicesRegistry 23 | { 24 | ILanguageServices GetLanguageServicesForLanguage(string language); 25 | 26 | string DefaultLanguage { get; } 27 | } 28 | } -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/IMarkdownProvider.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles 24 | { 25 | public interface IMarkdownProvider 26 | { 27 | string Transform(string text); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ObjectModel/Comment.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | namespace PicklesDoc.Pickles.ObjectModel 22 | { 23 | public enum CommentType 24 | { 25 | Normal, 26 | StepComment, 27 | AfterLastStepComment 28 | } 29 | 30 | public class Comment 31 | { 32 | public Comment() 33 | { 34 | // Set default 35 | this.Type = CommentType.Normal; 36 | } 37 | 38 | public string Text { get; set; } 39 | 40 | public Location Location { get; set; } 41 | 42 | public CommentType Type { get; set; } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ObjectModel/Example.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System.Collections.Generic; 22 | 23 | namespace PicklesDoc.Pickles.ObjectModel 24 | { 25 | public class Example 26 | { 27 | public string Name { get; set; } 28 | 29 | public string Description { get; set; } 30 | 31 | public ExampleTable TableArgument { get; set; } 32 | 33 | public List Tags { get; set; } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ObjectModel/IFeatureElement.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System.Collections.Generic; 22 | 23 | namespace PicklesDoc.Pickles.ObjectModel 24 | { 25 | public interface IFeatureElement 26 | { 27 | string Description { get; set; } 28 | 29 | Feature Feature { get; set; } 30 | 31 | string Name { get; set; } 32 | 33 | string Slug { get; } 34 | 35 | List Steps { get; set; } 36 | 37 | List Tags { get; set; } 38 | 39 | TestResult Result { get; set; } 40 | 41 | Location Location { get; set; } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ObjectModel/ITestResults.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | namespace PicklesDoc.Pickles.ObjectModel 22 | { 23 | public interface ITestResults 24 | { 25 | TestResult GetFeatureResult(Feature feature); 26 | 27 | TestResult GetScenarioResult(Scenario scenario); 28 | 29 | TestResult GetScenarioOutlineResult(Scenario scenarioOutline); 30 | 31 | TestResult GetExampleResult(Scenario scenario, string[] exampleValues); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ObjectModel/Location.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | namespace PicklesDoc.Pickles.ObjectModel 22 | { 23 | public class Location 24 | { 25 | public int Column { get; set; } 26 | 27 | public int Line { get; set; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ObjectModel/Scenario.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System.Collections.Generic; 22 | 23 | namespace PicklesDoc.Pickles.ObjectModel 24 | { 25 | public class Scenario : ScenarioBase { } 26 | } 27 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/ObjectModel/Table.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System.Collections.Generic; 22 | 23 | namespace PicklesDoc.Pickles.ObjectModel 24 | { 25 | public class Table 26 | { 27 | public TableRow HeaderRow { get; set; } 28 | 29 | public List DataRows { get; set; } 30 | } 31 | 32 | public class ExampleTable : Table 33 | { 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Pickles.ObjectModel/Pickles.ObjectModel.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | PicklesDoc.Pickles 4 | PicklesDoc.Pickles.ObjectModel 5 | netstandard2.0 6 | PicklesDoc.Pickles.ObjectModel 7 | The object model for Pickles 8 | bin\$(Configuration)\ 9 | 10 | 11 | full 12 | 13 | 14 | pdbonly 15 | 16 | 17 | 18 | all 19 | runtime; build; native; contentfiles; analyzers; buildtransitive 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/Pickles.PowerShell/NugetPack.cmd: -------------------------------------------------------------------------------- 1 | nuget pack Pickles.nuspec -Version %1 2 | 3 | -------------------------------------------------------------------------------- /src/Pickles.PowerShell/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package) 2 | 3 | Import-Module (Join-Path $toolsPath PicklesDoc.Pickles.PowerShell.dll) 4 | 5 | Write-Host "#############################" 6 | Write-Host "Pickles installed." 7 | Write-Host "Command usage (switches in brackets are optional):" 8 | Write-Host "Pickle-Features -FeatureDirectory -OutputDirectory [-Language] [-TestResultsFile] [-SystemUnderTestName] [-SystemUnderTestVersion]" 9 | Write-Host "#############################" 10 | -------------------------------------------------------------------------------- /src/Pickles.Test.CL/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Pickles.Test.CL/Pickles.Test.CL.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Exe 4 | net48 5 | true 6 | Pickles.Test.CL 7 | Pickles.Test.CL 8 | Copyright © 2021 9 | bin\$(Configuration)\ 10 | 11 | 12 | full 13 | 14 | 15 | pdbonly 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/Pickles.Test.CL/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using PicklesDoc.Pickles.Test; 7 | 8 | namespace Pickles.Test.CL 9 | { 10 | class Program 11 | { 12 | static void Main(string[] args) 13 | { 14 | var test = new PicklesDoc.Pickles.Test.Formatters.JSON.WhenFormattingAFolderStructureWithFeatures(); 15 | test.ShouldContainTheFeatures(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Pickles.Test.CL/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Setting ComVisible to false makes the types in this assembly not visible 6 | // to COM components. If you need to access a type in this assembly from 7 | // COM, set the ComVisible attribute to true on that type. 8 | [assembly: ComVisible(false)] 9 | 10 | // The following GUID is for the ID of the typelib if this project is exposed to COM 11 | [assembly: Guid("7428d513-fa3d-4536-a366-b19affd29ba4")] 12 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/AcceptanceTest/AdvancedFeature.feature: -------------------------------------------------------------------------------- 1 | @FeatureTag 2 | Feature: Feature title 3 | In order to avoid silly mistakes 4 | As a math idiot 5 | I want to be told the sum of two numbers 6 | 7 | Background: Background name 8 | Given background given 9 | When background when 10 | Then background then 11 | 12 | @simpleScenario 13 | Scenario: Simple Scenario 14 | Given simple scenario given 15 | And simple scenario given and 16 | When simple scenario when 17 | Then simple scenario then 18 | 19 | @scenarioOutline 20 | Scenario Outline: Scenario outline example 21 | Given outline given 22 | When outline when 23 | Then outline then 24 | But nothing important here 25 | 26 | Scenarios: 27 | | value 1 | value 2 | value 3 | 28 | | 123 | 456 | 789 | 29 | | abc | def | ghi | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/AcceptanceTest/LevelOne.feature: -------------------------------------------------------------------------------- 1 | Feature: Addition 2 | In order to avoid silly mistakes 3 | As a math idiot 4 | I want to be told the sum of two numbers 5 | 6 | @mytag 7 | Scenario: Add two numbers 8 | Given I have entered 50 into the calculator 9 | And I have entered 70 into the calculator 10 | When I press add 11 | Then the result should be 120 on the screen 12 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/LevelOne.feature: -------------------------------------------------------------------------------- 1 | Feature: Addition 2 | In order to avoid silly mistakes 3 | As a math idiot 4 | I want to be told the sum of two numbers 5 | 6 | @mytag 7 | Scenario: Add two numbers 8 | Given I have entered 50 into the calculator 9 | And I have entered 70 into the calculator 10 | When I press add 11 | Then the result should be 120 on the screen 12 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/LevelOneIgnoredFeature.feature: -------------------------------------------------------------------------------- 1 | @exclude-tag 2 | Feature: Addition 3 | In order to avoid silly mistakes 4 | As a math idiot 5 | I want to be told the sum of two numbers 6 | 7 | @mytag 8 | Scenario: Add two numbers 9 | Given I have entered 50 into the calculator 10 | And I have entered 70 into the calculator 11 | When I press add 12 | Then the result should be 120 on the screen 13 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/LevelOneRemoveTagsToHide.feature: -------------------------------------------------------------------------------- 1 | @TagsToHideFeature 2 | Feature: LevelOneRemoveTagsToHide 3 | In order to avoid silly mistakes 4 | As a math idiot 5 | I want to be told the sum of two numbers 6 | 7 | @mytag 8 | @TagsToHideScenario 9 | Scenario: Add two numbers 10 | Given I have entered 50 into the calculator 11 | And I have entered 70 into the calculator 12 | When I press add 13 | Then the result should be 120 on the screen 14 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/SubLevelOne/LevelOneSublevelOne.feature: -------------------------------------------------------------------------------- 1 | Feature: Addition 2 | In order to avoid silly mistakes 3 | As a math idiot 4 | I want to be told the sum of two numbers 5 | 6 | @mytag 7 | Scenario: Add two numbers 8 | Given I have entered 50 into the calculator 9 | And I have entered 70 into the calculator 10 | When I press add 11 | Then the result should be 120 on the screen 12 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/SubLevelOne/LevelOneSublevelTwo.feature: -------------------------------------------------------------------------------- 1 | Feature: Addition 2 | In order to avoid silly mistakes 3 | As a math idiot 4 | I want to be told the sum of two numbers 5 | 6 | @mytag 7 | Scenario: Add two numbers 8 | Given I have entered 50 into the calculator 9 | And I have entered 70 into the calculator 10 | When I press add 11 | Then the result should be 120 on the screen 12 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/SubLevelOne/SubLevelTwo/IgnoreThisDirectory/IgnoreThisFile.ignore: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/SubLevelOne/SubLevelTwo/LevelOneSublevelOneSubLevelTwo.feature: -------------------------------------------------------------------------------- 1 | Feature: Addition 2 | In order to avoid silly mistakes 3 | As a math idiot 4 | I want to be told the sum of two numbers 5 | 6 | @mytag 7 | Scenario: Add two numbers 8 | Given I have entered 50 into the calculator 9 | And I have entered 70 into the calculator 10 | When I press add 11 | Then the result should be 120 on the screen 12 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/SubLevelOne/ignorethisfile.ignore: -------------------------------------------------------------------------------- 1 | ignore this file -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/image.png -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/FeatureCrawlerTests/index.md: -------------------------------------------------------------------------------- 1 | This is an index written in Markdown 2 | ==================================== 3 | 4 | This is a paragraph 5 | 6 | This is an h2 header 7 | -------------------- 8 | 9 | > Here is a 10 | > blockquote 11 | > for quotes -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/JSON/Features/OneScenarioTransferingMoneyBetweenAccountsFailing.feature: -------------------------------------------------------------------------------- 1 | Feature: Transfer funds between accounts onc scenario and FAILING 2 | 3 | #Background: Two accounts exists with a amount of 500 each 4 | 5 | @dev 6 | Scenario: Transfer money with coverage from one account to another 7 | Given The account one contains 70 8 | And account two contains 50 9 | When I transfer 50 from account one to account two 10 | Then account one should contain 20 11 | And account two should contain 150 -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/JSON/Features/TransferBetweenAccounts_WithSuccess.feature: -------------------------------------------------------------------------------- 1 | Feature: Transfer funds between accounts 2 | 3 | #Background: Two accounts exists with a amount of 500 each 4 | 5 | @dev 6 | Scenario: Transfer money with coverage from one account to another 7 | Given The account one contains 70 8 | And account two contains 50 9 | When I transfer 50 from account one to account two 10 | Then account one should contain 20 11 | And account two should contain 100 12 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/JSON/Features/TwoScenariosTransferingFundsOneFailingOneSuccess.feature: -------------------------------------------------------------------------------- 1 | Feature: Two more scenarios transfering funds between accounts - one failng and one succeding 2 | 3 | #Background: Two accounts exists with a amount of 500 each 4 | 5 | @dev 6 | Scenario: Transfer 70 with coverage from one account to another 7 | Given The account one contains 70 8 | And account two contains 50 9 | When I transfer 50 from account one to account two 10 | Then account one should contain 20 11 | And account two should contain 100 12 | 13 | 14 | @dev 15 | Scenario: Transfer 100 with coverage from one account to another 16 | Given The account one contains 100 17 | And account two contains 50 18 | When I transfer 50 from account one to account two 19 | Then account one should contain 500 20 | And account two should contain 1000 21 | 22 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/JSON/Features/TwoScenariosTransferingMoneyBetweenAccoutsWithSuccess.feature: -------------------------------------------------------------------------------- 1 | Feature: Two more scenarios transfering funds between accounts 2 | 3 | #Background: Two accounts exists with a amount of 500 each 4 | 5 | @dev 6 | Scenario: Transfer 70 with coverage from one account to another 7 | Given The account one contains 70 8 | And account two contains 50 9 | When I transfer 50 from account one to account two 10 | Then account one should contain 20 11 | And account two should contain 100 12 | 13 | 14 | @dev 15 | Scenario: Transfer 100 with coverage from one account to another 16 | Given The account one contains 100 17 | And account two contains 50 18 | When I transfer 50 from account one to account two 19 | Then account one should contain 50 20 | And account two should contain 100 21 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/OrderingTests/A/a-a.feature: -------------------------------------------------------------------------------- 1 | Feature: a-a 2 | In order to generate nice docs 3 | As a generator 4 | I want to output this feature first 5 | 6 | @mytag 7 | Scenario: a-a-a 8 | Given I am first 9 | Then All is well 10 | 11 | Scenario: a-a-b 12 | Given I am second 13 | Then All is well 14 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/OrderingTests/A/a-b.feature: -------------------------------------------------------------------------------- 1 | Feature: a-b 2 | In order to generate nice docs 3 | As a generator 4 | I want to output this feature first 5 | 6 | @mytag 7 | Scenario: a-b-a 8 | Given I am first 9 | Then All is well 10 | 11 | Scenario: a-b-b 12 | Given I am second 13 | Then All is well 14 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/OrderingTests/B/b-a.feature: -------------------------------------------------------------------------------- 1 | Feature: b-a 2 | In order to generate nice docs 3 | As a generator 4 | I want to output this feature first 5 | 6 | @mytag 7 | Scenario: b-a-a 8 | Given I am first 9 | Then All is well 10 | 11 | Scenario: b-a-b 12 | Given I am second 13 | Then All is well 14 | -------------------------------------------------------------------------------- /src/Pickles.Test/FakeFolderStructures/OrderingTests/B/b-b.feature: -------------------------------------------------------------------------------- 1 | Feature: b-b 2 | In order to generate nice docs 3 | As a generator 4 | I want to output this feature first 5 | 6 | @mytag 7 | Scenario: b-b-a 8 | Given I am first 9 | Then All is well 10 | 11 | Scenario: b-b-b 12 | Given I am second 13 | Then All is well 14 | -------------------------------------------------------------------------------- /src/Pickles.Test/FileSystemExtensions.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System.IO.Abstractions; 22 | 23 | namespace PicklesDoc.Pickles.Test 24 | { 25 | public static class FileSystemExtensions 26 | { 27 | public static IDirectoryInfo GetOrCreateDirectory(this IFileSystem fileSystem, string directory) 28 | { 29 | var directoryInfo = fileSystem.DirectoryInfo.FromDirectoryName(directory); 30 | if(!directoryInfo.Exists) 31 | directoryInfo.Create(); 32 | return directoryInfo; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/Pickles.Test/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.Test/GlobalSuppressions.cs -------------------------------------------------------------------------------- /src/Pickles.Test/Helpers/XElementExentions.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Linq; 23 | using System.Xml.Linq; 24 | 25 | namespace PicklesDoc.Pickles.Test.Helpers 26 | { 27 | public static class XElementExentions 28 | { 29 | public static XElement FindFirstDescendantWithName(this XElement xelement, string localName) 30 | { 31 | return xelement.Descendants().First(x => x.Name.LocalName == localName); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Pickles.Test/Helpers/XElementExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Xml.Linq; 3 | 4 | namespace Pickles.Test.Helpers 5 | { 6 | public static class XElementExtensions 7 | { 8 | public static XElement FindFirstDescendantWithName(this XElement xelement, string localName ) 9 | { 10 | return xelement.Descendants().First(x => x.Name.LocalName == localName); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Pickles.Test/ObjectModel/MapperTestsForComment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using NFluent; 3 | using NUnit.Framework; 4 | using PicklesDoc.Pickles.ObjectModel; 5 | using G = Gherkin.Ast; 6 | 7 | namespace PicklesDoc.Pickles.Test.ObjectModel 8 | { 9 | [TestFixture] 10 | public class MapperTestsForComment 11 | { 12 | private readonly Factory factory = new Factory(); 13 | 14 | [Test] 15 | public void MapToComment_NullLocation_ReturnsNull() 16 | { 17 | var mapper = this.factory.CreateMapper(); 18 | Comment result = mapper.MapToComment(null); 19 | Check.That(result).IsNull(); 20 | } 21 | 22 | [Test] 23 | public void MapToComment_RegularComment_ReturnsComment() 24 | { 25 | var mapper = this.factory.CreateMapper(); 26 | G.Comment comment = this.factory.CreateComment("# A comment", 1, 2); 27 | Comment result = mapper.MapToComment(comment); 28 | Check.That(result).IsNotNull(); 29 | Check.That(result.Text).IsEqualTo("# A comment"); 30 | Check.That(result.Location.Line).IsEqualTo(1); 31 | Check.That(result.Location.Column).IsEqualTo(2); 32 | Check.That(result.Type).IsEqualTo(CommentType.Normal); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Pickles.Test/ObjectModel/MapperTestsForLocation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using NFluent; 3 | using NUnit.Framework; 4 | using PicklesDoc.Pickles.ObjectModel; 5 | using G = Gherkin.Ast; 6 | 7 | namespace PicklesDoc.Pickles.Test.ObjectModel 8 | { 9 | [TestFixture] 10 | public class MapperTestsForLocation 11 | { 12 | private readonly Factory factory = new Factory(); 13 | 14 | [Test] 15 | public void MapToLocation_NullLocation_ReturnsNull() 16 | { 17 | var mapper = this.factory.CreateMapper(); 18 | Location result = mapper.MapToLocation(null); 19 | Check.That(result).IsNull(); 20 | } 21 | 22 | [Test] 23 | public void MapToLocation_RegularLocation_ReturnsLocation() 24 | { 25 | var mapper = this.factory.CreateMapper(); 26 | G.Location location = this.factory.CreateLocation(1, 2); 27 | Location result = mapper.MapToLocation(location); 28 | Check.That(result).IsNotNull(); 29 | Check.That(result.Line).IsEqualTo(1); 30 | Check.That(result.Column).IsEqualTo(2); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Pickles.Test/Resources/test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/Pickles.Test/Resources/test.jpg -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-cucumberjs-missing-elements-array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "line": 1, 4 | "name": "Feature That Has No Scenarios In The Test Run", 5 | "description": "Pickles should not barf on that.", 6 | "id": "feature-that-has-no-scenarios-in-the-test-run", 7 | "keyword": "Feature", 8 | "uri": "features/FeatureThatHasNoScenariosInTheTestRun.feature" 9 | } 10 | ] -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks.UnitTests/MsTest/MsTestElementExtensionsTests.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | using NFluent; 24 | 25 | using NUnit.Framework; 26 | 27 | using PicklesDoc.Pickles.TestFrameworks.MsTest; 28 | 29 | namespace PicklesDoc.Pickles.TestFrameworks.UnitTests.MsTest 30 | { 31 | [TestFixture] 32 | public class MsTestElementExtensionsTests 33 | { 34 | [Test] 35 | public void ExecutionIdElement_NullArgument_ShouldReturnGuidEmpty() 36 | { 37 | var result = MsTestElementExtensions.ExecutionIdElement(null); 38 | 39 | Check.That(result).IsEqualTo(Guid.Empty); 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks.UnitTests/VsTest/results-example-vstest-ignoredexample.trx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/results-example-xunit1-missingTraits.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/results-example-xunit2-missingTraits.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/CucumberJson/CucumberJsonResults.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks.CucumberJson 24 | { 25 | public class CucumberJsonResults : MultipleTestRunsBase 26 | { 27 | public CucumberJsonResults(IConfiguration configuration, CucumberJsonSingleResultLoader singleResultLoader) 28 | : base(configuration, singleResultLoader) 29 | { 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/IScenarioOutlineExampleMatcher.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using PicklesDoc.Pickles.ObjectModel; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks 24 | { 25 | public interface IScenarioExampleMatcher 26 | { 27 | bool IsMatch(Scenario scenario, string[] exampleValues, object scenarioElement); 28 | } 29 | 30 | class ScenarioExampleMatcher : IScenarioExampleMatcher 31 | { 32 | public bool IsMatch(Scenario scenario, string[] exampleValues, object scenarioElement) 33 | { 34 | return false; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/ISingleResultLoader.cs: -------------------------------------------------------------------------------- 1 | using System.IO.Abstractions; 2 | 3 | using PicklesDoc.Pickles.ObjectModel; 4 | 5 | namespace PicklesDoc.Pickles.TestFrameworks 6 | { 7 | public interface ISingleResultLoader 8 | { 9 | SingleTestRunBase Load(IFileInfo fileInfo); 10 | } 11 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/MsTest/MsTestExampleSignatureBuilder.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Text.RegularExpressions; 23 | 24 | using PicklesDoc.Pickles.ObjectModel; 25 | 26 | namespace PicklesDoc.Pickles.TestFrameworks.MsTest 27 | { 28 | public class MsTestExampleSignatureBuilder 29 | { 30 | public Regex Build(Scenario scenario, string[] row) 31 | { 32 | // We don't actually need this regex-based thing for MsTest results. 33 | // It sucks that we have to provide one. 34 | return new Regex(string.Empty); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/MsTest/MsTestResults.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks.MsTest 24 | { 25 | public class MsTestResults : MultipleTestRunsBase 26 | { 27 | public MsTestResults(IConfiguration configuration, MsTestSingleResultLoader singleResultLoader, MsTestScenarioExampleMatcher scenarioExampleMatcher) 28 | : base(configuration, singleResultLoader, scenarioExampleMatcher) 29 | { 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/MsTest/MsTestSingleResultLoader.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.IO.Abstractions; 23 | 24 | namespace PicklesDoc.Pickles.TestFrameworks.MsTest 25 | { 26 | public class MsTestSingleResultLoader : ISingleResultLoader 27 | { 28 | private readonly XDocumentLoader documentLoader = new XDocumentLoader(); 29 | 30 | public SingleTestRunBase Load(IFileInfo fileInfo) 31 | { 32 | return new MsTestSingleResults(this.documentLoader.Load(fileInfo)); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2Results.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | 22 | namespace PicklesDoc.Pickles.TestFrameworks.NUnit.NUnit2 23 | { 24 | public class NUnit2Results : MultipleTestRunsBase 25 | { 26 | public NUnit2Results(IConfiguration configuration, NUnit2SingleResultLoader singleResultLoader, NUnit2ScenarioExampleMatcher scenarioOutlineExampleMatcher) 27 | : base(configuration, singleResultLoader, scenarioOutlineExampleMatcher) 28 | { 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2SingleResultLoader.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.IO.Abstractions; 23 | 24 | namespace PicklesDoc.Pickles.TestFrameworks.NUnit.NUnit2 25 | { 26 | public class NUnit2SingleResultLoader : ISingleResultLoader 27 | { 28 | private readonly XDocumentLoader documentLoader = new XDocumentLoader(); 29 | 30 | public SingleTestRunBase Load(IFileInfo fileInfo) 31 | { 32 | return new NUnit2SingleResults(this.documentLoader.Load(fileInfo)); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3Results.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | 22 | namespace PicklesDoc.Pickles.TestFrameworks.NUnit.NUnit3 23 | { 24 | public class NUnit3Results : MultipleTestRunsBase 25 | { 26 | public NUnit3Results(IConfiguration configuration, NUnit3SingleResultLoader singleResultLoader, NUnit3ScenarioExampleMatcher scenarioOutlineExampleMatcher) 27 | : base(configuration, singleResultLoader, scenarioOutlineExampleMatcher) 28 | { 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3SingleResultLoader.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.IO.Abstractions; 23 | 24 | using PicklesDoc.Pickles.ObjectModel; 25 | 26 | namespace PicklesDoc.Pickles.TestFrameworks.NUnit.NUnit3 27 | { 28 | public class NUnit3SingleResultLoader : ISingleResultLoader 29 | { 30 | private readonly XDocumentLoader documentLoader = new XDocumentLoader(); 31 | 32 | public SingleTestRunBase Load(IFileInfo fileInfo) 33 | { 34 | return new NUnit3SingleResult(this.documentLoader.Load(fileInfo)); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/NUnit/TestResultAndName.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using PicklesDoc.Pickles.ObjectModel; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks.NUnit 24 | { 25 | public class TestResultAndName 26 | { 27 | public TestResultAndName(TestResult testResult, string name) 28 | { 29 | this.Name = name; 30 | this.TestResult = testResult; 31 | } 32 | 33 | public string Name { get; } 34 | 35 | public TestResult TestResult { get; } 36 | } 37 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/SpecFlowNameMapping.cs: -------------------------------------------------------------------------------- 1 | using TechTalk.SpecFlow.Tracing; 2 | 3 | namespace PicklesDoc.Pickles.TestFrameworks 4 | { 5 | internal static class SpecFlowNameMapping 6 | { 7 | public static string Build(string name) 8 | { 9 | return name.ToIdentifier(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/SpecRun/SpecRunFeature.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Collections.Generic; 23 | 24 | namespace PicklesDoc.Pickles.TestFrameworks.SpecRun 25 | { 26 | public class SpecRunFeature 27 | { 28 | public string Title { get; set; } 29 | 30 | public List Scenarios { get; set; } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/SpecRun/SpecRunResults.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks.SpecRun 24 | { 25 | public class SpecRunResults : MultipleTestRunsBase 26 | { 27 | public SpecRunResults(IConfiguration configuration, SpecRunSingleResultLoader singleResultLoader, SpecRunScenarioOutlineExampleMatcher scenarioOutlineExampleMatcher) 28 | : base(configuration, singleResultLoader, scenarioOutlineExampleMatcher) 29 | { 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/SpecRun/SpecRunScenario.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks.SpecRun 24 | { 25 | public class SpecRunScenario 26 | { 27 | public string Title { get; set; } 28 | 29 | public string Result { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/VsTest/VsTestExampleSignatureBuilder.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Text.RegularExpressions; 23 | 24 | using PicklesDoc.Pickles.ObjectModel; 25 | 26 | namespace PicklesDoc.Pickles.TestFrameworks.VsTest 27 | { 28 | public class VsTestExampleSignatureBuilder 29 | { 30 | public Regex Build(Scenario scenario, string[] row) 31 | { 32 | // We don't actually need this regex-based thing for VsTest results. 33 | // It sucks that we have to provide one. 34 | return new Regex(string.Empty); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/VsTest/VsTestResults.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks.VsTest 24 | { 25 | public class VsTestResults : MultipleTestRunsBase 26 | { 27 | public VsTestResults(IConfiguration configuration, VsTestSingleResultLoader singleResultLoader, VsTestScenarioExampleMatcher scenarioOutlineExampleMatcher) 28 | : base(configuration, singleResultLoader, scenarioOutlineExampleMatcher) 29 | { 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/VsTest/VsTestSingleResultLoader.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.IO.Abstractions; 23 | 24 | namespace PicklesDoc.Pickles.TestFrameworks.VsTest 25 | { 26 | public class VsTestSingleResultLoader : ISingleResultLoader 27 | { 28 | private readonly XDocumentLoader documentLoader = new XDocumentLoader(); 29 | 30 | public SingleTestRunBase Load(IFileInfo fileInfo) 31 | { 32 | return new VsTestSingleResults(this.documentLoader.Load(fileInfo)); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/XUnit/XUnit1/XUnit1Results.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks.XUnit.XUnit1 24 | { 25 | public class XUnit1Results : MultipleTestRunsBase 26 | { 27 | public XUnit1Results( 28 | IConfiguration configuration, 29 | XUnit1SingleResultLoader singleResultLoader, 30 | XUnit1ScenarioOutlineExampleMatcher scenarioOutlineExampleMatcher) 31 | : base(configuration, singleResultLoader, scenarioOutlineExampleMatcher) 32 | { 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/XUnit/XUnit1/XUnit1SingleResultLoader.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.IO.Abstractions; 23 | 24 | namespace PicklesDoc.Pickles.TestFrameworks.XUnit.XUnit1 25 | { 26 | public class XUnit1SingleResultLoader : ISingleResultLoader 27 | { 28 | private readonly XDocumentLoader documentLoader = new XDocumentLoader(); 29 | 30 | public SingleTestRunBase Load(IFileInfo fileInfo) 31 | { 32 | return new XUnit1SingleResult(this.documentLoader.Load(fileInfo)); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/XUnit/XUnit2/XUnit2Results.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles.TestFrameworks.XUnit.XUnit2 24 | { 25 | public class XUnit2Results : MultipleTestRunsBase 26 | { 27 | public XUnit2Results(IConfiguration configuration, XUnit2SingleResultLoader singleResultLoader, XUnit2ScenarioOutlineExampleMatcher scenarioOutlineExampleMatcher) 28 | : base(configuration, singleResultLoader, scenarioOutlineExampleMatcher) 29 | { 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/XUnit/XUnit2/XUnit2SingleResultLoader.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.IO.Abstractions; 23 | 24 | using PicklesDoc.Pickles.ObjectModel; 25 | 26 | namespace PicklesDoc.Pickles.TestFrameworks.XUnit.XUnit2 27 | { 28 | public class XUnit2SingleResultLoader : ISingleResultLoader 29 | { 30 | private readonly XmlDeserializer xmlDeserializer = new XmlDeserializer(); 31 | 32 | public SingleTestRunBase Load(IFileInfo fileInfo) 33 | { 34 | return new XUnit2SingleResults(this.xmlDeserializer.Load(fileInfo)); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/Pickles.TestFrameworks/app.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/Pickles.gpState: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Pickles.ncrunchsolution: -------------------------------------------------------------------------------- 1 | 2 | 1 3 | True 4 | true 5 | true 6 | UseDynamicAnalysis 7 | UseStaticAnalysis 8 | UseStaticAnalysis 9 | UseStaticAnalysis 10 | Run all tests automatically:BFRydWU=;Run all tests manually:BUZhbHNl;Run impacted tests automatically, others manually (experimental!):CklzSW1wYWN0ZWQ=;Run pinned tests automatically, others manually:CElzUGlubmVk 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Pickles.v2.ncrunchsolution: -------------------------------------------------------------------------------- 1 |  2 | 1 3 | false 4 | true 5 | true 6 | UseDynamicAnalysis 7 | UseStaticAnalysis 8 | UseStaticAnalysis 9 | UseStaticAnalysis 10 | UseDynamicAnalysis 11 | 12 | Run all tests automatically:BFRydWU=;Run all tests manually:BUZhbHNl;Run impacted tests automatically, others manually (experimental!):CklzSW1wYWN0ZWQ=;Run pinned tests automatically, others manually:CElzUGlubmVk 13 | 14 | Pickles.Test\Pickles.Test.csproj 15 | Pickles.TestFrameworks.UnitTests\Pickles.TestFrameworks.UnitTests.csproj 16 | 17 | -------------------------------------------------------------------------------- /src/Pickles.v3.ncrunchsolution: -------------------------------------------------------------------------------- 1 |  2 | 3 | True 4 | 5 | Pickles.Test\Pickles.Test.csproj 6 | Pickles.TestFrameworks.UnitTests\Pickles.TestFrameworks.UnitTests.csproj 7 | 8 | True 9 | 10 | 11 | 12 | Run impacted tests automatically, others manually (experimental!) 13 | 14 | IsImpacted 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/Pickles/DirectoryCrawler/ParsingReport.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.Collections.Generic; 23 | 24 | namespace PicklesDoc.Pickles.DirectoryCrawler 25 | { 26 | public class ParsingReport : List 27 | { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Pickles/EncodingDetector.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO.Abstractions; 3 | using System.Text; 4 | 5 | namespace PicklesDoc.Pickles 6 | { 7 | public class EncodingDetector 8 | { 9 | private readonly IFileSystem fileSystem; 10 | 11 | public EncodingDetector(IFileSystem fileSystem) 12 | { 13 | this.fileSystem = fileSystem; 14 | } 15 | 16 | public Encoding GetEncoding(string filename) 17 | { 18 | if (filename == null) 19 | { 20 | throw new ArgumentNullException(); 21 | } 22 | 23 | if (this.fileSystem.File.Exists(filename)) 24 | { 25 | var bom = new byte[4]; 26 | using (var file = this.fileSystem.FileInfo.FromFileName(filename).OpenRead()) 27 | { 28 | file.Read(bom, 0, 4); 29 | } 30 | 31 | // Analyze the BOM 32 | if (bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0x76) return Encoding.UTF7; 33 | if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf) return Encoding.UTF8; 34 | if (bom[0] == 0xff && bom[1] == 0xfe) return Encoding.Unicode; //UTF-16LE 35 | if (bom[0] == 0xfe && bom[1] == 0xff) return Encoding.BigEndianUnicode; //UTF-16BE 36 | if (bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff) return Encoding.UTF32; 37 | } 38 | 39 | return Encoding.UTF8; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /src/Pickles/Extensions/FileSystemExtensions.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | using System.IO.Abstractions; 23 | 24 | namespace PicklesDoc.Pickles.Extensions 25 | { 26 | public static class FileSystemExtensions 27 | { 28 | public static Uri GetUri(this IFileSystem fileSystem, string path) 29 | { 30 | if(fileSystem.Directory.Exists(path)) 31 | return fileSystem.DirectoryInfo.FromDirectoryName(path).FullName.ToFolderUri(); 32 | return fileSystem.FileInfo.FromFileName(path).FullName.ToFileUri(); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/Pickles/FeatureFilter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using PicklesDoc.Pickles.ObjectModel; 4 | 5 | namespace PicklesDoc.Pickles 6 | { 7 | internal class FeatureFilter 8 | { 9 | private readonly Feature feature; 10 | private readonly string excludeTags; 11 | 12 | public FeatureFilter(Feature feature, string excludeTags) 13 | { 14 | this.feature = feature; 15 | this.excludeTags = excludeTags; 16 | } 17 | 18 | public Feature ExcludeScenariosByTags() 19 | { 20 | if (this.FeatureShouldBeExcuded() 21 | || this.AllFeatureElementsShouldBeExcluded()) 22 | return null; 23 | 24 | var wantedFeatures = this.feature.FeatureElements.Where(fe => fe.Tags.All(tag => !this.IsExcludedTag(tag))).ToList(); 25 | 26 | this.feature.FeatureElements.Clear(); 27 | this.feature.FeatureElements.AddRange(wantedFeatures); 28 | 29 | return this.feature; 30 | } 31 | 32 | private bool FeatureShouldBeExcuded() 33 | { 34 | return this.feature.Tags.Any(this.IsExcludedTag); 35 | } 36 | 37 | private bool AllFeatureElementsShouldBeExcluded() 38 | { 39 | return this.feature.FeatureElements.All(fe => fe.Tags.Any(this.IsExcludedTag)); 40 | } 41 | 42 | private bool IsExcludedTag(string tag) 43 | { 44 | return tag.Equals($"@{this.excludeTags}", StringComparison.InvariantCultureIgnoreCase); 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /src/Pickles/FeatureParseException.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using System; 22 | 23 | namespace PicklesDoc.Pickles 24 | { 25 | [Serializable] 26 | public class FeatureParseException : Exception 27 | { 28 | public FeatureParseException() : base() 29 | { 30 | } 31 | 32 | public FeatureParseException(string msg) : base(msg) 33 | { 34 | } 35 | 36 | public FeatureParseException(string msg, Exception e) 37 | : base(msg, e) 38 | { 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/Pickles/FeatureToggles/AlternateMarkdownProvider.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | using FeatureSwitcher; 22 | 23 | namespace PicklesDoc.Pickles.FeatureToggles 24 | { 25 | public class AlternateMarkdownProvider : IFeature 26 | { 27 | } 28 | } -------------------------------------------------------------------------------- /src/Pickles/MarkdownProvider.cs: -------------------------------------------------------------------------------- 1 | // -------------------------------------------------------------------------------------------------------------------- 2 | // 3 | // Copyright 2011 Jeffrey Cameron 4 | // Copyright 2012-present PicklesDoc team and community contributors 5 | // 6 | // 7 | // Licensed under the Apache License, Version 2.0 (the "License"); 8 | // you may not use this file except in compliance with the License. 9 | // You may obtain a copy of the License at 10 | // 11 | // http://www.apache.org/licenses/LICENSE-2.0 12 | // 13 | // Unless required by applicable law or agreed to in writing, software 14 | // distributed under the License is distributed on an "AS IS" BASIS, 15 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | // See the License for the specific language governing permissions and 17 | // limitations under the License. 18 | // 19 | // -------------------------------------------------------------------------------------------------------------------- 20 | 21 | namespace PicklesDoc.Pickles 22 | { 23 | public class MarkdownProvider : IMarkdownProvider 24 | { 25 | private readonly MarkdownDeep.Markdown markdown; 26 | 27 | public MarkdownProvider() 28 | { 29 | this.markdown = new MarkdownDeep.Markdown { ExtraMode = true, SafeMode = true }; 30 | } 31 | 32 | public string Transform(string text) 33 | { 34 | string transform = this.markdown.Transform(text); 35 | 36 | transform = transform.Replace(" ", string.Empty); 37 | 38 | return transform; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/Settings.StyleCop: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | False 8 | 9 | 10 | 11 | 12 | False 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | False 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/VersionInfo.cs: -------------------------------------------------------------------------------- 1 | // 2 | using System.Reflection; 3 | using System.Runtime.InteropServices; 4 | 5 | [assembly: AssemblyProductAttribute("Pickles")] 6 | [assembly: AssemblyCompanyAttribute("Pickles")] 7 | [assembly: AssemblyCopyrightAttribute("Copyright (c) Jeffrey Cameron 2010-2012, PicklesDoc 2012-present")] 8 | [assembly: AssemblyTrademarkAttribute("")] 9 | [assembly: AssemblyCultureAttribute("")] 10 | [assembly: ComVisibleAttribute(false)] 11 | namespace System { 12 | internal static class AssemblyVersionInformation { 13 | internal const System.String AssemblyProduct = "Pickles"; 14 | internal const System.String AssemblyCompany = "Pickles"; 15 | internal const System.String AssemblyCopyright = "Copyright (c) Jeffrey Cameron 2010-2012, PicklesDoc 2012-present"; 16 | internal const System.String AssemblyTrademark = ""; 17 | internal const System.String AssemblyCulture = ""; 18 | internal const System.Boolean ComVisible = false; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/markdowndeep/Abbreviation.cs: -------------------------------------------------------------------------------- 1 | // 2 | // MarkdownDeep - http://www.toptensoftware.com/markdowndeep 3 | // Copyright (C) 2010-2011 Topten Software 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this product except in 6 | // compliance with the License. You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and limitations under the License. 13 | // 14 | 15 | using System; 16 | using System.Collections.Generic; 17 | using System.Linq; 18 | using System.Text; 19 | 20 | namespace MarkdownDeep 21 | { 22 | class Abbreviation 23 | { 24 | public Abbreviation(string abbr, string title) 25 | { 26 | Abbr = abbr; 27 | Title = title; 28 | } 29 | public string Abbr; 30 | public string Title; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/markdowndeep/FootnoteReference.cs: -------------------------------------------------------------------------------- 1 | // 2 | // MarkdownDeep - http://www.toptensoftware.com/markdowndeep 3 | // Copyright (C) 2010-2011 Topten Software 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this product except in 6 | // compliance with the License. You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and limitations under the License. 13 | // 14 | 15 | using System; 16 | using System.Collections.Generic; 17 | using System.Linq; 18 | using System.Text; 19 | 20 | namespace MarkdownDeep 21 | { 22 | class FootnoteReference 23 | { 24 | public FootnoteReference(int index, string id) 25 | { 26 | this.index = index; 27 | this.id = id; 28 | } 29 | public int index; 30 | public string id; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/markdowndeep/LinkInfo.cs: -------------------------------------------------------------------------------- 1 | // 2 | // MarkdownDeep - http://www.toptensoftware.com/markdowndeep 3 | // Copyright (C) 2010-2011 Topten Software 4 | // 5 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this product except in 6 | // compliance with the License. You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software distributed under the License is 11 | // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and limitations under the License. 13 | // 14 | 15 | using System; 16 | using System.Collections.Generic; 17 | using System.Linq; 18 | using System.Text; 19 | 20 | namespace MarkdownDeep 21 | { 22 | internal class LinkInfo 23 | { 24 | public LinkInfo(LinkDefinition def, string link_text) 25 | { 26 | this.def = def; 27 | this.link_text = link_text; 28 | } 29 | 30 | public LinkDefinition def; 31 | public string link_text; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/markdowndeep/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // Setting ComVisible to false makes the types in this assembly not visible 6 | // to COM components. If you need to access a type in this assembly from 7 | // COM, set the ComVisible attribute to true on that type. 8 | [assembly: ComVisible(false)] 9 | 10 | // The following GUID is for the ID of the typelib if this project is exposed to COM 11 | [assembly: Guid("1cc9970a-4864-47be-83f9-22b292a743f5")] 12 | -------------------------------------------------------------------------------- /src/markdowndeep/markdowndeep.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | netstandard2.0 4 | markdowndeep 5 | markdowndeep 6 | Copyright © 2021 7 | bin\$(Configuration)\ 8 | 9 | 10 | full 11 | 12 | 13 | pdbonly 14 | 15 | 16 | 17 | all 18 | runtime; build; native; contentfiles; analyzers; buildtransitive 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/markdowndeep/markdowndeep.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.31019.35 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "markdowndeep", "markdowndeep.csproj", "{1CC9970A-4864-47BE-83F9-22B292A743F5}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {1CC9970A-4864-47BE-83F9-22B292A743F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {1CC9970A-4864-47BE-83F9-22B292A743F5}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {1CC9970A-4864-47BE-83F9-22B292A743F5}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {1CC9970A-4864-47BE-83F9-22B292A743F5}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {A5C6E0E1-8FCB-4B12-8FC6-FB2A7361AD77} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /src/packages.nonnuget/Strike.Jint/Jint.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/packages.nonnuget/Strike.Jint/Jint.dll -------------------------------------------------------------------------------- /src/packages.nonnuget/Strike.Jint/Strike.Jint.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/picklesdoc/pickles/dbb77c0136afe66d2f65524580d0e04652eab5cf/src/packages.nonnuget/Strike.Jint/Strike.Jint.dll --------------------------------------------------------------------------------