Skip to content

Commit

Permalink
finalize filename generation
Browse files Browse the repository at this point in the history
put into runtime plugin
  • Loading branch information
SabotageAndi committed Aug 10, 2022
1 parent 2aa2f37 commit 9f85f17
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 33 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
value
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
value
Original file line number Diff line number Diff line change
@@ -1,42 +1,10 @@
using System.Collections;
using TechTalk.SpecFlow;
using System.Linq;
using TechTalk.SpecFlow;

namespace SpecFlow.Verify.SpecFlowPlugin.IntegrationTest.Steps;

[Binding]
internal class Steps
{
private readonly FeatureContext _featureContext;
private readonly ScenarioContext _scenarioContext;

public Steps(ScenarioContext scenarioContext, FeatureContext featureContext)
{
_scenarioContext = scenarioContext;
_featureContext = featureContext;
}

[BeforeScenario]
public void SetupVerify()
{
VerifierSettings.DerivePathInfo(
(sourceFile, projectDirectory, type, method) =>
{
string scenarioInfoTitle = _scenarioContext.ScenarioInfo.Title;
foreach (DictionaryEntry scenarioInfoArgument in _scenarioContext.ScenarioInfo.Arguments)
{
scenarioInfoTitle += "_" + scenarioInfoArgument.Value;
}
return new PathInfo(
Path.Combine(projectDirectory, _featureContext.FeatureInfo.FolderPath),
_featureContext.FeatureInfo.Title,
scenarioInfoTitle);
});

}

[When("I try Verify with SpecFlow")]
public async Task ITryVerifyWithSpecFlow()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Verify" Version="17.7.0" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
using System.Collections;
using System.IO;
using SpecFlow.Verify.SpecFlowPlugin;
using TechTalk.SpecFlow;
using TechTalk.SpecFlow.Plugins;
using TechTalk.SpecFlow.UnitTestProvider;
using VerifyTests;

[assembly: RuntimePlugin(typeof(VerifyRuntimePlugin))]

namespace SpecFlow.Verify.SpecFlowPlugin;

public class VerifyRuntimePlugin : IRuntimePlugin
{
public void Initialize(RuntimePluginEvents runtimePluginEvents, RuntimePluginParameters runtimePluginParameters, UnitTestProviderConfiguration unitTestProviderConfiguration)
{
runtimePluginEvents.CustomizeGlobalDependencies += RuntimePluginEvents_CustomizeGlobalDependencies;
}

private void RuntimePluginEvents_CustomizeGlobalDependencies(object sender, CustomizeGlobalDependenciesEventArgs e)
{
var runtimePluginTestExecutionLifecycleEvents = e.ObjectContainer.Resolve<RuntimePluginTestExecutionLifecycleEvents>();
runtimePluginTestExecutionLifecycleEvents.BeforeScenario += RuntimePluginTestExecutionLifecycleEvents_BeforeScenario;
}

private void RuntimePluginTestExecutionLifecycleEvents_BeforeScenario(object sender, RuntimePluginBeforeScenarioEventArgs e)
{
var scenarioContext = e.ObjectContainer.Resolve<ScenarioContext>();
var featureContext = e.ObjectContainer.Resolve<FeatureContext>();

VerifierSettings.DerivePathInfo(
(sourceFile, projectDirectory, type, method) =>
{
string scenarioInfoTitle = scenarioContext.ScenarioInfo.Title;
foreach (DictionaryEntry scenarioInfoArgument in scenarioContext.ScenarioInfo.Arguments)
{
scenarioInfoTitle += "_" + scenarioInfoArgument.Value;
}
return new PathInfo(
Path.Combine(projectDirectory, featureContext.FeatureInfo.FolderPath),
featureContext.FeatureInfo.Title,
scenarioInfoTitle);
});
}
}

0 comments on commit 9f85f17

Please sign in to comment.