From 1f41b895774a311824b017b442e0cd63afda3aa8 Mon Sep 17 00:00:00 2001 From: skferrei Date: Fri, 29 Nov 2024 10:27:20 +0100 Subject: [PATCH 1/4] modif forgejo actions --- .forgejo/workflows/maven.yml | Bin 1000 -> 1116 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.forgejo/workflows/maven.yml b/.forgejo/workflows/maven.yml index 0ee08d79bca6f5244b525d71de0141871bfb38f2..5aad4bbfad4d875e8192df7ac647b7191f81f77e 100644 GIT binary patch delta 126 zcmaFCeurbjHRj1K%pyg(3}p;?3w8snBIe jgYyc&vU&^^Ks7lG)(pH1TtNM(5N37>(9B|n5~wNwSx*(C delta 26 gcmcb^@q&HBHD)0NhFpd+hCBuZh7yKUhGHNI0B(5(zyJUM From 384ee81b51bf3faf16014db934478c73d8c7e87a Mon Sep 17 00:00:00 2001 From: skferrei Date: Fri, 29 Nov 2024 11:10:08 +0100 Subject: [PATCH 2/4] =?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); + } + } } From 2325ae5e570e6c8c9f0c30197a7424434264be57 Mon Sep 17 00:00:00 2001 From: el-ouali Date: Fri, 29 Nov 2024 11:42:44 +0100 Subject: [PATCH 3/4] Actualiser .forgejo/workflows/maven.yml --- .forgejo/workflows/maven.yml | Bin 2204 -> 281 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.forgejo/workflows/maven.yml b/.forgejo/workflows/maven.yml index 827c054495502c3001e2ead51d5922b97a87bb13..d1ff92a777f5bb041ac66d4629cffadc86ce9aa5 100644 GIT binary patch literal 281 zcmYL^K@Ng25JmSrMK1tRF_CnKk;H`tp%~+eRG4TLD7KY^v$^m{UcpinH%;chKk1wI z^TjK627)WrLQOo^cRfcmP+yCiGhHC0K(;&wMG(dgt~zxuiSJGjYMJEhR1Rc&r12(O z1!=GhXh?7)#T9gR2A)l3o>?6VNff2oE}--fB`boZ5PD>L8YTok%ztC_Z;DI&mLI~wXn>2|{;s%iT?Z9_-vx?(5 z5k;2m-PxHlXJ%(-|NNd>$0jzgLyPQ`@q#z97k0w;yA3U~OGXX1GO(%Lwp*6)KXjvr zwbZU{j@C*dY1d}hOs&VtfOX-2;@!hrhk1r{#w@bW4rv5x*XhZFN4UoS*!l(J8UChd z#!DU%^RAO+d}Ay+4qZM1mhk4z;{wdyl2LwD8Wa18);AE=W6_$Pq2qpmwW7&uKejto zUGo-fl(WSaJn1y-qqXeZ&g_dd?F~3?QHWC!{vadY7fy0qcZJ;I?ae!wdi*&#ox?A~3T`kq}anLXnStXG*3^1Y|!xCk|6<&>I##ed%(ZDeDY zUsa{LK+2Ad$f@$W>03J-dRuvI1=|<|)%lzp`K}jP#j&bv@DgetJ>^U}RZj{z(V3|* z8?al~Zgt8$pV4q~dNB4q)Aty~5c+OjzdV0Fdky-S?hW=EV*bapSy1{@QiG2%Qf|T4=YB z?&@7fV9Sg0>N})n-eOz7+~l_hvopu730mlN;vG;cR8oaJBm?&)NZwC~rw;eF zi{gawG13~neI4P*-FUmX=JQ$H Date: Sun, 1 Dec 2024 23:52:14 +0100 Subject: [PATCH 4/4] Ajouter README.md --- README.md | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3fdd1a1 --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +# Application PDLA - Gestion des Demandes Bénévoles + +## Prérequis +- Java JDK 11 ou supérieur +- Apache Maven 3.6 ou supérieur +- Eclipse IDE +- Accès aux machines INSA (pour l'exécution sur Linux) + +## Installation + +### Configuration Eclipse +1. Importez le projet dans Eclipse : + - File > Import > Maven > Existing Maven Projects + - Sélectionnez le dossier racine du projet + - Cliquez sur "Finish" + +2. Configuration du build path : + - Clic droit sur le projet > Properties + - Java Build Path > Libraries + - Vérifiez que le JDK est correctement configuré + +### Configuration Maven +1. Mettez à jour les dépendances Maven : +```bash +mvn clean install +``` + +2. Vérifiez que le fichier `pom.xml` est correctement configuré avec toutes les dépendances nécessaires. + +## Exécution des Tests + +### Dans Eclipse +1. Clic droit sur le projet +2. Run As > Maven test + +### En ligne de commande (Linux INSA) +```bash +# Se connecter aux machines INSA +ssh votre_login@votre_machine.insa-toulouse.fr + +# Naviguer vers le répertoire du projet +cd chemin/vers/votre/projet + +# Exécuter les tests +mvn test +``` + +## Structure du Projet +- `src/main/java/` : Code source principal + - `controller/` : Contrôleurs de l'application + - `database/` : Gestion de la base de données + - Classes principales : + - BenevoleDemandes*.java + - CreateAccountPage.java + - LoginPage.java + - MenuBenevole.java + - SoumettreDemande.java + - Validateur.java + +- `src/test/java/` : Tests unitaires et d'intégration + - Tests correspondants aux classes principales + - Tests de validation + - Tests de base de données + +## Exécution de l'Application + +### Dans Eclipse +1. Localisez la classe principale +2. Clic droit > Run As > Java Application + +### En ligne de commande (Linux INSA) +```bash +# Compiler et créer le package +mvn package + +# Exécuter l'application +java -jar target/nom-du-jar.jar +``` + +## Notes Importantes +- Assurez-vous que la base de données est correctement configurée avant l'exécution +- Tous les tests doivent passer avant de soumettre des modifications +- Utilisez la branche 'master' pour le développement principal + +## Tests +L'application inclut plusieurs types de tests : +- Tests unitaires pour les composants individuels +- Tests d'intégration pour les flux complets +- Tests de validation pour les formulaires +- Tests de la base de données + +Pour exécuter des tests spécifiques : +```bash +mvn test -Dtest=NomDuTest +``` \ No newline at end of file