< Summary

Information
Class: LifeChart.Domain.Medications.Medication
Assembly: LifeChart.Domain
File(s): /home/runner/work/lifechart/lifechart/src/LifeChart.Domain/Medications/Medication.cs
Tag: 113_29159449707
Line coverage
93%
Covered lines: 29
Uncovered lines: 2
Coverable lines: 31
Total lines: 50
Line coverage: 93.5%
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
.ctor(...)100%11100%
get_Id()100%210%
get_Name()100%11100%
get_Dosage()100%11100%
get_MinStock()100%11100%
get_CurrentStock()100%11100%
get_Active()100%11100%
get_IntakeTimes()100%11100%
get_IsStockLow()100%11100%
Update(...)100%11100%
Deactivate()100%11100%
.ctor()100%210%

File(s)

/home/runner/work/lifechart/lifechart/src/LifeChart.Domain/Medications/Medication.cs

#LineLine coverage
 1namespace LifeChart.Domain.Medications;
 2
 3public class Medication
 4{
 115    private readonly List<IntakeTime> _intakeTimes = new();
 6
 07    public int Id { get; private set; }
 288    public string Name { get; private set; } = string.Empty;
 289    public string Dosage { get; private set; } = string.Empty;
 2010    public int MinStock { get; private set; }
 2011    public int CurrentStock { get; private set; }
 1412    public bool Active { get; private set; }
 813    public IReadOnlyList<IntakeTime> IntakeTimes => _intakeTimes.AsReadOnly();
 14
 1115    public Medication(
 1116        string name,
 1117        string dosage,
 1118        int minStock,
 1119        int currentStock,
 1120        IEnumerable<IntakeTime> intakeTimes)
 21    {
 1122        Name = name;
 1123        Dosage = dosage;
 1124        MinStock = minStock;
 1125        CurrentStock = currentStock;
 1126        Active = true;
 1127        _intakeTimes.AddRange(intakeTimes);
 1128    }
 29
 430    public bool IsStockLow => CurrentStock <= MinStock;
 31
 32    public void Update(
 33        string name,
 34        string dosage,
 35        int minStock,
 36        int currentStock,
 37        IEnumerable<IntakeTime> intakeTimes)
 38    {
 339        Name = name;
 340        Dosage = dosage;
 341        MinStock = minStock;
 342        CurrentStock = currentStock;
 343        _intakeTimes.Clear();
 344        _intakeTimes.AddRange(intakeTimes);
 345    }
 46
 147    public void Deactivate() => Active = false;
 48
 049    private Medication() { }
 50}