testLoadDemandesAcceptees() done
Some checks are pending
Java CI with Maven / build (push) Waiting to run

This commit is contained in:
Abderrahman El-Ouali 2024-11-29 10:45:40 +01:00
parent 151449587f
commit fe70aa7f4d

View file

@ -129,5 +129,70 @@ class BenevoleDemandesPageTest {
int rowCountAfter = benevoleDemandesPage.getTableModel().getRowCount(); int rowCountAfter = benevoleDemandesPage.getTableModel().getRowCount();
assertEquals(rowCountBefore, rowCountAfter, "La table ne doit pas être modifiée si aucune demande n'est sélectionnée."); 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);
}
}
} }