Skip to content

Commit

Permalink
enable <GenerateDocumentationFile> and add most of the missing docume…
Browse files Browse the repository at this point in the history
…ntation (2)
  • Loading branch information
mariusz96 committed Jul 31, 2024
1 parent fefd02a commit c6e34d9
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,17 @@ public class ActivatorUtilitiesMiddlewareResolver : IMiddlewareResolver
{
private readonly IServiceProvider _serviceProvider;

/// <summary>
/// Creates a new <see cref="ServiceProviderMiddlewareResolver"/>.
/// </summary>
/// <param name="serviceProvider">The service provider.</param>
public ActivatorUtilitiesMiddlewareResolver(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider ?? throw new ArgumentNullException("serviceProvider",
"An instance of IServiceProvider must be provided."); ;
}

/// <inheritdoc/>
public MiddlewareResolverResult Resolve(Type type)
{
var middleware = ActivatorUtilities.CreateInstance(_serviceProvider, type);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,17 @@ public class ServiceProviderMiddlewareResolver : IMiddlewareResolver
{
private readonly IServiceProvider _serviceProvider;

/// <summary>
/// Creates a new <see cref="ServiceProviderMiddlewareResolver"/>.
/// </summary>
/// <param name="serviceProvider">The service provider.</param>
public ServiceProviderMiddlewareResolver(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider ?? throw new ArgumentNullException("serviceProvider",
"An instance of IServiceProvider must be provided."); ;
}

/// <inheritdoc/>
public MiddlewareResolverResult Resolve(Type type)
{
var middleware = _serviceProvider.GetRequiredService(type);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,15 +172,14 @@ public void Chain_AddTypeThatIsNotAMiddleware_ThrowsException()
/// Try to generate a deadlock in synchronous middleware.
/// </summary>
[Fact]
public void Execute_SynchronousChainOfResponsibility_SuccessfullyExecute()
public async Task Execute_SynchronousChainOfResponsibility_SuccessfullyExecute()
{
var responsibilityChain = new AsyncResponsibilityChain<string, string>(new ActivatorMiddlewareResolver())
.Chain<SyncReplaceNewLineMiddleware>()
.Chain<SyncTrimMiddleware>()
.Finally(input => Task.FromResult(input));

var resultTask = responsibilityChain.Execute(" Test\nwith spaces\n and new lines \n ");
var result = resultTask.Result;
var result = await responsibilityChain.Execute(" Test\nwith spaces\n and new lines \n ");

Assert.Equal("Test with spaces and new lines", result);
}
Expand Down
2 changes: 1 addition & 1 deletion src/PipelineNet.Tests/Pipelines/AsyncPipelineTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ public async Task Execute_RunSamePipelineTwice_SuccessfullyExecute()
Gender = Gender.Other
};

pipeline.Execute(personModel);
await pipeline.Execute(personModel);

// Check if the level of 'personModel' is 4, which is configured by 'PersonWithGenderProperty' middleware.
Assert.Equal(4, personModel.Level);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,23 @@

namespace PipelineNet.PipelineFactories
{
/// <inheritdoc/>
public class AsyncResponsibilityChainFactory<TParameter, TReturn>
: IAsyncResponsibilityChainFactory<TParameter, TReturn>
{
private readonly IMiddlewareResolver _middlewareResolver;

/// <summary>
/// Creates a new asynchronous chain of responsibility factory.
/// </summary>
/// <param name="middlewareResolver">The resolver used to create the middleware types.</param>
public AsyncResponsibilityChainFactory(IMiddlewareResolver middlewareResolver)
{
_middlewareResolver = middlewareResolver ?? throw new ArgumentNullException("middlewareResolver",
"An instance of IMiddlewareResolver must be provided.");
}

/// <inheritdoc/>
public IAsyncResponsibilityChain<TParameter, TReturn> Create() =>
new AsyncResponsibilityChain<TParameter, TReturn>(_middlewareResolver);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,23 @@

namespace PipelineNet.PipelineFactories
{
/// <inheritdoc/>
public class ResponsibilityChainFactory<TParameter, TReturn>
: IResponsibilityChainFactory<TParameter, TReturn>
{
private readonly IMiddlewareResolver _middlewareResolver;

/// <summary>
/// Creates a new chain of responsibility factory.
/// </summary>
/// <param name="middlewareResolver">The resolver used to create the middleware types.</param>
public ResponsibilityChainFactory(IMiddlewareResolver middlewareResolver)
{
_middlewareResolver = middlewareResolver ?? throw new ArgumentNullException("middlewareResolver",
"An instance of IMiddlewareResolver must be provided.");
}

/// <inheritdoc/>
public IResponsibilityChain<TParameter, TReturn> Create() =>
new ResponsibilityChain<TParameter, TReturn>(_middlewareResolver);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ namespace PipelineNet.MiddlewareResolver
/// </summary>
public class ActivatorMiddlewareResolver : IMiddlewareResolver
{
/// <inheritdoc/>
public MiddlewareResolverResult Resolve(Type type)
{
var middleware = Activator.CreateInstance(type);
Expand Down
6 changes: 6 additions & 0 deletions src/PipelineNet/PipelineFactories/AsyncPipelineFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,23 @@

namespace PipelineNet.PipelineFactories
{
/// <inheritdoc/>
public class AsyncPipelineFactory<TParameter>
: IAsyncPipelineFactory<TParameter>
{
private readonly IMiddlewareResolver _middlewareResolver;

/// <summary>
/// Creates a new asynchronous pipeline factory.
/// </summary>
/// <param name="middlewareResolver">The resolver used to create the middleware types.</param>
public AsyncPipelineFactory(IMiddlewareResolver middlewareResolver)
{
_middlewareResolver = middlewareResolver ?? throw new ArgumentNullException("middlewareResolver",
"An instance of IMiddlewareResolver must be provided.");
}

/// <inheritdoc/>
public IAsyncPipeline<TParameter> Create() =>
new AsyncPipeline<TParameter>(_middlewareResolver);
}
Expand Down
6 changes: 6 additions & 0 deletions src/PipelineNet/PipelineFactories/PipelineFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,23 @@

namespace PipelineNet.PipelineFactories
{
/// <inheritdoc/>
public class PipelineFactory<TParameter>
: IPipelineFactory<TParameter>
{
private readonly IMiddlewareResolver _middlewareResolver;

/// <summary>
/// Creates a new chain of responsibility factory.
/// </summary>
/// <param name="middlewareResolver">The resolver used to create the middleware types.</param>
public PipelineFactory(IMiddlewareResolver middlewareResolver)
{
_middlewareResolver = middlewareResolver ?? throw new ArgumentNullException("middlewareResolver",
"An instance of IMiddlewareResolver must be provided.");
}

/// <inheritdoc/>
public IPipeline<TParameter> Create() =>
new Pipeline<TParameter>(_middlewareResolver);
}
Expand Down

0 comments on commit c6e34d9

Please sign in to comment.