< Summary

Information
Class: Chronicis.Api.Services.ExternalLinks.Open5eCategoryStrategyBase
Assembly: Chronicis.Api
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Api/Services/ExternalLinks/Open5eCategoryStrategyBase.cs
Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 24
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_DocumentSlug()100%11100%
get_WebCategory()100%11100%
BuildSubtitle(...)100%11100%

File(s)

/home/runner/work/chronicis/chronicis/src/Chronicis.Api/Services/ExternalLinks/Open5eCategoryStrategyBase.cs

#LineLine coverage
 1using System.Text.Json;
 2
 3namespace Chronicis.Api.Services.ExternalLinks;
 4
 5/// <summary>
 6/// Base class providing shared defaults for Open5e category strategies.
 7/// </summary>
 8public abstract class Open5eCategoryStrategyBase : IOpen5eCategoryStrategy
 9{
 10    public abstract string CategoryKey { get; }
 11    public abstract string Endpoint { get; }
 12    public abstract string DisplayName { get; }
 13    public abstract string? Icon { get; }
 14
 815    public virtual string DocumentSlug => "5e-2014";
 4816    public virtual string WebCategory => CategoryKey;
 17
 18    public abstract string BuildMarkdown(JsonElement root, string title);
 19
 20    /// <summary>
 21    /// Default subtitle is just the display name. Override to add category-specific details.
 22    /// </summary>
 523    public virtual string BuildSubtitle(JsonElement item) => DisplayName;
 24}