< 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    {
 20214        options.AddTypeAlias<EventBookmarkPayload>();
 20215        options.AddTypeAlias<ExecuteWorkflowPayload>();
 20216        options.AddTypeAlias<RunTaskBookmarkPayload>();
 20217        options.AddTypeAlias<BookmarkTokenPayload>();
 20218        options.AddTypeAlias<EventTokenPayload>();
 20219        options.AddTypeAlias<ExecuteWorkflowResult>();
 20220        options.AddTypeAlias<WorkflowInterruptedPayload>();
 20221        options.AddTypeAlias<BackgroundActivityStimulus>();
 20222        options.AddTypeAlias<BulkDispatchWorkflowsStimulus>();
 20223        options.AddTypeAlias<DispatchWorkflowStimulus>();
 20224        options.AddTypeAlias<EventStimulus>();
 20225        options.AddTypeAlias<ExecuteWorkflowStimulus>();
 20226        options.AddTypeAlias<RunTaskStimulus>();
 27
 83628        foreach (var workflowType in workflowTypes.Where(IsConcreteWorkflowType).Distinct())
 21629            options.RegisterTypeAlias(workflowType, workflowType.GetSimpleAssemblyQualifiedName());
 20230    }
 31
 32    private static bool IsConcreteWorkflowType(Type type)
 33    {
 21634        return typeof(IWorkflow).IsAssignableFrom(type) && type is { IsAbstract: false, IsInterface: false, ContainsGene
 35    }
 36}