< Summary

Information
Class: planora.Application.Common.Mediator
Assembly: planora.Application
File(s): /home/runner/work/planora/planora/src/planora.Application/Common/Mediator.cs
Tag: 10_15767155620
Line coverage
100%
Covered lines: 22
Uncovered lines: 0
Coverable lines: 22
Total lines: 48
Line coverage: 100%
Branch coverage
75%
Covered branches: 9
Total branches: 12
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Query()75%44100%
Command()75%44100%
Command()75%44100%

File(s)

/home/runner/work/planora/planora/src/planora.Application/Common/Mediator.cs

#LineLine coverage
 1using planora.Application.Interfaces.Mediator;
 2
 3namespace planora.Application.Common;
 4
 125public class Mediator(IServiceProvider serviceProvider) : IMediator
 6{
 7    public async Task<TResponse> Query<TResponse>(
 8        IQuery<TResponse> query,
 9        CancellationToken cancellationToken
 10    )
 11    {
 412        var handlerType = typeof(IQueryHandler<,>).MakeGenericType(query.GetType(), typeof(TResponse));
 413        var handler = serviceProvider.GetService(handlerType) ??
 414                      throw new InvalidOperationException($"No handler registered for {query.GetType().Name}");
 15
 216        var method = handlerType.GetMethod("Handle") ??
 217                     throw new InvalidOperationException($"No 'Handle' method found for {handlerType.Name}");
 18
 219        return await (Task<TResponse>)method.Invoke(handler, [query, cancellationToken])!;
 220    }
 21
 22    public async Task Command(ICommand command, CancellationToken cancellationToken)
 23    {
 424        var handlerType = typeof(ICommandHandler<>).MakeGenericType(command.GetType());
 425        var handler = serviceProvider.GetService(handlerType) ??
 426                      throw new InvalidOperationException($"No handler registered for {command.GetType().Name}");
 27
 228        var method = handlerType.GetMethod("Handle") ??
 229                     throw new InvalidOperationException($"No 'Handle' method found for {handlerType.Name}");
 30
 231        await (Task)method.Invoke(handler, [command, cancellationToken])!;
 232    }
 33
 34    public async Task<TResponse> Command<TResponse>(
 35        ICommand<TResponse> command,
 36        CancellationToken cancellationToken
 37    )
 38    {
 439        var handlerType = typeof(ICommandHandler<,>).MakeGenericType(command.GetType(), typeof(TResponse));
 440        var handler = serviceProvider.GetService(handlerType) ??
 441                      throw new InvalidOperationException($"No handler registered for {command.GetType().Name}");
 42
 243        var method = handlerType.GetMethod("Handle") ??
 244                     throw new InvalidOperationException($"No 'Handle' method found for {handlerType.Name}");
 45
 246        return await (Task<TResponse>)method.Invoke(handler, [command, cancellationToken])!;
 247    }
 48}