// Operacja wypłaty z debetem public override void Wyplata(double kwota) { if (component != null) { Rachunek r = (Rachunek)component; WzorceProj.command_operacje.Payment p = new WzorceProj.command_operacje.Payment(kwota); double saldo_po_wyplacie = p.Execute(r); if (saldo_po_wyplacie < 0 && this.Debt <= this.MaxDebt) { this.Debt = Math.Abs(saldo_po_wyplacie); r.Saldo = 0; } else { if (this.Debt <= this.MaxDebt) { r.SetHistoria("Przekroczono dopuszczalny limit debetu! (" + this.MaxDebt.ToString() + ")"); } if (saldo_po_wyplacie >= 0) { r.Wyplata(kwota); } } } }
public void Test_RachunekDebetowy_WE_MaxDebet300_wp100_przelew100_WY_0() { double MaxDebet = 300; r = new Rachunek("123", "imie", "nazwisko"); d = new RachunekDebetowy(r, MaxDebet); r_dest = new Rachunek("456", "imie", "nazwisko"); d.Wplata(100); d.Przelew(100, r_dest); d_dest = new RachunekDebetowy(r_dest, MaxDebet); d_dest.Przelew(100, r); r.Wyplata(100); Assert.IsTrue(0 == d.Debt, "Błąd w naliczeniu debetu z rachunku źródłowego!", null); Assert.IsTrue(0 == d_dest.Debt, "Błąd w naliczeniu debetu z rachunku docelowego!", null); Assert.IsTrue(r.Saldo == 0, "Błąd w naliczaniu salda z rachunku źródłowego!", null); Assert.IsTrue(r_dest.Saldo == 0, "Błąd w naliczaniu salda z rachunku docelowego!", null); }