diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..cde48129 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,98 @@ +name: build +on: + push: + branches: + - main + tags: + - '*' + pull_request: + branches: + - main + workflow_dispatch: + inputs: + forcePublish: + description: When true the Publish stage will always be run, otherwise it only runs for tagged versions. + required: false + default: false + type: boolean + skipCleanup: + description: When true the pipeline clean-up stage will not be run. For example, the cache used between pipeline stages will be retained. + required: false + default: false + type: boolean + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + actions: write # enable cache clean-up + checks: write # enable test result annotations + contents: write # enable creating releases + issues: read + packages: write # enable publishing packages + pull-requests: write # enable test result annotations + +jobs: + prepareConfig: + name: Prepare Configuration + runs-on: ubuntu-latest + outputs: + RESOLVED_ENV_VARS: ${{ steps.prepareEnvVarsAndSecrets.outputs.environmentVariablesYamlBase64 }} + RESOLVED_SECRETS: ${{ steps.prepareEnvVarsAndSecrets.outputs.secretsYamlBase64 }} + steps: + # Declare any environment variables and/or secrets that need to be available inside the build process + - uses: endjin/Endjin.RecommendedPractices.GitHubActions/actions/prepare-env-vars-and-secrets@main + id: prepareEnvVarsAndSecrets + with: + # BUILDVAR_NuGetPublishSource: + # When publishing NuGet packages only tagged versions get pushed to nuget.org, otherwise + # they are pushed to GitHub Packages + # BUILDVAR_UseAcrTasks: + # Due to the build phases running as separate jobs the container images built via 'docker build' + # in the Package phase are not available to the Publish phase. Therefore, we use ACR Tasks to + # build the images instead. + environmentVariablesYaml: | + BUILDVAR_NuGetPublishSource: "${{ startsWith(github.ref, 'refs/tags/') && 'https://api.nuget.org/v3/index.json' || 'https://nuget.pkg.github.com/endjin/index.json' }}" + BUILDVAR_ContainerRegistryFqdn: endjin.azurecr.io + BUILDVAR_UseAcrTasks: true + secretsYaml: | + NUGET_API_KEY: "${{ startsWith(github.ref, 'refs/tags/') && secrets.ENDJIN_NUGET_APIKEY || secrets.ENDJIN_GITHUB_PUBLISHER_PAT }}" + + build: + needs: prepareConfig + uses: endjin/Endjin.RecommendedPractices.GitHubActions/.github/workflows/scripted-build-matrix-pipeline.yml@feature/add-matrix-build + with: + netSdkVersion: '8.x' + # workflow_dispatch inputs are always strings, the type property is just for the UI + forcePublish: ${{ github.event.inputs.forcePublish == 'true' }} + skipCleanup: ${{ github.event.inputs.skipCleanup == 'true' }} + + # These pass arbitrary environment variables to each of the build pipeline phases, + # as defined in the 'environmentVariablesYaml' property above. + compilePhaseEnv: ${{ needs.prepareConfig.outputs.RESOLVED_ENV_VARS }} + testPhaseEnv: ${{ needs.prepareConfig.outputs.RESOLVED_ENV_VARS }} + testPhaseMatrixJson: | + { + "os": ["ubuntu-latest", "windows-latest"], + "dotnetFramework": ["net8.0"], + "exclude": [] + } + packagePhaseEnv: ${{ needs.prepareConfig.outputs.RESOLVED_ENV_VARS }} + publishPhaseEnv: ${{ needs.prepareConfig.outputs.RESOLVED_ENV_VARS }} + secrets: + # Ensures the build pipeline has access to pull images from the ACR and write SBOMs to storage + compilePhaseAzureCredentials: ${{ secrets.ENDJIN_PROD_ACR_READER_CREDENTIALS }} + # Ensures the build pipeline has access to run ACR Tasks + packagePhaseAzureCredentials: ${{ secrets.ENDJIN_PROD_ACR_PUBLISH_CREDENTIALS }} + # Ensures the build pipeline has access to push/re-tag images to the ACR + publishPhaseAzureCredentials: ${{ secrets.ENDJIN_PROD_ACR_PUBLISH_CREDENTIALS }} + + # Uncomment the following to pass arbitrary secrets to the required build pipeline phases, + # as defined in the 'secretsYaml' property above. They will be available to the + # scripted build process as environment variables. + # + # compilePhaseSecrets: ${{ needs.prepareConfig.outputs.RESOLVED_SECRETS }} + # testPhaseSecrets: ${{ needs.prepareConfig.outputs.RESOLVED_SECRETS }} + packagePhaseSecrets: ${{ needs.prepareConfig.outputs.RESOLVED_SECRETS }} + publishPhaseSecrets: ${{ needs.prepareConfig.outputs.RESOLVED_SECRETS }} diff --git a/.gitignore b/.gitignore index e8b838e6..632d513d 100644 --- a/.gitignore +++ b/.gitignore @@ -335,7 +335,7 @@ coverage.cobertura.xml # VS Code config files /.vscode -# Specflow generated files +# ReqnRoll generated files *.feature.cs # Scripted build migration diff --git a/GitVersion.yml b/GitVersion.yml index 47dc26b9..b84eaa40 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -15,10 +15,10 @@ branches: tag: dependabot source-branches: - develop - - master + - main - release - feature - support - hotfix -next-version: "3.1" +next-version: "4.0" diff --git a/README.md b/README.md index 9607e61a..5045688a 100644 --- a/README.md +++ b/README.md @@ -3,17 +3,18 @@ [![GitHub license](https://img.shields.io/badge/License-Apache%202-blue.svg)](https://raw.githubusercontent.com/corvus-dotnet/Corvus.Testing/main/LICENSE) [![IMM](https://imm.endjin.com/api/imm/github/corvus-dotnet/Corvus.Testing/total?cache=false)](https://imm.endjin.com/api/imm/github/corvus-dotnet/Corvus.Testing/total?cache=false) -This provides a library of useful testing extensions, primarily focussed on SpecFlow operations. +This provides a library of useful testing extensions, primarily focussed on ReqnRoll operations in v4. v3 focuses on SpecFlow. It is built for .NET 6.0, and we support use on both .NET 6.0 and .NET 8.0. (If you require .NET Standard 2.0, use `Corvus.Testing` v1.) -The SpecFlow specific libraries contain additional bindings; to use these, you will need to add a `specflow.json` file to any project wishing to use them. Add entries to the `stepAssemblies` array for each of the Corvus libraries you need to use: +The ReqnRoll specific libraries contain additional bindings; to use these, you will need to add a `reqnroll.json` file to any project wishing to use them. Add entries to the `stepAssemblies` array for each of the Corvus libraries you need to use: ```json { + "$schema": "https://schemas.reqnroll.net/reqnroll-config-latest.json", "stepAssemblies": [ - { "assembly": "Corvus.Testing.SpecFlow" }, - { "assembly": "Corvus.Testing.AzureFunctions.SpecFlow" }, + { "assembly": "Corvus.Testing.ReqnRoll" }, + { "assembly": "Corvus.Testing.AzureFunctions.ReqnRoll" }, ] } ``` @@ -22,9 +23,9 @@ The SpecFlow specific libraries contain additional bindings; to use these, you w This library offers the following features. -### Container Bindings (Corvus.Testing.SpecFlow) +### Container Bindings (Corvus.Testing.ReqnRoll) -`Corvus.Testing.SpecFlow` can simplify the use of dependency injection. It can automatically create a dependency injection service collection (an instance of the `IServiceCollection` type defined by the `Microsoft.Extensions.DependencyInjection.Abstractions` component). It offers your tests an opportunity to populate this collection during the early phases of test execution. It then automatically builds an `IServiceProvider` from the service collection, and makes this accessible to your test. It disposes the provider at the end, ensuring any dependencies that need to clean up will have their `Dispose` methods called. +`Corvus.Testing.ReqnRoll` can simplify the use of dependency injection. It can automatically create a dependency injection service collection (an instance of the `IServiceCollection` type defined by the `Microsoft.Extensions.DependencyInjection.Abstractions` component). It offers your tests an opportunity to populate this collection during the early phases of test execution. It then automatically builds an `IServiceProvider` from the service collection, and makes this accessible to your test. It disposes the provider at the end, ensuring any dependencies that need to clean up will have their `Dispose` methods called. This feature offers two modes: you can either arrange for the service collection to be created, built, and torn down for individual scenarios, or you can create one that is created at the start of a feature, in which the service provider is shared by all scenarios within the feature, and the services are disposed only after all scenarios have run. @@ -56,7 +57,7 @@ public static void PopulateFeatureServiceCollection(FeatureContext featureContex } ``` -The method name doesn't matter. It's the attribute that's significant. Note that by specifying the same `@perScenarioContainer` (or `@perFeatureContainer`) tag that `Corvus.Testing.SpecFlow` is looking for, this binding will run for any tests that specify that tag. If you want to use this container feature in multiple tests but you want to use different service configuration in different tests, you can define your own tag, e.g. your feature file might start: +The method name doesn't matter. It's the attribute that's significant. Note that by specifying the same `@perScenarioContainer` (or `@perFeatureContainer`) tag that `Corvus.Testing.ReqnRoll` is looking for, this binding will run for any tests that specify that tag. If you want to use this container feature in multiple tests but you want to use different service configuration in different tests, you can define your own tag, e.g. your feature file might start: ``` @perScenarioContainer @@ -74,7 +75,7 @@ MyService svc = this.ServiceProvider.GetRequiredService() The `ContainerBindings.GetServiceProvider` method is overloaded, accepting either a `ScenarioContext` or a `FeatureContext`. If you used the `@perScenarioContainer` tag you should pass the scenario context as the example above does, but if you're using `@perFeatureContainer` pass the feature context instead. -`GetServiceProvider` will work from inside any step, whether it's `Given`, `When`, or `Then`. But if you need to write a custom `Before...` binding that has access to the service provider, you'll need to make sure it runs at the appropriate moment. Since `Corvus.Testing.SpecFlow` relies on this binding mechanism to create and initialize the services, you need to make sure that your code runs at the right moment, which means using the `Order` property on these SpecFlow binding attributes. The bindings shown above that populate the `IServiceCollection` set their `Order` property with constants supplied by `Corvus.Testing.SpecFlow`. This ensures that these bindings run after `Corvus.Testing.SpecFlow` has created the service collection but before it has built the provider. If you want to access services from DI you will need to run after the provider has been built, which you can do by specifying a different constant for the `Order`: +`GetServiceProvider` will work from inside any step, whether it's `Given`, `When`, or `Then`. But if you need to write a custom `Before...` binding that has access to the service provider, you'll need to make sure it runs at the appropriate moment. Since `Corvus.Testing.ReqnRoll` relies on this binding mechanism to create and initialize the services, you need to make sure that your code runs at the right moment, which means using the `Order` property on these ReqnRoll binding attributes. The bindings shown above that populate the `IServiceCollection` set their `Order` property with constants supplied by `Corvus.Testing.ReqnRoll`. This ensures that these bindings run after `Corvus.Testing.ReqnRoll` has created the service collection but before it has built the provider. If you want to access services from DI you will need to run after the provider has been built, which you can do by specifying a different constant for the `Order`: ```csharp [BeforeScenario("@adminTestContainerInitialization", Order = ContainerBeforeScenarioOrder.ServiceProviderAvailable)] @@ -88,21 +89,21 @@ public static void ServiceProviderAvailableBeforeScenario(ScenarioContext scenar (This presumes that we've got some test-specific work going on. If you wanted this binding to run any time you used a per-scenario container you'd put `@perFeatureContainer` instead of `@adminTestContainerInitialization`.) -Note that the `Order` constants that `Corvus.Testing.SpecFlow` provides space to allow you to control the order of multiple bindings of your own if necessary. The `BuildServiceProvider` is 9999 higher than `PopulateServiceCollection`, so if you need to perform multiple bindings in between the the service collection being created, and the final service provider being built from that collection, you can do so, and you can control their ordering. (E.g., you can have one binding with `Order = ContainerBeforeScenarioOrder.PopulateServiceCollection`, and then another with `ContainerBeforeScenarioOrder.PopulateServiceCollection + 1`.) +Note that the `Order` constants that `Corvus.Testing.ReqnRoll` provides space to allow you to control the order of multiple bindings of your own if necessary. The `BuildServiceProvider` is 9999 higher than `PopulateServiceCollection`, so if you need to perform multiple bindings in between the the service collection being created, and the final service provider being built from that collection, you can do so, and you can control their ordering. (E.g., you can have one binding with `Order = ContainerBeforeScenarioOrder.PopulateServiceCollection`, and then another with `ContainerBeforeScenarioOrder.PopulateServiceCollection + 1`.) Exceptions during container disposal are handled using the Teardown Exception Handling mechanism described below, meaning that if errors occur, they will not prevent other teardown from happening, but will still eventually be reported. (Although be aware that depending on how you run your tests, feature-level errors will not necessarily be reported as errors, due to limitations inherent in how .NET test runners integrate with build and development tools.) -### Child Object Value Retriever (Corvus.Testing.SpecFlow) +### Child Object Value Retriever (Corvus.Testing.ReqnRoll) -If a scenario or feature specifies the `@useChildObjects` tag, this registers a Value Retrieved with SpecFlow enabling named objects in the scenario context to be referred to with a `{name}` syntax. So if an earlier stage of a test puts something into the scenario context with the key `transactionId` you could write `{transactionId}` in a SpecFlow feature fle to retrieve that value from the context and pass it in as the argument to a step. +If a scenario or feature specifies the `@useChildObjects` tag, this registers a Value Retrieved with ReqnRoll enabling named objects in the scenario context to be referred to with a `{name}` syntax. So if an earlier stage of a test puts something into the scenario context with the key `transactionId` you could write `{transactionId}` in a ReqnRoll feature fle to retrieve that value from the context and pass it in as the argument to a step. -### Azure Functions Launch (Corvus.Testing.AzureFunctions and Corvus.Testing.AzureFunctions.SpecFlow) +### Azure Functions Launch (Corvus.Testing.AzureFunctions and Corvus.Testing.AzureFunctions.ReqnRoll) The `Corvus.Testing.AzureFunctions` library contains a `FunctionsController` class that can be used to run Azure Functions as separate processes as part of a test. -For usage examples, see the `Corvus.Testing.AzureFunctions.Xunit.Demo` and `Corvus.Testing.AzureFunctions.SpecFlow.Demo`, which show the various ways these classes can be used. +For usage examples, see the `Corvus.Testing.AzureFunctions.Xunit.Demo` and `Corvus.Testing.AzureFunctions.ReqnRoll.Demo`, which show the various ways these classes can be used. -SpecFlow-specific bindings can be found in `Corvus.Testing.AzureFunctions.SpecFlow`, which defines a `Given` step that matches this pattern: +ReqnRoll-specific bindings can be found in `Corvus.Testing.AzureFunctions.ReqnRoll`, which defines a `Given` step that matches this pattern: ``` I start a functions instance for the local project '(.*)' on port (.*) @@ -118,15 +119,15 @@ The effect of this will be to launch the local function emulator with the `Workf You can launch multiple functions in a single scenario as long as they are all listening on different ports. This can be helpful for integration tests. -`Corvus.Testing.AzureFunctions.SpecFlow` includes an unconditional `[AfterScenario]` binding that will run after every single test, and it checks to see if any functions were launched, and if so, shuts it down and waits until the process exits. (It waits to avoid port conflicts if another test wants to go on to run a function on the same port.) It also collects all standard output including any errors, and prints this to the test process's console. This can be useful for diagnosing failures, because relevant information is often written to these channels. (This library does not run the function in a console window, so this is the only way to see the output. A console window would not be a good fit for tests running as part of an automated build in any case.) +`Corvus.Testing.AzureFunctions.ReqnRoll` includes an unconditional `[AfterScenario]` binding that will run after every single test, and it checks to see if any functions were launched, and if so, shuts it down and waits until the process exits. (It waits to avoid port conflicts if another test wants to go on to run a function on the same port.) It also collects all standard output including any errors, and prints this to the test process's console. This can be useful for diagnosing failures, because relevant information is often written to these channels. (This library does not run the function in a console window, so this is the only way to see the output. A console window would not be a good fit for tests running as part of an automated build in any case.) You will need the Functions development tools to be installed for this to work. If you don't have that, the test will fail, reporting the `npm` command you need to run to fix it. If you're using Azure DevOps pipelines, there's a task for this. -### Teardown Exception Handling (Corvus.Testing.SpecFlow) +### Teardown Exception Handling (Corvus.Testing.ReqnRoll) -If you do any non-trivial work during `After...` bindings (e.g., tearing down a function) it is often important to ensure that all the bindings run. This is problematic in cases where failures might occur at this stage, because the only way a binding can report failure is by throwing an exception, and if it does so, it will normally prevent all other bindings from running, because it causes the test to come to an abrupt halt. (SpecFlow doesn't have a concept of "fail, but continue to clean up".) This is especially problematic for integration tests that create external resources. (E.g., if your test creates resources in Azure, it can be costly if you fail to clean these up when you're done.) +If you do any non-trivial work during `After...` bindings (e.g., tearing down a function) it is often important to ensure that all the bindings run. This is problematic in cases where failures might occur at this stage, because the only way a binding can report failure is by throwing an exception, and if it does so, it will normally prevent all other bindings from running, because it causes the test to come to an abrupt halt. (ReqnRoll doesn't have a concept of "fail, but continue to clean up".) This is especially problematic for integration tests that create external resources. (E.g., if your test creates resources in Azure, it can be costly if you fail to clean these up when you're done.) -`Corvus.Testing.SpecFlow` provides a mechanism by which you can run code in some sort of `After...` binding, and be free to throw exceptions without that halting all further cleanup, while still eventually seeing the error. You do this through a helper like this: +`Corvus.Testing.ReqnRoll` provides a mechanism by which you can run code in some sort of `After...` binding, and be free to throw exceptions without that halting all further cleanup, while still eventually seeing the error. You do this through a helper like this: ```csharp [AfterScenario] @@ -138,11 +139,11 @@ public void TeardownFunctionsAfterScenario() The `RunAndStoreExceptions` method here is an extension method on `ScenarioContext`. There's also one for `FeatureContext`. -This is the code in `Corvus.Testing.AzureFunctions.SpecFlow` that tears down any functions created with the Azure Functions Launch feature described earlier. The code that performs this work is called `TeardownFunctions` and it's an instance member of the `FunctionsController` class, and it has been passed here as a delegate argument to `RunAndStoreExceptions`. +This is the code in `Corvus.Testing.AzureFunctions.ReqnRoll` that tears down any functions created with the Azure Functions Launch feature described earlier. The code that performs this work is called `TeardownFunctions` and it's an instance member of the `FunctionsController` class, and it has been passed here as a delegate argument to `RunAndStoreExceptions`. `RunAndStoreExceptions` lets you throw exceptions without risk. It catches any exceptions that emerge from your code, stores them, enables all other teardown to proceed, and then at the very last moment, it checks to see if any exceptions were detected this way, and if they were, it reports them all in one go by throwing an `AggregateException` containing every failure. -To work, `Corvus.Testing.SpecFlow` defines unconditional `AfterScenario` and `AfterFeature` bindings each with an `Order` of `int.MaxValue`. This means they will only truly be the last thing to run for the scenario or feature if nothing else tries the same thing. If you want to use this feature, you will need to ensure that you're not using anything else that also depends on being able to be the very last thing that happens. +To work, `Corvus.Testing.ReqnRoll` defines unconditional `AfterScenario` and `AfterFeature` bindings each with an `Order` of `int.MaxValue`. This means they will only truly be the last thing to run for the scenario or feature if nothing else tries the same thing. If you want to use this feature, you will need to ensure that you're not using anything else that also depends on being able to be the very last thing that happens. ## Running the Tests @@ -153,7 +154,7 @@ choco install nodejs npm install -g azure-functions-core-tools@ ``` ->NOTE: You may need to reboot to get Visual Studio to 'see' the NodeJS installation. +> NOTE: You may need to reboot to get Visual Studio to 'see' the NodeJS installation. The tests can be run from the command-line using: ``` @@ -171,13 +172,13 @@ For any licensing questions, please email [licens&# ## Project Sponsor -This project is sponsored by [endjin](https://endjin.com), a UK based Microsoft Gold Partner for Cloud Platform, Data Platform, Data Analytics, DevOps, and a Power BI Partner. +This project is sponsored by [endjin](https://endjin.com), a UK based Microsoft Partner. For more information about our products and services, or for commercial support of this project, please [contact us](https://endjin.com/contact-us). We produce two free weekly newsletters; [Azure Weekly](https://azureweekly.info) for all things about the Microsoft Azure Platform, and [Power BI Weekly](https://powerbiweekly.info). -Keep up with everything that's going on at endjin via our [blog](https://blogs.endjin.com/), follow us on [Twitter](https://twitter.com/endjin), or [LinkedIn](https://www.linkedin.com/company/1671851/). +Keep up with everything that's going on at endjin via our [blog](https://endjin.com/blog), follow us on [X](https://x.com/endjin), or [LinkedIn](https://www.linkedin.com/company/endjin/). Our other Open Source projects can be found on [GitHub](https://endjin.com/open-source) diff --git a/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/Corvus.Testing.AzureFunctions.DemoFunctions.InProcess.csproj b/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/Corvus.Testing.AzureFunctions.DemoFunctions.InProcess.csproj index dc00710f..7efd0c38 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/Corvus.Testing.AzureFunctions.DemoFunctions.InProcess.csproj +++ b/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/Corvus.Testing.AzureFunctions.DemoFunctions.InProcess.csproj @@ -39,11 +39,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/SampleFunction.cs b/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/SampleFunction.cs index 94ede44e..7d8b1b53 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/SampleFunction.cs +++ b/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/SampleFunction.cs @@ -2,7 +2,7 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.DemoFunction.InProcess +namespace Corvus.Testing.ReqnRoll.DemoFunction.InProcess { using System.IO; using System.Threading.Tasks; @@ -60,4 +60,4 @@ public async Task SampleGetHandler( : new BadRequestObjectResult("Please pass a name on the query string or in the request body"); } } -} +} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/packages.lock.json b/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/packages.lock.json index 7363610f..3319e79f 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/packages.lock.json +++ b/Solutions/Corvus.Testing.AzureFunctions.DemoFunction.InProcess/packages.lock.json @@ -4,47 +4,35 @@ "net6.0": { "Endjin.RecommendedPractices.GitHub": { "type": "Direct", - "requested": "[2.1.9, )", - "resolved": "2.1.9", - "contentHash": "gFCDZOu96fU+TfsAkZ7zLUzm8NX1/k3hWt7lbyf5HOn95+hYJQZ+g4bjs/Awx7JODsvNZpON8QlstZQVjPnRxg==", + "requested": "[2.1.13, )", + "resolved": "2.1.13", + "contentHash": "ZefZtlE4NE4ajKMzUtdeb9+SSWv95gutAykQmTEuj2Ln13/1etgxha9QFhrALHr+ewvUH7M3X1qh9HBmWMLRFg==", "dependencies": { - "Endjin.RecommendedPractices": "2.1.9", + "Endjin.RecommendedPractices": "2.1.13", "Microsoft.SourceLink.GitHub": "1.1.1" } }, "Microsoft.NET.Sdk.Functions": { "type": "Direct", - "requested": "[4.2.0, )", - "resolved": "4.2.0", - "contentHash": "Ttsa6BkGXH77CPP72UtKSuPiyTKP+hke4Vl+oR6bD2sjIObvAjFGUVxs877/uDVBrw9sT0rzmIJUo/1FStjR1w==", + "requested": "[4.4.1, )", + "resolved": "4.4.1", + "contentHash": "ZHEvZW5+4dKv/CpuW+qGc1Sjc5erX18bvy4JuLiuiYen7hVWms1iaVIfDkQJF7uqj6SvkKm4d06uScTGpekdLw==", "dependencies": { "Microsoft.Azure.Functions.Analyzers": "[1.0.0, 2.0.0)", "Microsoft.Azure.WebJobs": "[3.0.32, 3.1.0)", "Microsoft.Azure.WebJobs.Extensions": "3.0.6", "Microsoft.Azure.WebJobs.Extensions.Http": "[3.2.0, 3.3.0)", "Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator": "4.0.1", - "Newtonsoft.Json": "13.0.1" - } - }, - "Roslynator.Analyzers": { - "type": "Direct", - "requested": "[4.9.0, )", - "resolved": "4.9.0", - "contentHash": "lFd4MmkllYR0dKlPWDokRwAvQnjNoPJztlncyzvnCG/wvGr5FzHAencngcJna/wkyDE0xIv7AnUccgCLsoIXTw==" - }, - "StyleCop.Analyzers": { - "type": "Direct", - "requested": "[1.2.0-beta.556, )", - "resolved": "1.2.0-beta.556", - "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", - "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.556" + "Newtonsoft.Json": "13.0.1", + "System.Net.Http": "4.3.4", + "System.Text.Encodings.Web": "4.7.2", + "System.Text.RegularExpressions": "4.3.1" } }, "Endjin.RecommendedPractices": { "type": "Transitive", - "resolved": "2.1.9", - "contentHash": "LzppiBrlPBj5TmVsQVxWoGv/MWfq+sAz0qkdB/ozUDS2hq31Pu8j2Cvk+BVlhvrb9eDUQxxHaLL4gbE7LiSAfQ==", + "resolved": "2.1.13", + "contentHash": "ZXMVKFaBJYaAfRKS/Uv8kUANDsEj2L9H5L4XVXyZULI0UANqZ/ROVTpOqulkukf3UFc/jnnVG2EfByynTiztDg==", "dependencies": { "Microsoft.Build.Tasks.Git": "1.1.1" } @@ -542,13 +530,13 @@ }, "Microsoft.NETCore.Platforms": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + "resolved": "1.1.1", + "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" + "resolved": "1.1.3", + "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.SourceLink.Common": { "type": "Transitive", @@ -654,18 +642,18 @@ }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==" + "resolved": "4.3.2", + "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==" + "resolved": "4.3.2", + "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==" + "resolved": "4.3.2", + "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", @@ -704,30 +692,30 @@ }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "resolved": "4.3.2", + "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==" + "resolved": "4.3.2", + "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==" + "resolved": "4.3.2", + "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", @@ -736,33 +724,28 @@ }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==" + "resolved": "4.3.2", + "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==" + "resolved": "4.3.2", + "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==" + "resolved": "4.3.2", + "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==" + "resolved": "4.3.2", + "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==" - }, - "StyleCop.Analyzers.Unstable": { - "type": "Transitive", - "resolved": "1.2.0.556", - "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" + "resolved": "4.3.2", + "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", @@ -1052,10 +1035,10 @@ }, "System.Net.Http": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", @@ -1080,7 +1063,7 @@ "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { @@ -1208,11 +1191,11 @@ }, "System.Runtime": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "resolved": "4.3.1", + "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { @@ -1455,8 +1438,8 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==" + "resolved": "4.7.2", + "contentHash": "iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==" }, "System.Text.Json": { "type": "Transitive", @@ -1465,10 +1448,10 @@ }, "System.Text.RegularExpressions": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "resolved": "4.3.1", + "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { - "System.Runtime": "4.3.0" + "System.Runtime": "4.3.1" } }, "System.Threading": { diff --git a/Solutions/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated.csproj b/Solutions/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated.csproj index 0b86e044..782499b3 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated.csproj +++ b/Solutions/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated.csproj @@ -16,9 +16,9 @@ - - - + + + diff --git a/Solutions/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated/Program.cs b/Solutions/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated/Program.cs index 51336f3d..cd97ae1f 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated/Program.cs +++ b/Solutions/Corvus.Testing.AzureFunctions.DemoFunctions.Isolated/Program.cs @@ -4,4 +4,4 @@ .ConfigureFunctionsWorkerDefaults() .Build(); -host.Run(); +host.Run(); \ No newline at end of file diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionConfig.cs b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionConfig.cs similarity index 83% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionConfig.cs rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionConfig.cs index 07bf7919..a6b324d2 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionConfig.cs +++ b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionConfig.cs @@ -2,18 +2,17 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Demo.AzureFunctionsTesting +namespace Corvus.Testing.ReqnRoll.Demo.AzureFunctionsTesting { using System.Collections.Generic; using Corvus.Testing.AzureFunctions; - using Corvus.Testing.AzureFunctions.SpecFlow; - - using TechTalk.SpecFlow; + using Corvus.Testing.AzureFunctions.ReqnRoll; + using Reqnroll; internal static class DemoFunctionConfig { - public static void SetupTestConfig(SpecFlowContext context) + public static void SetupTestConfig(ReqnrollContext context) { FunctionConfiguration functionConfiguration = FunctionsBindings.GetFunctionConfiguration(context); var config = new Dictionary() @@ -29,4 +28,4 @@ public static void SetupTestConfig(SpecFlowContext context) functionConfiguration.CopyToEnvironmentVariables(config); } } -} +} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionPerFeatureHooks.cs b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionPerFeatureHooks.cs similarity index 95% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionPerFeatureHooks.cs rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionPerFeatureHooks.cs index 7d5f43a6..5069e1bb 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionPerFeatureHooks.cs +++ b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionPerFeatureHooks.cs @@ -2,16 +2,15 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Demo.AzureFunctionsTesting +namespace Corvus.Testing.ReqnRoll.Demo.AzureFunctionsTesting { using System.Threading.Tasks; using Corvus.Testing.AzureFunctions; - using Corvus.Testing.AzureFunctions.SpecFlow; + using Corvus.Testing.AzureFunctions.ReqnRoll; using Microsoft.Extensions.Logging; - - using TechTalk.SpecFlow; + using Reqnroll; [Binding] public static class DemoFunctionPerFeatureHooks @@ -74,4 +73,4 @@ public static void StopFunction(FeatureContext featureContext) functionsController.TeardownFunctions(); } } -} +} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionPerScenarioHooks.cs b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionPerScenarioHooks.cs similarity index 95% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionPerScenarioHooks.cs rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionPerScenarioHooks.cs index ee8c3e79..a52cc7cb 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/DemoFunctionPerScenarioHooks.cs +++ b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/DemoFunctionPerScenarioHooks.cs @@ -2,14 +2,13 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Demo.AzureFunctionsTesting +namespace Corvus.Testing.ReqnRoll.Demo.AzureFunctionsTesting { using System.Threading.Tasks; using Corvus.Testing.AzureFunctions; - using Corvus.Testing.AzureFunctions.SpecFlow; - - using TechTalk.SpecFlow; + using Corvus.Testing.AzureFunctions.ReqnRoll; + using Reqnroll; [Binding] public static class DemoFunctionPerScenarioHooks @@ -65,4 +64,4 @@ public static void StopFunction(ScenarioContext scenarioContext) functionsController.TeardownFunctions(); } } -} +} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookInProcess.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookInProcess.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookInProcess.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookInProcess.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookIsolated.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookIsolated.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookIsolated.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookIsolated.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookWithAdditionalConfigurationInProcess.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookWithAdditionalConfigurationInProcess.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookWithAdditionalConfigurationInProcess.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookWithAdditionalConfigurationInProcess.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookWithAdditionalConfigurationIsolated.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookWithAdditionalConfigurationIsolated.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookWithAdditionalConfigurationIsolated.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerFeatureHookWithAdditionalConfigurationIsolated.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookInProcess.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookInProcess.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookInProcess.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookInProcess.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookIsolated.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookIsolated.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookIsolated.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookIsolated.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookWithAdditionalConfigurationInProcess.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookWithAdditionalConfigurationInProcess.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookWithAdditionalConfigurationInProcess.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookWithAdditionalConfigurationInProcess.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookWithAdditionalConfigurationIsolated.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookWithAdditionalConfigurationIsolated.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookWithAdditionalConfigurationIsolated.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingPerScenarioHookWithAdditionalConfigurationIsolated.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingStepBindings.feature b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingStepBindings.feature similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/ScenariosUsingStepBindings.feature rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/ScenariosUsingStepBindings.feature diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/StepBindings.cs b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/StepBindings.cs similarity index 78% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/StepBindings.cs rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/StepBindings.cs index 5ac99618..7b83dbd0 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/AzureFunctionsTesting/StepBindings.cs +++ b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/AzureFunctionsTesting/StepBindings.cs @@ -2,7 +2,7 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Demo.AzureFunctionsTesting +namespace Corvus.Testing.ReqnRoll.Demo.AzureFunctionsTesting { using System.Net; using System.Net.Http; @@ -11,9 +11,9 @@ namespace Corvus.Testing.SpecFlow.Demo.AzureFunctionsTesting using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NUnit.Framework; - using TechTalk.SpecFlow; using Corvus.Testing.AzureFunctions; - using Corvus.Testing.AzureFunctions.SpecFlow; + using Corvus.Testing.AzureFunctions.ReqnRoll; + using Reqnroll; [Binding] public class StepBindings @@ -34,7 +34,7 @@ public void GivenIHaveSetAdditionalConfigurationForFunctionsInstances(Table tabl { FunctionConfiguration functionConfiguration = FunctionsBindings.GetFunctionConfiguration(this.scenarioContext); - foreach (TableRow row in table.Rows) + foreach (DataTableRow row in table.Rows) { functionConfiguration.EnvironmentVariables.Add(row[0], row[1]); } @@ -56,7 +56,7 @@ public async Task WhenISendAPOSTRequestTo(string uri) public async Task WhenISendAPOSTRequestToWithDataInTheRequestBody(string uri, Table table) { var requestBody = new JObject(); - foreach (TableRow row in table.Rows) + foreach (DataTableRow row in table.Rows) { requestBody.Add(row[0], row[1]); } @@ -69,17 +69,17 @@ public async Task WhenISendAPOSTRequestToWithDataInTheRequestBody(string uri, Ta [Then("I receive a (.*) response code")] public void ThenIReceiveAResponseCode(int expectedCode) { - Assert.IsNotNull(this.lastHttpResponseMessage, "Could not verify last response status code as there is no last response"); - Assert.AreEqual((HttpStatusCode)expectedCode, this.lastHttpResponseMessage!.StatusCode); + Assert.That(this.lastHttpResponseMessage, Is.Not.Null, "Could not verify last response status code as there is no last response"); + Assert.That(this.lastHttpResponseMessage!.StatusCode, Is.EqualTo((HttpStatusCode)expectedCode)); } [Then("the response body contains the text '(.*)'")] public async Task ThenTheResponseBodyContainsTheText(string expectedContent) { - Assert.IsNotNull(this.lastHttpResponseMessage, "Could not verify last response status code as there is no last response"); + Assert.That(this.lastHttpResponseMessage, Is.Not.Null, "Could not verify last response status code as there is no last response"); string actualContent = await this.lastHttpResponseMessage!.Content.ReadAsStringAsync().ConfigureAwait(false); - Assert.AreEqual(expectedContent, actualContent); + Assert.That(expectedContent, Is.Not.Null, actualContent); } } } diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/Corvus.Testing.AzureFunctions.SpecFlow.Demo.csproj b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/Corvus.Testing.AzureFunctions.ReqnRoll.Demo.csproj similarity index 78% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/Corvus.Testing.AzureFunctions.SpecFlow.Demo.csproj rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/Corvus.Testing.AzureFunctions.ReqnRoll.Demo.csproj index 108a27b4..3d759571 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/Corvus.Testing.AzureFunctions.SpecFlow.Demo.csproj +++ b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.Demo/Corvus.Testing.AzureFunctions.ReqnRoll.Demo.csproj @@ -7,7 +7,7 @@ Copyright (c) Endjin Limited 2024. All rights reserved. latest + + + + + Apache-2.0 + A metapackage that encapsulates the required dependencies when using Corvus.Testing.AzureFunctions.ReqnRoll and Endjin's standard practises. Also simplifies the dependency management process when using tools like Dependabot. + metapackage + + MetaPackage.ReqnRoll.AzureFunctions.NUnit + true + false + false + + $(NoWarn);NU5128 + + + + + + contentfiles; analyzers + + + + contentfiles; analyzers + + + + + + + + + diff --git a/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.NUnit/DummyClass.cs b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.NUnit/DummyClass.cs new file mode 100644 index 00000000..70a03f9c --- /dev/null +++ b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll.NUnit/DummyClass.cs @@ -0,0 +1,6 @@ +namespace MetaPackage.ReqnRoll.AzureFunctions.NUnit +{ + public class DummyClass + { + } +} diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow/Corvus.Testing.AzureFunctions.SpecFlow.csproj b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll/Corvus.Testing.AzureFunctions.ReqnRoll.csproj similarity index 84% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow/Corvus.Testing.AzureFunctions.SpecFlow.csproj rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll/Corvus.Testing.AzureFunctions.ReqnRoll.csproj index 6b8f754b..e9597e12 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow/Corvus.Testing.AzureFunctions.SpecFlow.csproj +++ b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll/Corvus.Testing.AzureFunctions.ReqnRoll.csproj @@ -26,18 +26,16 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + - + - diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow/Corvus/Testing/AzureFunctions/SpecFlow/FunctionsBindings.cs b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll/Corvus/Testing/AzureFunctions/SpecFlow/FunctionsBindings.cs similarity index 93% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow/Corvus/Testing/AzureFunctions/SpecFlow/FunctionsBindings.cs rename to Solutions/Corvus.Testing.AzureFunctions.ReqnRoll/Corvus/Testing/AzureFunctions/SpecFlow/FunctionsBindings.cs index d9703220..086ddd95 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow/Corvus/Testing/AzureFunctions/SpecFlow/FunctionsBindings.cs +++ b/Solutions/Corvus.Testing.AzureFunctions.ReqnRoll/Corvus/Testing/AzureFunctions/SpecFlow/FunctionsBindings.cs @@ -2,16 +2,16 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.AzureFunctions.SpecFlow +namespace Corvus.Testing.AzureFunctions.ReqnRoll { using System.Threading.Tasks; using Corvus.Testing.AzureFunctions; - using Corvus.Testing.SpecFlow; + using Corvus.Testing.ReqnRoll; using Microsoft.Extensions.Logging; - using TechTalk.SpecFlow; + using Reqnroll; /// - /// Specflow bindings to support Azure Functions. + /// ReqnRoll bindings to support Azure Functions. /// [Binding] public class FunctionsBindings @@ -32,13 +32,13 @@ public FunctionsBindings(ScenarioContext scenarioContext) /// /// Retrieves the current functions controller from the supplied context. /// - /// The SpecFlow context to retrieve from. + /// The ReqnRoll context to retrieve from. /// The FunctionsController. /// /// If the controller hasn't already been added to the context, this method will create /// and add a new instance. /// - public static FunctionsController GetFunctionsController(SpecFlowContext context) + public static FunctionsController GetFunctionsController(ReqnrollContext context) { if (!context.TryGetValue(out ILogger logger)) { @@ -64,7 +64,7 @@ public static FunctionsController GetFunctionsController(SpecFlowContext context /// If a hasn't already been added to the context, /// this method will create and add a new instance. /// - public static FunctionConfiguration GetFunctionConfiguration(SpecFlowContext context) + public static FunctionConfiguration GetFunctionConfiguration(ReqnrollContext context) { if (!context.TryGetValue(out FunctionConfiguration value)) { diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/packages.lock.json b/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/packages.lock.json deleted file mode 100644 index d2b8392e..00000000 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/packages.lock.json +++ /dev/null @@ -1,1446 +0,0 @@ -{ - "version": 1, - "dependencies": { - "net8.0": { - "Endjin.RecommendedPractices.GitHub": { - "type": "Direct", - "requested": "[2.1.9, )", - "resolved": "2.1.9", - "contentHash": "gFCDZOu96fU+TfsAkZ7zLUzm8NX1/k3hWt7lbyf5HOn95+hYJQZ+g4bjs/Awx7JODsvNZpON8QlstZQVjPnRxg==", - "dependencies": { - "Endjin.RecommendedPractices": "2.1.9", - "Microsoft.SourceLink.GitHub": "1.1.1" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Roslynator.Analyzers": { - "type": "Direct", - "requested": "[4.9.0, )", - "resolved": "4.9.0", - "contentHash": "lFd4MmkllYR0dKlPWDokRwAvQnjNoPJztlncyzvnCG/wvGr5FzHAencngcJna/wkyDE0xIv7AnUccgCLsoIXTw==" - }, - "StyleCop.Analyzers": { - "type": "Direct", - "requested": "[1.2.0-beta.556, )", - "resolved": "1.2.0-beta.556", - "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", - "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.556" - } - }, - "BoDi": { - "type": "Transitive", - "resolved": "1.5.0", - "contentHash": "CzIPzdIAFSd2zuLxI+0K9s48Qv3HQDbWiApn9h96j284rHs2bSPrn/PMca3mi4q3xLSEqOp+GUJ6+mXDD9prKg==" - }, - "coverlet.msbuild": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "cUKI50VSVBqDQDFIdBnjN0Jk5JYhjtD0geP2BZZv71/ZrKORJXcLRswFsojI+cHdV+rFUL2XDJEpuhK3x1YqLA==" - }, - "Endjin.RecommendedPractices": { - "type": "Transitive", - "resolved": "2.1.9", - "contentHash": "LzppiBrlPBj5TmVsQVxWoGv/MWfq+sAz0qkdB/ozUDS2hq31Pu8j2Cvk+BVlhvrb9eDUQxxHaLL4gbE7LiSAfQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "1.1.1" - } - }, - "Gherkin": { - "type": "Transitive", - "resolved": "19.0.3", - "contentHash": "kq9feqMojMj9aABrHb/ABEPaH2Y4dSclseSahAru6qxCeqVQNLLTgw/6vZMauzI1yBUL2fz03ub5yEd5btLfvg==" - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" - }, - "Microsoft.CodeCoverage": { - "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==" - }, - "Microsoft.DotNet.InternalAbstractions": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "AAguUq7YyKk3yDWPoWA8DrLZvURxB/LrDdTn1h5lmPeznkFUpfC3p459w5mQYQE0qpquf/CkSQZ0etiV5vRHFA==", - "dependencies": { - "System.AppContext": "4.1.0", - "System.Collections": "4.0.11", - "System.IO": "4.1.0", - "System.IO.FileSystem": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Runtime.InteropServices": "4.1.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" - } - }, - "Microsoft.DotNet.PlatformAbstractions": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "rF92Gp5L2asYrFNf0cKNBxzzGLh1krHuj6TRDk9wdjN2qdvJLaNYOn1s9oYkMlptYX436KiEFqxhLB+I5veXvQ==", - "dependencies": { - "System.AppContext": "4.1.0", - "System.Collections": "4.0.11", - "System.IO": "4.1.0", - "System.IO.FileSystem": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Runtime.InteropServices": "4.1.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" - }, - "Microsoft.Extensions.DependencyModel": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "Z3o19EnheuegmvgpCzwoSlnCWxYA6qIUhvKJ7ifKHHvU7U+oYR/gliLiL3LVYOOeGMEEzkpJ5W67sOcXizGtlw==", - "dependencies": { - "Microsoft.DotNet.PlatformAbstractions": "1.0.3", - "Newtonsoft.Json": "9.0.1", - "System.Diagnostics.Debug": "4.0.11", - "System.Dynamic.Runtime": "4.0.11", - "System.Linq": "4.1.0" - } - }, - "Microsoft.Extensions.Logging": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" - }, - "Microsoft.Extensions.Logging.Configuration": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ZDskjagmBAbv+K8rYW9VhjPplhbOE63xUD0DiuydZJwt15dRyoqicYklLd86zzeintUc7AptDkHn+YhhYkYo8A==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0" - } - }, - "Microsoft.Extensions.Logging.Console": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "gsqKzOEdsvq28QiXFxagmn1oRB9GeI5GgYCkoybZtQA0IUb7QPwf1WmN3AwJeNIsadTvIFQCiVK0OVIgKfOBGg==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Configuration": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Text.Json": "6.0.0" - } - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Options.ConfigurationExtensions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" - }, - "Microsoft.NET.Test.Sdk": { - "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==", - "dependencies": { - "Microsoft.CodeCoverage": "17.8.0", - "Microsoft.TestPlatform.TestHost": "17.8.0" - } - }, - "Microsoft.NETCore.Platforms": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==" - }, - "Microsoft.NETCore.Targets": { - "type": "Transitive", - "resolved": "1.1.3", - "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "1.1.1", - "Microsoft.SourceLink.Common": "1.1.1" - } - }, - "Microsoft.TestPlatform.ObjectModel": { - "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==", - "dependencies": { - "NuGet.Frameworks": "6.5.0", - "System.Reflection.Metadata": "1.6.0" - } - }, - "Microsoft.TestPlatform.TestHost": { - "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==", - "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.8.0", - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==", - "dependencies": { - "System.Security.AccessControl": "4.7.0", - "System.Security.Principal.Windows": "4.7.0" - } - }, - "NETStandard.Library": { - "type": "Transitive", - "resolved": "2.0.0", - "contentHash": "7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.1", - "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" - }, - "NuGet.Frameworks": { - "type": "Transitive", - "resolved": "6.5.0", - "contentHash": "QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==" - }, - "NUnit": { - "type": "Transitive", - "resolved": "3.14.0", - "contentHash": "R7iPwD7kbOaP3o2zldWJbWeMQAvDKD0uld27QvA3PAALl1unl7x0v2J7eGiJOYjimV/BuGT4VJmr45RjS7z4LA==", - "dependencies": { - "NETStandard.Library": "2.0.0" - } - }, - "NUnit.Console": { - "type": "Transitive", - "resolved": "3.12.0", - "contentHash": "9KXFnViEIKQjz4vqiYFpLV9sntfHxixQomLCJzDMXC6WDo9DP2GhDQiBND6we6MRStMSNzoAWgourbLKwo7utQ==", - "dependencies": { - "NUnit.ConsoleRunner": "3.12.0", - "NUnit.Extension.NUnitProjectLoader": "3.6.0", - "NUnit.Extension.NUnitV2Driver": "3.8.0", - "NUnit.Extension.NUnitV2ResultWriter": "3.6.0", - "NUnit.Extension.TeamCityEventListener": "1.0.7", - "NUnit.Extension.VSProjectLoader": "3.8.0" - } - }, - "NUnit.ConsoleRunner": { - "type": "Transitive", - "resolved": "3.12.0", - "contentHash": "ZUtI8leU9ozCjLy4ZZ2X6ClU0hxfQtb95VOdmMA4SxIUvf62rIPxoHXS+jghvo5QxgRihGGcEp8xT3vCfgDdsA==" - }, - "NUnit.Extension.NUnitProjectLoader": { - "type": "Transitive", - "resolved": "3.6.0", - "contentHash": "ev2+dCJShMNIATkYNm/vHEuieBfbismr9DcUfBvafJZf5vNyugXPuMXO/MaOFcJaoW9j6/zjMmXKG7R5umWzXA==" - }, - "NUnit.Extension.NUnitV2Driver": { - "type": "Transitive", - "resolved": "3.8.0", - "contentHash": "l6MgFJPTnrlDaMXWfbUZ82h1uvtj0C1ExPpqm6HrYOBa5Z4MBwmFLqj85rnv9JMhu/Ju7jQB/FIaMbfoXInI2A==" - }, - "NUnit.Extension.NUnitV2ResultWriter": { - "type": "Transitive", - "resolved": "3.6.0", - "contentHash": "P/Nc+wgFRe3dT59/VjhiIT0SWfLMbb/Vc9AtBU3L71VOCs8zQnuNjCOEFLQL/Mq6XSaZeB2Sug9tUgTfCnQk9w==" - }, - "NUnit.Extension.TeamCityEventListener": { - "type": "Transitive", - "resolved": "1.0.7", - "contentHash": "bw+ZwHsUmxqb9leo91qLEF7ggtdpawY2V6wNqHI6+ATa2SHxHxoxiV5UV07ZWDRpf/qlQJELNlZu7wIB3+w2qQ==" - }, - "NUnit.Extension.VSProjectLoader": { - "type": "Transitive", - "resolved": "3.8.0", - "contentHash": "CIScV9a7+wUu6Ylb+WO0q/WGWQVoB05TUj3XZHa1CO+2BInDdfIVkqtlrSguhy6D/AGIMaLVrCZpQkQ2m0bbzQ==" - }, - "NUnit3TestAdapter": { - "type": "Transitive", - "resolved": "3.17.0", - "contentHash": "I9MNvK+GM2yXrHPitwZkAZKU9sYI2OO/8wKC+VuBD7V3z+ySQ1pSopX/urr0ooedI8/TIcajYPRO4vGRr7AM8A==", - "dependencies": { - "Microsoft.DotNet.InternalAbstractions": "1.0.0", - "System.ComponentModel.EventBasedAsync": "4.3.0", - "System.ComponentModel.TypeConverter": "4.3.0", - "System.Diagnostics.Process": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Xml.XPath.XmlDocument": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" - }, - "runtime.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" - }, - "SpecFlow": { - "type": "Transitive", - "resolved": "3.9.74", - "contentHash": "n6kcg9ZeQWxqJFoT23SsFT89U1QQNwvcN9pAX5alB6ZPr6K0p5D5nGIJ1PZsSaFaRFutiwQ+DicmxBCPAZVYIA==", - "dependencies": { - "BoDi": "1.5.0", - "Gherkin": "19.0.3", - "Microsoft.Extensions.DependencyModel": "1.0.3", - "SpecFlow.Internal.Json": "1.0.8", - "System.Configuration.ConfigurationManager": "4.5.0", - "System.Net.Http": "4.3.4", - "System.Runtime.Loader": "4.3.0" - } - }, - "SpecFlow.Internal.Json": { - "type": "Transitive", - "resolved": "1.0.8", - "contentHash": "lVCC/Rie7N5rFoc7YxPS0nneLfsWSTIMMlkndwxhaD8MxBp3Bsv1HeiVjVwXCjWaQeoqZcvIy52fF5Xit00ZLw==" - }, - "SpecFlow.NUnit": { - "type": "Transitive", - "resolved": "3.9.74", - "contentHash": "nMPLztTT5IZDMnvNCUxklqaM+agn4kjuNy/qAcYQQOxau2G1MF73UxhL9OXjJQaEuPuyT8gJvXudOYCFZWztxA==", - "dependencies": { - "NUnit": "3.13.1", - "SpecFlow": "[3.9.74]", - "SpecFlow.Tools.MsBuild.Generation": "[3.9.74]" - } - }, - "SpecFlow.NUnit.Runners": { - "type": "Transitive", - "resolved": "3.9.74", - "contentHash": "m595x3GM7CYco+KsXo96irQ2jcjC6+1+41bKdmnTdl3RAvnC4jUZ9f5B5FhGuaVK4+j4GwWi8MZtGMrT//zHLA==", - "dependencies": { - "NUnit.Console": "3.12.0", - "NUnit3TestAdapter": "3.17.0", - "SpecFlow.NUnit": "[3.9.74]" - } - }, - "SpecFlow.Tools.MsBuild.Generation": { - "type": "Transitive", - "resolved": "3.9.74", - "contentHash": "I/9OvmKOohJqIUNJ0xGYJCWfL6WKDaes8OoOAD/2yhGX+tzC5ofs9yqkP9Cu/xfnIx+11IR3pZs7YhBhGAcgWQ==", - "dependencies": { - "SpecFlow": "[3.9.74]" - } - }, - "StyleCop.Analyzers.Unstable": { - "type": "Transitive", - "resolved": "1.2.0.556", - "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" - }, - "System.AppContext": { - "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==", - "dependencies": { - "System.Runtime": "4.1.0" - } - }, - "System.CodeDom": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "Hs9pw/kmvH3lXaZ1LFKj3pLQsiGfj2xo3sxSzwiLlRL6UcMZUTeCfoJ9Udalvn3yq5dLlPEZzYegrTQ1/LhPOQ==" - }, - "System.Collections": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Collections.NonGeneric": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Collections.Specialized": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", - "dependencies": { - "System.Collections.NonGeneric": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.ComponentModel": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.ComponentModel.EventBasedAsync": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "fCFl8f0XdwA/BuoNrVBB5D0Y48/hv2J+w4xSDdXQitXZsR6UCSOrDVE7TCUraY802ENwcHUnUCv4En8CupDU1g==", - "dependencies": { - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.ComponentModel.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", - "dependencies": { - "System.ComponentModel": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.ComponentModel.TypeConverter": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Collections.NonGeneric": "4.3.0", - "System.Collections.Specialized": "4.3.0", - "System.ComponentModel": "4.3.0", - "System.ComponentModel.Primitives": "4.3.0", - "System.Globalization": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "4.5.0", - "System.Security.Permissions": "4.5.0" - } - }, - "System.Diagnostics.Debug": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Diagnostics.Process": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "Microsoft.Win32.Registry": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Threading.ThreadPool": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Diagnostics.Tracing": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Dynamic.Runtime": { - "type": "Transitive", - "resolved": "4.0.11", - "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Globalization": "4.0.11", - "System.Linq": "4.1.0", - "System.Linq.Expressions": "4.1.0", - "System.ObjectModel": "4.0.12", - "System.Reflection": "4.1.0", - "System.Reflection.Emit": "4.0.1", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Threading": "4.0.11" - } - }, - "System.Globalization": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Linq": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Linq.Expressions": { - "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Globalization": "4.0.11", - "System.IO": "4.1.0", - "System.Linq": "4.1.0", - "System.ObjectModel": "4.0.12", - "System.Reflection": "4.1.0", - "System.Reflection.Emit": "4.0.1", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Emit.Lightweight": "4.0.1", - "System.Reflection.Extensions": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Threading": "4.0.11" - } - }, - "System.Management": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "IY+uuGhgzWiCg21i8IvQeY/Z7m1tX8VuPF+ludfn7iTCaccTtJo5HkjZbBEL8kbBubKhAKKtNXr7uMtmAc28Pw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "3.1.0", - "Microsoft.Win32.Registry": "4.7.0", - "System.CodeDom": "4.7.0" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "System.Net.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.ObjectModel": { - "type": "Transitive", - "resolved": "4.0.12", - "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Threading": "4.0.11" - } - }, - "System.Reflection": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", - "dependencies": { - "System.IO": "4.1.0", - "System.Reflection": "4.1.0", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Emit.ILGeneration": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", - "dependencies": { - "System.Reflection": "4.1.0", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Emit.Lightweight": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", - "dependencies": { - "System.Reflection": "4.1.0", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Metadata": { - "type": "Transitive", - "resolved": "1.6.0", - "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" - }, - "System.Reflection.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Resources.ResourceManager": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime": { - "type": "Transitive", - "resolved": "4.3.1", - "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "Microsoft.NETCore.Targets": "1.1.3" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Runtime.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.InteropServices.RuntimeInformation": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Runtime.Loader": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==", - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Numerics": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "3.1.0", - "System.Security.Principal.Windows": "4.7.0" - } - }, - "System.Security.Cryptography.Algorithms": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Security.Cryptography.Csp": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==" - }, - "System.Security.Cryptography.X509Certificates": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", - "dependencies": { - "System.Security.AccessControl": "4.5.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==" - }, - "System.Text.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encoding.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0" - } - }, - "System.Text.RegularExpressions": { - "type": "Transitive", - "resolved": "4.3.1", - "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", - "dependencies": { - "System.Runtime": "4.3.1" - } - }, - "System.Threading": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Tasks": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Thread": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Threading.ThreadPool": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Xml.ReaderWriter": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" - } - }, - "System.Xml.XmlDocument": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "System.Xml.XPath": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "System.Xml.XPath.XmlDocument": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XPath": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - } - }, - "corvus.testing.azurefunctions": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[6.0.4, )", - "System.Management": "[4.7.*, )" - } - }, - "corvus.testing.azurefunctions.specflow": { - "type": "Project", - "dependencies": { - "Corvus.Testing.AzureFunctions": "[1.0.0, )", - "Corvus.Testing.SpecFlow": "[1.0.0, )", - "Microsoft.Extensions.Logging.Console": "[6.0.0, )", - "NUnit": "[3.14.0, )", - "SpecFlow": "[3.9.74, )" - } - }, - "corvus.testing.azurefunctions.specflow.nunit": { - "type": "Project", - "dependencies": { - "Corvus.Testing.AzureFunctions.SpecFlow": "[1.0.0, )", - "Microsoft.NET.Test.Sdk": "[17.8.0, )", - "SpecFlow.NUnit.Runners": "[3.9.74, )", - "System.Text.RegularExpressions": "[4.3.1, )", - "coverlet.msbuild": "[6.0.0, )" - } - }, - "corvus.testing.specflow": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "[6.0.0, )", - "Microsoft.Extensions.DependencyInjection": "[6.0.1, )", - "Microsoft.Extensions.DependencyInjection.Abstractions": "[6.0.0, )", - "NUnit": "[3.14.0, )", - "SpecFlow": "[3.9.74, )", - "System.Management": "[4.7.*, )" - } - } - } - } -} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/specflow.json b/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/specflow.json deleted file mode 100644 index c24d1537..00000000 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/specflow.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "stepAssemblies": [ - { "assembly": "Corvus.Testing.SpecFlow" }, - { "assembly": "Corvus.Testing.AzureFunctions.SpecFlow" } - ] -} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.NUnit/Corvus.Testing.AzureFunctions.SpecFlow.NUnit.csproj b/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.NUnit/Corvus.Testing.AzureFunctions.SpecFlow.NUnit.csproj deleted file mode 100644 index f483f9bf..00000000 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.NUnit/Corvus.Testing.AzureFunctions.SpecFlow.NUnit.csproj +++ /dev/null @@ -1,74 +0,0 @@ - - - - net6.0 - Copyright (c) Endjin Limited 2024. All rights reserved. - - - - false - false - - - - - - - - Apache-2.0 - A metapackage that encapsulates the required dependencies when using Corvus.Testing.AzureFunctions.SpecFlow and Endjin's standard practises. Also simplifies the dependency management process when using tools like Dependabot. - metapackage - - MetaPackage.SpecFlow.AzureFunctions.NUnit - true - false - false - - $(NoWarn);NU5128 - - - - - - - contentfiles; analyzers - - - - contentfiles; analyzers - - - - contentfiles; analyzers - - - - - - - - - - - diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.NUnit/DummyClass.cs b/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.NUnit/DummyClass.cs deleted file mode 100644 index 8770e8c2..00000000 --- a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.NUnit/DummyClass.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace MetaPackage.SpecFlow.AzureFunctions.NUnit -{ - public class DummyClass - { - } -} diff --git a/Solutions/Corvus.Testing.AzureFunctions.Xunit.Demo/Corvus.Testing.AzureFunctions.Xunit.Demo.csproj b/Solutions/Corvus.Testing.AzureFunctions.Xunit.Demo/Corvus.Testing.AzureFunctions.Xunit.Demo.csproj index 88b6b558..0b62de94 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.Xunit.Demo/Corvus.Testing.AzureFunctions.Xunit.Demo.csproj +++ b/Solutions/Corvus.Testing.AzureFunctions.Xunit.Demo/Corvus.Testing.AzureFunctions.Xunit.Demo.csproj @@ -40,17 +40,17 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Solutions/Corvus.Testing.AzureFunctions.Xunit.Demo/packages.lock.json b/Solutions/Corvus.Testing.AzureFunctions.Xunit.Demo/packages.lock.json index c670296b..15173eeb 100644 --- a/Solutions/Corvus.Testing.AzureFunctions.Xunit.Demo/packages.lock.json +++ b/Solutions/Corvus.Testing.AzureFunctions.Xunit.Demo/packages.lock.json @@ -4,60 +4,52 @@ "net8.0": { "Endjin.RecommendedPractices.GitHub": { "type": "Direct", - "requested": "[2.1.9, )", - "resolved": "2.1.9", - "contentHash": "gFCDZOu96fU+TfsAkZ7zLUzm8NX1/k3hWt7lbyf5HOn95+hYJQZ+g4bjs/Awx7JODsvNZpON8QlstZQVjPnRxg==", + "requested": "[2.1.13, )", + "resolved": "2.1.13", + "contentHash": "ZefZtlE4NE4ajKMzUtdeb9+SSWv95gutAykQmTEuj2Ln13/1etgxha9QFhrALHr+ewvUH7M3X1qh9HBmWMLRFg==", "dependencies": { - "Endjin.RecommendedPractices": "2.1.9", + "Endjin.RecommendedPractices": "2.1.13", "Microsoft.SourceLink.GitHub": "1.1.1" } }, "Microsoft.Extensions.Logging": { "type": "Direct", - "requested": "[6.0.0, )", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[17.8.0, )", - "resolved": "17.8.0", - "contentHash": "BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==", + "requested": "[17.10.0, )", + "resolved": "17.10.0", + "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", "dependencies": { - "Microsoft.CodeCoverage": "17.8.0", - "Microsoft.TestPlatform.TestHost": "17.8.0" + "Microsoft.CodeCoverage": "17.10.0", + "Microsoft.TestPlatform.TestHost": "17.10.0" } }, - "Roslynator.Analyzers": { - "type": "Direct", - "requested": "[4.9.0, )", - "resolved": "4.9.0", - "contentHash": "lFd4MmkllYR0dKlPWDokRwAvQnjNoPJztlncyzvnCG/wvGr5FzHAencngcJna/wkyDE0xIv7AnUccgCLsoIXTw==" - }, "Serilog.Extensions.Logging": { "type": "Direct", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "IWfem7wfrFbB3iw1OikqPFNPEzfayvDuN4WP7Ue1AVFskalMByeWk3QbtUXQR34SBkv1EbZ3AySHda/ErDgpcg==", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "YEAMWu1UnWgf1c1KP85l1SgXGfiVo0Rz6x08pCiPOIBt2Qe18tcZLvdBUuV5o1QHvrs8FAry9wTIhgBRtjIlEg==", "dependencies": { - "Microsoft.Extensions.Logging": "2.0.0", - "Serilog": "2.9.0" + "Microsoft.Extensions.Logging": "8.0.0", + "Serilog": "3.1.1" } }, "Serilog.Sinks.File": { "type": "Direct", - "requested": "[5.0.0, )", - "resolved": "5.0.0", - "contentHash": "uwV5hdhWPwUH1szhO8PJpFiahqXmzPzJT/sOijH/kFgUx+cyoDTMM8MHD0adw9+Iem6itoibbUXHYslzXsLEAg==", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "lxjg89Y8gJMmFxVkbZ+qDgjl+T4yC5F7WSLTvA+5q0R04tfKVLRL/EHpYoJ/MEQd2EeCKDuylBIVnAYMotmh2A==", "dependencies": { - "Serilog": "2.10.0" + "Serilog": "4.0.0" } }, "Serilog.Sinks.XUnit": { @@ -72,36 +64,27 @@ "xunit.extensibility.execution": "2.4.2" } }, - "StyleCop.Analyzers": { - "type": "Direct", - "requested": "[1.2.0-beta.556, )", - "resolved": "1.2.0-beta.556", - "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", - "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.556" - } - }, "xunit": { "type": "Direct", - "requested": "[2.6.6, )", - "resolved": "2.6.6", - "contentHash": "MAbOOMtZIKyn2lrAmMlvhX0BhDOX/smyrTB+8WTXnSKkrmTGBS2fm8g1PZtHBPj91Dc5DJA7fY+/81TJ/yUFZw==", + "requested": "[2.9.0, )", + "resolved": "2.9.0", + "contentHash": "PtU3rZ0ThdmdJqTbK7GkgFf6iBaCR6Q0uvJHznID+XEYk2v6O/b7sRxqnbi3B2gRDXxjTqMkVNayzwsqsFUxRw==", "dependencies": { - "xunit.analyzers": "1.10.0", - "xunit.assert": "2.6.6", - "xunit.core": "[2.6.6]" + "xunit.analyzers": "1.15.0", + "xunit.assert": "2.9.0", + "xunit.core": "[2.9.0]" } }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.5.6, )", - "resolved": "2.5.6", - "contentHash": "CW6uhMXNaQQNMSG1IWhHkBT+V5eqHqn7MP0zfNMhU9wS/sgKX7FGL3rzoaUgt26wkY3bpf7pDVw3IjXhwfiP4w==" + "requested": "[2.8.2, )", + "resolved": "2.8.2", + "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==" }, "Endjin.RecommendedPractices": { "type": "Transitive", - "resolved": "2.1.9", - "contentHash": "LzppiBrlPBj5TmVsQVxWoGv/MWfq+sAz0qkdB/ozUDS2hq31Pu8j2Cvk+BVlhvrb9eDUQxxHaLL4gbE7LiSAfQ==", + "resolved": "2.1.13", + "contentHash": "ZXMVKFaBJYaAfRKS/Uv8kUANDsEj2L9H5L4XVXyZULI0UANqZ/ROVTpOqulkukf3UFc/jnnVG2EfByynTiztDg==", "dependencies": { "Microsoft.Build.Tasks.Git": "1.1.1" } @@ -113,44 +96,43 @@ }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==" + "resolved": "17.10.0", + "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==", + "resolved": "8.0.0", + "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.1", + "contentHash": "fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==" }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.1", + "contentHash": "RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.0", + "contentHash": "JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", @@ -173,19 +155,18 @@ }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==", + "resolved": "17.10.0", + "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", "dependencies": { - "NuGet.Frameworks": "6.5.0", "System.Reflection.Metadata": "1.6.0" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==", + "resolved": "17.10.0", + "contentHash": "LWpMdfqhHvcUkeMCvNYJO8QlPLlYz9XPPb+ZbaXIKhdmjAV0wqTSrTiW5FLaf7RRZT50AQADDOYMOe0HxDxNgA==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.8.0", + "Microsoft.TestPlatform.ObjectModel": "17.10.0", "Newtonsoft.Json": "13.0.1" } }, @@ -203,34 +184,16 @@ "resolved": "13.0.1", "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" }, - "NuGet.Frameworks": { - "type": "Transitive", - "resolved": "6.5.0", - "contentHash": "QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==" - }, "Serilog": { "type": "Transitive", - "resolved": "2.12.0", - "contentHash": "xaiJLIdu6rYMKfQMYUZgTy8YK7SMZjB4Yk50C/u//Z4OsvxkUfSPJy4nknfvwAC34yr13q7kcyh4grbwhSxyZg==" - }, - "StyleCop.Analyzers.Unstable": { - "type": "Transitive", - "resolved": "1.2.0.556", - "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" + "resolved": "4.0.0", + "contentHash": "2jDkUrSh5EofOp7Lx5Zgy0EB+7hXjjxE2ktTb1WVQmU00lDACR2TdROGKU0K1pDTBSJBN1PqgYpgOZF8mL7NJw==" }, "System.CodeDom": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "Hs9pw/kmvH3lXaZ1LFKj3pLQsiGfj2xo3sxSzwiLlRL6UcMZUTeCfoJ9Udalvn3yq5dLlPEZzYegrTQ1/LhPOQ==" }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "System.Management": { "type": "Transitive", "resolved": "4.7.0", @@ -246,11 +209,6 @@ "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.7.0", @@ -272,43 +230,43 @@ }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.10.0", - "contentHash": "Lw8CiDy5NaAWcO6keqD7iZHYUTIuCOcoFrUHw5Sv84ITZ9gFeDybdkVdH0Y2maSlP9fUjtENyiykT44zwFQIHA==" + "resolved": "1.15.0", + "contentHash": "s+M8K/Rtlgr6CmD7AYQKrNTvT5sh0l0ZKDoZ3Z/ExhlIwfV9mGAMR4f7KqIB7SSK7ZOhqDTgTUMYPmKfmvWUWQ==" }, "xunit.assert": { "type": "Transitive", - "resolved": "2.6.6", - "contentHash": "74Cm9lAZOk5TKCz2MvCBCByKsS23yryOKDIMxH3XRDHXmfGM02jKZWzRA7g4mGB41GnBnv/pcWP3vUYkrCtEcg==" + "resolved": "2.9.0", + "contentHash": "Z/1pyia//860wEYTKn6Q5dmgikJdRjgE4t5AoxJkK8oTmidzPLEPG574kmm7LFkMLbH6Frwmgb750kcyR+hwoA==" }, "xunit.core": { "type": "Transitive", - "resolved": "2.6.6", - "contentHash": "tqi7RfaNBqM7t8zx6QHryuBPzmotsZXKGaWnopQG2Ez5UV7JoWuyoNdT6gLpDIcKdGYey6YTXJdSr9IXDMKwjg==", + "resolved": "2.9.0", + "contentHash": "uRaop9tZsZMCaUS4AfbSPGYHtvywWnm8XXFNUqII7ShWyDBgdchY6gyDNgO4AK1Lv/1NNW61Zq63CsDV6oH6Jg==", "dependencies": { - "xunit.extensibility.core": "[2.6.6]", - "xunit.extensibility.execution": "[2.6.6]" + "xunit.extensibility.core": "[2.9.0]", + "xunit.extensibility.execution": "[2.9.0]" } }, "xunit.extensibility.core": { "type": "Transitive", - "resolved": "2.6.6", - "contentHash": "ty6VKByzbx4Toj4/VGJLEnlmOawqZiMv0in/tLju+ftA+lbWuAWDERM+E52Jfhj4ZYHrAYVa14KHK5T+dq0XxA==", + "resolved": "2.9.0", + "contentHash": "zjDEUSxsr6UNij4gIwCgMqQox+oLDPRZ+mubwWLci+SssPBFQD1xeRR4SvgBuXqbE0QXCJ/STVTp+lxiB5NLVA==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", - "resolved": "2.6.6", - "contentHash": "UDjIVGj2TepVKN3n32/qXIdb3U6STwTb9L6YEwoQO2A8OxiJS5QAVv2l1aT6tDwwv/9WBmm8Khh/LyHALipcng==", + "resolved": "2.9.0", + "contentHash": "5ZTQZvmPLlBw6QzCOwM0KnMsZw6eGjbmC176QHZlcbQoMhGIeGcYzYwn5w9yXxf+4phtplMuVqTpTbFDQh2bqQ==", "dependencies": { - "xunit.extensibility.core": "[2.6.6]" + "xunit.extensibility.core": "[2.9.0]" } }, "corvus.testing.azurefunctions": { "type": "Project", "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "[6.0.4, )", + "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", "System.Management": "[4.7.*, )" } } diff --git a/Solutions/Corvus.Testing.AzureFunctions/Corvus.Testing.AzureFunctions.csproj b/Solutions/Corvus.Testing.AzureFunctions/Corvus.Testing.AzureFunctions.csproj index 43424cba..6d3a3f0a 100644 --- a/Solutions/Corvus.Testing.AzureFunctions/Corvus.Testing.AzureFunctions.csproj +++ b/Solutions/Corvus.Testing.AzureFunctions/Corvus.Testing.AzureFunctions.csproj @@ -23,11 +23,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Solutions/Corvus.Testing.AzureFunctions/Corvus/Testing/AzureFunctions/FunctionsController.cs b/Solutions/Corvus.Testing.AzureFunctions/Corvus/Testing/AzureFunctions/FunctionsController.cs index d5c021c0..6bb50e3c 100644 --- a/Solutions/Corvus.Testing.AzureFunctions/Corvus/Testing/AzureFunctions/FunctionsController.cs +++ b/Solutions/Corvus.Testing.AzureFunctions/Corvus/Testing/AzureFunctions/FunctionsController.cs @@ -241,6 +241,25 @@ private static void KillProcessAndChildren(int pid) proc.Kill(entireProcessTree: true); } } + catch (AggregateException ex) + { + Console.WriteLine("Caught an AggregateException: " + ex.Message); + foreach (var innerEx in ex.InnerExceptions) + { + if (innerEx is Win32Exception win32Ex) + { + if (win32Ex.ErrorCode == E_ACCESSDENIED) + { + Console.Error.WriteLine($"Access denied when trying to kill process id {pid}, '{proc.ProcessName}'"); + failedDueToAccessDenied = true; + } + } + else + { + throw; + } + } + } catch (Win32Exception x) when (x.ErrorCode == E_ACCESSDENIED) { diff --git a/Solutions/Corvus.Testing.SpecFlow.NUnit/Corvus.Testing.SpecFlow.NUnit.csproj b/Solutions/Corvus.Testing.ReqnRoll.NUnit/Corvus.Testing.ReqnRoll.NUnit.csproj similarity index 69% rename from Solutions/Corvus.Testing.SpecFlow.NUnit/Corvus.Testing.SpecFlow.NUnit.csproj rename to Solutions/Corvus.Testing.ReqnRoll.NUnit/Corvus.Testing.ReqnRoll.NUnit.csproj index f3c2f179..3cff1590 100644 --- a/Solutions/Corvus.Testing.SpecFlow.NUnit/Corvus.Testing.SpecFlow.NUnit.csproj +++ b/Solutions/Corvus.Testing.ReqnRoll.NUnit/Corvus.Testing.ReqnRoll.NUnit.csproj @@ -16,10 +16,10 @@ Apache-2.0 - A metapackage that encapsulates the required dependencies when using Corvus.Testing.SpecFlow and Endjin's standard practises. Also simplifies the dependency management process when using tools like Dependabot. + A metapackage that encapsulates the required dependencies when using Corvus.Testing.ReqnRoll and Endjin's standard practises. Also simplifies the dependency management process when using tools like Dependabot. metapackage - MetaPackage.SpecFlow.NUnit + MetaPackage.ReqnRoll.NUnit true false false @@ -28,23 +28,18 @@ - - - - contentfiles; analyzers - - + contentfiles; analyzers - + contentfiles; analyzers - + diff --git a/Solutions/Corvus.Testing.SpecFlow.NUnit/DummyClass.cs b/Solutions/Corvus.Testing.ReqnRoll.NUnit/DummyClass.cs similarity index 52% rename from Solutions/Corvus.Testing.SpecFlow.NUnit/DummyClass.cs rename to Solutions/Corvus.Testing.ReqnRoll.NUnit/DummyClass.cs index 542f295b..5ea742e4 100644 --- a/Solutions/Corvus.Testing.SpecFlow.NUnit/DummyClass.cs +++ b/Solutions/Corvus.Testing.ReqnRoll.NUnit/DummyClass.cs @@ -1,4 +1,4 @@ -namespace MetaPackage.SpecFlow.NUnit +namespace MetaPackage.ReqnRoll.NUnit { public class DummyClass { diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/ContainerTestContext.cs b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/ContainerTestContext.cs similarity index 91% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/ContainerTestContext.cs rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/ContainerTestContext.cs index be98bc6f..26178588 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/ContainerTestContext.cs +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/ContainerTestContext.cs @@ -2,14 +2,14 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Specs.Containers +namespace Corvus.Testing.ReqnRoll.Specs.Containers { using System; using System.Collections.Generic; using System.Globalization; using Microsoft.Extensions.DependencyInjection; using NUnit.Framework; - using TechTalk.SpecFlow; + using Reqnroll; /// /// Manages the various objects required by the per-Feature and per-Scenario container tests. @@ -72,10 +72,9 @@ public void GetServiceFromContainerDuringPhase(Phase phase) public void VerifyServicesFromPhase(Phase phase) { - Assert.IsTrue(this.ExtractedServices.TryGetValue(phase, out RootService? root), $"No services obtained for phase {phase}"); - - Assert.AreSame(this.CultureOriginallySuppliedToContainer, root!.CultureInfo, "CultureInfo"); - Assert.AreSame(this.ComparerOriginallySuppliedToContainer, root.Comparer, "Comparer"); + Assert.That(this.ExtractedServices.TryGetValue(phase, out RootService? root), $"No services obtained for phase {phase}"); + Assert.That(root!.CultureInfo, Is.SameAs(this.CultureOriginallySuppliedToContainer), "CultureInfo"); + Assert.That(root!.Comparer, Is.SameAs(this.ComparerOriginallySuppliedToContainer), "Comparer"); } private protected abstract void ConfigureServices(Action services); diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/NoContainer.feature b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/NoContainer.feature similarity index 100% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/NoContainer.feature rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/NoContainer.feature diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/NoContainerSteps.cs b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/NoContainerSteps.cs similarity index 83% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/NoContainerSteps.cs rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/NoContainerSteps.cs index c4c5eed6..099a3220 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/NoContainerSteps.cs +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/NoContainerSteps.cs @@ -2,12 +2,12 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Specs.Containers +namespace Corvus.Testing.ReqnRoll.Specs.Containers { using System; - using Corvus.Testing.SpecFlow; + using Corvus.Testing.ReqnRoll; using NUnit.Framework; - using TechTalk.SpecFlow; + using Reqnroll; [Binding] public class NoContainerSteps @@ -36,7 +36,7 @@ public void WhenICallContainerBindings_GetServiceProviderInsideATryBlock() [Then("it should throw an InvalidOperationException")] public void ThenItShouldThrowAnInvalidOperationException() { - Assert.IsInstanceOf(this.exceptionFromGetServiceProvider); + Assert.That(this.exceptionFromGetServiceProvider, Is.InstanceOf()); } } } diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerFeatureContainer.feature b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerFeatureContainer.feature similarity index 94% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerFeatureContainer.feature rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerFeatureContainer.feature index 3a1647a6..9d8cfdd8 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerFeatureContainer.feature +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerFeatureContainer.feature @@ -1,5 +1,5 @@ -# These tests are a bit meta, because they test that the library enables us to write SpecFlow specs in the way we want, -# and they do so through the medium of SpecFlow specs. In some cases this is straightforward, but it makes certain +# These tests are a bit meta, because they test that the library enables us to write ReqnRoll specs in the way we want, +# and they do so through the medium of ReqnRoll specs. In some cases this is straightforward, but it makes certain # aspects of the test look a little odd. # This tag is essentially the thing we're testing. Tests using per-feature containers will put this tag at the top of diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerFeatureContainerSteps.cs b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerFeatureContainerSteps.cs similarity index 95% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerFeatureContainerSteps.cs rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerFeatureContainerSteps.cs index fab81ac3..30dab69b 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerFeatureContainerSteps.cs +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerFeatureContainerSteps.cs @@ -2,11 +2,11 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Specs.Containers +namespace Corvus.Testing.ReqnRoll.Specs.Containers { - using Corvus.Testing.SpecFlow; + using Corvus.Testing.ReqnRoll; using NUnit.Framework; - using TechTalk.SpecFlow; + using Reqnroll; [Binding] public class PerFeatureContainerSteps @@ -23,7 +23,7 @@ public PerFeatureContainerSteps(FeatureContext featureContext) [Given("I have specified the perFeatureContainer tag")] public void GivenIHaveSpecifiedThePerFeatureContainerTag() { - Assert.Contains("perFeatureContainer", this.featureContext.FeatureInfo.Tags); + Assert.That(this.featureContext.FeatureInfo.Tags, Does.Contain("perFeatureContainer")); } [Given(@"I use feature ContainerBindings\.GetServiceProvider during a Given step")] diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerScenarioContainer.feature b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerScenarioContainer.feature similarity index 94% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerScenarioContainer.feature rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerScenarioContainer.feature index 361c30c4..773152be 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerScenarioContainer.feature +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerScenarioContainer.feature @@ -1,5 +1,5 @@ -# These tests are a bit meta, because they test that the library enables us to write SpecFlow specs in the way we want, -# and they do so through the medium of SpecFlow specs. In some cases this is straightforward, but it makes certain +# These tests are a bit meta, because they test that the library enables us to write ReqnRoll specs in the way we want, +# and they do so through the medium of ReqnRoll specs. In some cases this is straightforward, but it makes certain # aspects of the test look a little odd. # This tag is essentially the thing we're testing. Tests using per-scenario containers will put this tag at the top of diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerScenarioContainerSteps.cs b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerScenarioContainerSteps.cs similarity index 95% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerScenarioContainerSteps.cs rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerScenarioContainerSteps.cs index b291ed17..a6837d75 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/PerScenarioContainerSteps.cs +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/PerScenarioContainerSteps.cs @@ -2,10 +2,10 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Specs.Containers +namespace Corvus.Testing.ReqnRoll.Specs.Containers { using NUnit.Framework; - using TechTalk.SpecFlow; + using Reqnroll; [Binding] public class PerScenarioContainerSteps @@ -26,7 +26,7 @@ public PerScenarioContainerSteps( [Given("I have specified the perScenarioContainer tag")] public void GivenIHaveSpecifiedThePerScenarioContainerTag() { - Assert.Contains("perScenarioContainer", this.featureContext.FeatureInfo.Tags); + Assert.That(this.featureContext.FeatureInfo.Tags, Does.Contain("perScenarioContainer")); } [Given(@"I use scenario ContainerBindings\.GetServiceProvider during a Given step")] diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/Phase.cs b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/Phase.cs similarity index 90% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/Phase.cs rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/Phase.cs index cfcb69ab..1e29eed9 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/Phase.cs +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/Phase.cs @@ -2,7 +2,7 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Specs.Containers +namespace Corvus.Testing.ReqnRoll.Specs.Containers { /// /// Represents the moment within test execution that we want to attempt or measure something. diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/RootService.cs b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/RootService.cs similarity index 92% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Containers/RootService.cs rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/RootService.cs index a5c93f62..62d62591 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Containers/RootService.cs +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Containers/RootService.cs @@ -2,7 +2,7 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Specs.Containers +namespace Corvus.Testing.ReqnRoll.Specs.Containers { using System.Collections.Generic; using System.Globalization; diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/Corvus.Testing.SpecFlow.Specs.csproj b/Solutions/Corvus.Testing.ReqnRoll.Specs/Corvus.Testing.ReqnRoll.Specs.csproj similarity index 51% rename from Solutions/Corvus.Testing.SpecFlow.Specs/Corvus.Testing.SpecFlow.Specs.csproj rename to Solutions/Corvus.Testing.ReqnRoll.Specs/Corvus.Testing.ReqnRoll.Specs.csproj index 7808f572..73d88b6d 100644 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/Corvus.Testing.SpecFlow.Specs.csproj +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/Corvus.Testing.ReqnRoll.Specs.csproj @@ -1,24 +1,24 @@ - + - - net8.0 - Copyright (c) Endjin Limited 2024. All rights reserved. - latest - - RCS1029;SA0001;SA1204;SA1600;SA1602;CS1591 + RCS1029;SA0001;SA1204;SA1600;SA1602;CS1591 - false - + false + - - - true + true - - true - + true + - - enable - + + enable + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + - - - - - - - PreserveNewest - - - - + + + + + + + PreserveNewest + + + + \ No newline at end of file diff --git a/Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/GlobalSuppressions.cs b/Solutions/Corvus.Testing.ReqnRoll.Specs/GlobalSuppressions.cs similarity index 100% rename from Solutions/Corvus.Testing.AzureFunctions.SpecFlow.Demo/GlobalSuppressions.cs rename to Solutions/Corvus.Testing.ReqnRoll.Specs/GlobalSuppressions.cs diff --git a/Solutions/Corvus.Testing.ReqnRoll.Specs/packages.lock.json b/Solutions/Corvus.Testing.ReqnRoll.Specs/packages.lock.json new file mode 100644 index 00000000..8f179164 --- /dev/null +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/packages.lock.json @@ -0,0 +1,358 @@ +{ + "version": 1, + "dependencies": { + "net8.0": { + "Endjin.RecommendedPractices.GitHub": { + "type": "Direct", + "requested": "[2.1.13, )", + "resolved": "2.1.13", + "contentHash": "ZefZtlE4NE4ajKMzUtdeb9+SSWv95gutAykQmTEuj2Ln13/1etgxha9QFhrALHr+ewvUH7M3X1qh9HBmWMLRFg==", + "dependencies": { + "Endjin.RecommendedPractices": "2.1.13", + "Microsoft.SourceLink.GitHub": "1.1.1" + } + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.10.0, )", + "resolved": "17.10.0", + "contentHash": "0/2HeACkaHEYU3wc83YlcD2Fi4LMtECJjqrtvw0lPi9DCEa35zSPt1j4fuvM8NagjDqJuh1Ja35WcRtn1Um6/A==", + "dependencies": { + "Microsoft.CodeCoverage": "17.10.0", + "Microsoft.TestPlatform.TestHost": "17.10.0" + } + }, + "NUnit3TestAdapter": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "R7e1+a4vuV/YS+ItfL7f//rG+JBvVeVLX4mHzFEZo4W1qEKl8Zz27AqvQSAqo+BtIzUCo4aAJMYa56VXS4hudw==" + }, + "Reqnroll.NUnit": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "z5JTI4aCxkx/REXeEDAzOM1UMqbjQvF12HbcY8wksQUpw150w0jMgZQ2Qr+CCtAb0ClyzadtoO4XgDfeiPMK2w==", + "dependencies": { + "NUnit": "3.13.1", + "Reqnroll": "[2.0.3]", + "Reqnroll.Tools.MsBuild.Generation": "[2.0.3]" + } + }, + "coverlet.msbuild": { + "type": "Transitive", + "resolved": "6.0.2", + "contentHash": "8b4jBNH7mcQy1otyQErjjIUuGD74XxKZ1wvDufbY7jhWwckl7wIa+icjwdPYeI0aYMS4Tp63LIZvyMFjWwOMDw==" + }, + "Cucumber.CucumberExpressions": { + "type": "Transitive", + "resolved": "16.0.0", + "contentHash": "fFuJVpAXfIOvN9EXbCiYSg9vS6m9Y24jsQfhvSn7kYQRHtXksCSy/JAkWDbyUEheQUkeM1FRaC9Pt2ODHpSBeQ==" + }, + "Endjin.RecommendedPractices": { + "type": "Transitive", + "resolved": "2.1.13", + "contentHash": "ZXMVKFaBJYaAfRKS/Uv8kUANDsEj2L9H5L4XVXyZULI0UANqZ/ROVTpOqulkukf3UFc/jnnVG2EfByynTiztDg==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1" + } + }, + "Gherkin": { + "type": "Transitive", + "resolved": "19.0.3", + "contentHash": "kq9feqMojMj9aABrHb/ABEPaH2Y4dSclseSahAru6qxCeqVQNLLTgw/6vZMauzI1yBUL2fz03ub5yEd5btLfvg==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.10.0", + "contentHash": "yC7oSlnR54XO5kOuHlVOKtxomNNN1BWXX8lK1G2jaPXT9sUok7kCOoA4Pgs0qyFaCtMrNsprztYMeoEGqCm4uA==" + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==" + }, + "Microsoft.Extensions.DependencyModel": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TD5QHg98m3+QhgEV1YVoNMl5KtBw/4rjfxLHO0e/YV9bPUBDKntApP4xdrVtGgCeQZHVfC2EXIGsdpRNrr87Pg==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.0", + "System.Text.Json": "6.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==" + }, + "Microsoft.NETCore.Targets": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.10.0", + "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.10.0", + "contentHash": "LWpMdfqhHvcUkeMCvNYJO8QlPLlYz9XPPb+ZbaXIKhdmjAV0wqTSrTiW5FLaf7RRZT50AQADDOYMOe0HxDxNgA==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.10.0", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==", + "dependencies": { + "System.Security.AccessControl": "4.7.0", + "System.Security.Principal.Windows": "4.7.0" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "NUnit": { + "type": "Transitive", + "resolved": "4.1.0", + "contentHash": "MT/DpAhjtiytzhTgTqIhBuWx4y26PKfDepYUHUM+5uv4TsryHC2jwFo5e6NhWkApCm/G6kZ80dRjdJFuAxq3rg==" + }, + "Reqnroll": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "J4l4rrVuhu+Avhp6huzK+/sLenpQPndHH9Ma6M9ul+qeqwQ+2glJfRQ/GSslqYxtrdcX4Wwr+9xla5SdEriRAg==", + "dependencies": { + "Cucumber.CucumberExpressions": "16.0.0", + "Gherkin": "19.0.3", + "Microsoft.Extensions.DependencyModel": "6.0.0", + "SpecFlow.Internal.Json": "1.0.8", + "System.Runtime.Loader": "4.3.0" + } + }, + "Reqnroll.Tools.MsBuild.Generation": { + "type": "Transitive", + "resolved": "2.0.3", + "contentHash": "H7yIi52OvzJiJX0tI4GYa4kZjPzxavkcEMIWWtKHugpAOwSXWO7TvXlnz6DHW7F2Nty0n+3M/FhaNNlt28OnFA==", + "dependencies": { + "Reqnroll": "[2.0.3]" + } + }, + "SpecFlow.Internal.Json": { + "type": "Transitive", + "resolved": "1.0.8", + "contentHash": "lVCC/Rie7N5rFoc7YxPS0nneLfsWSTIMMlkndwxhaD8MxBp3Bsv1HeiVjVwXCjWaQeoqZcvIy52fF5Xit00ZLw==" + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "Hs9pw/kmvH3lXaZ1LFKj3pLQsiGfj2xo3sxSzwiLlRL6UcMZUTeCfoJ9Udalvn3yq5dLlPEZzYegrTQ1/LhPOQ==" + }, + "System.IO": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Management": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "IY+uuGhgzWiCg21i8IvQeY/Z7m1tX8VuPF+ludfn7iTCaccTtJo5HkjZbBEL8kbBubKhAKKtNXr7uMtmAc28Pw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "3.1.0", + "Microsoft.Win32.Registry": "4.7.0", + "System.CodeDom": "4.7.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==" + }, + "System.Reflection": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Reflection.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Runtime.Loader": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==", + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "3.1.0", + "System.Security.Principal.Windows": "4.7.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==" + }, + "System.Text.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.0" + } + }, + "System.Threading.Tasks": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "corvus.testing.reqnroll": { + "type": "Project", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "[8.0.0, )", + "Microsoft.Extensions.DependencyInjection": "[8.0.0, )", + "Microsoft.Extensions.DependencyInjection.Abstractions": "[8.0.1, )", + "NUnit": "[4.1.0, )", + "Reqnroll": "[2.0.3, )", + "System.Management": "[4.7.*, )" + } + }, + "corvus.testing.reqnroll.nunit": { + "type": "Project", + "dependencies": { + "Corvus.Testing.ReqnRoll": "[1.0.0, )", + "Microsoft.NET.Test.Sdk": "[17.10.0, )", + "coverlet.msbuild": "[6.0.2, )" + } + } + } + } +} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.ReqnRoll.Specs/reqnroll.json b/Solutions/Corvus.Testing.ReqnRoll.Specs/reqnroll.json new file mode 100644 index 00000000..5a3e93ed --- /dev/null +++ b/Solutions/Corvus.Testing.ReqnRoll.Specs/reqnroll.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://schemas.reqnroll.net/reqnroll-config-latest.json", + "stepAssemblies": [ + { "assembly": "Corvus.Testing.ReqnRoll" } + ] +} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.SpecFlow/Corvus.Testing.SpecFlow.csproj b/Solutions/Corvus.Testing.ReqnRoll/Corvus.Testing.ReqnRoll.csproj similarity index 85% rename from Solutions/Corvus.Testing.SpecFlow/Corvus.Testing.SpecFlow.csproj rename to Solutions/Corvus.Testing.ReqnRoll/Corvus.Testing.ReqnRoll.csproj index 087cbb9e..dbcd46a2 100644 --- a/Solutions/Corvus.Testing.SpecFlow/Corvus.Testing.SpecFlow.csproj +++ b/Solutions/Corvus.Testing.ReqnRoll/Corvus.Testing.ReqnRoll.csproj @@ -26,17 +26,16 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - + + + + + - diff --git a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ChildObjectBindings.cs b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ChildObjectBindings.cs similarity index 87% rename from Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ChildObjectBindings.cs rename to Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ChildObjectBindings.cs index a5d87f69..63f14af3 100644 --- a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ChildObjectBindings.cs +++ b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ChildObjectBindings.cs @@ -2,14 +2,14 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow +namespace Corvus.Testing.ReqnRoll { - using Corvus.Testing.SpecFlow.Internal; - using TechTalk.SpecFlow; - using TechTalk.SpecFlow.Assist; + using Corvus.Testing.ReqnRoll.Internal; + using Reqnroll; + using Reqnroll.Assist; /// - /// Provides Specflow bindings for retrieving child objects from the scenario context. + /// Provides ReqnRoll bindings for retrieving child objects from the scenario context. /// [Binding] public static class ChildObjectBindings diff --git a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBeforeFeatureOrder.cs b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBeforeFeatureOrder.cs similarity index 97% rename from Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBeforeFeatureOrder.cs rename to Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBeforeFeatureOrder.cs index 548f0d3a..6eab5aac 100644 --- a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBeforeFeatureOrder.cs +++ b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBeforeFeatureOrder.cs @@ -2,10 +2,10 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow +namespace Corvus.Testing.ReqnRoll { using System; - using TechTalk.SpecFlow; + using Reqnroll; /// /// Defines constants to use for property on a diff --git a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBeforeScenarioOrder.cs b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBeforeScenarioOrder.cs similarity index 97% rename from Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBeforeScenarioOrder.cs rename to Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBeforeScenarioOrder.cs index 5ab8e3fb..8d89445b 100644 --- a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBeforeScenarioOrder.cs +++ b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBeforeScenarioOrder.cs @@ -2,10 +2,10 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow +namespace Corvus.Testing.ReqnRoll { using System; - using TechTalk.SpecFlow; + using Reqnroll; /// /// Defines constants to use for property on a diff --git a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBindings.cs b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBindings.cs similarity index 90% rename from Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBindings.cs rename to Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBindings.cs index 22f1032e..26bd2d0d 100644 --- a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/ContainerBindings.cs +++ b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/ContainerBindings.cs @@ -2,15 +2,15 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow +namespace Corvus.Testing.ReqnRoll { using System; using Microsoft.Extensions.DependencyInjection; using NUnit.Framework; - using TechTalk.SpecFlow; + using Reqnroll; /// - /// Provides Specflow bindings for DI Composition. + /// Provides ReqnRoll bindings for DI Composition. /// [Binding] public static class ContainerBindings @@ -22,7 +22,7 @@ public static class ContainerBindings /// /// Add DI services to the per-feature container. /// - /// The SpecFlow feature context. + /// The ReqnRoll feature context. /// Callback that will be invoked with the service collection. /// /// Call this from a BeforeFeature binding. You must specify an Order that is @@ -42,7 +42,7 @@ public static void ConfigureServices( /// /// Add DI services to the per-scenario container. /// - /// The SpecFlow scenario context. + /// The ReqnRoll scenario context. /// Callback that will be invoked with the service collection. /// /// Call this from a BeforeScenario binding. You must specify an Order that is @@ -62,7 +62,7 @@ public static void ConfigureServices( /// /// Gets the for the specified feature context. /// - /// The SpecFlow context. + /// The ReqnRoll context. /// The service provider. /// /// You can call this either during execution of steps, or in a BeforeFeature binding with @@ -75,7 +75,7 @@ public static IServiceProvider GetServiceProvider(FeatureContext featureContext) /// /// Gets the for the specified scenario context. /// - /// The SpecFlow context. + /// The ReqnRoll context. /// The service provider. /// /// You can call this either during execution of steps, or in a BeforeScenario binding with @@ -88,7 +88,7 @@ public static IServiceProvider GetServiceProvider(ScenarioContext scenarioContex /// /// Start setup of the DI container for a feature. /// - /// SpecFlow-supplied context. + /// ReqnRoll-supplied context. /// We expect features run in parallel to be executing in separate app domains. [BeforeFeature("@perFeatureContainer", "@setupContainer", Order = ContainerBeforeFeatureOrder.CreateServiceCollection)] public static void StartFeatureContainerSetup(FeatureContext featureContext) @@ -99,8 +99,8 @@ public static void StartFeatureContainerSetup(FeatureContext featureContext) /// /// Start setup of the DI container for a scenario. /// - /// SpecFlow-supplied feature context. - /// SpecFlow-supplied scenario context. + /// ReqnRoll-supplied feature context. + /// ReqnRoll-supplied scenario context. /// We expect scenarios run in parallel to be executing in separate app domains. [BeforeScenario("@perScenarioContainer", Order = ContainerBeforeScenarioOrder.CreateServiceCollection)] public static void StartScenarioContainerSetup( @@ -118,7 +118,7 @@ public static void StartScenarioContainerSetup( /// /// Complete setup of the DI container for a feature. /// - /// SpecFlow-supplied context. + /// ReqnRoll-supplied context. /// We expect features run in parallel to be executing in separate app domains. [BeforeFeature("@perFeatureContainer", "@setupContainer", Order = ContainerBeforeFeatureOrder.BuildServiceProvider)] public static void CompleteFeatureContainerSetup(FeatureContext featureContext) @@ -129,7 +129,7 @@ public static void CompleteFeatureContainerSetup(FeatureContext featureContext) /// /// Complete setup of the DI container for a scenario. /// - /// SpecFlow-supplied context. + /// ReqnRoll-supplied context. /// We expect scenarios run in parallel to be executing in separate app domains. [BeforeScenario("@perScenarioContainer", Order = ContainerBeforeScenarioOrder.BuildServiceProvider)] public static void CompleteScenarioContainerSetup(ScenarioContext scenarioContext) @@ -172,7 +172,7 @@ public static void TeardownContainer(ScenarioContext scenarioContext) } private static void ConfigureServices( - SpecFlowContext context, + ReqnrollContext context, Action configure, string exceptionMessageIfBuildNotInProgress) { @@ -187,7 +187,7 @@ private static void ConfigureServices( configure(serviceCollection); } - private static IServiceProvider GetServiceProvider(SpecFlowContext context, string messageForBuildInProgressError) + private static IServiceProvider GetServiceProvider(ReqnrollContext context, string messageForBuildInProgressError) { bool serviceBuildInProgress = VerifyBindingAvailable(context); @@ -199,14 +199,14 @@ private static IServiceProvider GetServiceProvider(SpecFlowContext context, stri return context.Get(ServiceProviderKey); } - private static void CreateServiceCollection(SpecFlowContext scenarioContext) + private static void CreateServiceCollection(ReqnrollContext scenarioContext) { scenarioContext.Set(true, ContainerBindingPhaseKey); var serviceCollection = new ServiceCollection(); scenarioContext.Set(serviceCollection, ServiceCollectionKey); } - private static void CompleteContainerSetup(SpecFlowContext context) + private static void CompleteContainerSetup(ReqnrollContext context) { context.Set(false, ContainerBindingPhaseKey); @@ -216,7 +216,7 @@ private static void CompleteContainerSetup(SpecFlowContext context) context.Set(service, ServiceProviderKey); } - private static void DisposeServiceProvider(SpecFlowContext context) + private static void DisposeServiceProvider(ReqnrollContext context) { if (context.Get(ServiceProviderKey) is IDisposable spDisposable) { @@ -224,12 +224,12 @@ private static void DisposeServiceProvider(SpecFlowContext context) } } - private static bool VerifyBindingAvailable(SpecFlowContext featureContext) + private static bool VerifyBindingAvailable(ReqnrollContext featureContext) { if (!featureContext.TryGetValue(ContainerBindingPhaseKey, out bool serviceBuildInProgress)) { throw new InvalidOperationException( - $"This method requires {typeof(ContainerBindings).FullName} to be registered with SpecFlow and either the @perScenarioContainer or the @perFeatureContainer tag to be specified"); + $"This method requires {typeof(ContainerBindings).FullName} to be registered with ReqnRoll and either the @perScenarioContainer or the @perFeatureContainer tag to be specified"); } return serviceBuildInProgress; diff --git a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/Internal/ChildObjectValueRetriever.cs b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/Internal/ChildObjectValueRetriever.cs similarity index 90% rename from Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/Internal/ChildObjectValueRetriever.cs rename to Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/Internal/ChildObjectValueRetriever.cs index cb1f5600..5527529f 100644 --- a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/Internal/ChildObjectValueRetriever.cs +++ b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/Internal/ChildObjectValueRetriever.cs @@ -2,12 +2,12 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow.Internal +namespace Corvus.Testing.ReqnRoll.Internal { using System; using System.Collections.Generic; - using TechTalk.SpecFlow; - using TechTalk.SpecFlow.Assist; + using Reqnroll; + using Reqnroll.Assist; /// /// A value retriever that looks in the scenario context for a named instance. diff --git a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/TeardownExceptions.cs b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/TeardownExceptions.cs similarity index 89% rename from Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/TeardownExceptions.cs rename to Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/TeardownExceptions.cs index c1876891..49c5c29f 100644 --- a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/TeardownExceptions.cs +++ b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/TeardownExceptions.cs @@ -2,12 +2,12 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow +namespace Corvus.Testing.ReqnRoll { using System; using System.Collections.Generic; using System.Threading.Tasks; - using TechTalk.SpecFlow; + using Reqnroll; /// /// Enables exceptions thrown during feature and scenario teardown to be reported while still @@ -15,7 +15,7 @@ namespace Corvus.Testing.SpecFlow /// /// /// - /// SpecFlow has an unfortunate problem with exceptions in 'After' bindings. If one + /// ReqnRoll has an unfortunate problem with exceptions in 'After' bindings. If one /// of them throws an exception, that prevents any other ones from running. However, /// the only way to report errors at this stage of execution is to let them out of the /// binding. @@ -23,7 +23,7 @@ namespace Corvus.Testing.SpecFlow /// /// We want to be able to run all applicable After bindings even if some fail, and we /// also want to report all failures. To do this, we catch failures, put them in the - /// relevant SpecFlow context, and then rethrow them later in the various bindings in + /// relevant ReqnRoll context, and then rethrow them later in the various bindings in /// . /// These have an Order of int.MaxValue, meaning that they will run after any other teardown handlers. /// This way, we can report all errors that occur, without blocking any teardown methods. @@ -47,7 +47,7 @@ public static class TeardownExceptions /// Runs a method inside an exception handler that records any exception for later /// reporting by . /// - /// The SpecFlow feature context. + /// The ReqnRoll feature context. /// The method to run. public static void RunAndStoreExceptions(this FeatureContext featureContext, Action action) => RunAndStoreExceptions(featureContext, action, FeatureContextKey); @@ -56,7 +56,7 @@ public static void RunAndStoreExceptions(this FeatureContext featureContext, Act /// Runs a method inside an exception handler that records any exception for later /// reporting by . /// - /// The SpecFlow feature context. + /// The ReqnRoll feature context. /// The method to run. /// A task that completes once the work is complete. Note that this will report success even /// if the underlying action fails (because that's the point of this method). @@ -67,7 +67,7 @@ public static Task RunAndStoreExceptionsAsync(this FeatureContext featureContext /// Runs a method inside an exception handler that records any exception for later /// reporting by . /// - /// The SpecFlow scenario context. + /// The ReqnRoll scenario context. /// The method to run. public static void RunAndStoreExceptions(this ScenarioContext scenarioContext, Action action) => RunAndStoreExceptions(scenarioContext, action, ScenarioContextKey); @@ -76,14 +76,14 @@ public static void RunAndStoreExceptions(this ScenarioContext scenarioContext, A /// Runs a method inside an exception handler that records any exception for later /// reporting by . /// - /// The SpecFlow scenario context. + /// The ReqnRoll scenario context. /// The method to run. /// A task that completes once the work is complete. Note that this will report success even /// if the underlying action fails (because that's the point of this method). public static Task RunAndStoreExceptionsAsync(this ScenarioContext scenarioContext, Func action) => RunAndStoreExceptionsAsync(scenarioContext, action, ScenarioContextKey); - private static void RunAndStoreExceptions(this SpecFlowContext context, Action action, string key) + private static void RunAndStoreExceptions(this ReqnrollContext context, Action action, string key) { TeardownExceptionsBindings.VerifyBindingAvailable(context); try @@ -96,7 +96,7 @@ private static void RunAndStoreExceptions(this SpecFlowContext context, Action a } } - private static async Task RunAndStoreExceptionsAsync(this SpecFlowContext context, Func action, string key) + private static async Task RunAndStoreExceptionsAsync(this ReqnrollContext context, Func action, string key) { TeardownExceptionsBindings.VerifyBindingAvailable(context); try @@ -109,7 +109,7 @@ private static async Task RunAndStoreExceptionsAsync(this SpecFlowContext contex } } - private static void StoreExceptionInContext(SpecFlowContext context, Exception x, string key) + private static void StoreExceptionInContext(ReqnrollContext context, Exception x, string key) { if (!context.TryGetValue(key, out List elist)) { diff --git a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/TeardownExceptionsBindings.cs b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/TeardownExceptionsBindings.cs similarity index 83% rename from Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/TeardownExceptionsBindings.cs rename to Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/TeardownExceptionsBindings.cs index 407c05b8..b700aa2d 100644 --- a/Solutions/Corvus.Testing.SpecFlow/Corvus/Testing/SpecFlow/TeardownExceptionsBindings.cs +++ b/Solutions/Corvus.Testing.ReqnRoll/Corvus/Testing/SpecFlow/TeardownExceptionsBindings.cs @@ -2,11 +2,11 @@ // Copyright (c) Endjin Limited. All rights reserved. // -namespace Corvus.Testing.SpecFlow +namespace Corvus.Testing.ReqnRoll { using System; using System.Collections.Generic; - using TechTalk.SpecFlow; + using Reqnroll; /// /// Rethrows any exceptions detected by . @@ -19,7 +19,7 @@ public static class TeardownExceptionsBindings /// /// Sets a flag in the feature context to confirm that rethrow support is available. /// - /// SpecFlow feature context. + /// ReqnRoll feature context. [AfterFeature(Order = 0)] public static void RethrowFeatureBindingAvailableValidation(FeatureContext featureContext) { @@ -29,7 +29,7 @@ public static void RethrowFeatureBindingAvailableValidation(FeatureContext featu /// /// Sets a flag in the scenario context to confirm that rethrow support is available. /// - /// SpecFlow scenario context. + /// ReqnRoll scenario context. [AfterScenario(Order = 0)] public static void RethrowScenarioBindingAvailableValidation(ScenarioContext scenarioContext) { @@ -40,7 +40,7 @@ public static void RethrowScenarioBindingAvailableValidation(ScenarioContext sce /// Detects whether any feature teardown exceptions were detected by , /// and rethrows them. /// - /// SpecFlow feature context. + /// ReqnRoll feature context. [AfterFeature(Order = int.MaxValue)] public static void RethrowFeatureTeardownExceptions(FeatureContext featureContext) => RethrowTeardownExceptions(featureContext, TeardownExceptions.FeatureContextKey); @@ -49,7 +49,7 @@ public static void RethrowFeatureTeardownExceptions(FeatureContext featureContex /// Detects whether any scenario teardown exceptions were detected by , /// and rethrows them. /// - /// SpecFlow scenario context. + /// ReqnRoll scenario context. [AfterScenario(Order = int.MaxValue)] public static void RethrowScenarioTeardownExceptions(ScenarioContext scenarioContext) => RethrowTeardownExceptions(scenarioContext, TeardownExceptions.ScenarioContextKey); @@ -57,13 +57,13 @@ public static void RethrowScenarioTeardownExceptions(ScenarioContext scenarioCon /// /// Called by helpers that only work if this binding is in place. /// - /// The SpecFlow context. - internal static void VerifyBindingAvailable(SpecFlowContext context) + /// The ReqnRoll context. + internal static void VerifyBindingAvailable(ReqnrollContext context) { if (!context.TryGetValue(TeardownBindingPhaseKey, out bool exceptionsNotYetRethrown)) { throw new InvalidOperationException( - $"This method requires {typeof(TeardownExceptionsBindings).FullName} to be registered with SpecFlow"); + $"This method requires {typeof(TeardownExceptionsBindings).FullName} to be registered with ReqnRoll"); } if (!exceptionsNotYetRethrown) @@ -73,7 +73,7 @@ internal static void VerifyBindingAvailable(SpecFlowContext context) } } - private static void RethrowTeardownExceptions(SpecFlowContext context, string key) + private static void RethrowTeardownExceptions(ReqnrollContext context, string key) { context.Set(false, TeardownBindingPhaseKey); diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/packages.lock.json b/Solutions/Corvus.Testing.SpecFlow.Specs/packages.lock.json deleted file mode 100644 index 6b435a02..00000000 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/packages.lock.json +++ /dev/null @@ -1,1334 +0,0 @@ -{ - "version": 1, - "dependencies": { - "net8.0": { - "Endjin.RecommendedPractices.GitHub": { - "type": "Direct", - "requested": "[2.1.9, )", - "resolved": "2.1.9", - "contentHash": "gFCDZOu96fU+TfsAkZ7zLUzm8NX1/k3hWt7lbyf5HOn95+hYJQZ+g4bjs/Awx7JODsvNZpON8QlstZQVjPnRxg==", - "dependencies": { - "Endjin.RecommendedPractices": "2.1.9", - "Microsoft.SourceLink.GitHub": "1.1.1" - } - }, - "Roslynator.Analyzers": { - "type": "Direct", - "requested": "[4.9.0, )", - "resolved": "4.9.0", - "contentHash": "lFd4MmkllYR0dKlPWDokRwAvQnjNoPJztlncyzvnCG/wvGr5FzHAencngcJna/wkyDE0xIv7AnUccgCLsoIXTw==" - }, - "StyleCop.Analyzers": { - "type": "Direct", - "requested": "[1.2.0-beta.556, )", - "resolved": "1.2.0-beta.556", - "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", - "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.556" - } - }, - "BoDi": { - "type": "Transitive", - "resolved": "1.5.0", - "contentHash": "CzIPzdIAFSd2zuLxI+0K9s48Qv3HQDbWiApn9h96j284rHs2bSPrn/PMca3mi4q3xLSEqOp+GUJ6+mXDD9prKg==" - }, - "coverlet.msbuild": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "cUKI50VSVBqDQDFIdBnjN0Jk5JYhjtD0geP2BZZv71/ZrKORJXcLRswFsojI+cHdV+rFUL2XDJEpuhK3x1YqLA==" - }, - "Endjin.RecommendedPractices": { - "type": "Transitive", - "resolved": "2.1.9", - "contentHash": "LzppiBrlPBj5TmVsQVxWoGv/MWfq+sAz0qkdB/ozUDS2hq31Pu8j2Cvk+BVlhvrb9eDUQxxHaLL4gbE7LiSAfQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "1.1.1" - } - }, - "Gherkin": { - "type": "Transitive", - "resolved": "19.0.3", - "contentHash": "kq9feqMojMj9aABrHb/ABEPaH2Y4dSclseSahAru6qxCeqVQNLLTgw/6vZMauzI1yBUL2fz03ub5yEd5btLfvg==" - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" - }, - "Microsoft.CodeCoverage": { - "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==" - }, - "Microsoft.DotNet.InternalAbstractions": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "AAguUq7YyKk3yDWPoWA8DrLZvURxB/LrDdTn1h5lmPeznkFUpfC3p459w5mQYQE0qpquf/CkSQZ0etiV5vRHFA==", - "dependencies": { - "System.AppContext": "4.1.0", - "System.Collections": "4.0.11", - "System.IO": "4.1.0", - "System.IO.FileSystem": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Runtime.InteropServices": "4.1.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" - } - }, - "Microsoft.DotNet.PlatformAbstractions": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "rF92Gp5L2asYrFNf0cKNBxzzGLh1krHuj6TRDk9wdjN2qdvJLaNYOn1s9oYkMlptYX436KiEFqxhLB+I5veXvQ==", - "dependencies": { - "System.AppContext": "4.1.0", - "System.Collections": "4.0.11", - "System.IO": "4.1.0", - "System.IO.FileSystem": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Runtime.InteropServices": "4.1.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" - }, - "Microsoft.Extensions.DependencyModel": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "Z3o19EnheuegmvgpCzwoSlnCWxYA6qIUhvKJ7ifKHHvU7U+oYR/gliLiL3LVYOOeGMEEzkpJ5W67sOcXizGtlw==", - "dependencies": { - "Microsoft.DotNet.PlatformAbstractions": "1.0.3", - "Newtonsoft.Json": "9.0.1", - "System.Diagnostics.Debug": "4.0.11", - "System.Dynamic.Runtime": "4.0.11", - "System.Linq": "4.1.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.NET.Test.Sdk": { - "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==", - "dependencies": { - "Microsoft.CodeCoverage": "17.8.0", - "Microsoft.TestPlatform.TestHost": "17.8.0" - } - }, - "Microsoft.NETCore.Platforms": { - "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==" - }, - "Microsoft.NETCore.Targets": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "1.1.1", - "Microsoft.SourceLink.Common": "1.1.1" - } - }, - "Microsoft.TestPlatform.ObjectModel": { - "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==", - "dependencies": { - "NuGet.Frameworks": "6.5.0", - "System.Reflection.Metadata": "1.6.0" - } - }, - "Microsoft.TestPlatform.TestHost": { - "type": "Transitive", - "resolved": "17.8.0", - "contentHash": "9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==", - "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.8.0", - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==", - "dependencies": { - "System.Security.AccessControl": "4.7.0", - "System.Security.Principal.Windows": "4.7.0" - } - }, - "NETStandard.Library": { - "type": "Transitive", - "resolved": "2.0.0", - "contentHash": "7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.1", - "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" - }, - "NuGet.Frameworks": { - "type": "Transitive", - "resolved": "6.5.0", - "contentHash": "QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==" - }, - "NUnit": { - "type": "Transitive", - "resolved": "3.14.0", - "contentHash": "R7iPwD7kbOaP3o2zldWJbWeMQAvDKD0uld27QvA3PAALl1unl7x0v2J7eGiJOYjimV/BuGT4VJmr45RjS7z4LA==", - "dependencies": { - "NETStandard.Library": "2.0.0" - } - }, - "NUnit.Console": { - "type": "Transitive", - "resolved": "3.12.0", - "contentHash": "9KXFnViEIKQjz4vqiYFpLV9sntfHxixQomLCJzDMXC6WDo9DP2GhDQiBND6we6MRStMSNzoAWgourbLKwo7utQ==", - "dependencies": { - "NUnit.ConsoleRunner": "3.12.0", - "NUnit.Extension.NUnitProjectLoader": "3.6.0", - "NUnit.Extension.NUnitV2Driver": "3.8.0", - "NUnit.Extension.NUnitV2ResultWriter": "3.6.0", - "NUnit.Extension.TeamCityEventListener": "1.0.7", - "NUnit.Extension.VSProjectLoader": "3.8.0" - } - }, - "NUnit.ConsoleRunner": { - "type": "Transitive", - "resolved": "3.12.0", - "contentHash": "ZUtI8leU9ozCjLy4ZZ2X6ClU0hxfQtb95VOdmMA4SxIUvf62rIPxoHXS+jghvo5QxgRihGGcEp8xT3vCfgDdsA==" - }, - "NUnit.Extension.NUnitProjectLoader": { - "type": "Transitive", - "resolved": "3.6.0", - "contentHash": "ev2+dCJShMNIATkYNm/vHEuieBfbismr9DcUfBvafJZf5vNyugXPuMXO/MaOFcJaoW9j6/zjMmXKG7R5umWzXA==" - }, - "NUnit.Extension.NUnitV2Driver": { - "type": "Transitive", - "resolved": "3.8.0", - "contentHash": "l6MgFJPTnrlDaMXWfbUZ82h1uvtj0C1ExPpqm6HrYOBa5Z4MBwmFLqj85rnv9JMhu/Ju7jQB/FIaMbfoXInI2A==" - }, - "NUnit.Extension.NUnitV2ResultWriter": { - "type": "Transitive", - "resolved": "3.6.0", - "contentHash": "P/Nc+wgFRe3dT59/VjhiIT0SWfLMbb/Vc9AtBU3L71VOCs8zQnuNjCOEFLQL/Mq6XSaZeB2Sug9tUgTfCnQk9w==" - }, - "NUnit.Extension.TeamCityEventListener": { - "type": "Transitive", - "resolved": "1.0.7", - "contentHash": "bw+ZwHsUmxqb9leo91qLEF7ggtdpawY2V6wNqHI6+ATa2SHxHxoxiV5UV07ZWDRpf/qlQJELNlZu7wIB3+w2qQ==" - }, - "NUnit.Extension.VSProjectLoader": { - "type": "Transitive", - "resolved": "3.8.0", - "contentHash": "CIScV9a7+wUu6Ylb+WO0q/WGWQVoB05TUj3XZHa1CO+2BInDdfIVkqtlrSguhy6D/AGIMaLVrCZpQkQ2m0bbzQ==" - }, - "NUnit3TestAdapter": { - "type": "Transitive", - "resolved": "3.17.0", - "contentHash": "I9MNvK+GM2yXrHPitwZkAZKU9sYI2OO/8wKC+VuBD7V3z+ySQ1pSopX/urr0ooedI8/TIcajYPRO4vGRr7AM8A==", - "dependencies": { - "Microsoft.DotNet.InternalAbstractions": "1.0.0", - "System.ComponentModel.EventBasedAsync": "4.3.0", - "System.ComponentModel.TypeConverter": "4.3.0", - "System.Diagnostics.Process": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Xml.XPath.XmlDocument": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" - }, - "runtime.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" - }, - "SpecFlow": { - "type": "Transitive", - "resolved": "3.9.74", - "contentHash": "n6kcg9ZeQWxqJFoT23SsFT89U1QQNwvcN9pAX5alB6ZPr6K0p5D5nGIJ1PZsSaFaRFutiwQ+DicmxBCPAZVYIA==", - "dependencies": { - "BoDi": "1.5.0", - "Gherkin": "19.0.3", - "Microsoft.Extensions.DependencyModel": "1.0.3", - "SpecFlow.Internal.Json": "1.0.8", - "System.Configuration.ConfigurationManager": "4.5.0", - "System.Net.Http": "4.3.4", - "System.Runtime.Loader": "4.3.0" - } - }, - "SpecFlow.Internal.Json": { - "type": "Transitive", - "resolved": "1.0.8", - "contentHash": "lVCC/Rie7N5rFoc7YxPS0nneLfsWSTIMMlkndwxhaD8MxBp3Bsv1HeiVjVwXCjWaQeoqZcvIy52fF5Xit00ZLw==" - }, - "SpecFlow.NUnit": { - "type": "Transitive", - "resolved": "3.9.74", - "contentHash": "nMPLztTT5IZDMnvNCUxklqaM+agn4kjuNy/qAcYQQOxau2G1MF73UxhL9OXjJQaEuPuyT8gJvXudOYCFZWztxA==", - "dependencies": { - "NUnit": "3.13.1", - "SpecFlow": "[3.9.74]", - "SpecFlow.Tools.MsBuild.Generation": "[3.9.74]" - } - }, - "SpecFlow.NUnit.Runners": { - "type": "Transitive", - "resolved": "3.9.74", - "contentHash": "m595x3GM7CYco+KsXo96irQ2jcjC6+1+41bKdmnTdl3RAvnC4jUZ9f5B5FhGuaVK4+j4GwWi8MZtGMrT//zHLA==", - "dependencies": { - "NUnit.Console": "3.12.0", - "NUnit3TestAdapter": "3.17.0", - "SpecFlow.NUnit": "[3.9.74]" - } - }, - "SpecFlow.Tools.MsBuild.Generation": { - "type": "Transitive", - "resolved": "3.9.74", - "contentHash": "I/9OvmKOohJqIUNJ0xGYJCWfL6WKDaes8OoOAD/2yhGX+tzC5ofs9yqkP9Cu/xfnIx+11IR3pZs7YhBhGAcgWQ==", - "dependencies": { - "SpecFlow": "[3.9.74]" - } - }, - "StyleCop.Analyzers.Unstable": { - "type": "Transitive", - "resolved": "1.2.0.556", - "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" - }, - "System.AppContext": { - "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==", - "dependencies": { - "System.Runtime": "4.1.0" - } - }, - "System.CodeDom": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "Hs9pw/kmvH3lXaZ1LFKj3pLQsiGfj2xo3sxSzwiLlRL6UcMZUTeCfoJ9Udalvn3yq5dLlPEZzYegrTQ1/LhPOQ==" - }, - "System.Collections": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Collections.NonGeneric": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Collections.Specialized": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", - "dependencies": { - "System.Collections.NonGeneric": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.ComponentModel": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.ComponentModel.EventBasedAsync": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "fCFl8f0XdwA/BuoNrVBB5D0Y48/hv2J+w4xSDdXQitXZsR6UCSOrDVE7TCUraY802ENwcHUnUCv4En8CupDU1g==", - "dependencies": { - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.ComponentModel.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", - "dependencies": { - "System.ComponentModel": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.ComponentModel.TypeConverter": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Collections.NonGeneric": "4.3.0", - "System.Collections.Specialized": "4.3.0", - "System.ComponentModel": "4.3.0", - "System.ComponentModel.Primitives": "4.3.0", - "System.Globalization": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Configuration.ConfigurationManager": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", - "dependencies": { - "System.Security.Cryptography.ProtectedData": "4.5.0", - "System.Security.Permissions": "4.5.0" - } - }, - "System.Diagnostics.Debug": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Diagnostics.Process": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "Microsoft.Win32.Registry": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Thread": "4.3.0", - "System.Threading.ThreadPool": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Diagnostics.Tracing": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Dynamic.Runtime": { - "type": "Transitive", - "resolved": "4.0.11", - "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Globalization": "4.0.11", - "System.Linq": "4.1.0", - "System.Linq.Expressions": "4.1.0", - "System.ObjectModel": "4.0.12", - "System.Reflection": "4.1.0", - "System.Reflection.Emit": "4.0.1", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Threading": "4.0.11" - } - }, - "System.Globalization": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Linq": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Linq.Expressions": { - "type": "Transitive", - "resolved": "4.1.0", - "contentHash": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Globalization": "4.0.11", - "System.IO": "4.1.0", - "System.Linq": "4.1.0", - "System.ObjectModel": "4.0.12", - "System.Reflection": "4.1.0", - "System.Reflection.Emit": "4.0.1", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Emit.Lightweight": "4.0.1", - "System.Reflection.Extensions": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Reflection.TypeExtensions": "4.1.0", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Threading": "4.0.11" - } - }, - "System.Management": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "IY+uuGhgzWiCg21i8IvQeY/Z7m1tX8VuPF+ludfn7iTCaccTtJo5HkjZbBEL8kbBubKhAKKtNXr7uMtmAc28Pw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "3.1.0", - "Microsoft.Win32.Registry": "4.7.0", - "System.CodeDom": "4.7.0" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" - } - }, - "System.Net.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.ObjectModel": { - "type": "Transitive", - "resolved": "4.0.12", - "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", - "dependencies": { - "System.Collections": "4.0.11", - "System.Diagnostics.Debug": "4.0.11", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Threading": "4.0.11" - } - }, - "System.Reflection": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", - "dependencies": { - "System.IO": "4.1.0", - "System.Reflection": "4.1.0", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Emit.ILGeneration": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", - "dependencies": { - "System.Reflection": "4.1.0", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Emit.Lightweight": { - "type": "Transitive", - "resolved": "4.0.1", - "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", - "dependencies": { - "System.Reflection": "4.1.0", - "System.Reflection.Emit.ILGeneration": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Metadata": { - "type": "Transitive", - "resolved": "1.6.0", - "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" - }, - "System.Reflection.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Resources.ResourceManager": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Runtime.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.InteropServices.RuntimeInformation": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Runtime.Loader": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==", - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Numerics": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "3.1.0", - "System.Security.Principal.Windows": "4.7.0" - } - }, - "System.Security.Cryptography.Algorithms": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Security.Cryptography.Csp": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Security.Cryptography.ProtectedData": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==" - }, - "System.Security.Cryptography.X509Certificates": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Permissions": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", - "dependencies": { - "System.Security.AccessControl": "4.5.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==" - }, - "System.Text.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encoding.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.RegularExpressions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Threading": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Tasks": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Thread": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Threading.ThreadPool": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Xml.ReaderWriter": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" - } - }, - "System.Xml.XmlDocument": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "System.Xml.XPath": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "System.Xml.XPath.XmlDocument": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", - "dependencies": { - "System.Collections": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XPath": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - } - }, - "corvus.testing.specflow": { - "type": "Project", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "[6.0.0, )", - "Microsoft.Extensions.DependencyInjection": "[6.0.1, )", - "Microsoft.Extensions.DependencyInjection.Abstractions": "[6.0.0, )", - "NUnit": "[3.14.0, )", - "SpecFlow": "[3.9.74, )", - "System.Management": "[4.7.*, )" - } - }, - "corvus.testing.specflow.nunit": { - "type": "Project", - "dependencies": { - "Corvus.Testing.SpecFlow": "[1.0.0, )", - "Microsoft.NET.Test.Sdk": "[17.8.0, )", - "SpecFlow.NUnit.Runners": "[3.9.74, )", - "coverlet.msbuild": "[6.0.0, )" - } - } - } - } -} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.SpecFlow.Specs/specflow.json b/Solutions/Corvus.Testing.SpecFlow.Specs/specflow.json deleted file mode 100644 index 0261c528..00000000 --- a/Solutions/Corvus.Testing.SpecFlow.Specs/specflow.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "stepAssemblies": [ - { "assembly": "Corvus.Testing.SpecFlow" } - ] -} \ No newline at end of file diff --git a/Solutions/Corvus.Testing.sln b/Solutions/Corvus.Testing.sln index c34a0f03..16785bc4 100644 --- a/Solutions/Corvus.Testing.sln +++ b/Solutions/Corvus.Testing.sln @@ -6,8 +6,6 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DevOps", "DevOps", "{B5276693-CCCC-4EB4-AA78-909D9C5F656E}" ProjectSection(SolutionItems) = preProject ..\azure-pipelines-test-template.yml = ..\azure-pipelines-test-template.yml - ..\azure-pipelines.release.yml = ..\azure-pipelines.release.yml - ..\azure-pipelines.yml = ..\azure-pipelines.yml ..\GitVersion.yml = ..\GitVersion.yml ..\imm.yaml = ..\imm.yaml EndProjectSection @@ -26,19 +24,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctio EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.Xunit.Demo", "Corvus.Testing.AzureFunctions.Xunit.Demo\Corvus.Testing.AzureFunctions.Xunit.Demo.csproj", "{BA7AE471-5DFA-4204-BB59-B4EFAC624086}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.SpecFlow.Demo", "Corvus.Testing.AzureFunctions.SpecFlow.Demo\Corvus.Testing.AzureFunctions.SpecFlow.Demo.csproj", "{4F726825-01C5-4BCF-B82B-E26C14565EEF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.ReqnRoll.Demo", "Corvus.Testing.AzureFunctions.ReqnRoll.Demo\Corvus.Testing.AzureFunctions.ReqnRoll.Demo.csproj", "{4F726825-01C5-4BCF-B82B-E26C14565EEF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.SpecFlow", "Corvus.Testing.AzureFunctions.SpecFlow\Corvus.Testing.AzureFunctions.SpecFlow.csproj", "{A3C7BB3D-5C1B-4A59-9D1F-CC13BAEFCF45}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.ReqnRoll", "Corvus.Testing.AzureFunctions.ReqnRoll\Corvus.Testing.AzureFunctions.ReqnRoll.csproj", "{A3C7BB3D-5C1B-4A59-9D1F-CC13BAEFCF45}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.DemoFunctions.InProcess", "Corvus.Testing.AzureFunctions.DemoFunction.InProcess\Corvus.Testing.AzureFunctions.DemoFunctions.InProcess.csproj", "{A82AEA52-81AA-4AAA-BEFE-8E28013E2A7A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.SpecFlow", "Corvus.Testing.SpecFlow\Corvus.Testing.SpecFlow.csproj", "{687664B5-226D-4CE7-B3AC-491F49990AA7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.ReqnRoll", "Corvus.Testing.ReqnRoll\Corvus.Testing.ReqnRoll.csproj", "{687664B5-226D-4CE7-B3AC-491F49990AA7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.SpecFlow.Specs", "Corvus.Testing.SpecFlow.Specs\Corvus.Testing.SpecFlow.Specs.csproj", "{18EB9E01-82BC-4B4F-BB22-ED91D36D368F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.ReqnRoll.Specs", "Corvus.Testing.ReqnRoll.Specs\Corvus.Testing.ReqnRoll.Specs.csproj", "{18EB9E01-82BC-4B4F-BB22-ED91D36D368F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.SpecFlow.NUnit", "Corvus.Testing.SpecFlow.NUnit\Corvus.Testing.SpecFlow.NUnit.csproj", "{34AE7429-5F5E-4E47-9D21-841757243F78}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.ReqnRoll.NUnit", "Corvus.Testing.ReqnRoll.NUnit\Corvus.Testing.ReqnRoll.NUnit.csproj", "{34AE7429-5F5E-4E47-9D21-841757243F78}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.SpecFlow.NUnit", "Corvus.Testing.AzureFunctions.SpecFlow.NUnit\Corvus.Testing.AzureFunctions.SpecFlow.NUnit.csproj", "{DC1B7B5A-8417-4696-B061-9C03EE933C02}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.ReqnRoll.NUnit", "Corvus.Testing.AzureFunctions.ReqnRoll.NUnit\Corvus.Testing.AzureFunctions.ReqnRoll.NUnit.csproj", "{DC1B7B5A-8417-4696-B061-9C03EE933C02}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Corvus.Testing.AzureFunctions.DemoFunctions.Isolated", "Corvus.Testing.AzureFunctions.DemoFunctions.Isolated\Corvus.Testing.AzureFunctions.DemoFunctions.Isolated.csproj", "{492124E6-F290-4C0E-AF91-C7E26BF83B2B}" EndProject diff --git a/azure-pipelines.release.yml b/azure-pipelines.release.yml deleted file mode 100644 index 6879ac1d..00000000 --- a/azure-pipelines.release.yml +++ /dev/null @@ -1,15 +0,0 @@ -trigger: none -pr: none - -resources: - repositories: - - repository: recommended_practices - type: github - name: endjin/Endjin.RecommendedPractices.AzureDevopsPipelines.GitHub - endpoint: corvus-dotnet-github - -jobs: -- template: templates/tag.for.release.yml@recommended_practices - parameters: - vmImage: 'windows-latest' - service_connection_github: $(Endjin_Service_Connection_GitHub) \ No newline at end of file diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 4f2f7c38..00000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,57 +0,0 @@ -trigger: - branches: - include: - - master - - main - - feature/* - tags: - include: - - '*' - -resources: - repositories: - - repository: recommended_practices - type: github - name: endjin/Endjin.RecommendedPractices.AzureDevopsPipelines.GitHub - endpoint: corvus-dotnet-github - -jobs: -- template: templates/build.and.release.scripted.yml@recommended_practices - parameters: - vmImage: 'windows-latest' - service_connection_nuget_org: $(Endjin_Service_Connection_NuGet_Org) - service_connection_github: $(Endjin_Service_Connection_GitHub) - solution_to_build: $(Endjin_Solution_To_Build) - postCustomEnvironmentVariables: - - task: Npm@1 - displayName: 'Install Latest Azure Functions V4 Runtime' - inputs: - command: custom - verbose: false - customCommand: 'install -g azure-functions-core-tools@ --unsafe-perm true --verbose' - - task: UseDotNet@2 - # Although we build on the .NET 8.0 SDK, the dotnet-covenant tool requires 6.0 to be installed - displayName: Install .NET 6.0 runtime - inputs: - packageType: 'runtime' - version: '6.x' - netSdkVersion: '8.x' - -- template: azure-pipelines-test-template.yml - parameters: - jobName: 'UbuntuBuildTest' - vmImage: 'ubuntu-latest' - postCustomEnvironmentVariables: - - task: Npm@1 - displayName: 'Install Latest Azure Functions V4 Runtime' - inputs: - command: custom - verbose: false - customCommand: 'install -g azure-functions-core-tools@ --unsafe-perm true --verbose' - - task: UseDotNet@2 - # Although we build on the .NET 8.0 SDK, the dotnet-covenant tool requires 6.0 to be installed - displayName: Install .NET 6.0 runtime - inputs: - packageType: 'runtime' - version: '6.x' - netSdkVersion: '8.x' \ No newline at end of file diff --git a/build.ps1 b/build.ps1 index 10714ae0..edc57900 100644 --- a/build.ps1 +++ b/build.ps1 @@ -1,3 +1,4 @@ +#Requires -Version 7 <# .SYNOPSIS Runs a .NET flavoured build process. @@ -133,6 +134,11 @@ $SkipPackage = $false $SkipPublish = $false +# NOTE: Install the 'Endjin.RecommendedPractices.Build' VS Code extension to get handy +# snippets for enabling & configuring features in this build script. +# Once installed will open the snippet picker and you can type 'build' +# to see the available snippets. + # # Build process configuration # @@ -152,6 +158,28 @@ $NuSpecFilesToPackage = @( # $ExcludeFilesFromCodeCoverage = "" +# Bump version to one that supports installing on .NET 8.0 +$covenantVersion = "0.19.0" + +task Install-AzureFunctionsSDK { + + $existingVersion = "" + if ((Get-Command func -ErrorAction Ignore)) { + $existingVersion = exec { & func --version } + } + + if (!$existingVersion -or $existingVersion -notlike "4.*") { + Write-Build White "Installing/updating Azure Functions Core Tools..." + if ($IsWindows) { + exec { & npm install -g azure-functions-core-tools@ --unsafe-perm true } + } + else { + Write-Build Yellow "NOTE: May require 'sudo' on Linux/MacOS" + exec { & sudo npm install -g azure-functions-core-tools@ --unsafe-perm true } + } + } +} + # Synopsis: Build, Test and Package task . FullBuild @@ -164,7 +192,7 @@ task PreVersion {} task PostVersion {} task PreBuild {} task PostBuild {} -task PreTest {} +task PreTest Init, Install-AzureFunctionsSDK, {} task PostTest {} task PreTestReport {} task PostTestReport {} diff --git a/docs/ReleaseNotes/Corvus.Testing.v3.md b/docs/ReleaseNotes/Corvus.Testing.v3.md index fb68b145..2ab61ca4 100644 --- a/docs/ReleaseNotes/Corvus.Testing.v3.md +++ b/docs/ReleaseNotes/Corvus.Testing.v3.md @@ -13,7 +13,7 @@ The main changes are: There are also breaking changes: -* `Corvus.Testing.SpecFlow.NUnit` no longer references Moq; projects that were relying on this package to supply that dependency will now need to add their own reference if they want to continue using Moq +* `Corvus.Testing.ReqnRoll.NUnit` no longer references Moq; projects that were relying on this package to supply that dependency will now need to add their own reference if they want to continue using Moq * if a process is already listening on the port you want the hosted function to use, we now throw an exception instead of ploughing on * The `CopyToEnvironmentVariables` extension method for `FunctionConfiguration` now takes an enumerable of `KeyValuePair` - the value type is now a nullable string for reasons described in https://github.com/corvus-dotnet/Corvus.Testing/issues/368