Skip to content

Commit

Permalink
Ensure ScenarioContext is registered in the container
Browse files Browse the repository at this point in the history
  • Loading branch information
mauroservienti committed Jun 2, 2020
1 parent 7c9e8d6 commit 1561da7
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,20 @@ public static void RegisterRequiredPipelineBehaviors(this EndpointConfiguration
builder.Pipeline.Register(new InterceptPublishOperations(endpointName, integrationScenarioContext), "Intercept publish operations");
builder.Pipeline.Register(new InterceptReplyOperations(endpointName, integrationScenarioContext), "Intercept reply operations");
}

public static void RegisterScenarioContext(this EndpointConfiguration builder, ScenarioContext scenarioContext)
{
builder.RegisterComponents(r => { RegisterInheritanceHierarchyOfContextOnContainer(scenarioContext, r); });
}

static void RegisterInheritanceHierarchyOfContextOnContainer(ScenarioContext scenarioContext, IConfigureComponents r)
{
var type = scenarioContext.GetType();
while (type != typeof(object))
{
r.RegisterSingleton(type, scenarioContext);
type = type.BaseType;
}
}
}
}
1 change: 1 addition & 0 deletions src/NServiceBus.IntegrationTesting/EndpointTemplate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public async Task<EndpointConfiguration> GetConfiguration(RunDescriptor runDescr
endpointCustomizationConfiguration.EndpointName = settings.EndpointName();

configuration.RegisterRequiredPipelineBehaviors(endpointCustomizationConfiguration.EndpointName, (IntegrationScenarioContext)runDescriptor.ScenarioContext);
configuration.RegisterScenarioContext(runDescriptor.ScenarioContext);

configurationBuilderCustomization(configuration);

Expand Down

0 comments on commit 1561da7

Please sign in to comment.