Refactoring - Version OK
This commit is contained in:
@@ -6,6 +6,8 @@ import dev.lions.unionflow.server.api.dto.membre.MembreSearchCriteria;
|
||||
import dev.lions.unionflow.server.api.dto.membre.MembreSearchResultDTO;
|
||||
import dev.lions.unionflow.server.entity.Membre;
|
||||
import dev.lions.unionflow.server.entity.Organisation;
|
||||
import dev.lions.unionflow.server.repository.MembreRepository;
|
||||
import dev.lions.unionflow.server.repository.OrganisationRepository;
|
||||
import io.quarkus.panache.common.Page;
|
||||
import io.quarkus.panache.common.Sort;
|
||||
import io.quarkus.test.junit.QuarkusTest;
|
||||
@@ -28,106 +30,86 @@ import org.junit.jupiter.api.*;
|
||||
class MembreServiceAdvancedSearchTest {
|
||||
|
||||
@Inject MembreService membreService;
|
||||
@Inject MembreRepository membreRepository;
|
||||
@Inject OrganisationRepository organisationRepository;
|
||||
|
||||
private static Organisation testOrganisation;
|
||||
private static List<Membre> testMembres;
|
||||
private Organisation testOrganisation;
|
||||
private List<Membre> testMembres;
|
||||
|
||||
@BeforeAll
|
||||
@BeforeEach
|
||||
@Transactional
|
||||
static void setupTestData() {
|
||||
// Créer une organisation de test
|
||||
void setupTestData() {
|
||||
// Créer et persister une organisation de test
|
||||
testOrganisation =
|
||||
Organisation.builder()
|
||||
.nom("Organisation Test")
|
||||
.typeOrganisation("ASSOCIATION")
|
||||
.statut("ACTIF")
|
||||
.actif(true)
|
||||
.dateCreation(LocalDateTime.now())
|
||||
.build();
|
||||
testOrganisation.persist();
|
||||
testOrganisation.setDateCreation(LocalDateTime.now());
|
||||
testOrganisation.setActif(true);
|
||||
organisationRepository.persist(testOrganisation);
|
||||
|
||||
// Créer des membres de test avec différents profils
|
||||
testMembres =
|
||||
List.of(
|
||||
// Membre actif jeune
|
||||
Membre.builder()
|
||||
.numeroMembre("UF-2025-TEST001")
|
||||
.nom("Dupont")
|
||||
.prenom("Marie")
|
||||
.email("marie.dupont@test.com")
|
||||
.telephone("+221701234567")
|
||||
.dateNaissance(LocalDate.of(1995, 5, 15))
|
||||
.dateAdhesion(LocalDate.of(2023, 1, 15))
|
||||
.roles("MEMBRE,SECRETAIRE")
|
||||
.actif(true)
|
||||
.organisation(testOrganisation)
|
||||
.dateCreation(LocalDateTime.now())
|
||||
.build(),
|
||||
createMembre("UF-2025-TEST001", "Dupont", "Marie", "marie.dupont@test.com",
|
||||
"+221701234567", LocalDate.of(1995, 5, 15), LocalDate.of(2023, 1, 15),
|
||||
"MEMBRE,SECRETAIRE", true),
|
||||
|
||||
// Membre actif âgé
|
||||
Membre.builder()
|
||||
.numeroMembre("UF-2025-TEST002")
|
||||
.nom("Martin")
|
||||
.prenom("Jean")
|
||||
.email("jean.martin@test.com")
|
||||
.telephone("+221701234568")
|
||||
.dateNaissance(LocalDate.of(1970, 8, 20))
|
||||
.dateAdhesion(LocalDate.of(2020, 3, 10))
|
||||
.roles("MEMBRE,PRESIDENT")
|
||||
.actif(true)
|
||||
.organisation(testOrganisation)
|
||||
.dateCreation(LocalDateTime.now())
|
||||
.build(),
|
||||
createMembre("UF-2025-TEST002", "Martin", "Jean", "jean.martin@test.com",
|
||||
"+221701234568", LocalDate.of(1970, 8, 20), LocalDate.of(2020, 3, 10),
|
||||
"MEMBRE,PRESIDENT", true),
|
||||
|
||||
// Membre inactif
|
||||
Membre.builder()
|
||||
.numeroMembre("UF-2025-TEST003")
|
||||
.nom("Diallo")
|
||||
.prenom("Fatou")
|
||||
.email("fatou.diallo@test.com")
|
||||
.telephone("+221701234569")
|
||||
.dateNaissance(LocalDate.of(1985, 12, 3))
|
||||
.dateAdhesion(LocalDate.of(2021, 6, 5))
|
||||
.roles("MEMBRE")
|
||||
.actif(false)
|
||||
.organisation(testOrganisation)
|
||||
.dateCreation(LocalDateTime.now())
|
||||
.build(),
|
||||
createMembre("UF-2025-TEST003", "Diallo", "Fatou", "fatou.diallo@test.com",
|
||||
"+221701234569", LocalDate.of(1985, 12, 3), LocalDate.of(2021, 6, 5),
|
||||
"MEMBRE", false),
|
||||
|
||||
// Membre avec email spécifique
|
||||
Membre.builder()
|
||||
.numeroMembre("UF-2025-TEST004")
|
||||
.nom("Sow")
|
||||
.prenom("Amadou")
|
||||
.email("amadou.sow@unionflow.com")
|
||||
.telephone("+221701234570")
|
||||
.dateNaissance(LocalDate.of(1988, 3, 12))
|
||||
.dateAdhesion(LocalDate.of(2022, 9, 20))
|
||||
.roles("MEMBRE,TRESORIER")
|
||||
.actif(true)
|
||||
.organisation(testOrganisation)
|
||||
.dateCreation(LocalDateTime.now())
|
||||
.build());
|
||||
createMembre("UF-2025-TEST004", "Sow", "Amadou", "amadou.sow@unionflow.com",
|
||||
"+221701234570", LocalDate.of(1988, 3, 12), LocalDate.of(2022, 9, 20),
|
||||
"MEMBRE,TRESORIER", true));
|
||||
|
||||
// Persister tous les membres
|
||||
testMembres.forEach(membre -> membre.persist());
|
||||
testMembres.forEach(membre -> membreRepository.persist(membre));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
private Membre createMembre(String numero, String nom, String prenom, String email,
|
||||
String telephone, LocalDate dateNaissance, LocalDate dateAdhesion,
|
||||
String roles, boolean actif) {
|
||||
Membre membre = Membre.builder()
|
||||
.numeroMembre(numero)
|
||||
.nom(nom)
|
||||
.prenom(prenom)
|
||||
.email(email)
|
||||
.telephone(telephone)
|
||||
.dateNaissance(dateNaissance)
|
||||
.dateAdhesion(dateAdhesion)
|
||||
.roles(roles)
|
||||
.organisation(testOrganisation)
|
||||
.build();
|
||||
membre.setDateCreation(LocalDateTime.now());
|
||||
membre.setActif(actif);
|
||||
return membre;
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
@Transactional
|
||||
static void cleanupTestData() {
|
||||
void cleanupTestData() {
|
||||
// Nettoyer les données de test
|
||||
if (testMembres != null) {
|
||||
testMembres.forEach(
|
||||
membre -> {
|
||||
if (membre.isPersistent()) {
|
||||
membre.delete();
|
||||
}
|
||||
});
|
||||
testMembres.forEach(membre -> {
|
||||
if (membre.getId() != null) {
|
||||
membreRepository.delete(membre);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (testOrganisation != null && testOrganisation.isPersistent()) {
|
||||
testOrganisation.delete();
|
||||
if (testOrganisation != null && testOrganisation.getId() != null) {
|
||||
organisationRepository.delete(testOrganisation);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user