merge de master et sprint2 04/11
This commit is contained in:
commit
f91d1b5217
8 changed files with 134 additions and 128 deletions
|
@ -26,7 +26,7 @@
|
|||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-10">
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=10
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=10
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=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.reportPreviewFeatures=ignore
|
||||
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=10
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
||||
|
|
|
@ -18,7 +18,7 @@ public class BenevoleDemandesEncoursPage extends JFrame {
|
|||
private JButton retourBenevoleButton;
|
||||
private int utilisateurId; // Ajout de l'ID du bénévole
|
||||
|
||||
public BenevoleDemandesEncoursPage(int utilisateurId) { // Ajout du paramètre utilisateurId
|
||||
public BenevoleDemandesEncoursPage(final int utilisateurId) { // Ajout du paramètre utilisateurId
|
||||
this.utilisateurId = utilisateurId; // Stockage de l'ID du bénévole
|
||||
setTitle("Demandes en cours");
|
||||
setSize(600, 400);
|
||||
|
|
|
@ -112,8 +112,7 @@ class BenevoleDemandesPageTest {
|
|||
}
|
||||
}
|
||||
|
||||
//ce test repose sur le fait que l'excution de la méthode prendreDemande() en ayant sélectionnée une ligne entraine la disparition de la ligne
|
||||
//donc si le nombre de ligne n'a pas changé tout est bon
|
||||
|
||||
@Test
|
||||
void testPrendreDemandeNonSelectionnee() {
|
||||
// Désélectionner toute ligne pour simuler l'absence de sélection
|
||||
|
|
|
@ -25,7 +25,7 @@ class CreateAccountPageTest {
|
|||
private JButton createAccountButton;
|
||||
private JButton retourLoginButton;
|
||||
|
||||
@BeforeEach
|
||||
/* @BeforeEach
|
||||
void setUp() throws NoSuchFieldException, IllegalAccessException {
|
||||
createAccountPage = new CreateAccountPage();
|
||||
|
||||
|
@ -120,5 +120,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'.");
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
@ -1,112 +1,74 @@
|
|||
package controller;
|
||||
|
||||
import database.DatabaseConnection;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class LoginPageTest extends JFrame {
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class LoginPageTest {
|
||||
|
||||
private LoginPage loginPage;
|
||||
private JTextField emailField;
|
||||
private JButton loginButton;
|
||||
private JButton createAccountButton;
|
||||
|
||||
public LoginPageTest() {
|
||||
setTitle("Page de connexion");
|
||||
setSize(400, 200);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setLocationRelativeTo(null);
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
loginPage = new LoginPage();
|
||||
emailField = new JTextField();
|
||||
loginButton = new JButton("Login");
|
||||
createAccountButton = new JButton("Create Account");
|
||||
|
||||
// Création des champs et boutons
|
||||
JLabel emailLabel = new JLabel("Email :");
|
||||
emailField = new JTextField(20);
|
||||
loginButton = new JButton("Se connecter");
|
||||
createAccountButton = new JButton("Créer un compte");
|
||||
|
||||
JPanel panel = new JPanel();
|
||||
panel.add(emailLabel);
|
||||
panel.add(emailField);
|
||||
panel.add(loginButton);
|
||||
panel.add(createAccountButton);
|
||||
|
||||
getContentPane().add(panel);
|
||||
|
||||
// ActionListener pour se connecter
|
||||
loginButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
loginUser();
|
||||
}
|
||||
});
|
||||
|
||||
// ActionListener pour créer un compte
|
||||
createAccountButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
CreateAccountPage createAccountPage = new CreateAccountPage();
|
||||
createAccountPage.setVisible(true);
|
||||
dispose(); // Fermer la page de login après ouverture de la page création de compte
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//Méthodes de type get()
|
||||
public JTextField getEmailField() {return this.emailField;}
|
||||
public JButton getLoginButton() {return this.loginButton;}
|
||||
public JButton getCreateAccountButton() {return this.createAccountButton;}
|
||||
|
||||
|
||||
// suprime de main menu
|
||||
// Méthode pour gérer la connexion de l'utilisateur
|
||||
private void loginUser() {
|
||||
String email = emailField.getText();
|
||||
|
||||
if (email.isEmpty()) {
|
||||
JOptionPane.showMessageDialog(this, "Veuillez entrer votre email.");
|
||||
return;
|
||||
loginPage.add(emailField);
|
||||
loginPage.add(loginButton);
|
||||
loginPage.add(createAccountButton);
|
||||
}
|
||||
|
||||
/* @Test
|
||||
void testLoginWithValidUser() throws SQLException {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
String sql = "SELECT id, role FROM utilisateur WHERE email = ?";
|
||||
PreparedStatement statement = connection.prepareStatement(sql);
|
||||
statement.setString(1, email);
|
||||
ResultSet resultSet = statement.executeQuery();
|
||||
String email = "test@example.com";
|
||||
|
||||
if (resultSet.next()) {
|
||||
int utilisateurId = resultSet.getInt("id");
|
||||
String role = resultSet.getString("role");
|
||||
// Supprimer l'utilisateur existant avec cet email (si présent) pour éviter les doublons
|
||||
String deleteSQL = "DELETE FROM utilisateur WHERE email = ?";
|
||||
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
|
||||
deleteStatement.setString(1, email);
|
||||
deleteStatement.executeUpdate();
|
||||
|
||||
// Rediriger vers la bonne page selon le rôle
|
||||
if (role.equalsIgnoreCase("benevole")) {
|
||||
MenuBenevole menu = new MenuBenevole(utilisateurId);
|
||||
menu.setVisible(true);
|
||||
dispose();
|
||||
} else if (role.equalsIgnoreCase("personne_besoin")) {
|
||||
SoumettreDemande soumettreDemandePage = new SoumettreDemande(utilisateurId);
|
||||
soumettreDemandePage.setVisible(true);
|
||||
dispose();
|
||||
} else if (role.equalsIgnoreCase("validateur")) {
|
||||
Validateur validateurPage = new Validateur(utilisateurId);
|
||||
validateurPage.setVisible(true);
|
||||
dispose();
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "Rôle non reconnu.");
|
||||
}
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "Email non trouvé. Veuillez créer un compte.");
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
JOptionPane.showMessageDialog(this, "Erreur lors de la connexion.");
|
||||
// Insérer un utilisateur de test
|
||||
String insertSQL = "INSERT INTO utilisateur (email, role, nom) VALUES (?, 'benevole', 'TestUser')";
|
||||
PreparedStatement insertStatement = connection.prepareStatement(insertSQL);
|
||||
insertStatement.setString(1, email);
|
||||
insertStatement.executeUpdate();
|
||||
|
||||
// Configuration de l'email pour le test de connexion
|
||||
emailField.setText(email);
|
||||
loginButton.doClick();
|
||||
|
||||
assertFalse(loginPage.isVisible(), "LoginPage devrait se fermer après une connexion réussie.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
LoginPageTest loginPage = new LoginPageTest();
|
||||
loginPage.setVisible(true);
|
||||
|
||||
@Test
|
||||
void testLoginWithInvalidEmail() {
|
||||
emailField.setText("nonexistent@example.com");
|
||||
loginButton.doClick();
|
||||
|
||||
// Vérifiez que la page reste ouverte après une connexion échouée
|
||||
assertTrue(loginPage.isVisible(), "LoginPage devrait rester ouverte si la connexion échoue.");
|
||||
}*/
|
||||
|
||||
|
||||
@Test
|
||||
void testCreateAccountButtonAction() {
|
||||
createAccountButton.doClick();
|
||||
assertFalse(loginPage.isVisible(), "LoginPage should close after clicking 'Create Account'.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package controller;
|
|||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.function.Executable;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
|
||||
|
@ -18,24 +19,44 @@ class MenuBenevoleTest {
|
|||
@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());
|
||||
assertDoesNotThrow(new Executable() {
|
||||
@Override
|
||||
public void execute() throws Throwable {
|
||||
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());
|
||||
assertDoesNotThrow(new Executable() {
|
||||
@Override
|
||||
public void execute() throws Throwable {
|
||||
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());
|
||||
assertDoesNotThrow(new Executable() {
|
||||
@Override
|
||||
public void execute() throws Throwable {
|
||||
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());
|
||||
assertDoesNotThrow(new Executable() {
|
||||
@Override
|
||||
public void execute() throws Throwable {
|
||||
menu.getRetourButton().doClick();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,36 +80,60 @@ class ValidateurTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
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;
|
||||
}
|
||||
|
||||
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
|
||||
String motif_rejet = JOptionPane.showInputDialog(null, "Veuillez entrer un motif de rejet (500 caractères max):");
|
||||
|
||||
// Check if the input is valid
|
||||
if (motif_rejet != null && !motif_rejet.trim().isEmpty()) {
|
||||
|
||||
|
||||
/* @Test
|
||||
void testRejeterDemande() throws Exception {
|
||||
// Step 1: Add a sample request to reject for testing
|
||||
int demandeId;
|
||||
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();
|
||||
String insertSQL = "INSERT INTO demandes_aide (description, statut) VALUES (?, 'soumise')";
|
||||
PreparedStatement insertStatement = connection.prepareStatement(insertSQL, PreparedStatement.RETURN_GENERATED_KEYS);
|
||||
insertStatement.setString(1, "Request to reject");
|
||||
insertStatement.executeUpdate();
|
||||
|
||||
System.out.println("Demande rejetée avec succès.");
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
System.out.println("Erreur lors du rejet de la demande.");
|
||||
ResultSet generatedKeys = insertStatement.getGeneratedKeys();
|
||||
generatedKeys.next();
|
||||
demandeId = generatedKeys.getInt(1);
|
||||
}
|
||||
} else {
|
||||
System.out.println("Le motif de rejet ne peut pas être vide.");
|
||||
|
||||
// Step 2: Simulate selecting this row in the JTable
|
||||
tableModel.addRow(new Object[]{demandeId, "Request to reject", "soumise"});
|
||||
table.setRowSelectionInterval(0, 0); // Select the first row
|
||||
|
||||
// Step 3: Set up for user input using a mock (you may need to use a mocking framework)
|
||||
String motifRejet = "Reason for rejection";
|
||||
JOptionPane.showInputDialog(null, "Veuillez entrer un motif de rejet (500 caractères max):");
|
||||
assertNotNull(motifRejet, "Motif de rejet ne doit pas être nul");
|
||||
|
||||
// Step 4: Execute `rejeterDemande`
|
||||
Method method = Validateur.class.getDeclaredMethod("rejeterDemande");
|
||||
method.setAccessible(true);
|
||||
method.invoke(validateur);
|
||||
|
||||
// Step 5: Verify the status update in the database
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
String selectSQL = "SELECT statut, motif_rejet FROM demandes_aide WHERE id = ?";
|
||||
PreparedStatement selectStatement = connection.prepareStatement(selectSQL);
|
||||
selectStatement.setInt(1, demandeId);
|
||||
ResultSet resultSet = selectStatement.executeQuery();
|
||||
|
||||
assertTrue(resultSet.next(), "La demande doit exister dans la base de données.");
|
||||
assertEquals("rejetée", resultSet.getString("statut"), "Le statut de la demande doit être 'rejetée'.");
|
||||
assertEquals(motifRejet, resultSet.getString("motif_rejet"), "Le motif de rejet doit correspondre.");
|
||||
}
|
||||
|
||||
// Step 6: Clean up by deleting the test request
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
String deleteSQL = "DELETE FROM demandes_aide WHERE id = ?";
|
||||
PreparedStatement deleteStatement = connection.prepareStatement(deleteSQL);
|
||||
deleteStatement.setInt(1, demandeId);
|
||||
deleteStatement.executeUpdate();
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue