< Summary

Information
Class: TeleFlow.Telegram.I18n.Internal.LocaleAccessor
Assembly: TeleFlow.Framework.I18n
File(s): /_/src/TeleFlow.Framework.I18n/Internal/LocaleAccessor.cs
Line coverage
87%
Covered lines: 7
Uncovered lines: 1
Coverable lines: 8
Total lines: 26
Line coverage: 87.5%
Branch coverage
75%
Covered branches: 3
Total branches: 4
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_IsAvailable()100%11100%
get_Current()100%22100%
Initialize(...)50%2280%

File(s)

/_/src/TeleFlow.Framework.I18n/Internal/LocaleAccessor.cs

#LineLine coverage
 1namespace TeleFlow.Telegram.I18n.Internal;
 2
 3/// <summary>
 4/// Stores the locale selected by locale middleware for the lifetime of one scoped Telegram update pipeline.
 5/// </summary>
 6internal sealed class LocaleAccessor : ILocaleAccessor
 7{
 8    private Locale? _current;
 9
 110    public bool IsAvailable => _current is not null;
 11
 1412    public Locale Current => _current ?? throw new InvalidOperationException(
 1413        "No locale is available. ILocaleAccessor can only be used after locale resolution inside Telegram update process
 14
 15    public void Initialize(Locale locale)
 16    {
 817        ArgumentNullException.ThrowIfNull(locale);
 18
 819        if (_current is not null)
 20        {
 021            throw new InvalidOperationException("The locale has already been resolved for this update scope.");
 22        }
 23
 824        _current = locale;
 825    }
 26}