< Summary

Line coverage
90%
Covered lines: 18
Uncovered lines: 2
Coverable lines: 20
Total lines: 72
Line coverage: 90%
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%210%
.ctor(...)100%11100%
get_CustomerName()100%210%
get_Balance()100%11100%
Debit(...)100%44100%
Credit(...)100%22100%

File(s)

/home/runner/work/lab-2025-i-si784-u2-05-cs-srg-cp/lab-2025-i-si784-u2-05-cs-srg-cp/Bank/Bank.Domain/BankAccount.cs

#LineLine coverage
 1namespace Bank.Domain
 2{
 3    /// <summary>
 4    /// Representa una cuenta bancaria con operaciones de débito y crédito.
 5    /// </summary>
 6    public class BankAccount
 7    {
 8        /// <summary>
 9        /// Mensaje para cuando el monto a debitar excede el saldo.
 10        /// </summary>
 11        public const string DebitAmountExceedsBalanceMessage = "Debit amount exceeds balance";
 12
 13        /// <summary>
 14        /// Mensaje para cuando el monto a debitar es menor a cero.
 15        /// </summary>
 16        public const string DebitAmountLessThanZeroMessage = "Debit amount is less than zero";
 17
 18        /// <summary>
 19        /// Mensaje para cuando el monto del crédito es menor a cero.
 20        /// </summary>
 21        public const string CreditAmountLessThanOrEqualToZeroMessage = "Credit amount must be positive";
 22
 23        private readonly string m_customerName;
 24        private double m_balance;
 25
 26        /// <summary>
 27        /// Constructor para pruebas internas.
 28        /// </summary>
 029        private BankAccount() { }
 30
 31        /// <summary>
 32        /// Inicializa una nueva instancia de <see cref="BankAccount"/>.
 33        /// </summary>
 1134        public BankAccount(string customerName, double balance)
 1135        {
 1136            m_customerName = customerName;
 1137            m_balance = balance;
 1138        }
 39
 40        /// <summary>
 41        /// Obtiene el nombre del cliente.
 42        /// </summary>
 043        public string CustomerName => m_customerName;
 44
 45        /// <summary>
 46        /// Obtiene el saldo actual.
 47        /// </summary>
 648        public double Balance => m_balance;
 49
 50        /// <summary>
 51        /// Debita una cantidad de la cuenta.
 52        /// </summary>
 53        public void Debit(double amount)
 854        {
 855            if (amount > m_balance)
 256                throw new ArgumentOutOfRangeException("amount", amount, DebitAmountExceedsBalanceMessage);
 657            if (amount < 0)
 258                throw new ArgumentOutOfRangeException("amount", amount, DebitAmountLessThanZeroMessage);
 459            m_balance -= amount;
 460        }
 61
 62        /// <summary>
 63        /// Acredita una cantidad a la cuenta.
 64        /// </summary>
 65        public void Credit(double amount)
 366        {
 367            if (amount < 0)
 168                throw new ArgumentOutOfRangeException("amount", amount, "Credit amount must be positive");
 269            m_balance += amount;
 270        }
 71    }
 72}