< 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        {
 342912            return context.ActivityState!;
 13        }
 14
 15        public IDictionary<string, object> GetOutputs()
 16        {
 342917            var activity = context.Activity;
 342918            var expressionExecutionContext = context.ExpressionExecutionContext;
 342919            var activityDescriptor = context.ActivityDescriptor;
 342920            var outputDescriptors = activityDescriptor.Outputs;
 21
 637122            var outputs = outputDescriptors.ToDictionary(x => x.Name, x =>
 342923            {
 294224                if (x.IsSerializable == false)
 84225                    return "(not serializable)";
 342926
 210027                var cachedValue = activity.GetOutput(expressionExecutionContext, x.Name);
 342928
 210029                if (cachedValue != null)
 108730                    return cachedValue;
 342931
 101332                if (x.ValueGetter(activity) is Output output && context.TryGet(output.MemoryBlockReference(), out var ou
 17833                    return outputValue!;
 342934
 83535                return null!;
 342936            });
 37
 342938            return outputs;
 39        }
 40    }
 41}