< Summary

Information
Class: Elsa.Extensions.InputExtensions
Assembly: Elsa.Workflows.Core
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Core/Extensions/InputExtensions.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 60
Line coverage: 100%
Branch coverage
66%
Covered branches: 8
Total branches: 12
Branch coverage: 66.6%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetOrDefault(...)75%44100%
GetOrDefault(...)75%44100%
Get(...)50%22100%
Get(...)50%22100%

File(s)

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

#LineLine coverage
 1using System.Runtime.CompilerServices;
 2using Elsa.Expressions.Models;
 3using Elsa.Workflows;
 4using Elsa.Workflows.Models;
 5
 6// ReSharper disable once CheckNamespace
 7namespace Elsa.Extensions;
 8
 9/// <summary>
 10/// Provides extensions on <see cref="ExpressionExecutionContext"/> and <see cref="ActivityExecutionContext"/>
 11/// </summary>
 12public static class InputExtensions
 13{
 14    /// <param name="input">The input.</param>
 15    /// <typeparam name="T">The type of the input.</typeparam>
 16    extension<T>(Input<T>? input)
 17    {
 18        /// <summary>
 19        /// Returns the value of the specified input, or a default value if the input is not found.
 20        /// </summary>
 21        public T? GetOrDefault(ActivityExecutionContext context, Func<T>? defaultValue = default)
 22        {
 117423            var value = context.Get(input);
 117424            return value != null ? value : defaultValue != null ? defaultValue.Invoke() : default;
 25        }
 26
 27        /// <summary>
 28        /// Returns the value of the specified input, or a default value if the input is not found.
 29        /// </summary>
 30        public T? GetOrDefault(ExpressionExecutionContext context, Func<T>? defaultValue = default)
 31        {
 23532            var value = context.Get(input);
 23533            return value != null ? value : defaultValue != null ? defaultValue.Invoke() : default;
 34        }
 35
 36        /// <summary>
 37        /// Returns the value of the specified input.
 38        /// </summary>
 39        /// <param name="context">The context.</param>
 40        /// <param name="inputName">The name of the input.</param>
 41        /// <returns>The value of the specified input.</returns>
 42        /// <exception cref="Exception">Throws an exception if the input is not found.</exception>
 43        public T Get(ActivityExecutionContext context, [CallerArgumentExpression("input")] string? inputName = default)
 44        {
 36145            return context.Get(input) ?? throw new Exception($"{inputName} is required.");
 46        }
 47
 48        /// <summary>
 49        /// Returns the value of the specified input.
 50        /// </summary>
 51        /// <param name="context">The context.</param>
 52        /// <param name="inputName">The name of the input.</param>
 53        /// <returns>The value of the specified input.</returns>
 54        /// <exception cref="Exception">Throws an exception if the input is not found.</exception>
 55        public T Get(ExpressionExecutionContext context, [CallerArgumentExpression("input")] string? inputName = default
 56        {
 2157            return context.Get(input) ?? throw new Exception($"{inputName} is required.");
 58        }
 59    }
 60}