class TestJohnTrasnfertDeLArgentASaFemme(unittest.TestCase): def setUp(self): self.accountSrc = mock() self.accountDest = mock() self.transfer = Transfert(self.accountSrc, self.accountDest) def test_transfert_debite_le_bon_compte(self): """Test si lors du transfert la valeur est bien debitee de la source""" amount = 100 when(self.accountDest).can_accept_credit(amount).thenReturn(True) self.transfer.transfer(amount) verify(self.accountSrc, times=1).debit(amount) def test_transfert_credite_le_bon_compte(self): """Test si lors du transfert la valeur est bien creditee a la destination""" amount = 100 when(self.accountDest).can_accept_credit(amount).thenReturn(True) self.transfer.transfer(amount) verify(self.accountDest, times=1).credit(amount) def test_transfert_credite_et_debite_de_la_meme_valeur(self): """Test que lors d'un transfert la valeur debitee et creditee est la meme""" amount = 100 when(self.accountDest).can_accept_credit(amount).thenReturn(True) self.transfer.transfer(amount) verify(self.accountDest, times=1).credit(amount) verify(self.accountSrc, times=1).debit(amount) def test_debit_errone_ne_credite_pas(self): """Test si en cas d'erreur lors du debit, il n'y a pas de credit""" amount = 100 when(self.accountDest).can_accept_credit(amount).thenReturn(True) when(self.accountSrc).debit(amount).thenRaise(ValueError) self.assertRaises(ValueError, self.transfer.transfer, amount) verify(self.accountDest, never).credit(amount) def test_credit_errone_ne_debite_pas(self): """Test si quand le credit n'est pas possible, il n'y a pas de debit""" amount = 100 when(self.accountDest).can_accept_credit(amount).thenReturn(False) self.assertRaises(ValueError, self.transfer.transfer, amount) verify(self.accountSrc, never).debit(amount)
def setUp(self): self.accountSrc = mock() self.accountDest = mock() self.transfer = Transfert(self.accountSrc, self.accountDest)