Skip to content

Commit

Permalink
Merge pull request #63 from mauroservienti/endpoint-template-refactoring
Browse files Browse the repository at this point in the history
Endpoint template refactoring
  • Loading branch information
mauroservienti authored Jun 2, 2020
2 parents e9bfbbd + 1561da7 commit 245c770
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using NServiceBus.AcceptanceTesting;
using NServiceBus.ObjectBuilder;

namespace NServiceBus.IntegrationTesting
{
public static class EndpointConfigurationExtensions
{
public static void RegisterRequiredPipelineBehaviors(this EndpointConfiguration builder, string endpointName, IntegrationScenarioContext integrationScenarioContext)
{
builder.Pipeline.Register(new InterceptInvokedHandlers(endpointName, integrationScenarioContext), "Intercept invoked Message Handlers and Sagas");
builder.Pipeline.Register(new InterceptSendOperations(endpointName, integrationScenarioContext), "Intercept send operations");
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;
}
}
}
}
8 changes: 3 additions & 5 deletions src/NServiceBus.IntegrationTesting/EndpointTemplate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,10 @@ public async Task<EndpointConfiguration> GetConfiguration(RunDescriptor runDescr
var settings = configuration.GetSettings();
endpointCustomizationConfiguration.EndpointName = settings.EndpointName();

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

configuration.Pipeline.Register(new InterceptInvokedHandlers(endpointCustomizationConfiguration.EndpointName, (IntegrationScenarioContext)runDescriptor.ScenarioContext), "Intercept invoked Message Handlers and Sagas");
configuration.Pipeline.Register(new InterceptSendOperations(endpointCustomizationConfiguration.EndpointName, (IntegrationScenarioContext)runDescriptor.ScenarioContext), "Intercept send operations");
configuration.Pipeline.Register(new InterceptPublishOperations(endpointCustomizationConfiguration.EndpointName, (IntegrationScenarioContext)runDescriptor.ScenarioContext), "Intercept publish operations");
configuration.Pipeline.Register(new InterceptReplyOperations(endpointCustomizationConfiguration.EndpointName, (IntegrationScenarioContext)runDescriptor.ScenarioContext), "Intercept reply operations");
configurationBuilderCustomization(configuration);

return configuration;
}
Expand Down

0 comments on commit 245c770

Please sign in to comment.