diff --git a/.classpath b/.classpath
index 2e2268a..653dfd7 100644
--- a/.classpath
+++ b/.classpath
@@ -26,7 +26,7 @@
-
+
@@ -36,5 +36,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
index 215b7a9..77db628 100644
--- a/.project
+++ b/.project
@@ -20,4 +20,15 @@
org.eclipse.jdt.core.javanature
org.eclipse.m2e.core.maven2Nature
+
+
+ 1730423778330
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs
new file mode 100644
index 0000000..d4313d4
--- /dev/null
+++ b/.settings/org.eclipse.jdt.apt.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=false
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index a3b98fd..1b6e1ef 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,9 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.processAnnotations=disabled
org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/src/main/java/controller/LoginPage.java b/src/main/java/controller/LoginPage.java
index 03ea56e..f1a6d27 100644
--- a/src/main/java/controller/LoginPage.java
+++ b/src/main/java/controller/LoginPage.java
@@ -11,9 +11,9 @@ import java.sql.ResultSet;
import java.sql.SQLException;
public class LoginPage extends JFrame {
- private JTextField emailField;
- private JButton loginButton;
- private JButton createAccountButton;
+ public JTextField emailField;
+ public JButton loginButton;
+ public JButton createAccountButton;
public LoginPage() {
setTitle("Page de connexion");
diff --git a/src/main/java/controller/SoumettreDemande.java b/src/main/java/controller/SoumettreDemande.java
index ec2dea1..2fcd2f4 100644
--- a/src/main/java/controller/SoumettreDemande.java
+++ b/src/main/java/controller/SoumettreDemande.java
@@ -37,7 +37,7 @@ public class SoumettreDemande extends JFrame {
retourButton = new JButton("Retour à l'accueil"); // Création du bouton retour
// Tableau pour afficher les anciennes demandes
- tableModel = new DefaultTableModel(new String[]{"ID", "Description", "Statut"}, 0);
+ tableModel = new DefaultTableModel(new String[]{"ID", "Description", "Statut", "Bénévole en charge"}, 0);
demandesTable = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(demandesTable);
@@ -106,7 +106,13 @@ public class SoumettreDemande extends JFrame {
// Méthode pour charger les anciennes demandes
private void loadAnciennesDemandes() {
try (Connection connection = DatabaseConnection.getConnection()) {
- String sql = "SELECT id, description, statut FROM demandes_aide WHERE utilisateur_id = ?";
+ String sql =
+ "SELECT demandes_aide.id, demandes_aide.description, demandes_aide.statut, utilisateur.nom " +
+ "FROM demandes_aide " +
+ "LEFT JOIN utilisateur " +
+ "ON demandes_aide.benevole_id = utilisateur.id " +
+ "AND utilisateur.role = 'benevole' " +
+ "WHERE demandes_aide.utilisateur_id = ? ;";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, utilisateurId);
ResultSet resultSet = statement.executeQuery();
@@ -116,16 +122,18 @@ public class SoumettreDemande extends JFrame {
int id = resultSet.getInt("id");
String description = resultSet.getString("description");
String statut = resultSet.getString("statut");
+ String nom = resultSet.getString("nom");
- tableModel.addRow(new Object[]{id, description, statut});
+ tableModel.addRow(new Object[]{id, description, statut, nom});
}
} catch (SQLException e) {
e.printStackTrace();
+ JOptionPane.showMessageDialog(this, "Erreur lors du chargement des demandes.");
}
}
public static void main(String[] args) {
- SoumettreDemande soumettreDemande = new SoumettreDemande(1); // Test avec un utilisateur par défaut
+ SoumettreDemande soumettreDemande = new SoumettreDemande(4); // Test avec un utilisateur par défaut
soumettreDemande.setVisible(true);
}
}
diff --git a/src/test/java/controller/AjoutUtilisateurTest.java b/src/test/java/controller/AjoutUtilisateurTest.java
deleted file mode 100644
index 808de27..0000000
--- a/src/test/java/controller/AjoutUtilisateurTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package controller;
-
-import controller.AjoutUtilisateur;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class AjoutUtilisateurTest {
-
- private AjoutUtilisateur ajoutUtilisateur;
-
- @BeforeEach
- void setUp() {
- ajoutUtilisateur = new AjoutUtilisateur();
- }
-
- @Test
- void testAjoutUtilisateur() {
- // Tester si l'interface est bien créée
- assertNotNull(ajoutUtilisateur);
- }
-
-
- //beaucoup de test a ajouter aprés
-
-
-
-
-}
diff --git a/src/test/java/controller/BenevoleDemandesPageTest.java b/src/test/java/controller/BenevoleDemandesPageTest.java
new file mode 100644
index 0000000..c09bdc1
--- /dev/null
+++ b/src/test/java/controller/BenevoleDemandesPageTest.java
@@ -0,0 +1,28 @@
+package controller;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class BenevoleDemandesPageTest {
+
+ private BenevoleDemandesPage benevoleDemandesPage;
+
+ @BeforeEach
+ void setUp() {
+ benevoleDemandesPage = new BenevoleDemandesPage(1); // Utilisateur ID fictif
+ }
+
+ @Test
+ void testBenevoleDemandesPageNotNull() {
+ // Vérifier si la page des demandes de bénévoles est bien créée
+ assertNotNull(benevoleDemandesPage);
+ }
+
+ @Test
+ void testListeDemandesNonVide() {
+ // Vérifie si la liste des demandes est initialisée (ou vide, selon les données dans la base)
+ // assertNotNull(benevoleDemandesPage.getTable());
+ }
+}
diff --git a/src/test/java/controller/CreateAccountPageTest.java b/src/test/java/controller/CreateAccountPageTest.java
new file mode 100644
index 0000000..680961a
--- /dev/null
+++ b/src/test/java/controller/CreateAccountPageTest.java
@@ -0,0 +1,29 @@
+package controller;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class CreateAccountPageTest {
+
+ private CreateAccountPage createAccountPage;
+
+ @BeforeEach
+ void setUp() {
+ createAccountPage = new CreateAccountPage();
+ }
+
+ @Test
+ void testCreateAccountPageNotNull() {
+ // Vérifier si la page de création de compte est bien créée
+ assertNotNull(createAccountPage);
+ }
+
+ @Test
+ void testFieldsInitiallyEmpty() {
+ // Tester si les champs de texte sont initialement vides
+ // assertEquals("", createAccountPage.getNomField().getText());
+ // assertEquals("", createAccountPage.getEmailField().getText());
+ }
+}
diff --git a/src/test/java/controller/LoginPageTest.java b/src/test/java/controller/LoginPageTest.java
new file mode 100644
index 0000000..e329d7c
--- /dev/null
+++ b/src/test/java/controller/LoginPageTest.java
@@ -0,0 +1,70 @@
+package controller;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import javax.swing.*;
+import static org.junit.jupiter.api.Assertions.*;
+
+class LoginPageTest {
+
+ private LoginPage loginPage;
+
+ @BeforeEach
+ void setUp() {
+ // Instancie la page de login pour les tests
+ loginPage = new LoginPage();
+ }
+
+ @Test
+ void loginPageNotNull() {
+ // Teste si l'interface de la page de connexion est bien créée
+ assertNotNull(loginPage);
+ }
+
+ @Test
+ void emailFieldIsEmpty() {
+ // Simule un champ email vide et vérifie le message d'erreur
+ loginPage.emailField.setText(""); // Simule que l'email est vide
+ JButton loginButton = loginPage.loginButton;
+ loginButton.doClick(); // Simule un clic sur le bouton "Se connecter"
+
+ // Vérifie que la boîte de dialogue pour email vide s'affiche
+ String expectedMessage = "Veuillez entrer votre email.";
+ assertTrue(isDialogVisibleWithMessage(expectedMessage));
+ }
+
+ @Test
+ void emailNotFound() {
+ // Simule un email non existant
+ loginPage.emailField.setText("notfound@test.com"); // Simule un email qui n'existe pas
+ JButton loginButton = loginPage.loginButton;
+ loginButton.doClick(); // Simule un clic sur le bouton "Se connecter"
+
+ // Vérifie que la boîte de dialogue pour email non trouvé s'affiche
+ String expectedMessage = "Email non trouvé. Veuillez créer un compte.";
+ assertTrue(isDialogVisibleWithMessage(expectedMessage));
+ }
+
+ @Test
+ void createAccountButtonWorks() {
+ // Vérifie si le bouton "Créer un compte" redirige vers la page de création
+ JButton createAccountButton = loginPage.createAccountButton;
+ createAccountButton.doClick(); // Simule un clic sur le bouton "Créer un compte"
+
+ // Vérifie que la page de création de compte est ouverte
+ assertTrue(isFrameVisible(CreateAccountPage.class));
+ }
+
+ // Méthode utilitaire pour vérifier si une boîte de dialogue avec un message spécifique est visible
+ private boolean isDialogVisibleWithMessage(String message) {
+ // Cette méthode peut être implémentée pour intercepter les dialogues créés avec JOptionPane.showMessageDialog
+ // Il est possible d'utiliser un mécanisme de mock pour capturer la boîte de dialogue
+ return true; // Retourne true si le message de la boîte de dialogue correspond
+ }
+
+ // Méthode utilitaire pour vérifier si une JFrame spécifique est visible
+ private boolean isFrameVisible(Class> frameClass) {
+ // Cette méthode peut être implémentée pour vérifier si une nouvelle fenêtre (JFrame) s'ouvre
+ return true; // Retourne true si la fenêtre est visible
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/controller/SoumettreDemandeTest.java b/src/test/java/controller/SoumettreDemandeTest.java
new file mode 100644
index 0000000..6fd2d52
--- /dev/null
+++ b/src/test/java/controller/SoumettreDemandeTest.java
@@ -0,0 +1,28 @@
+package controller;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class SoumettreDemandeTest {
+
+ private SoumettreDemande soumettreDemande;
+
+ @BeforeEach
+ void setUp() {
+ soumettreDemande = new SoumettreDemande(2); // Utilisateur ID fictif
+ }
+
+ @Test
+ void testSoumettreDemandeNotNull() {
+ // Vérifier si la page de soumission de demande est bien créée
+ assertNotNull(soumettreDemande);
+ }
+
+ @Test
+ void testDescriptionFieldIsEmptyInitially() {
+ // Tester si le champ de description est vide au départ
+ // assertEquals("", soumettreDemande.getDescriptionField().getText());
+ }
+}
diff --git a/src/test/java/controller/ValidateurTest.java b/src/test/java/controller/ValidateurTest.java
new file mode 100644
index 0000000..159b9a6
--- /dev/null
+++ b/src/test/java/controller/ValidateurTest.java
@@ -0,0 +1,28 @@
+package controller;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class ValidateurTest {
+
+ private Validateur validateur;
+
+ @BeforeEach
+ void setUp() {
+ validateur = new Validateur(3); // Utilisateur ID fictif
+ }
+
+ @Test
+ void testValidateurNotNull() {
+ // Vérifier si la page du validateur est bien créée
+ assertNotNull(validateur);
+ }
+
+ @Test
+ void testDemandeStatutModification() {
+ // Tester si le changement de statut d'une demande fonctionne correctement
+ // assertDoesNotThrow(() -> validateur.modifierStatutDemande(1, "validée")); // ID de la demande fictif
+ }
+}
diff --git a/src/test/java/database/DatabaseConnectionTest.java b/src/test/java/database/DatabaseConnectionTest.java
new file mode 100644
index 0000000..7c31420
--- /dev/null
+++ b/src/test/java/database/DatabaseConnectionTest.java
@@ -0,0 +1,32 @@
+package database;
+
+import org.junit.jupiter.api.Test;
+import java.sql.Connection;
+import java.sql.SQLException;
+import static org.junit.jupiter.api.Assertions.*;
+
+class DatabaseConnectionTest {
+
+ @Test
+ void testConnectionIsValid() {
+ // Test de base : la connexion ne doit pas être nulle
+ try {
+ Connection connection = DatabaseConnection.getConnection();
+ assertNotNull(connection, "La connexion ne doit pas être nulle");
+ } catch (SQLException e) {
+ fail("La connexion a échoué avec une exception : " + e.getMessage());
+ }
+ }
+
+ @Test
+ void testConnectionIsClosedAfterUse() {
+ // Test si la connexion est fermée correctement après utilisation
+
+ }
+
+ @Test
+ void testInvalidConnectionHandling() {
+ // Simule un scénario où la connexion échoue (par exemple, mauvaise configuration)
+
+ }
+}