< Summary

Information
Class: Elsa.Workflows.Runtime.WorkflowRuntimeTypeAliasRegistrar
Assembly: Elsa.Workflows.Runtime
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Runtime/WorkflowRuntimeTypeAliasRegistrar.cs
Line coverage
100%
Covered lines: 17
Uncovered lines: 0
Coverable lines: 17
Total lines: 36
Line coverage: 100%
Branch coverage
60%
Covered branches: 6
Total branches: 10
Branch coverage: 60%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Register(...)100%22100%
IsConcreteWorkflowType(...)50%88100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Runtime/WorkflowRuntimeTypeAliasRegistrar.cs

#LineLine coverage
 1using Elsa.Extensions;
 2using Elsa.Workflows;
 3using Elsa.Workflows.Options;
 4using Elsa.Workflows.Runtime.Bookmarks;
 5using Elsa.Workflows.Runtime.Stimuli;
 6using Elsa.Common.Serialization;
 7
 8namespace Elsa.Workflows.Runtime;
 9
 10internal static class WorkflowRuntimeTypeAliasRegistrar
 11{
 12    public static void Register(SerializationTypeOptions options, IEnumerable<Type> workflowTypes)
 13    {
 26114        options.AddTypeAlias<EventBookmarkPayload>();
 26115        options.AddTypeAlias<ExecuteWorkflowPayload>();
 26116        options.AddTypeAlias<RunTaskBookmarkPayload>();
 26117        options.AddTypeAlias<BookmarkTokenPayload>();
 26118        options.AddTypeAlias<EventTokenPayload>();
 26119        options.AddTypeAlias<ExecuteWorkflowResult>();
 26120        options.AddTypeAlias<WorkflowInterruptedPayload>();
 26121        options.AddTypeAlias<BackgroundActivityStimulus>();
 26122        options.AddTypeAlias<BulkDispatchWorkflowsStimulus>();
 26123        options.AddTypeAlias<DispatchWorkflowStimulus>();
 26124        options.AddTypeAlias<EventStimulus>();
 26125        options.AddTypeAlias<ExecuteWorkflowStimulus>();
 26126        options.AddTypeAlias<RunTaskStimulus>();
 27
 123428        foreach (var workflowType in workflowTypes.Where(IsConcreteWorkflowType).Distinct())
 35629            options.RegisterTypeAlias(workflowType, workflowType.GetSimpleAssemblyQualifiedName());
 26130    }
 31
 32    private static bool IsConcreteWorkflowType(Type type)
 33    {
 35634        return typeof(IWorkflow).IsAssignableFrom(type) && type is { IsAbstract: false, IsInterface: false, ContainsGene
 35    }
 36}