< Summary

Information
Class: Elsa.Workflows.ActivityExecutionContextExtensions
Assembly: Elsa.Workflows.Core
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.InputOutput.cs
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 41
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetInputs(...)100%11100%
GetOutputs(...)100%88100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.InputOutput.cs

#LineLine coverage
 1using Elsa.Extensions;
 2using Elsa.Workflows.Models;
 3
 4namespace Elsa.Workflows;
 5
 6public static class ActivityExecutionContextExtensions
 7{
 8    extension(ActivityExecutionContext context)
 9    {
 10        public IDictionary<string, object> GetInputs()
 11        {
 345212            return context.ActivityState!;
 13        }
 14
 15        public IDictionary<string, object> GetOutputs()
 16        {
 345217            var activity = context.Activity;
 345218            var expressionExecutionContext = context.ExpressionExecutionContext;
 345219            var activityDescriptor = context.ActivityDescriptor;
 345220            var outputDescriptors = activityDescriptor.Outputs;
 21
 643122            var outputs = outputDescriptors.ToDictionary(x => x.Name, x =>
 345223            {
 297924                if (x.IsSerializable == false)
 85625                    return "(not serializable)";
 345226
 212327                var cachedValue = activity.GetOutput(expressionExecutionContext, x.Name);
 345228
 212329                if (cachedValue != null)
 109830                    return cachedValue;
 345231
 102532                if (x.ValueGetter(activity) is Output output && context.TryGet(output.MemoryBlockReference(), out var ou
 18633                    return outputValue!;
 345234
 83935                return null!;
 345236            });
 37
 345238            return outputs;
 39        }
 40    }
 41}