diff --git a/.gitignore b/.gitignore
index b83d222..b35d1bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
/target/
+/.idea/
+/.settings/
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 160ecec..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index 712ab9d..0000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 5ddb3b3..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 8306744..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs
deleted file mode 100644
index d4313d4..0000000
--- a/.settings/org.eclipse.jdt.apt.core.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-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
deleted file mode 100644
index ea7a397..0000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,16 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-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.8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
deleted file mode 100644
index f897a7f..0000000
--- a/.settings/org.eclipse.m2e.core.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1
diff --git a/src/main/java/controller/BenevoleDemandesFinaliseesPage.java b/src/main/java/controller/BenevoleDemandesFinaliseesPage.java
index c2a8e32..be71594 100644
--- a/src/main/java/controller/BenevoleDemandesFinaliseesPage.java
+++ b/src/main/java/controller/BenevoleDemandesFinaliseesPage.java
@@ -75,6 +75,14 @@ public class BenevoleDemandesFinaliseesPage extends JFrame {
loadDemandesFinalisees();
}
+ //Méthodes de type get()
+ public JTable getTable() {return this.table;}
+ public DefaultTableModel getTableModel() {return this.tableModel;}
+ public JButton getVoirAvisButton() {return this.voirAvisButton;}
+ public JButton getModifierAvisButton() {return this.modifierAvisButton;}
+ public JButton getRetourBenevoleButton() {return this.retourBenevoleButton;}
+ public int getID() {return this.utilisateurId;}
+
private void afficherAvis() {
int selectedRow = table.getSelectedRow();
if (selectedRow == -1) {
diff --git a/src/test/java/controller/BenevoleDemandesEncoursPageTest.java b/src/test/java/controller/BenevoleDemandesEncoursPageTest.java
index f4313e4..6f24624 100644
--- a/src/test/java/controller/BenevoleDemandesEncoursPageTest.java
+++ b/src/test/java/controller/BenevoleDemandesEncoursPageTest.java
@@ -52,7 +52,4 @@ class BenevoleDemandesEncoursPageTest {
}
}
-
-
-
}
diff --git a/src/test/java/controller/BenevoleDemandesFinaliseesPageTest.java b/src/test/java/controller/BenevoleDemandesFinaliseesPageTest.java
index d0e1db1..db22373 100644
--- a/src/test/java/controller/BenevoleDemandesFinaliseesPageTest.java
+++ b/src/test/java/controller/BenevoleDemandesFinaliseesPageTest.java
@@ -4,46 +4,96 @@ import database.DatabaseConnection;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import javax.swing.*;
+import javax.swing.table.DefaultTableModel;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.sql.SQLException;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
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
+ private BenevoleDemandesFinaliseesPage benevoleDemandesFinaliseesPage;
+ private JTable table;
+ private DefaultTableModel tableModel;
+ private int user_besoinID = 1;
+ private int benevoleID = 2; // ID fictif de l'utilisateur
+ private int demandeID; // 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);
+ // Initialiser la benevoleDemandesFinaliseesPage pour les tests
+ benevoleDemandesFinaliseesPage = new BenevoleDemandesFinaliseesPage(benevoleID);
}
@Test
void testPageCreation() {
- // Vérifie que l'instance de la page est créée correctement
- assertNotNull(page);
+ // on vérifie que l'instance de la benevoleDemandesFinaliseesPage est créée correctement
+ assertNotNull(benevoleDemandesFinaliseesPage);
}
+
+ @Test
+ void testModifierAvisForFinalizedRequest() {
+ //on crée une demande avec le statut 'finalisée' pour tester la méthode modifierAvis(), et avec un avis original
+ try (Connection connection = DatabaseConnection.getConnection()) {
+ String insertSQL = "INSERT INTO demandes_aide (statut, utilisateur_id, benevole_id, description, avis_benevole) VALUES (?, ?, ?, ?, ?)";
+ PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
+ insertStatement.setString(1, "finalisée");
+ insertStatement.setInt(2, user_besoinID);
+ insertStatement.setInt(3, benevoleID); // Aucun bénévole affecté initialement
+ insertStatement.setString(4, "Demande de test pour JUnit / Test modif avis_benevole");
+ insertStatement.setString(5, "Avis_benevole à modifier");
+ insertStatement.executeUpdate();
+
+ // Récupération de l'ID généré pour pouvoir le supprimer après
+ ResultSet generatedKeys = insertStatement.getGeneratedKeys();
+ if (generatedKeys.next()) {
+ demandeID = generatedKeys.getInt(1);
+ }
+
+ // on met à jour la table avec la nouvelle demande rajoutée
+ // on utilise une méthode détournée pour accéder à la méthode private 'loadAnciennesDemandes()'
+ Method loadDemandesFinaliseesMethod = BenevoleDemandesFinaliseesPage.class.getDeclaredMethod("loadDemandesFinalisees");
+ loadDemandesFinaliseesMethod.setAccessible(true); // permet d'appeler la méthode même si elle est private
+ loadDemandesFinaliseesMethod.invoke(benevoleDemandesFinaliseesPage); // on l'appele
+
+ //test de modifierAvis(); on sélectionne la dernière ligne de la table car elle correspond à la demande test
+ int lastRow = benevoleDemandesFinaliseesPage.getTable().getRowCount()-1;
+ benevoleDemandesFinaliseesPage.getTable().setRowSelectionInterval(lastRow, lastRow);
+
+ // idem que pour loadAnciennesDemandes() comme modifierAvis() est aussi en private
+ Method modifierAvisMethod = BenevoleDemandesFinaliseesPage.class.getDeclaredMethod("modifierAvis");
+ modifierAvisMethod.setAccessible(true); // permet d'appeler la méthode même si elle est private
+ modifierAvisMethod.invoke(benevoleDemandesFinaliseesPage); // on l'appele
+
+ // on attend un moment pour que la base de données se mette à jour
+ Thread.sleep(1000);
+
+ String sql = "SELECT avis_benevole FROM demandes_aide WHERE id = ?";
+ PreparedStatement statement = connection.prepareStatement(sql);
+ statement.setInt(1, demandeID);
+ ResultSet resultSet = statement.executeQuery();
+
+ String currentAvis = "";
+ if (resultSet.next()) {
+ currentAvis = resultSet.getString("avis_benevole");
+ }
+
+ assertNotEquals("Avis_benevole à modifier", currentAvis, "L'avis n'a pas été modifié.");
+
+ // Suppression de la demande de test après le test de prendreDemande()
+ String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
+ PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
+ deleteStatement.setInt(1, demandeID);
+ deleteStatement.executeUpdate();
+ } catch (InterruptedException | InvocationTargetException | NoSuchMethodException | IllegalAccessException |
+ SQLException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
}
diff --git a/src/test/java/controller/CreateAccountPageTest.java b/src/test/java/controller/CreateAccountPageTest.java
index a55c0e4..e6f17af 100644
--- a/src/test/java/controller/CreateAccountPageTest.java
+++ b/src/test/java/controller/CreateAccountPageTest.java
@@ -24,10 +24,7 @@ class CreateAccountPageTest {
private JComboBox roleComboBox;
private JButton createAccountButton;
private JButton retourLoginButton;
-
- //TODO
- /*
@BeforeEach
void setUp() throws NoSuchFieldException, IllegalAccessException {
createAccountPage = new CreateAccountPage();
@@ -124,5 +121,5 @@ class CreateAccountPageTest {
// Check that the current frame is disposed
assertFalse(createAccountPage.isVisible(), "La page de création de compte devrait être fermée après avoir cliqué sur 'Retour à la connexion'.");
}
- */
+
}
diff --git a/src/test/java/controller/LoginPageTest.java b/src/test/java/controller/LoginPageTest.java
index 1ba9ccf..becbdc4 100644
--- a/src/test/java/controller/LoginPageTest.java
+++ b/src/test/java/controller/LoginPageTest.java
@@ -60,11 +60,8 @@ class LoginPageTest {
// Verify that the email field contains the invalid email entered
assertEquals("nonexistent@example.com", emailField.getText(), "The entered email should remain in the email field.");
-
-
}
-
@Test
void testCreateAccountButtonAction() {
createAccountButton.doClick();
diff --git a/src/test/java/controller/SoumettreDemandeTest.java b/src/test/java/controller/SoumettreDemandeTest.java
index 475ff55..39f6ad0 100644
--- a/src/test/java/controller/SoumettreDemandeTest.java
+++ b/src/test/java/controller/SoumettreDemandeTest.java
@@ -21,12 +21,12 @@ class SoumettreDemandeTest {
private SoumettreDemande soumettreDemande;
private JTextField descriptionField;
private DefaultTableModel tableModel;
- private int utilisateurId = 1; // utilisateur arbitraire qui va créer les demandes de test
+ private int utilisateurID = 1; // utilisateur arbitraire qui va créer les demandes de test
private int demandeID;
@BeforeEach
void setUp() throws NoSuchFieldException, IllegalAccessException {
- soumettreDemande = new SoumettreDemande(utilisateurId);
+ soumettreDemande = new SoumettreDemande(utilisateurID);
// Access private fields using reflection
descriptionField = (JTextField) getField("descriptionField");
@@ -52,7 +52,7 @@ class SoumettreDemandeTest {
String sql = "SELECT description FROM demandes_aide WHERE description = ? AND utilisateur_id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, "Test request description");
- statement.setInt(2, utilisateurId);
+ statement.setInt(2, utilisateurID);
ResultSet resultSet = statement.executeQuery();
assertTrue(resultSet.next(), "The request should be added to the database.");
@@ -77,16 +77,14 @@ class SoumettreDemandeTest {
assertEquals(0, tableModel.getRowCount(), "No request should be submitted if the description is empty.");
}
-
- //TODO
- /* @Test
- void testModifierAvisForFinalizedRequest() throws SQLException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
+ @Test
+ void testModifierAvisForFinalizedRequest() {
//on crée une demande avec le statut 'finalisée' pour tester la méthode modifierAvis(), et avec un avis original
try (Connection connection = DatabaseConnection.getConnection()) {
String insertSQL = "INSERT INTO demandes_aide (statut, utilisateur_id, benevole_id, description, avis_besoin) VALUES (?, ?, ?, ?, ?)";
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
insertStatement.setString(1, "finalisée");
- 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 modif avis_besoin");
insertStatement.setString(5, "Avis_besoin à modifier");
@@ -137,6 +135,6 @@ class SoumettreDemandeTest {
SQLException e) {
throw new RuntimeException(e);
}
- }*/
+ }
}
diff --git a/src/test/java/controller/ValidateurTest.java b/src/test/java/controller/ValidateurTest.java
index bf7e150..0417f27 100644
--- a/src/test/java/controller/ValidateurTest.java
+++ b/src/test/java/controller/ValidateurTest.java
@@ -4,9 +4,6 @@ import database.DatabaseConnection;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import javax.swing.*;
-import javax.swing.table.DefaultTableModel;
-import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.Connection;
@@ -86,9 +83,7 @@ class ValidateurTest {
}
}
-
-//TODO
- /* @Test
+ @Test
void testRejeterDemande() {
//on crée une demande avec le statut 'soumise' pour tester la méthode rejeterDemande()
try (Connection connection = DatabaseConnection.getConnection()) {
@@ -146,8 +141,5 @@ class ValidateurTest {
throw new RuntimeException(e);
}
}
-*/
-
-
}
diff --git a/src/test/java/database/DatabaseConnectionTest.java b/src/test/java/database/DatabaseConnectionTest.java
index a474864..d76cfac 100644
--- a/src/test/java/database/DatabaseConnectionTest.java
+++ b/src/test/java/database/DatabaseConnectionTest.java
@@ -2,6 +2,7 @@ package database;
import org.junit.jupiter.api.Test;
+import java.lang.reflect.Executable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;