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 cf117ab..f8dcc36 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/MainMenu.java b/src/main/java/controller/MainMenu.java deleted file mode 100644 index d678a25..0000000 --- a/src/main/java/controller/MainMenu.java +++ /dev/null @@ -1,72 +0,0 @@ -package controller; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -public class MainMenu extends JFrame { - private JButton ajouterUtilisateurButton; - private JButton soumettreDemandeButton; - private JButton consulterDemandeButton; - - public MainMenu() { - setTitle("Menu Principal"); - setSize(400, 300); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setLocationRelativeTo(null); - setLayout(new GridBagLayout()); - - GridBagConstraints gbc = new GridBagConstraints(); - gbc.insets = new Insets(10, 10, 10, 10); - gbc.fill = GridBagConstraints.HORIZONTAL; - - ajouterUtilisateurButton = new JButton("Ajouter un utilisateur"); - gbc.gridx = 0; - gbc.gridy = 0; - add(ajouterUtilisateurButton, gbc); - - soumettreDemandeButton = new JButton("Soumettre une demande d'aide"); - gbc.gridx = 0; - gbc.gridy = 1; - add(soumettreDemandeButton, gbc); - - consulterDemandeButton = new JButton("Consulter les demandes d'aide acceptées"); - gbc.gridx = 0; - gbc.gridy = 2; - add(consulterDemandeButton, gbc); - - ajouterUtilisateurButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - AjoutUtilisateur ajoutUtilisateur = new AjoutUtilisateur(); - ajoutUtilisateur.setVisible(true); - dispose(); - } - }); - - soumettreDemandeButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - SoumettreDemande soumettreDemande = new SoumettreDemande(1); // Test avec un utilisateur par défaut - soumettreDemande.setVisible(true); - dispose(); - } - }); - - consulterDemandeButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - BenevoleDemandesPage benevoleDemandesPage = new BenevoleDemandesPage(1); // Test avec un utilisateur par défaut - benevoleDemandesPage.setVisible(true); - dispose(); - } - }); - - } - - public static void main(String[] args) { - MainMenu menu = new MainMenu(); - menu.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) + + } +}