< Summary

Information
Class: Pomodoro.Web.Services.EventWiringService
Assembly: Pomodoro.Web
File(s): /home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Services/EventWiringService.cs
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 49
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
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%11100%
WireEventSubscribers(...)100%66100%

File(s)

/home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Services/EventWiringService.cs

#LineLine coverage
 1using Microsoft.Extensions.Logging;
 2using Pomodoro.Web.Services;
 3
 4namespace Pomodoro.Web.Services;
 5
 6/// <summary>
 7/// Service for wiring up event subscribers to timer events.
 8/// Extracted from Program.cs for testability.
 9/// </summary>
 10public interface IEventWiringService
 11{
 12    void WireEventSubscribers(IServiceProvider serviceProvider);
 13}
 14
 15public class EventWiringService : IEventWiringService
 16{
 17    private readonly ILogger<EventWiringService> _logger;
 18
 1219    public EventWiringService(ILogger<EventWiringService> logger)
 1220    {
 1221        _logger = logger;
 1222    }
 23
 24    public void WireEventSubscribers(IServiceProvider serviceProvider)
 925    {
 26        // Get service references
 927        var timerService = serviceProvider.GetRequiredService<ITimerService>();
 928        var taskService = serviceProvider.GetService<ITaskService>();
 929        var activityService = serviceProvider.GetService<IActivityService>();
 30
 31        // Wire up event subscribers to timer publisher
 932        if (timerService is ITimerEventPublisher timerPublisher)
 833        {
 34            // Subscribe TaskService to timer events
 835            if (taskService is ITimerEventSubscriber taskSubscriber)
 236            {
 237                timerPublisher.OnTimerCompleted += taskSubscriber.HandleTimerCompletedAsync;
 238            }
 39
 40            // Subscribe ActivityService to timer events
 841            if (activityService is ITimerEventSubscriber activitySubscriber)
 242            {
 243                timerPublisher.OnTimerCompleted += activitySubscriber.HandleTimerCompletedAsync;
 244            }
 845        }
 46
 947        _logger.LogInformation("Event subscribers wired up successfully");
 948    }
 49}