Je galère à la question 3 du tp_commit, et j'imagine que ca vient du problème d'atomicité/transaction, mais je ne vois pas comment le résoudre.
There were 6 failures:
1) testTransactionDebitSure6(question3): solde erroné, revoyez la transaction !!!
2) testTransactionDebitSure5(question3): solde erroné, revoyez la transaction !!!
3) testDebitAvecTransaction2(question3): solde erroné, revoyez la transaction !!!
4) testTransactionDebitSure7(question3): solde erroné, revoyez la transaction !!!
5) testTransactionDebitSure9(question3): solde erroné, revoyez la transaction !!!
6) testTransactionDebitSure8(question3): solde erroné, revoyez la transaction !!!
J'ai l'impression que mon tp fonctionne comme demandé: Si je teste dans un main, les transactions et rollbacks fonctionnent bien.
Code : Tout sélectionner
public static void main(String[] args) throws Exception {
GroupeDeContributeurs g = new GroupeDeContributeurs("g");
g.ajouter(new Contributeur("g_a",100));
g.ajouter(new Contributeur("g_b",200));
g.ajouter(new Contributeur("g_c",300));
GroupeDeContributeurs g1 = new GroupeDeContributeurs("g1");
g1.ajouter(new Contributeur("g1_a",100));
g1.ajouter(new Contributeur("g1_b",200));
GroupeDeContributeurs g11 = new GroupeDeContributeurs("g11");
g11.ajouter(new Contributeur("g11_a",100));
g1.ajouter(g11);
g.ajouter(g1);
AbstractTransaction transaction = new TransactionDebit(g);
try {
transaction.debit(120);
} catch (SoldeDebiteurException e) {
System.out.println("test");
}
System.out.println(g.solde());
}
"test
1000"
puisque un débit de 120 est trop elevé pour 4 des contributeurs. Si je change le débit à 100 ou moins, tout fonctionne bien. testDebitAvecTransaction et testTransactionsImbriquees passent, mais pas les autres.
Faut-il changer quelque chose dans AbstractTransaction et TransactionDebit ? J'ai l'impression qu'il n'y a pas de changements à faire dans ces 2 la.
Est-ce que quelqu'un pourrait m'expliquer le problème, je ne vois pas du tout.
Merc beaucoup.