< Summary

Information
Class: TeleFlow.Annotations.ChatMemberChangedAttribute
Assembly: TeleFlow.Annotations
File(s): /_/src/TeleFlow.Annotations/ChatMembers/ChatMemberChangedAttribute.cs
Line coverage
75%
Covered lines: 6
Uncovered lines: 2
Coverable lines: 8
Total lines: 40
Line coverage: 75%
Branch coverage
33%
Covered branches: 1
Total branches: 3
Branch coverage: 33.3%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)33.33%3375%

File(s)

/_/src/TeleFlow.Annotations/ChatMembers/ChatMemberChangedAttribute.cs

#LineLine coverage
 1namespace TeleFlow.Annotations;
 2/// <summary>
 3/// Routes a chat member update when old and new member statuses match the configured sets.
 4/// </summary>
 5[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
 6public sealed class ChatMemberChangedAttribute : TeleFlowAttribute
 7{
 8    /// <summary>
 9    /// Creates a chat member status change route.
 10    /// </summary>
 11    /// <param name="oldStatus">Allowed previous member statuses.</param>
 12    /// <param name="newStatus">Allowed new member statuses.</param>
 613    public ChatMemberChangedAttribute(
 614        TelegramMemberStatusSet oldStatus,
 615        TelegramMemberStatusSet newStatus)
 16    {
 617        if (!TelegramMemberStatusSetValidator.IsValid(oldStatus))
 18        {
 019            throw new ArgumentException("Old Telegram member status set must contain at least one known status.", nameof
 20        }
 21
 622        if (!TelegramMemberStatusSetValidator.IsValid(newStatus))
 23        {
 024            throw new ArgumentException("New Telegram member status set must contain at least one known status.", nameof
 25        }
 26
 27        OldStatus = oldStatus;
 28        NewStatus = newStatus;
 629    }
 30
 31    /// <summary>
 32    /// Allowed previous member statuses.
 33    /// </summary>
 34    public TelegramMemberStatusSet OldStatus { get; }
 35
 36    /// <summary>
 37    /// Allowed new member statuses.
 38    /// </summary>
 39    public TelegramMemberStatusSet NewStatus { get; }
 40}