From 151449587f0e955b496fc19239cd4424e56773f4 Mon Sep 17 00:00:00 2001 From: Toto Date: Fri, 29 Nov 2024 10:35:03 +0100 Subject: [PATCH 1/4] testAfficherAvis() done --- .../BenevoleDemandesFinaliseesPageTest.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/src/test/java/controller/BenevoleDemandesFinaliseesPageTest.java b/src/test/java/controller/BenevoleDemandesFinaliseesPageTest.java index 9238421..0fb03f5 100644 --- a/src/test/java/controller/BenevoleDemandesFinaliseesPageTest.java +++ b/src/test/java/controller/BenevoleDemandesFinaliseesPageTest.java @@ -134,4 +134,64 @@ class BenevoleDemandesFinaliseesPageTest { throw new RuntimeException(e); } } + + @Test + void testAfficherAvis() { + try (Connection connection = DatabaseConnection.getConnection()) { + // Créer une demande finalisée avec des avis + String description = "Demande test pour affichage des avis"; + String avisBenevole = "Avis du bénévole test"; + String avisBesoin = "Avis de la personne test"; + + String insertSQL = "INSERT INTO demandes_aide (statut, utilisateur_id, benevole_id, description, avis_benevole, avis_besoin) VALUES (?, ?, ?, ?, ?, ?)"; + PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS); + insertStatement.setString(1, "finalisée"); + insertStatement.setInt(2, utilisateurID); + insertStatement.setInt(3, benevoleID); + insertStatement.setString(4, description); + insertStatement.setString(5, avisBenevole); + insertStatement.setString(6, avisBesoin); + insertStatement.executeUpdate(); + + // Récupérer l'ID de la demande créée + ResultSet generatedKeys = insertStatement.getGeneratedKeys(); + if (generatedKeys.next()) { + demandeID = generatedKeys.getInt(1); + } + + // Charger la demande dans la table + Method loadDemandesFinaliseesMethod = BenevoleDemandesFinaliseesPage.class.getDeclaredMethod("loadDemandesFinalisees"); + loadDemandesFinaliseesMethod.setAccessible(true); + loadDemandesFinaliseesMethod.invoke(page); + + // Sélectionner la demande + int lastRow = page.getTable().getRowCount() - 1; + page.getTable().setRowSelectionInterval(lastRow, lastRow); + + // Exécuter l'affichage des avis + Method afficherAvisMethod = BenevoleDemandesFinaliseesPage.class.getDeclaredMethod("afficherAvis"); + afficherAvisMethod.setAccessible(true); + afficherAvisMethod.invoke(page); + + // Vérifier que les avis sont corrects dans la base de données + String checkSQL = "SELECT avis_benevole, avis_besoin, description FROM demandes_aide WHERE id = ?"; + PreparedStatement checkStatement = connection.prepareStatement(checkSQL); + checkStatement.setInt(1, demandeID); + ResultSet resultSet = checkStatement.executeQuery(); + + assertTrue(resultSet.next(), "La demande doit exister"); + assertEquals(avisBenevole, resultSet.getString("avis_benevole"), "TEST L'avis du bénévole doit correspondre"); + assertEquals(avisBesoin, resultSet.getString("avis_besoin"), "TEST L'avis de la personne doit correspondre"); + assertEquals(description, resultSet.getString("description"), "TEST La description doit correspondre"); + + // Nettoyage + String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?"; + PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL); + deleteStatement.setInt(1, demandeID); + deleteStatement.executeUpdate(); + + } catch (SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + throw new RuntimeException(e); + } + } } \ No newline at end of file From fe70aa7f4d75f49a4e21c50eb3fe020f55475587 Mon Sep 17 00:00:00 2001 From: Toto Date: Fri, 29 Nov 2024 10:45:40 +0100 Subject: [PATCH 2/4] testLoadDemandesAcceptees() done --- .../controller/BenevoleDemandesPageTest.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/test/java/controller/BenevoleDemandesPageTest.java b/src/test/java/controller/BenevoleDemandesPageTest.java index d721ef9..ae6a30e 100644 --- a/src/test/java/controller/BenevoleDemandesPageTest.java +++ b/src/test/java/controller/BenevoleDemandesPageTest.java @@ -129,5 +129,70 @@ class BenevoleDemandesPageTest { int rowCountAfter = benevoleDemandesPage.getTableModel().getRowCount(); assertEquals(rowCountBefore, rowCountAfter, "La table ne doit pas être modifiée si aucune demande n'est sélectionnée."); } + + + @Test + void testLoadDemandesAcceptees() { + try (Connection connection = DatabaseConnection.getConnection()) { + // Créer trois demandes tests avec le statut 'acceptée' + String desc1 = "Demande 1 test pour JUnit / Test loadDemandesAcceptees"; + String desc2 = "Demande 2 test pour JUnit / Test loadDemandesAcceptees"; + String desc3 = "Demande 3 test pour JUnit / Test loadDemandesAcceptees"; + + // Création des demandes tests + String insertSQL = "INSERT INTO demandes_aide (statut, description) VALUES (?, ?)"; + PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS); + + // Première demande + insertStatement.setString(1, "acceptée"); + insertStatement.setString(2, desc1); + insertStatement.executeUpdate(); + + // Récupérer l'ID de la première demande + ResultSet generatedKeys = insertStatement.getGeneratedKeys(); + if (generatedKeys.next()) { + demandeID = generatedKeys.getInt(1); + } + + // Deuxième et troisième demandes + insertStatement.setString(2, desc2); + insertStatement.executeUpdate(); + insertStatement.setString(2, desc3); + insertStatement.executeUpdate(); + + // Charger les demandes dans la table + Method loadDemandesAccepteesMethod = BenevoleDemandesPage.class.getDeclaredMethod("loadDemandesAcceptees"); + loadDemandesAccepteesMethod.setAccessible(true); + loadDemandesAccepteesMethod.invoke(benevoleDemandesPage); + + // Vérifier que les descriptions sont bien chargées + int lastRow = benevoleDemandesPage.getTable().getRowCount() - 1; + + // Vérifier que les trois dernières lignes correspondent à nos demandes de test + String desc_actual = (String) benevoleDemandesPage.getTableModel().getValueAt(lastRow-2, 1) + + (String) benevoleDemandesPage.getTableModel().getValueAt(lastRow-1, 1) + + (String) benevoleDemandesPage.getTableModel().getValueAt(lastRow, 1); + + String desc_expected = desc1 + desc2 + desc3; + assertEquals(desc_expected, desc_actual, "Les descriptions doivent correspondre"); + + // Vérifier que le statut est 'acceptée' pour chaque demande + for (int i = 0; i < 3; i++) { + String status = (String) benevoleDemandesPage.getTableModel().getValueAt(lastRow-i, 2); + assertEquals("acceptée", status, "Le statut doit être 'acceptée'"); + } + + // Nettoyage des données de test + for (int i = 0; i < 3; i++) { + String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?"; + PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL); + deleteStatement.setInt(1, demandeID + i); + deleteStatement.executeUpdate(); + } + + } catch (SQLException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + throw new RuntimeException(e); + } + } } From 1eaba651050133a7a9b351b055c19520501a48e7 Mon Sep 17 00:00:00 2001 From: el-ouali Date: Fri, 29 Nov 2024 10:49:47 +0100 Subject: [PATCH 3/4] Actualiser .forgejo/workflows/maven.yml --- .forgejo/workflows/maven.yml | Bin 1000 -> 1076 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.forgejo/workflows/maven.yml b/.forgejo/workflows/maven.yml index 0ee08d79bca6f5244b525d71de0141871bfb38f2..4da60f18d63403e9a396f09807b151f30841ead6 100644 GIT binary patch literal 1076 zcmaJ=!EVz)5WVLsM!ER3B_Tj7S3z|eS8{0@8XG}{P_(g^cvE}Vcy|qv_%jZC62HK# z?KlYpe6Y2iH*em|zWMdzr=U4=;g(hut^@eWbqX_DG0~I4?Ew@z{>C}X^^E6ieNgJl@Z#IjB2KIO`=#?@fb!`Ysfu+%Uad zGrk-=A9c(-;JeUYpkfsGS7={CrVr+Ylt~9EWU0GmY*hlI(cqP9UmZvmnoEI$dri83 zh$JbanNCTZC*ywIGEH(Wpx|QNKLz9hXI{~4JRGP~am{lkjUK-|87-MEIaA|Nug=B$ zD_Z5mwvF;=Tw;Vqq(N)!qi9lnLkZCXl+)m%X@VpgpoT->L1=*mPcDYbnYJYb& zMk-b+oQMm~@Z9M-Nw`9VD`Q1qNVD9OTX$OL-e;)-mfj@=GV+*+K|AX|X>4{yu!^Ld| nQ+J+M0>}gk8b9G;q2)gFj6osuvu}CUwtPeu;iCSB%kJ@SGDs?* literal 1000 zcmaJ=T~C8R5S(Wd{{!)*PiVD9O`rUHu-a(F#28}?{fL4V5Gck!ug)A?gcc1s?qhdn zcIWoKzasdUV}?E)47e^h9Gu{s{|^Mn@xs;6SZ0W@jy1%b`)1|PmSBO5UcVz2PK0JHvgr#voX@F_ybQqL)^o| z2$y)mDUNWDMm=noF3v1ICrswUMt@+=C#4{aEB}0kU^Qpyps{N+T|*y zzRNlYBcUZFr*5vzE+3bp$FGY$df8RoyS(RQ1x1nS8rvB@?<8ks>Z}Y~Ro6`L%98~x zht#lHuMq0J>luZFn$R*}r5BvHvA>f2f4s^_U6io4(Dc0D!mZlv+h|wE#=6W~eV$dd wN&Sw=s&|RMv<%b)}_8`7+AhEa>4dUJB><0gfPtVgLXD From 8944d32290fe7b682671ef435b86e790f44258e1 Mon Sep 17 00:00:00 2001 From: Toto Date: Fri, 29 Nov 2024 10:51:17 +0100 Subject: [PATCH 4/4] commit test integration continue --- src/test/java/controller/BenevoleDemandesPageTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/controller/BenevoleDemandesPageTest.java b/src/test/java/controller/BenevoleDemandesPageTest.java index ae6a30e..4181020 100644 --- a/src/test/java/controller/BenevoleDemandesPageTest.java +++ b/src/test/java/controller/BenevoleDemandesPageTest.java @@ -134,6 +134,7 @@ class BenevoleDemandesPageTest { @Test void testLoadDemandesAcceptees() { try (Connection connection = DatabaseConnection.getConnection()) { + //commit test // Créer trois demandes tests avec le statut 'acceptée' String desc1 = "Demande 1 test pour JUnit / Test loadDemandesAcceptees"; String desc2 = "Demande 2 test pour JUnit / Test loadDemandesAcceptees";