public void CanGrantTest() { var dic = new Dictionary <uint, uint>(); var target = new Cashpoint(true, dic); Assert.IsTrue(target.CanGrant(0), "Банкомат не может выдать 0"); target.AddBanknote(5, 1); Assert.IsTrue(target.CanGrant(5), "Банкомат не может выдать 5=5"); target.AddBanknote(6, 1); Assert.IsFalse(target.CanGrant(10), "Банкомат выдал 10 != 6+5"); target.AddBanknote(3, 1); Assert.IsTrue(target.CanGrant(8), "Банкомат не смог выдать 5+3=8"); target.AddBanknote(15, 1); target.AddBanknote(14, 1); Assert.IsTrue(target.CanGrant(28), "Банкомат не смог выдать 5+3+6+14=28"); Assert.IsFalse(target.CanGrant(16), "Банкомат как-то смог выдать 16 != 14+3"); Assert.IsFalse(target.CanGrant(44), "Банкомат как-то смог 44 > 5+6+3+15+14"); Assert.IsTrue(target.CanGrant(target.Total), "Банкомат не смог выдать всю свою сумму(банкноты не повторяются)"); target.AddBanknote(50, 2); target.AddBanknote(10, 10); target.RemoveBanknote(10, 5); Assert.IsTrue(target.CanGrant(150), "Банкомат не смог выдать 150"); target.RemoveBanknote(50, 1); target.RemoveBanknote(10, 3); Assert.IsTrue(target.CanGrant(70), "Банкомат не смог выдать 70"); }
public void RemoveBanknoteTest() { var dic = new Dictionary <uint, uint>(); var target = new Cashpoint(true, dic); target.OnError += delegate { }; target.RemoveBanknote(5, 1); Assert.AreEqual(0u, target.Total, "Извлечена несуществующая купюра из пустого банкомата"); target.AddBanknote(7, 2); target.RemoveBanknote(3, 1); Assert.AreEqual(14u, target.Total, "Извлечена несуществующая купюра"); target.RemoveBanknote(7, 2); Assert.AreEqual(0u, target.Total, "Купюры извлечены не полностью"); }
public void RemoveBanknote_ExistingBanknotesOnOneBill_ShouldDecrementTotal() { var cashpoint = new Cashpoint(); cashpoint.AddBanknote(3); cashpoint.AddBanknote(10); cashpoint.AddBanknote(1); cashpoint.AddBanknote(5); cashpoint.RemoveBanknote(5); cashpoint.RemoveBanknote(10); Assert.That( cashpoint.Total, Is.EqualTo(4), "Купюры извлечены некорректно"); }
public void RemoveBanknote_ExistingBanknotesOnMultipleBill_ShouldDecrementTotal() { var cashpoint = new Cashpoint(); cashpoint.AddBanknote(3, 4); cashpoint.AddBanknote(10, 2); cashpoint.AddBanknote(6, 3); cashpoint.AddBanknote(7, 5); cashpoint.RemoveBanknote(3, 2); cashpoint.RemoveBanknote(7, 3); Assert.That( cashpoint.Total, Is.EqualTo(58), "Купюры извлечены некорректно"); }
public void RemoveBanknote_ExistingBanknotesOnMultipleBill_ShouldDecrementCountBanknotes() { var cashpoint = new Cashpoint(); cashpoint.AddBanknote(3, 4); cashpoint.AddBanknote(10, 2); cashpoint.AddBanknote(6, 3); cashpoint.AddBanknote(7, 5); cashpoint.RemoveBanknote(3, 2); cashpoint.RemoveBanknote(7, 3); Assert.That( cashpoint.CountBanknotes, Is.EqualTo(9), "Неверное количество купюр в банкомате"); }
public void RemoveBanknote_ExistingBanknotesOnOneBill_ShouldDecrementCountBanknotes() { var cashpoint = new Cashpoint(); cashpoint.AddBanknote(3); cashpoint.AddBanknote(10); cashpoint.AddBanknote(1); cashpoint.AddBanknote(5); cashpoint.RemoveBanknote(5); cashpoint.RemoveBanknote(10); Assert.That( cashpoint.CountBanknotes, Is.EqualTo(2), "Неверное количество купюр в банкомате"); }
public void RemoveBanknote_CashpointIsEmpty_ShouldPreserveTotal() { var cashpoint = new Cashpoint(); cashpoint.RemoveBanknote(5); Assert.That( cashpoint.Total, Is.EqualTo(0), "Извлечена несуществующая купюра из пустого банкомата"); }
public void RemoveBanknote_UnknownBanknoteOnMultipleBill_ShouldPreserveTotal() { var cashpoint = new Cashpoint(); cashpoint.AddBanknote(7); cashpoint.RemoveBanknote(5, 2); Assert.That( cashpoint.Total, Is.EqualTo(7), "Извлечены несуществующие купюры"); }
public void RemoveBanknote_UnknownBanknoteOnOneBill_ShouldPreserveTotal() { var cashpoint = new Cashpoint(); cashpoint.AddBanknote(7); cashpoint.RemoveBanknote(5); Assert.That( cashpoint.Total, Is.EqualTo(7), "Извлечена несуществующая купюра"); }
public void RemoveBanknote_OneBanknoteOnMultipleBill_ShouldRecalculateSieve() { var cashpoint = new Cashpoint(); cashpoint.AddBanknote(5, 2); cashpoint.AddBanknote(4); cashpoint.AddBanknote(3); cashpoint.AddBanknote(2); cashpoint.RemoveBanknote(5, 2); Assert.That( cashpoint.Sieve[0], Is.EqualTo(1u), "Неправильное число в 0 ячейке решета"); Assert.That( cashpoint.Sieve[1], Is.EqualTo(0u), "Неправильное число в 1 ячейке решета"); Assert.That( cashpoint.Sieve[2], Is.EqualTo(1u), "Неправильное число в 2 ячейке решета"); Assert.That( cashpoint.Sieve[3], Is.EqualTo(1u), "Неправильное число в 3 ячейке решета"); Assert.That( cashpoint.Sieve[4], Is.EqualTo(1u), "Неправильное число в 4 ячейке решета"); Assert.That( cashpoint.Sieve[5], Is.EqualTo(1u), "Неправильное число в 5 ячейке решета"); Assert.That( cashpoint.Sieve[6], Is.EqualTo(1u), "Неправильное число в 6 ячейке решета"); Assert.That( cashpoint.Sieve[7], Is.EqualTo(1u), "Неправильное число в 7 ячейке решета"); Assert.That( cashpoint.Sieve[8], Is.EqualTo(0u), "Неправильное число в 8 ячейке решета"); Assert.That( cashpoint.Sieve[9], Is.EqualTo(1u), "Неправильное число в 9 ячейке решета"); }