public void Retirer(ICompte p_compte, decimal p_montant) { if (p_compte is null) { throw new ArgumentNullException(nameof(p_compte)); } if (p_montant <= 0) { throw new ArgumentException("Le montant doit être supérieur à 0", nameof(p_montant)); } ITransaction transaction = m_createurTransaction.CreerTransactionRetirer(p_compte, p_montant); if (transaction.EstValide()) { try { transaction.ExecuterTransaction(); m_tiroirArgent.DistribuerArgent(p_montant); } catch (Exception ex) { transaction.Annuler(); } } }
public void Retirer_CompteNull_Exception() { // Arrange ICompte compte = null; decimal montant = 100; Mock <ITiroirArgent> tiroirArgent = new Mock <ITiroirArgent>(); Mock <ICreateurTransaction> createurTransaction = new Mock <ICreateurTransaction>(); ATM atm = new ATM(tiroirArgent.Object, createurTransaction.Object); // Act // Assert Assert.Throws <ArgumentNullException>(() => atm.Retirer(compte, montant)); }
public void Retirer(ICompte p_compte, decimal p_montant) { ITransaction transaction = m_createurTransaction.CreerTransactionRetirer(p_compte, p_montant); if (transaction.EstValide()) { try { transaction.ExecuterTransaction(); m_tiroirArgent.DistribuerArgent(p_montant); } catch (Exception ex) { transaction.Annuler(); } } }
public DemandePaiement(ICompte compte, ISystemePaiementBanque systemePaiement) { _systemePaiement = systemePaiement; _compte = compte; }
public TransactionRetirerBanqueXYZ(ICompte p_compte, decimal p_montant) { this.m_compte = p_compte; this.m_montant = p_montant; }
public ITransaction CreerTransactionRetirer(ICompte p_compte, decimal p_montant) { return new TransactionRetirerBanqueXYZ(p_compte, p_montant); }
void ConsidererCompteAvecPasAssezArgent() { compte = Mock.Of <ICompte>(c => c.AAssezArgent(It.IsAny <double>()) == false); }
public ITransaction CreerTransactionRetirer(ICompte p_compte, decimal p_montant) { return(new TransactionRetirerBanqueXYZ(p_compte, p_montant)); }