< Summary

Information
Class: Pomodoro.Web.Services.Formatters.TimeFormatter
Assembly: Pomodoro.Web
File(s): /home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Services/Formatters/TimeFormatter.cs
Line coverage
100%
Covered lines: 20
Uncovered lines: 0
Coverable lines: 20
Total lines: 50
Line coverage: 100%
Branch coverage
100%
Covered branches: 10
Total branches: 10
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
FormatTime(...)100%88100%
FormatSimpleTime(...)100%22100%

File(s)

/home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Services/Formatters/TimeFormatter.cs

#LineLine coverage
 1using static Pomodoro.Web.Constants;
 2
 3namespace Pomodoro.Web.Services.Formatters;
 4
 5/// <summary>
 6/// Service for formatting time values into human-readable strings
 7/// </summary>
 8public class TimeFormatter
 9{
 10    /// <summary>
 11    /// Formats minutes into a human-readable time string
 12    /// </summary>
 13    /// <param name="minutes">Total minutes to format</param>
 14    /// <returns>Formatted time string (e.g., "2h 30m", "45m", "1h")</returns>
 15    public virtual string FormatTime(int minutes)
 3216    {
 3317        if (minutes == 0) return string.Format(Constants.TimeFormats.MinutesFormat, 0);
 18
 3119        var hours = minutes / Constants.TimeConversion.MinutesPerHour;
 3120        var mins = minutes % Constants.TimeConversion.MinutesPerHour;
 21
 3122        if (hours > 0 && mins > 0)
 2123        {
 2124            return string.Format(Constants.TimeFormats.HoursMinutesFormat, hours, mins);
 25        }
 1026        else if (hours > 0)
 927        {
 928            return string.Format(Constants.TimeFormats.HoursFormat, hours);
 29        }
 30        else
 131        {
 132            return string.Format(Constants.TimeFormats.MinutesFormat, mins);
 33        }
 3234    }
 35
 36    /// <summary>
 37    /// Formats minutes into a simple time string (hours and minutes only)
 38    /// </summary>
 39    /// <param name="minutes">Total minutes to format</param>
 40    /// <returns>Formatted time string (e.g., "2h 30m", "45m")</returns>
 41    public string FormatSimpleTime(int minutes)
 4442    {
 4443        if (minutes < Constants.TimeConversion.MinutesPerHour)
 2044            return string.Format(Constants.TimeFormats.MinutesFormat, minutes);
 45
 2446        var hours = minutes / Constants.TimeConversion.MinutesPerHour;
 2447        var mins = minutes % Constants.TimeConversion.MinutesPerHour;
 2448        return string.Format(Constants.TimeFormats.HoursMinutesFormat, hours, mins);
 4449    }
 50}