merge de master et sprint2 04/11

This commit is contained in:
skferrei 2024-11-04 17:38:16 +01:00
commit 383cd0c865
13 changed files with 253 additions and 110 deletions

View file

@ -26,7 +26,7 @@
<attribute name="optional" value="true"/> <attribute name="optional" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
@ -36,5 +36,22 @@
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" path="target/generated-sources/annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="ignore_optional_problems" value="true"/>
<attribute name="m2e-apt" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/> <classpathentry kind="output" path="target/classes"/>
</classpath> </classpath>

View file

@ -20,4 +20,15 @@
<nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature> <nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures> </natures>
<filteredResources>
<filter>
<id>1730423778330</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription> </projectDescription>

View file

@ -0,0 +1,2 @@
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=false

View file

@ -1,8 +1,9 @@
eclipse.preferences.version=1 eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore 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.release=disabled
org.eclipse.jdt.core.compiler.source=1.7 org.eclipse.jdt.core.compiler.source=1.8

View file

@ -11,9 +11,9 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
public class LoginPage extends JFrame { public class LoginPage extends JFrame {
private JTextField emailField; public JTextField emailField;
private JButton loginButton; public JButton loginButton;
private JButton createAccountButton; public JButton createAccountButton;
public LoginPage() { public LoginPage() {
setTitle("Page de connexion"); setTitle("Page de connexion");

View file

@ -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);
}
}

View file

@ -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
}

View file

@ -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());
}
}

View file

@ -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());
}
}

View file

@ -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
}
}

View file

@ -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());
}
}

View file

@ -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
}
}

View file

@ -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 la connexion échoue (par exemple, mauvaise configuration)
}
}