Example #1
0
class MoneyClassTest(unittest.TestCase):
    def setUp(self):
        self.twenty_euro = Money(20, 'EUR')

    def test_convert_euro_to_usd(self):
        twenty_usd = self.twenty_euro.to_usd()

        self.assertIsInstance(twenty_usd, Money)
        self.assertEqual('USD', twenty_usd.currency)
        self.assertEqual(21.8, twenty_usd.amount)

    def test_convert_euro_to_brl(self):
        twenty_brl = self.twenty_euro.to_brl()

        self.assertIsInstance(twenty_brl, Money)
        self.assertEqual('BRL', twenty_brl.currency)
        self.assertEqual(85, twenty_brl.amount)

    def test_invalid_method_pattern_call(self):
        with self.assertRaises(AttributeError):
            twenty_brl = self.twenty_euro.batman()

    def test_sum_operation_between_eur_and_dollar(self):
        fifty_eur = Money(50, 'EUR')
        twenty_dollars = Money(20, 'USD')

        money = fifty_eur + twenty_dollars

        self.assertEqual(money.amount, 68.2)
        self.assertEqual(money.currency, 'EUR')

        # test if a new object is returned
        self.assertNotEqual(id(fifty_eur), id(money))

    def test_sum_operation_between_dollar_and_eur(self):
        fifty_eur = Money(50, 'EUR')
        twenty_dollars = Money(20, 'USD')

        money = twenty_dollars + fifty_eur

        self.assertEqual(money.amount, 74.5)
        self.assertEqual(money.currency, 'USD')

        # test if a new object is returned
        self.assertNotEqual(id(fifty_eur), id(money))
Example #2
0
 def setUp(self):
     self.twenty_euro = Money(20, 'EUR')