< Summary

Information
Class: TeleFlow.Telegram.Internal.Handlers.TelegramMemberTransitionFacts
Assembly: TeleFlow.Framework
File(s): /_/src/TeleFlow.Framework/Internal/Handlers/TelegramMemberTransitionFacts.cs
Line coverage
75%
Covered lines: 12
Uncovered lines: 4
Coverable lines: 16
Total lines: 33
Line coverage: 75%
Branch coverage
60%
Covered branches: 3
Total branches: 5
Branch coverage: 60%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Map(...)60%5575%

File(s)

/_/src/TeleFlow.Framework/Internal/Handlers/TelegramMemberTransitionFacts.cs

#LineLine coverage
 1using TeleFlow.Annotations;
 2
 3namespace TeleFlow.Telegram.Internal.Handlers;
 4
 5internal static class TelegramMemberTransitionFacts
 6{
 7    private const TelegramMemberStatusSet PromotedOldStatus =
 8        TelegramMemberStatusSet.Member |
 9        TelegramMemberStatusSet.RestrictedMember |
 10        TelegramMemberStatusSet.RestrictedNotMember |
 11        TelegramMemberStatusSet.Left |
 12        TelegramMemberStatusSet.Banned;
 13
 14    public static TelegramChatMemberTransitionDescriptor Map(TelegramMemberTransition transition)
 15    {
 716        return transition switch
 717        {
 318            TelegramMemberTransition.Join => new TelegramChatMemberTransitionDescriptor(
 319                TelegramMemberStatusSet.IsNotMember,
 320                TelegramMemberStatusSet.IsMember),
 021            TelegramMemberTransition.Leave => new TelegramChatMemberTransitionDescriptor(
 022                TelegramMemberStatusSet.IsMember,
 023                TelegramMemberStatusSet.IsNotMember),
 224            TelegramMemberTransition.Promoted => new TelegramChatMemberTransitionDescriptor(
 225                PromotedOldStatus,
 226                TelegramMemberStatusSet.IsAdmin),
 227            TelegramMemberTransition.Demoted => new TelegramChatMemberTransitionDescriptor(
 228                TelegramMemberStatusSet.IsAdmin,
 229                PromotedOldStatus),
 030            _ => throw new InvalidOperationException($"Unsupported Telegram member transition '{transition}'.")
 731        };
 32    }
 33}