class CashDeskTests(unittest.TestCase):
    def setUp(self):
        self.desk = CashDesk()
        self.desk.bills = [Bill(1), Bill(2), Bill(3)]
        self.desk2 = CashDesk()
        self.desk2.bills = [Bill(4), Bill(5), Bill(6)]

    def test_total(self):
        self.assertEqual(self.desk.total(), 6)
        self.assertEqual(self.desk2.total(), 15)

    def test_take_money_from_a_bill(self):
        self.desk.take_money(Bill(5))
        self.assertEqual(self.desk.total(), 11)
        self.desk.take_money(BatchBill([Bill(1), Bill(2), Bill(3)]))
        self.assertEqual(self.desk.total(), 17)
Example #2
0
    def test_total_works_with_batch_bills(self):
        bills = [Bill(10), Bill(5), Bill(20)]
        batch = BillBatch(bills)
        desk = CashDesk()
        desk.take_money(batch)

        self.assertEqual(35, desk.total())
Example #3
0
class TestCashDesk(unittest.TestCase):
    def setUp(self):
        self.my_cash_desk = CashDesk()
    def test_total_zero_when_new_instance_made(self):
        self.assertEqual(0,self.my_cash_desk.total())
    def test_total_after_money_take(self):
        self.my_cash_desk.take_money({1:2,100:3})
        self.assertEqual(302, self.my_cash_desk.total())
    def test_can_withdraw_money_all_money(self):
        self.my_cash_desk.take_money({1: 2, 100: 3})
        self.assertTrue(self.my_cash_desk.can_withdraw_money(302))
    #def test_can_withdraw_money_not_all_money(self):
    #    self.my_cash_desk.take_money({1: 2, 100: 3})
    #    self.assertTrue(self.my_cash_desk.can_withdraw_money(202))

    def test_can_withdraw_money_cant_withdraw(self):
        self.my_cash_desk = CashDesk()
        self.my_cash_desk.take_money({1: 2, 100: 3})
        self.assertFalse(self.my_cash_desk.can_withdraw_money(105))
Example #4
0
    def test_total(self):

        values = [10, 20, 50, 100, 100, 100]
        bills = [Bill(value) for value in values]
        batch = BillBatch(bills)
        desk = CashDesk()

        desk.take_money(batch)
        desk.take_money(Bill(10))
        total = desk.total()

        self.assertEqual(total, 390)
Example #5
0
    def test_checking_total(self):
        values = [10, 20, 50, 100, 100, 100]
        bills = [Bill(value) for value in values]
        batch = BatchBill(bills)

        desk = CashDesk()
        desk.take_money(batch)
        desk.take_money(Bill(10))

        result = desk.total()

        expected = 390
class TestCashDesk(unittest.TestCase):
    def setUp(self):
        self.bill = Bill(10)
        self.batch = BatchBill([Bill(5), Bill(10), Bill(15)])
        self.desk = CashDesk()

    def test_type_of_amount(self):
        with self.assertRaises(TypeError):
            Bill("10")

    def test_value_of_amount(self):
        with self.assertRaises(ValueError):
            Bill(-5)

    def test_take_money_from_bill(self):
        self.desk.take_money(self.bill)
        self.assertEqual(self.desk.total(), 10)

    def test_take_money_from_batch(self):
        self.desk.take_money(self.batch)
        self.assertEqual(self.desk.total(), 30)

    def test_cashdesk_total(self):
        self.desk.take_money(self.bill)
        self.desk.take_money(self.batch)
        self.assertEqual(self.desk.total(), 40)

    def test_cashdesk_inspect_value(self):
        self.desk.take_money(self.bill)
        self.desk.take_money(self.batch)

        expexted = """We have a total of 40$ in the desk
We have the following count of bills, sorted in ascending order:
5$ bills - 1
10$ bills - 2
15$ bills - 1"""

        self.assertEqual(self.desk.inspect(), expexted)
Example #7
0
    def test_total(self):
        e = None
        values = [10, 20, 50, 100, 100, 100]
        bills = [Bill(value) for value in values]
        batch = BatchBill(bills)
        desk = CashDesk()
        desk.take_money(batch)

        try:
            res = desk.total()
        except Exception as exc:
            e = exc

        self.assertIsNone(e)
        self.assertEqual(380, res)
class TestCashDesk(unittest.TestCase):

    def setUp(self):
        self.kasa = CashDesk()
        self.kasa.scan('Sandwich')

    def test_init(self):
        self.assertEqual(
            self.kasa.discounts,
            {'Sandwich': [3, 2], 'Cucumber': [2, 1], 'Apple': [4, 3]})
        self.assertEqual(
            self.kasa.meal_deals,
            [(['Sandwich', 'Coke', 'Apple'], 3.0, [1, 1, 1]),
             (['Soup', 'Noodles', 'Custard'], 6.50, [1, 2, 1])])

    def test_scan_with_present_item(self):
        self.kasa.scan('Sandwich')
        self.assertEqual(self.kasa.scanned_items, {'Sandwich': 2})

    def test_scan_with_new_valid_item(self):
        self.kasa.scan('Apple')
        self.assertEqual(self.kasa.scanned_items,
                         {'Sandwich': 1, 'Apple': 1})

    def test_scan_with_new_invalid_item(self):
        self.kasa.scan('asd')
        self.assertEqual(self.kasa.scanned_items, {'Sandwich': 1})

    def test_total_method(self):
        result = self.kasa.total()
        self.assertEqual(result, 0)

    def test_calculate_meal_with_missing_item(self):
        self.kasa.scanned_items = {'Apple': 2}
        self.kasa.calculate_meal_deals()
        self.assertEqual(self.kasa.total_price, 0)

    def test_calculate_discounts(self):
        self.kasa.scanned_items = {'Soup': 2}
        self.kasa.calculate_discounts()
        self.assertEqual(self.kasa.total_price, 0)

    def test_calculate_all(self):
        result = self.kasa.calculate_all()
        self.assertEqual(result, 2.50)

    def test_cashout(self):
        self.assertEqual(self.kasa.total_price, 0)
class TestCashDesck(unittest.TestCase):
    def setUp(self):
        values = [10, 20, 50, 100, 100, 100]
        bills = [Bill(value) for value in values]
        batch = BatchBill(bills)
        self.desk = CashDesk()
        self.desk.take_money(batch)
        self.desk.take_money(Bill(10))

    def test_total(self):
        self.assertEqual(self.desk.total(), 390)

    def test_inspect(self):
        expect = "We have a total of 390$ in the desk\n"
        expect += "We have the following count of bills, sorted in ascending order:\n"
        expect += "10$ bills - 2\n20$ bills - 1\n50$ bills - 1\n100$ bills - 3"
        self.assertEqual(self.desk.inspect(), expect)
Example #10
0
class TestCashDesk(unittest.TestCase):
    def setUp(self):
        self.cash = CashDesk()
        self.values = [10, 20, 50, 100, 100, 100]
        self.bills = [Bill(value) for value in self.values]
        self.batch = BillBatch(self.bills)
        self.cash.take_money(self.batch)
        self.cash.take_money(Bill(10))

    def test_init(self):
        self.assertTrue(isinstance(self.cash, CashDesk))

    def test_take_money(self):
        self.assertEqual(self.cash.vault, [self.batch, Bill(10)])

    def test_total(self):
        self.assertEqual(self.cash.total(), 390)
class CashDeskTest(unittest.TestCase):

    def setUp(self):
        self.bill = Bill(10)
        self.batch = BatchBill([Bill(5), Bill(10), Bill(15)])
        self.desk = CashDesk()

    def test_type_of_amount(self):
        with self.assertRaises(TypeError):
            Bill("10")

    def test_value_of_amount(self):
        with self.assertRaises(ValueError):
            Bill(-5)

    def test_batchbill_total(self):
        self.assertEqual(self.batch.total(), 30)

    def test_take_money_from_bill(self):
        self.desk.take_money(self.bill)
        self.assertEqual(self.desk.gold, 10)

    def test_take_money_from_batch(self):
        self.desk.take_money(self.batch)
        self.assertEqual(self.desk.gold, 30)

    def test_cashdesk_total(self):
        self.desk.take_money(self.bill)
        self.desk.take_money(self.batch)
        self.assertEqual(
            self.desk.total(), 'We have a total of 40$ in the bank')

    def test_cashdesk_inspect_value(self):
        self.desk.take_money(self.bill)
        self.desk.take_money(self.batch)
        self.desk.inspect()
Example #12
0
 def test_total_after_money_take(self):
     new_cash_desk = CashDesk()
     new_cash_desk.take_money({1: 2, 100: 3})
     self.assertEqual(302, new_cash_desk.total())
Example #13
0
 def test_total_works_with_bills(self):
     desk = CashDesk()
     desk.take_money(Bill(5))
     desk.take_money(Bill(10))
     desk.take_money(Bill(10))
     self.assertEqual(25, desk.total())
Example #14
0
 def test_total(self):
     d = CashDesk()
     d.take_money(BatchBill([Bill(30),Bill(10),Bill(10)]))
     d.take_money(Bill(29))
     self.assertEqual(d.total(), 79)
Example #15
0
 def test_total_zero_when_new_instance_made(self):
     new_cash_desk = CashDesk()
     self.assertEqual(0, new_cash_desk.total())
Example #16
0
 def test_total_after_take_money(self):
     new_cash_desk = CashDesk()
     new_cash_desk.take_money({1: 2, 100: 3})
     self.assertEqual(302, new_cash_desk.total())
Example #17
0
 def test_can_withdrawSSS_money_all_money(self):
     new_cash_desk = CashDesk()
     new_cash_desk.take_money({1: 2, 100: 3})
     self.assertTrue(301, new_cash_desk.total())
Example #18
0
 def test_total_zero_when_new_instance_made(self):
     new_cash_desk = CashDesk()
     self.assertEqual(0, new_cash_desk.total())