< Summary

Information
Class: TeleFlow.Telegram.Internal.TelegramChatMemberClassifier
Assembly: TeleFlow.Framework
File(s): /_/src/TeleFlow.Framework/Internal/TelegramChatMemberClassifier.cs
Line coverage
66%
Covered lines: 20
Uncovered lines: 10
Coverable lines: 30
Total lines: 83
Line coverage: 66.6%
Branch coverage
61%
Covered branches: 16
Total branches: 26
Branch coverage: 61.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetStatus(...)85.71%141487.5%
GetUser(...)33.33%391242.85%

File(s)

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

#LineLine coverage
 1using TeleFlow.Annotations;
 2using TeleFlow.Telegram.Schema.Types;
 3
 4namespace TeleFlow.Telegram.Internal;
 5
 6internal static class TelegramChatMemberClassifier
 7{
 8    public static TelegramMemberStatusSet GetStatus(ChatMember member)
 9    {
 2810        ArgumentNullException.ThrowIfNull(member);
 11
 2812        if (member.TryGetChatMemberOwner(out _))
 13        {
 014            return TelegramMemberStatusSet.Creator;
 15        }
 16
 2817        if (member.TryGetChatMemberAdministrator(out _))
 18        {
 619            return TelegramMemberStatusSet.Administrator;
 20        }
 21
 2222        if (member.TryGetChatMemberMember(out _))
 23        {
 1324            return TelegramMemberStatusSet.Member;
 25        }
 26
 927        if (member.TryGetChatMemberRestricted(out var restricted))
 28        {
 229            return restricted!.IsMember
 230                ? TelegramMemberStatusSet.RestrictedMember
 231                : TelegramMemberStatusSet.RestrictedNotMember;
 32        }
 33
 734        if (member.TryGetChatMemberLeft(out _))
 35        {
 636            return TelegramMemberStatusSet.Left;
 37        }
 38
 139        if (member.TryGetChatMemberBanned(out _))
 40        {
 141            return TelegramMemberStatusSet.Banned;
 42        }
 43
 044        throw new InvalidOperationException("The Telegram chat member union does not contain a supported case.");
 45    }
 46
 47    public static User GetUser(ChatMember member)
 48    {
 1549        ArgumentNullException.ThrowIfNull(member);
 50
 1551        if (member.TryGetChatMemberOwner(out var owner))
 52        {
 053            return owner!.User;
 54        }
 55
 1556        if (member.TryGetChatMemberAdministrator(out var administrator))
 57        {
 258            return administrator!.User;
 59        }
 60
 1361        if (member.TryGetChatMemberMember(out var memberCase))
 62        {
 1363            return memberCase!.User;
 64        }
 65
 066        if (member.TryGetChatMemberRestricted(out var restricted))
 67        {
 068            return restricted!.User;
 69        }
 70
 071        if (member.TryGetChatMemberLeft(out var left))
 72        {
 073            return left!.User;
 74        }
 75
 076        if (member.TryGetChatMemberBanned(out var banned))
 77        {
 078            return banned!.User;
 79        }
 80
 081        throw new InvalidOperationException("The Telegram chat member union does not contain a supported case.");
 82    }
 83}