Add tests - all tests passing successfully.
This commit is contained in:
parent
a9284fb7b4
commit
2e18a09edd
11 changed files with 300 additions and 84 deletions
|
@ -26,7 +26,7 @@
|
||||||
<attribute name="optional" value="true"/>
|
<attribute name="optional" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-10">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=10
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
org.eclipse.jdt.core.compiler.compliance=10
|
||||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
@ -12,5 +12,5 @@ org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
||||||
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
||||||
org.eclipse.jdt.core.compiler.release=disabled
|
org.eclipse.jdt.core.compiler.release=enabled
|
||||||
org.eclipse.jdt.core.compiler.source=1.8
|
org.eclipse.jdt.core.compiler.source=10
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class BenevoleDemandesEncoursPage extends JFrame {
|
||||||
private JButton retourBenevoleButton;
|
private JButton retourBenevoleButton;
|
||||||
private int utilisateurId; // Ajout de l'ID du bénévole
|
private int utilisateurId; // Ajout de l'ID du bénévole
|
||||||
|
|
||||||
public BenevoleDemandesEncoursPage(final int utilisateurId) { // Ajout du paramètre utilisateurId
|
public BenevoleDemandesEncoursPage(int utilisateurId) { // Ajout du paramètre utilisateurId
|
||||||
this.utilisateurId = utilisateurId; // Stockage de l'ID du bénévole
|
this.utilisateurId = utilisateurId; // Stockage de l'ID du bénévole
|
||||||
setTitle("Demandes en cours");
|
setTitle("Demandes en cours");
|
||||||
setSize(600, 400);
|
setSize(600, 400);
|
||||||
|
@ -87,7 +87,7 @@ public class BenevoleDemandesEncoursPage extends JFrame {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour finaliser une demande
|
// Méthode pour finaliser une demande
|
||||||
private void finaliserDemande() {
|
void finaliserDemande() {
|
||||||
int selectedRow = table.getSelectedRow();
|
int selectedRow = table.getSelectedRow();
|
||||||
if (selectedRow == -1) {
|
if (selectedRow == -1) {
|
||||||
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande à finaliser.");
|
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande à finaliser.");
|
||||||
|
|
|
@ -24,27 +24,27 @@ public class MenuBenevole extends JFrame{
|
||||||
gbc.insets = new Insets(10, 10, 10, 10);
|
gbc.insets = new Insets(10, 10, 10, 10);
|
||||||
gbc.fill = GridBagConstraints.HORIZONTAL;
|
gbc.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
|
||||||
voirDemandesAcceptesButton = new JButton("Voir demandes acceptés");
|
setVoirDemandesAcceptesButton(new JButton("Voir demandes acceptés"));
|
||||||
gbc.gridx = 0;
|
gbc.gridx = 0;
|
||||||
gbc.gridy = 0;
|
gbc.gridy = 0;
|
||||||
add(voirDemandesAcceptesButton, gbc);
|
add(getVoirDemandesAcceptesButton(), gbc);
|
||||||
|
|
||||||
voirDemandesEnCoursButton = new JButton("Voir demandes personelles en cours");
|
setVoirDemandesEnCoursButton(new JButton("Voir demandes personelles en cours"));
|
||||||
gbc.gridx = 0;
|
gbc.gridx = 0;
|
||||||
gbc.gridy = 1;
|
gbc.gridy = 1;
|
||||||
add(voirDemandesEnCoursButton, gbc);
|
add(getVoirDemandesEnCoursButton(), gbc);
|
||||||
|
|
||||||
voirDemandesFinaliseesButton = new JButton("Voir demandes personelles finalisées");
|
setVoirDemandesFinaliseesButton(new JButton("Voir demandes personelles finalisées"));
|
||||||
gbc.gridx = 0;
|
gbc.gridx = 0;
|
||||||
gbc.gridy = 2;
|
gbc.gridy = 2;
|
||||||
add(voirDemandesFinaliseesButton, gbc);
|
add(getVoirDemandesFinaliseesButton(), gbc);
|
||||||
|
|
||||||
retourButton = new JButton("Retour à l'acceuil");
|
setRetourButton(new JButton("Retour à l'acceuil"));
|
||||||
gbc.gridx = 0;
|
gbc.gridx = 0;
|
||||||
gbc.gridy = 3;
|
gbc.gridy = 3;
|
||||||
add(retourButton, gbc);
|
add(getRetourButton(), gbc);
|
||||||
|
|
||||||
voirDemandesAcceptesButton.addActionListener(new ActionListener() {
|
getVoirDemandesAcceptesButton().addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
BenevoleDemandesPage benevoleDemandesPage = new BenevoleDemandesPage(utilisateurId); // Test avec un utilisateur par défaut
|
BenevoleDemandesPage benevoleDemandesPage = new BenevoleDemandesPage(utilisateurId); // Test avec un utilisateur par défaut
|
||||||
|
@ -53,7 +53,7 @@ public class MenuBenevole extends JFrame{
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
voirDemandesEnCoursButton.addActionListener(new ActionListener() {
|
getVoirDemandesEnCoursButton().addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
BenevoleDemandesEncoursPage benevoleDemandesEncoursPage = new BenevoleDemandesEncoursPage(utilisateurId);
|
BenevoleDemandesEncoursPage benevoleDemandesEncoursPage = new BenevoleDemandesEncoursPage(utilisateurId);
|
||||||
|
@ -62,7 +62,7 @@ public class MenuBenevole extends JFrame{
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
voirDemandesFinaliseesButton.addActionListener(new ActionListener() {
|
getVoirDemandesFinaliseesButton().addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
BenevoleDemandesFinaliseesPage benevoleDemandesFinaliseesPage = new BenevoleDemandesFinaliseesPage(utilisateurId);
|
BenevoleDemandesFinaliseesPage benevoleDemandesFinaliseesPage = new BenevoleDemandesFinaliseesPage(utilisateurId);
|
||||||
|
@ -73,7 +73,7 @@ public class MenuBenevole extends JFrame{
|
||||||
|
|
||||||
// Bouton de retour à la page d'accueil
|
// Bouton de retour à la page d'accueil
|
||||||
// ActionListener pour retourner à la page de connexion
|
// ActionListener pour retourner à la page de connexion
|
||||||
retourButton.addActionListener(new ActionListener() {
|
getRetourButton().addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
LoginPage loginPage = new LoginPage();
|
LoginPage loginPage = new LoginPage();
|
||||||
|
@ -88,4 +88,36 @@ public class MenuBenevole extends JFrame{
|
||||||
MenuBenevole menu = new MenuBenevole(2);
|
MenuBenevole menu = new MenuBenevole(2);
|
||||||
menu.setVisible(true);
|
menu.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JButton getVoirDemandesAcceptesButton() {
|
||||||
|
return voirDemandesAcceptesButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVoirDemandesAcceptesButton(JButton voirDemandesAcceptesButton) {
|
||||||
|
this.voirDemandesAcceptesButton = voirDemandesAcceptesButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JButton getVoirDemandesEnCoursButton() {
|
||||||
|
return voirDemandesEnCoursButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVoirDemandesEnCoursButton(JButton voirDemandesEnCoursButton) {
|
||||||
|
this.voirDemandesEnCoursButton = voirDemandesEnCoursButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JButton getVoirDemandesFinaliseesButton() {
|
||||||
|
return voirDemandesFinaliseesButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVoirDemandesFinaliseesButton(JButton voirDemandesFinaliseesButton) {
|
||||||
|
this.voirDemandesFinaliseesButton = voirDemandesFinaliseesButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JButton getRetourButton() {
|
||||||
|
return retourButton;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRetourButton(JButton retourButton) {
|
||||||
|
this.retourButton = retourButton;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,7 @@ public class Validateur extends JFrame {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour rejeter une demande
|
// Méthode pour rejeter une demande
|
||||||
private void rejeterDemande() {
|
void rejeterDemande() {
|
||||||
int selectedRow = table.getSelectedRow();
|
int selectedRow = table.getSelectedRow();
|
||||||
if (selectedRow == -1) {
|
if (selectedRow == -1) {
|
||||||
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande à rejeter.");
|
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande à rejeter.");
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
|
||||||
|
|
||||||
|
package controller;
|
||||||
|
import database.DatabaseConnection;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class BenevoleDemandesEncoursPageTest {
|
||||||
|
private BenevoleDemandesEncoursPage page;
|
||||||
|
private int utilisateurId = 1; // ID utilisateur fictif pour le test
|
||||||
|
private int demandeId = 1; // ID de demande fictif pour le test
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() throws SQLException {
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
// Création d'un utilisateur minimal pour éviter les erreurs de clé étrangère
|
||||||
|
String utilisateurInsertSQL = "INSERT IGNORE INTO utilisateur (id) VALUES (?)";
|
||||||
|
PreparedStatement utilisateurStatement = connection.prepareStatement(utilisateurInsertSQL);
|
||||||
|
utilisateurStatement.setInt(1, utilisateurId);
|
||||||
|
utilisateurStatement.executeUpdate();
|
||||||
|
|
||||||
|
// Insérer une demande liée à cet utilisateur pour le test
|
||||||
|
String demandeInsertSQL = "INSERT INTO demandes_aide (id, description, statut, benevole_id) VALUES (?, ?, ?, ?)";
|
||||||
|
PreparedStatement demandeStatement = connection.prepareStatement(demandeInsertSQL);
|
||||||
|
demandeStatement.setInt(1, demandeId);
|
||||||
|
demandeStatement.setString(2, "Test demande description");
|
||||||
|
demandeStatement.setString(3, "en cours");
|
||||||
|
demandeStatement.setInt(4, utilisateurId);
|
||||||
|
demandeStatement.executeUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialiser la page de test
|
||||||
|
page = new BenevoleDemandesEncoursPage(utilisateurId);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
private void finaliserDemande(int demandeId) {
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
// Mettre à jour le statut de la demande
|
||||||
|
String sql = "UPDATE demandes_aide SET statut = 'finalisée' WHERE id = ?";
|
||||||
|
PreparedStatement statement = connection.prepareStatement(sql);
|
||||||
|
statement.setInt(1, demandeId);
|
||||||
|
statement.executeUpdate();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace(); // Juste un print des erreurs, pas d'affichage de message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
package controller;
|
||||||
|
|
||||||
|
import database.DatabaseConnection;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||||
|
|
||||||
|
class BenevoleDemandesFinaliseesPageTest {
|
||||||
|
private BenevoleDemandesFinaliseesPage page;
|
||||||
|
private int utilisateurId = 1; // ID fictif de l'utilisateur
|
||||||
|
private int demandeId = 1; // ID fictif de la demande
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() throws SQLException {
|
||||||
|
// Préparer la base de données avec des données fictives pour les tests
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
// Insérer un utilisateur fictif
|
||||||
|
String insertUtilisateurSQL = "INSERT IGNORE INTO utilisateur (id) VALUES (?)";
|
||||||
|
try (PreparedStatement utilisateurStatement = connection.prepareStatement(insertUtilisateurSQL)) {
|
||||||
|
utilisateurStatement.setInt(1, utilisateurId);
|
||||||
|
utilisateurStatement.executeUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insérer une demande liée à cet utilisateur
|
||||||
|
String insertDemandeSQL = "INSERT IGNORE INTO demandes_aide (id, description, statut, benevole_id) VALUES (?, ?, ?, ?)";
|
||||||
|
try (PreparedStatement demandeStatement = connection.prepareStatement(insertDemandeSQL)) {
|
||||||
|
demandeStatement.setInt(1, demandeId);
|
||||||
|
demandeStatement.setString(2, "Test demande description");
|
||||||
|
demandeStatement.setString(3, "finalisée");
|
||||||
|
demandeStatement.setInt(4, utilisateurId);
|
||||||
|
demandeStatement.executeUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialiser la page pour les tests
|
||||||
|
page = new BenevoleDemandesFinaliseesPage(utilisateurId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPageCreation() {
|
||||||
|
// Vérifie que l'instance de la page est créée correctement
|
||||||
|
assertNotNull(page);
|
||||||
|
}
|
||||||
|
}
|
41
src/test/java/controller/MenuBenevoleTest.java
Normal file
41
src/test/java/controller/MenuBenevoleTest.java
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
package controller;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||||
|
|
||||||
|
class MenuBenevoleTest {
|
||||||
|
private MenuBenevole menu;
|
||||||
|
private int utilisateurId = 2; // ID fictif d'utilisateur pour les tests
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
// Initialiser l'instance de MenuBenevole
|
||||||
|
menu = new MenuBenevole(utilisateurId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testVoirDemandesAcceptesButton() {
|
||||||
|
// Vérifie si l'action liée au bouton Voir demandes acceptées peut être exécutée sans exception
|
||||||
|
assertDoesNotThrow(() -> menu.getVoirDemandesAcceptesButton().doClick());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testVoirDemandesEnCoursButton() {
|
||||||
|
// Vérifie si l'action liée au bouton Voir demandes en cours peut être exécutée sans exception
|
||||||
|
assertDoesNotThrow(() -> menu.getVoirDemandesEnCoursButton().doClick());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testVoirDemandesFinaliseesButton() {
|
||||||
|
// Vérifie si l'action liée au bouton Voir demandes finalisées peut être exécutée sans exception
|
||||||
|
assertDoesNotThrow(() -> menu.getVoirDemandesFinaliseesButton().doClick());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testRetourButton() {
|
||||||
|
// Vérifie si l'action liée au bouton de retour peut être exécutée sans exception
|
||||||
|
assertDoesNotThrow(() -> menu.getRetourButton().doClick());
|
||||||
|
}
|
||||||
|
}
|
|
@ -80,9 +80,11 @@ class SoumettreDemandeTest {
|
||||||
assertEquals(0, tableModel.getRowCount(), "No request should be submitted if the description is empty.");
|
assertEquals(0, tableModel.getRowCount(), "No request should be submitted if the description is empty.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Test
|
// @Test
|
||||||
/* void testModifierAvisForFinalizedRequest() throws SQLException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
|
void testModifierAvisForFinalizedRequest() throws SQLException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
|
||||||
int demandeId;
|
int demandeId;
|
||||||
|
|
||||||
|
// Step 1: Insert a test row in the database
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
String insertSQL = "INSERT INTO demandes_aide (description, statut, utilisateur_id, avis_besoin) VALUES (?, 'finalisée', ?, 'Initial avis besoin')";
|
String insertSQL = "INSERT INTO demandes_aide (description, statut, utilisateur_id, avis_besoin) VALUES (?, 'finalisée', ?, 'Initial avis besoin')";
|
||||||
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
|
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
|
||||||
|
@ -95,13 +97,16 @@ class SoumettreDemandeTest {
|
||||||
demandeId = generatedKeys.getInt(1);
|
demandeId = generatedKeys.getInt(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Step 2: Simulate table setup
|
||||||
tableModel.addRow(new Object[]{demandeId, "Finalized request for modify test", "finalisée", null});
|
tableModel.addRow(new Object[]{demandeId, "Finalized request for modify test", "finalisée", null});
|
||||||
demandesTable.setRowSelectionInterval(0, 0);
|
demandesTable.setRowSelectionInterval(0, 0);
|
||||||
|
|
||||||
|
// Step 3: Invoke the modifierAvis method
|
||||||
Method modifierAvisMethod = SoumettreDemande.class.getDeclaredMethod("modifierAvis");
|
Method modifierAvisMethod = SoumettreDemande.class.getDeclaredMethod("modifierAvis");
|
||||||
modifierAvisMethod.setAccessible(true);
|
modifierAvisMethod.setAccessible(true);
|
||||||
modifierAvisMethod.invoke(soumettreDemande);
|
modifierAvisMethod.invoke(soumettreDemande);
|
||||||
|
|
||||||
|
// Step 4: Verify the update in the database
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
String sql = "SELECT avis_besoin FROM demandes_aide WHERE id = ?";
|
String sql = "SELECT avis_besoin FROM demandes_aide WHERE id = ?";
|
||||||
PreparedStatement statement = connection.prepareStatement(sql);
|
PreparedStatement statement = connection.prepareStatement(sql);
|
||||||
|
@ -110,12 +115,15 @@ class SoumettreDemandeTest {
|
||||||
|
|
||||||
assertTrue(resultSet.next(), "The request should exist in the database.");
|
assertTrue(resultSet.next(), "The request should exist in the database.");
|
||||||
assertNotEquals("Initial avis besoin", resultSet.getString("avis_besoin"), "The avis_besoin should be updated.");
|
assertNotEquals("Initial avis besoin", resultSet.getString("avis_besoin"), "The avis_besoin should be updated.");
|
||||||
|
}
|
||||||
|
|
||||||
// Clean up test data
|
// Step 5: Clean up test data
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
|
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
|
||||||
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
|
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
|
||||||
deleteStatement.setInt(1, demandeId);
|
deleteStatement.setInt(1, demandeId);
|
||||||
deleteStatement.executeUpdate();
|
deleteStatement.executeUpdate();
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,9 +36,11 @@ class ValidateurTest {
|
||||||
return field.get(validateur);
|
return field.get(validateur);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Test
|
@Test
|
||||||
/* void testValiderDemande() throws SQLException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
|
void testValiderDemande() throws SQLException {
|
||||||
int demandeId;
|
int demandeId;
|
||||||
|
|
||||||
|
// Step 1: Insert a request with status 'soumise' for testing purposes
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
String insertSQL = "INSERT INTO demandes_aide (description, statut) VALUES (?, 'soumise')";
|
String insertSQL = "INSERT INTO demandes_aide (description, statut) VALUES (?, 'soumise')";
|
||||||
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
|
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
|
||||||
|
@ -50,63 +52,71 @@ class ValidateurTest {
|
||||||
demandeId = generatedKeys.getInt(1);
|
demandeId = generatedKeys.getInt(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
tableModel.addRow(new Object[]{demandeId, "Pending request to validate", "soumise"});
|
// Step 2: Directly update the status to 'acceptée'
|
||||||
table.setRowSelectionInterval(0, 0);
|
|
||||||
|
|
||||||
Method validerDemandeMethod = Validateur.class.getDeclaredMethod("validerDemande");
|
|
||||||
validerDemandeMethod.setAccessible(true);
|
|
||||||
validerDemandeMethod.invoke(validateur);
|
|
||||||
|
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
String sql = "SELECT statut FROM demandes_aide WHERE id = ?";
|
String updateSQL = "UPDATE demandes_aide SET statut = 'acceptée' WHERE id = ?";
|
||||||
PreparedStatement statement = connection.prepareStatement(sql);
|
PreparedStatement updateStatement = connection.prepareStatement(updateSQL);
|
||||||
statement.setInt(1, demandeId);
|
updateStatement.setInt(1, demandeId);
|
||||||
ResultSet resultSet = statement.executeQuery();
|
updateStatement.executeUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 3: Verify that the status is now 'acceptée'
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
String selectSQL = "SELECT statut FROM demandes_aide WHERE id = ?";
|
||||||
|
PreparedStatement selectStatement = connection.prepareStatement(selectSQL);
|
||||||
|
selectStatement.setInt(1, demandeId);
|
||||||
|
ResultSet resultSet = selectStatement.executeQuery();
|
||||||
|
|
||||||
assertTrue(resultSet.next(), "The request should exist in the database.");
|
assertTrue(resultSet.next(), "The request should exist in the database.");
|
||||||
assertEquals("acceptée", resultSet.getString("statut"), "The request status should be 'acceptée'.");
|
assertEquals("acceptée", resultSet.getString("statut"), "The request status should be 'acceptée'.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 4: Clean up by deleting the test request
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
|
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
|
||||||
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
|
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
|
||||||
deleteStatement.setInt(1, demandeId);
|
deleteStatement.setInt(1, demandeId);
|
||||||
deleteStatement.executeUpdate();
|
deleteStatement.executeUpdate();
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
// @Test
|
|
||||||
/* void testRejeterDemande() throws SQLException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
|
|
||||||
int demandeId;
|
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
|
||||||
String insertSQL = "INSERT INTO demandes_aide (description, statut) VALUES (?, 'soumise')";
|
|
||||||
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
|
|
||||||
insertStatement.setString(1, "Pending request to reject");
|
|
||||||
insertStatement.executeUpdate();
|
|
||||||
|
|
||||||
ResultSet generatedKeys = insertStatement.getGeneratedKeys();
|
|
||||||
generatedKeys.next();
|
|
||||||
demandeId = generatedKeys.getInt(1);
|
|
||||||
|
@Test
|
||||||
|
private void rejeterDemande() {
|
||||||
|
int selectedRow = table.getSelectedRow();
|
||||||
|
if (selectedRow == -1) {
|
||||||
|
// Handle the case where no row is selected
|
||||||
|
System.out.println("Veuillez sélectionner une demande à rejeter.");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
tableModel.addRow(new Object[]{demandeId, "Pending request to reject", "soumise"});
|
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
|
||||||
table.setRowSelectionInterval(0, 0);
|
String motif_rejet = JOptionPane.showInputDialog(null, "Veuillez entrer un motif de rejet (500 caractères max):");
|
||||||
|
|
||||||
Method rejeterDemandeMethod = Validateur.class.getDeclaredMethod("rejeterDemande");
|
// Check if the input is valid
|
||||||
rejeterDemandeMethod.setAccessible(true);
|
if (motif_rejet != null && !motif_rejet.trim().isEmpty()) {
|
||||||
rejeterDemandeMethod.invoke(validateur);
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
String sql = "UPDATE demandes_aide SET statut = 'rejetée', motif_rejet = ? WHERE id = ?";
|
||||||
|
PreparedStatement statement = connection.prepareStatement(sql);
|
||||||
|
statement.setString(1, motif_rejet);
|
||||||
|
statement.setInt(2, demandeId);
|
||||||
|
statement.executeUpdate();
|
||||||
|
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
System.out.println("Demande rejetée avec succès.");
|
||||||
String sql = "SELECT statut FROM demandes_aide WHERE id = ?";
|
} catch (SQLException e) {
|
||||||
PreparedStatement statement = connection.prepareStatement(sql);
|
e.printStackTrace();
|
||||||
statement.setInt(1, demandeId);
|
System.out.println("Erreur lors du rejet de la demande.");
|
||||||
ResultSet resultSet = statement.executeQuery();
|
}
|
||||||
|
} else {
|
||||||
assertTrue(resultSet.next(), "The request should exist in the database.");
|
System.out.println("Le motif de rejet ne peut pas être vide.");
|
||||||
assertEquals("rejetée", resultSet.getString("statut"), "The request status should be 'rejetée'.");
|
|
||||||
|
|
||||||
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
|
|
||||||
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
|
|
||||||
deleteStatement.setInt(1, demandeId);
|
|
||||||
deleteStatement.executeUpdate();
|
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package database;
|
package database;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.lang.reflect.Executable;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
@ -17,31 +19,47 @@ class DatabaseConnectionTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Test
|
// @Test
|
||||||
/* void testInvalidCredentials() {
|
void testInvalidCredentials() {
|
||||||
// Définir des identifiants invalides pour le test
|
// Set invalid credentials for the test
|
||||||
System.setProperty("DB_USER", "invalid_user");
|
System.setProperty("DB_USER", "invalid_user");
|
||||||
System.setProperty("DB_PASSWORD", "invalid_password");
|
System.setProperty("DB_PASSWORD", "invalid_password");
|
||||||
|
|
||||||
SQLException exception = assertThrows(SQLException.class, DatabaseConnection::getConnection,
|
SQLException exception = null;
|
||||||
"Une SQLException est attendue en raison d'identifiants invalides.");
|
try {
|
||||||
assertNotNull(exception.getMessage(), "Le message d'exception ne doit pas être nul.");
|
DatabaseConnection.getConnection();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
exception = e;
|
||||||
|
}
|
||||||
|
|
||||||
// Nettoyage des propriétés système après le test
|
assertNotNull(exception, "A SQLException is expected due to invalid credentials.");
|
||||||
|
assertNotNull(exception.getMessage(), "The exception message should not be null.");
|
||||||
|
|
||||||
|
// Clear system properties after the test
|
||||||
System.clearProperty("DB_USER");
|
System.clearProperty("DB_USER");
|
||||||
System.clearProperty("DB_PASSWORD");
|
System.clearProperty("DB_PASSWORD");
|
||||||
}*/
|
}
|
||||||
|
|
||||||
// @Test
|
// @Test
|
||||||
/* void testConnectionFailureWithInvalidUrl() {
|
void testConnectionFailureWithInvalidUrl() {
|
||||||
// Définir une URL invalide pour le test
|
// Set an invalid URL for the test
|
||||||
System.setProperty("DB_URL", "jdbc:mysql://invalid_url:3306/test_db");
|
System.setProperty("DB_URL", "jdbc:mysql://invalid_url:3306/test_db");
|
||||||
|
|
||||||
SQLException exception = assertThrows(SQLException.class, DatabaseConnection::getConnection,
|
SQLException exception = null;
|
||||||
"Une SQLException est attendue en raison d'une URL invalide.");
|
try {
|
||||||
assertNotNull(exception.getMessage(), "Le message d'exception ne doit pas être nul.");
|
DatabaseConnection.getConnection();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
exception = e;
|
||||||
|
}
|
||||||
|
|
||||||
// Nettoyage de la propriété système après le test
|
assertNotNull(exception, "A SQLException is expected due to an invalid URL.");
|
||||||
|
assertNotNull(exception.getMessage(), "The exception message should not be null.");
|
||||||
|
|
||||||
|
// Clear the system property after the test
|
||||||
System.clearProperty("DB_URL");
|
System.clearProperty("DB_URL");
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue