Je me demande si le premier test dans la classe TestsTransaction disponible dans la question 3 est valide :
En effet, ce premier test n'utilise pas les transactions, donc je ne comprend pas pourquoi le solde serai restitué à 600... (ancienSolde == g.solde())
C'est justement l'intérêt de la transaction via Mémento.
Merci de votre aide.
Code : Tout sélectionner
public void testDebitEnErreur(){
GroupeDeContributeurs g = new GroupeDeContributeurs("g");
g.ajouter(new Contributeur("g_a",300));
g.ajouter(new Contributeur("g_b",200));
g.ajouter(new Contributeur("g_c",100));
int ancienSolde = g.solde();
System.out.println(" solde: " + g.solde());
try{
g.debit(120);
fail("une exception est attendue, voir rollbackTransaction");
}catch(Exception e){
assertTrue( e instanceof SoldeDebiteurException);
}
System.out.println(" solde: " + g.solde());
assertEquals(" ce solde n'est pas transactionnel, c'est bien une erreur !!! ", ancienSolde, g.solde());
}