add maven test v1

This commit is contained in:
Abderrahman El-Ouali 2024-11-04 01:12:07 +01:00
parent bd2ccae52d
commit e5fad75b1c
13 changed files with 265 additions and 42 deletions

View file

@ -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-1.7">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
@ -36,5 +36,22 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</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"/>
</classpath>

View file

@ -20,4 +20,15 @@
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</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>

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

View file

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

View file

@ -37,7 +37,7 @@ public class SoumettreDemande extends JFrame {
retourButton = new JButton("Retour à l'accueil"); // Création du bouton retour
// Tableau pour afficher les anciennes demandes
tableModel = new DefaultTableModel(new String[]{"ID", "Description", "Statut"}, 0);
tableModel = new DefaultTableModel(new String[]{"ID", "Description", "Statut", "Bénévole en charge"}, 0);
demandesTable = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(demandesTable);
@ -106,7 +106,13 @@ public class SoumettreDemande extends JFrame {
// Méthode pour charger les anciennes demandes
private void loadAnciennesDemandes() {
try (Connection connection = DatabaseConnection.getConnection()) {
String sql = "SELECT id, description, statut FROM demandes_aide WHERE utilisateur_id = ?";
String sql =
"SELECT demandes_aide.id, demandes_aide.description, demandes_aide.statut, utilisateur.nom " +
"FROM demandes_aide " +
"LEFT JOIN utilisateur " +
"ON demandes_aide.benevole_id = utilisateur.id " +
"AND utilisateur.role = 'benevole' " +
"WHERE demandes_aide.utilisateur_id = ? ;";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, utilisateurId);
ResultSet resultSet = statement.executeQuery();
@ -116,16 +122,18 @@ public class SoumettreDemande extends JFrame {
int id = resultSet.getInt("id");
String description = resultSet.getString("description");
String statut = resultSet.getString("statut");
String nom = resultSet.getString("nom");
tableModel.addRow(new Object[]{id, description, statut});
tableModel.addRow(new Object[]{id, description, statut, nom});
}
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this, "Erreur lors du chargement des demandes.");
}
}
public static void main(String[] args) {
SoumettreDemande soumettreDemande = new SoumettreDemande(1); // Test avec un utilisateur par défaut
SoumettreDemande soumettreDemande = new SoumettreDemande(4); // Test avec un utilisateur par défaut
soumettreDemande.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)
}
}