Trier sur plusieurs champ dans une ArrayList JUnit
Bonjour à tous, je vous contacte car je bloque sur un point
Je n'arrive pas à trier sur plusieurs champs dans une arraylist à l'intérieur d'un test unitaire ...
expResult et result devraient me renvoyer la liste dans le même ordre, mais cela ne fonctionne pas
Je vous poste mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public void testGetListeAuteurs() {
System.out.println("getListeAuteurs");
Auteur a1 = new Auteur("Jean", "Michel", 1992, "Français");
Auteur a2 = new Auteur("Jeane", "Michelle", 1993, "Française");
BiblioModele instance = new BiblioModele();
List<Auteur> expResult = new ArrayList<>();
instance.listeAuteurs.put(a1.getNom() + a1.getPrenom() + a1.getAnnee(), a1);
instance.listeAuteurs.put(a2.getNom() + a2.getPrenom() + a2.getAnnee(), a2);
expResult.add(a1);
expResult.add(a2);
List<Auteur> result = instance.getListeAuteurs(); // ===> trier sur nom,prénom,année
System.out.println(expResult + "expResult before");
System.out.println(result + "result before");
expResult.stream().sorted(Comparator.comparing(Auteur::getNom).thenComparing(Auteur::getPrenom).thenComparing(Auteur::getAnnee));
result.stream().sorted(Comparator.comparing(Auteur::getNom).thenComparing(Auteur::getPrenom).thenComparing(Auteur::getAnnee));
//expResult.sort((aa, ab) -> aa.getPrenom().compareTo(ab.getPrenom()));
//result.sort((aa, ab) -> aa.getPrenom().compareTo(ab.getPrenom()));
System.out.println(expResult + "expResult after");
System.out.println(result + "result after");
assertEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
//fail("The test case is a prototype.");
} |
Et le résultat :
[nom=Jean - prenom:Michel - annee de naissance:1992 - langue:Français, nom=Jeane - prenom:Michelle - annee de naissance:1993 - langue:Française]expResult before
[nom=Jeane - prenom:Michelle - annee de naissance:1993 - langue:Française, nom=Jean - prenom:Michel - annee de naissance:1992 - langue:Français]result before
[nom=Jean - prenom:Michel - annee de naissance:1992 - langue:Français, nom=Jeane - prenom:Michelle - annee de naissance:1993 - langue:Française]expResult after
[nom=Jeane - prenom:Michelle - annee de naissance:1993 - langue:Française, nom=Jean - prenom:Michel - annee de naissance:1992 - langue:Français]result after