From 384ee81b51bf3faf16014db934478c73d8c7e87a Mon Sep 17 00:00:00 2001 From: skferrei Date: Fri, 29 Nov 2024 11:10:08 +0100 Subject: [PATCH] =?UTF-8?q?avanc=C3=A9e=20sur=20validateurtest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/controller/ValidateurTest.java | 63 ++++++++++++++++++-- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/src/test/java/controller/ValidateurTest.java b/src/test/java/controller/ValidateurTest.java index 0417f27..8a8741f 100644 --- a/src/test/java/controller/ValidateurTest.java +++ b/src/test/java/controller/ValidateurTest.java @@ -16,12 +16,13 @@ import static org.junit.jupiter.api.Assertions.*; class ValidateurTest { private Validateur validateur; - private int utilisateurId = 1; // utilisateur arbitraire qui va créer les demandes de test + private int validateurID = 3; // utilisateur arbitraire qui va valider les demandes de test + private int utilisateurID = 1; // utilisateur arbitraire qui va créer les demandes de test private int demandeID; //on crée manuellment une demande pour les tests (on la supprime après) @BeforeEach void setUp() { - validateur = new Validateur(utilisateurId); + validateur = new Validateur(validateurID); } @Test @@ -31,7 +32,7 @@ class ValidateurTest { String insertSQL = "INSERT INTO demandes_aide (statut, utilisateur_id, benevole_id, description) VALUES (?, ?, ?, ?)"; PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS); insertStatement.setString(1, "soumise"); - insertStatement.setNull(2, utilisateurId); + insertStatement.setInt(2, utilisateurID); insertStatement.setNull(3, java.sql.Types.INTEGER); // Aucun bénévole affecté initialement insertStatement.setString(4, "Demande de test pour JUnit / Test validation"); insertStatement.executeUpdate(); @@ -90,7 +91,7 @@ class ValidateurTest { String insertSQL = "INSERT INTO demandes_aide (statut, utilisateur_id, benevole_id, description) VALUES (?, ?, ?, ?)"; PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS); insertStatement.setString(1, "soumise"); - insertStatement.setInt(2, utilisateurId); + insertStatement.setInt(2, utilisateurID); insertStatement.setNull(3, java.sql.Types.INTEGER); // Aucun bénévole affecté initialement insertStatement.setString(4, "Demande de test pour JUnit / Test rejet"); insertStatement.executeUpdate(); @@ -142,4 +143,58 @@ class ValidateurTest { } } + @Test + void testLoadDemandesEnAttente() { + try (Connection connection = DatabaseConnection.getConnection()) { + // Créer trois demandes tests + String desc1 = "Demande de test 1 pour JUnit / Test loadDemandesEnAttente"; + String desc2 = "Demande de test 2 pour JUnit / Test loadDemandesEnAttente"; + String desc3 = "Demande de test 3 pour JUnit / Test loadDemandesEnAttente"; + + // Insertion de la première demande + String insertSQL = "INSERT INTO demandes_aide (statut, utilisateur_id, benevole_id, description) VALUES (?, ?, ?, ?)"; + PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS); + insertStatement.setString(1, "soumise"); + insertStatement.setInt(2, utilisateurID); + insertStatement.setNull(3, java.sql.Types.INTEGER); //pas de benevole attribué + insertStatement.setString(4, desc1); + insertStatement.executeUpdate(); + + ResultSet generatedKeys = insertStatement.getGeneratedKeys(); + if (generatedKeys.next()) { + demandeID = generatedKeys.getInt(1); + } + + // Insertion des autres demandes + insertStatement.setString(4, desc2); + insertStatement.executeUpdate(); + insertStatement.setString(4, desc3); + insertStatement.executeUpdate(); + + // Charger les demandes dans la table + Method loadDemandesEnAttenteMethod = Validateur.class.getDeclaredMethod("loadDemandesEnAttente"); + loadDemandesEnAttenteMethod.setAccessible(true); + loadDemandesEnAttenteMethod.invoke(validateur); + + // Vérifier que les descriptions sont bien chargées + int lastRow = validateur.getTable().getRowCount()-1; + String desc_actual = (String) validateur.getTableModel().getValueAt(lastRow-2, 1) + + (String) validateur.getTableModel().getValueAt(lastRow-1, 1) + + (String) validateur.getTableModel().getValueAt(lastRow, 1); + + String desc_expected = desc1 + desc2 + desc3; + assertEquals(desc_expected, desc_actual, "Les descriptions doivent correspondre"); + + // 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); + } + } }