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 : Sélectionner tout - Visualiser dans une fenêtre à part
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