< Summary

Information
Class: Chronicis.Api.Services.ReservedSlugProvider
Assembly: Chronicis.Api
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Api/Services/ReservedSlugProvider.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 23
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%22100%
IsReserved(...)100%11100%
get_All()100%11100%

File(s)

/home/runner/work/chronicis/chronicis/src/Chronicis.Api/Services/ReservedSlugProvider.cs

#LineLine coverage
 1using Chronicis.Api.Infrastructure;
 2using Microsoft.Extensions.Options;
 3
 4namespace Chronicis.Api.Services;
 5
 6/// <summary>
 7/// Singleton that exposes the reserved slug set loaded from <c>Routing:ReservedSlugs</c> config.
 8/// </summary>
 9public sealed class ReservedSlugProvider : IReservedSlugProvider
 10{
 11    private readonly HashSet<string> _reserved;
 12
 13    public ReservedSlugProvider(IOptions<RoutingOptions> options)
 14    {
 815        _reserved = new HashSet<string>(
 816            options.Value.ReservedSlugs ?? [],
 817            StringComparer.OrdinalIgnoreCase);
 818    }
 19
 920    public bool IsReserved(string slug) => _reserved.Contains(slug);
 21
 722    public IReadOnlyCollection<string> All => _reserved;
 23}