< Summary

Information
Class: TeleFlow.Telegram.TelegramGeneratedErrorHandlerDescriptor
Assembly: TeleFlow.Framework
File(s): /_/src/TeleFlow.Framework/Generated/TelegramGeneratedErrorHandlerDescriptor.cs
Line coverage
73%
Covered lines: 11
Uncovered lines: 4
Coverable lines: 15
Total lines: 71
Line coverage: 73.3%
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
.ctor(...)66.66%7666.66%
CopyValues(...)50%44100%

File(s)

/_/src/TeleFlow.Framework/Generated/TelegramGeneratedErrorHandlerDescriptor.cs

#LineLine coverage
 1using System.ComponentModel;
 2
 3namespace TeleFlow.Telegram;
 4
 5/// <summary>
 6/// Infrastructure error handler metadata emitted by TeleFlow source generators.
 7/// This API is not intended to be used by application code.
 8/// </summary>
 9[EditorBrowsable(EditorBrowsableState.Never)]
 10public sealed class TelegramGeneratedErrorHandlerDescriptor
 11{
 12    public TelegramGeneratedErrorHandlerDescriptor(
 13        Type handlerType,
 14        string methodName,
 15        Type? exceptionType,
 16        Type? telegramContextType,
 17        int registrationOrder,
 18        string? moduleName,
 19        IReadOnlyList<TelegramGeneratedErrorHandlerParameterDescriptor> parameters,
 20        TelegramGeneratedErrorHandlerInvoker invoker)
 21    {
 13022        ArgumentNullException.ThrowIfNull(handlerType);
 13023        ArgumentException.ThrowIfNullOrWhiteSpace(methodName);
 13024        ArgumentNullException.ThrowIfNull(parameters);
 13025        ArgumentNullException.ThrowIfNull(invoker);
 26
 13027        if (exceptionType is not null && !typeof(Exception).IsAssignableFrom(exceptionType))
 28        {
 029            throw new InvalidOperationException(
 030                $"Generated Telegram error handler exception type '{exceptionType.FullName}' must derive from Exception.
 31        }
 32
 13033        if (telegramContextType is not null && !typeof(TelegramUpdateContext).IsAssignableFrom(telegramContextType))
 34        {
 035            throw new InvalidOperationException(
 036                $"Generated Telegram error handler context type '{telegramContextType.FullName}' must derive from Telegr
 37        }
 38
 39        HandlerType = handlerType;
 40        MethodName = methodName;
 41        ExceptionType = exceptionType;
 42        TelegramContextType = telegramContextType;
 43        RegistrationOrder = registrationOrder;
 44        ModuleName = moduleName;
 13045        Parameters = CopyValues(parameters);
 46        Invoker = invoker;
 13047    }
 48
 49    public Type HandlerType { get; }
 50
 51    public string MethodName { get; }
 52
 53    public Type? ExceptionType { get; }
 54
 55    public Type? TelegramContextType { get; }
 56
 57    public int RegistrationOrder { get; }
 58
 59    public string? ModuleName { get; }
 60
 61    public IReadOnlyList<TelegramGeneratedErrorHandlerParameterDescriptor> Parameters { get; }
 62
 63    public TelegramGeneratedErrorHandlerInvoker Invoker { get; }
 64
 65    private static TValue[] CopyValues<TValue>(IReadOnlyList<TValue>? values)
 66    {
 13067        return values is null || values.Count == 0
 13068            ? []
 13069            : values.ToArray();
 70    }
 71}