< Summary

Information
Class: DirectSight.Reporting.ReportBuilderFactory
Assembly DirectSight
File(s): /home/runner/work/DirectSight/DirectSight/DirectSight/Reporting/ReportBuilderFactory.cs
Line coverage
100%
Covered lines: 16
Uncovered lines: 0
Coverable lines: 16
Total lines: 51
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
GetReportBuilderInstances()100%11100%
GetAvailableReportTypes()100%11100%
GetReportBuilders(...)100%22100%

File(s)

/home/runner/work/DirectSight/DirectSight/DirectSight/Reporting/ReportBuilderFactory.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Linq;
 3using DirectSight.Logging;
 4using DirectSight.Reporting.Builders;
 5
 6namespace DirectSight.Reporting;
 7
 8/// <summary>
 9/// Factory that creates instances of <see cref="IReportBuilder"/>.
 10/// </summary>
 11internal static class ReportBuilderFactory
 12{
 13    public static List<IReportBuilder> GetReportBuilderInstances()
 314    {
 315        return [ new HtmlReportBuilder(), new JsonSummaryReportBuilder() ];
 316    }
 17
 18    /// <summary>
 19    /// Gets the available report types.
 20    /// </summary>
 21    /// <returns>
 22    /// The available report types.
 23    /// </returns>
 24    public static IEnumerable<string> GetAvailableReportTypes()
 125    {
 126        var reportBuilders = GetReportBuilderInstances();
 27
 328        return [.. reportBuilders.Select(r => r.ReportType)];
 129    }
 30
 31    /// <summary>
 32    /// Gets the report builders that correspond to the given <paramref name="reportContext" />.
 33    /// </summary>
 34    /// <param name="reportContext">The report context.</param>
 35    /// <returns>
 36    /// The report builders.
 37    /// </returns>
 38    public static IEnumerable<IReportBuilder> GetReportBuilders(ReportContext reportContext)
 239    {
 240        ConsoleLogger.Debug("Initializing report builders for all report types.");
 41
 242        var result = GetReportBuilderInstances();
 43
 1444        foreach (var reportBuilder in result)
 445        {
 446            reportBuilder.ReportContext = reportContext;
 447        }
 48
 249        return result;
 250    }
 51}