< Summary

Information
Class: TeleFlow.Telegram.Internal.TelegramUpdateLogFormatter
Assembly: TeleFlow.Framework
File(s): /_/src/TeleFlow.Framework/Internal/TelegramUpdateLogFormatter.cs
Line coverage
73%
Covered lines: 19
Uncovered lines: 7
Coverable lines: 26
Total lines: 54
Line coverage: 73%
Branch coverage
57%
Covered branches: 11
Total branches: 19
Branch coverage: 57.8%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetUpdateType(...)100%11100%
FormatAllowedUpdates(...)100%44100%
FormatHandler(...)100%11100%
FormatRoute(...)46.15%251358.82%
FormatPatternRoute(...)50%22100%

File(s)

/_/src/TeleFlow.Framework/Internal/TelegramUpdateLogFormatter.cs

#LineLine coverage
 1using TeleFlow.Telegram.Internal.Handlers;
 2using TeleFlow.Telegram.Schema.Types;
 3
 4namespace TeleFlow.Telegram.Internal;
 5
 6internal static class TelegramUpdateLogFormatter
 7{
 8    public static string GetUpdateType(Update update)
 9    {
 2110        return TelegramUpdateClassifier.Classify(update).Type;
 11    }
 12
 13    public static string FormatAllowedUpdates(IReadOnlyList<string>? allowedUpdates)
 14    {
 1615        return allowedUpdates is null || allowedUpdates.Count == 0
 1616            ? "unset"
 1617            : $"[{string.Join(",", allowedUpdates)}]";
 18    }
 19
 20    public static string FormatHandler(TelegramHandlerDescriptor handler)
 21    {
 1922        ArgumentNullException.ThrowIfNull(handler);
 1923        return $"{handler.HandlerType.Name}.{handler.MethodName}";
 24    }
 25
 26    public static string FormatRoute(TelegramRouteDescriptor route)
 27    {
 1928        ArgumentNullException.ThrowIfNull(route);
 29
 1930        return route.RouteKind switch
 1931        {
 432            TelegramRouteKind.CommandExact => FormatPatternRoute(route, "CommandExact"),
 033            TelegramRouteKind.CommandTemplate => FormatPatternRoute(route, "CommandTemplate"),
 034            TelegramRouteKind.CommandRegex => FormatPatternRoute(route, "CommandRegex"),
 035            TelegramRouteKind.TextExact => FormatPatternRoute(route, "TextExact"),
 036            TelegramRouteKind.TextTemplate => FormatPatternRoute(route, "TextTemplate"),
 037            TelegramRouteKind.TextRegex => FormatPatternRoute(route, "TextRegex"),
 638            TelegramRouteKind.Callback when route.CallbackPayloadType is not null =>
 339                $"Callback<{route.CallbackPayloadType.Name}>",
 340            TelegramRouteKind.Callback => "Callback",
 941            TelegramRouteKind.MessageAny when route.TextFilters.Count > 0 =>
 042                $"MessageAny(text_filters={route.TextFilters.Count})",
 943            TelegramRouteKind.MessageAny => "MessageAny",
 044            _ => route.RouteKind.ToString()
 1945        };
 46    }
 47
 48    private static string FormatPatternRoute(TelegramRouteDescriptor route, string name)
 49    {
 450        return string.IsNullOrWhiteSpace(route.Pattern)
 451            ? name
 452            : $"{name}('{route.Pattern}')";
 53    }
 54}