< Summary

Information
Class: Nabs.Scenarios.ScenarioBase<T1, T2, T3>
Assembly: Nabs.Scenarios
File(s): /home/runner/work/Nabs/Nabs/src/Nabs.Scenarios/ScenarioBase.cs
Tag: 90_14636759620
Line coverage
60%
Covered lines: 9
Uncovered lines: 6
Coverable lines: 15
Total lines: 47
Line coverage: 60%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
.ctor(...)100%210%
Handle()100%11100%
InitialiseActivityState(...)100%210%

File(s)

/home/runner/work/Nabs/Nabs/src/Nabs.Scenarios/ScenarioBase.cs

#LineLine coverage
 1using MediatR;
 2using Nabs.ActivityFramework;
 3using Nabs.Projections;
 4
 5namespace Nabs.Scenarios;
 6
 7public abstract class ScenarioBase<TRequest, TResponse, TActivityState>
 8    : Activity<TActivityState>, IRequestHandler<TRequest, TResponse>
 9    where TRequest : IRequest<TResponse>, IProjection
 10    where TResponse : class, IProjection
 11    where TActivityState : class, IActivityState
 12{
 113    protected ScenarioBase(
 114        IApplicationContext applicationContext)
 15    {
 116        ApplicationContext = applicationContext;
 117    }
 18
 19    protected ScenarioBase(
 20        TActivityState activityState,
 21        IApplicationContext applicationContext)
 022        : base(activityState)
 23    {
 024        ApplicationContext = applicationContext;
 025    }
 26
 27    public IApplicationContext ApplicationContext { get; }
 28
 29    public async Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken)
 30    {
 131        await InvokeActivity(request);
 32
 133        await RunAsync();
 34
 135        var result = ProcessResult();
 136        return result;
 137    }
 38
 39    protected void InitialiseActivityState(TActivityState activityState)
 40    {
 041        InitialActivityState = activityState;
 042        ActivityState = InitialActivityState;
 043    }
 44
 45    protected abstract Task InvokeActivity(TRequest request);
 46    protected abstract TResponse ProcessResult();
 47}