Server-Api OK

This commit is contained in:
DahoudG
2025-09-10 22:02:16 +00:00
parent b2a23bdf89
commit bf79fa4e04
36 changed files with 8934 additions and 0 deletions

View File

@@ -0,0 +1,223 @@
package dev.lions.unionflow.server.entity;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.time.LocalDate;
import java.time.LocalDateTime;
import static org.junit.jupiter.api.Assertions.*;
/**
* Tests unitaires pour valider les fonctionnalités Lombok de l'entité Membre
*/
@DisplayName("Tests Lombok - Entité Membre")
class MembreLombokTest {
private String numeroMembre;
private String prenom;
private String nom;
private String email;
private String telephone;
private LocalDate dateNaissance;
private LocalDate dateAdhesion;
@BeforeEach
void setUp() {
numeroMembre = "UF2025-ABC123";
prenom = "Jean";
nom = "Dupont";
email = "jean.dupont@example.com";
telephone = "+33123456789";
dateNaissance = LocalDate.of(1990, 5, 15);
dateAdhesion = LocalDate.of(2025, 1, 1);
}
@Test
@DisplayName("Test des annotations Lombok - Builder pattern")
void testLombokBuilder() {
// Given & When
Membre membre = Membre.builder()
.numeroMembre(numeroMembre)
.prenom(prenom)
.nom(nom)
.email(email)
.telephone(telephone)
.dateNaissance(dateNaissance)
.dateAdhesion(dateAdhesion)
.actif(true)
.build();
// Then
assertNotNull(membre);
assertEquals(numeroMembre, membre.getNumeroMembre());
assertEquals(prenom, membre.getPrenom());
assertEquals(nom, membre.getNom());
assertEquals(email, membre.getEmail());
assertEquals(telephone, membre.getTelephone());
assertEquals(dateNaissance, membre.getDateNaissance());
assertEquals(dateAdhesion, membre.getDateAdhesion());
assertTrue(membre.getActif());
assertNotNull(membre.getDateCreation());
}
@Test
@DisplayName("Test des annotations Lombok - Constructeur sans arguments")
void testLombokNoArgsConstructor() {
// Given & When
Membre membre = new Membre();
// Then
assertNotNull(membre);
assertNull(membre.getNumeroMembre());
assertNull(membre.getPrenom());
assertNull(membre.getNom());
assertNull(membre.getEmail());
assertNull(membre.getTelephone());
assertNull(membre.getDateNaissance());
assertNull(membre.getDateAdhesion());
assertTrue(membre.getActif()); // Valeur par défaut
assertNotNull(membre.getDateCreation()); // Valeur par défaut
}
@Test
@DisplayName("Test des annotations Lombok - Constructeur avec tous les arguments")
void testLombokAllArgsConstructor() {
// Given
LocalDateTime dateCreation = LocalDateTime.now();
LocalDateTime dateModification = LocalDateTime.now();
// When
Membre membre = new Membre(numeroMembre, prenom, nom, email, telephone,
dateNaissance, dateAdhesion, true, dateCreation, dateModification);
// Then
assertNotNull(membre);
assertEquals(numeroMembre, membre.getNumeroMembre());
assertEquals(prenom, membre.getPrenom());
assertEquals(nom, membre.getNom());
assertEquals(email, membre.getEmail());
assertEquals(telephone, membre.getTelephone());
assertEquals(dateNaissance, membre.getDateNaissance());
assertEquals(dateAdhesion, membre.getDateAdhesion());
assertTrue(membre.getActif());
assertEquals(dateCreation, membre.getDateCreation());
assertEquals(dateModification, membre.getDateModification());
}
@Test
@DisplayName("Test des annotations Lombok - Getters et Setters")
void testLombokGettersSetters() {
// Given
Membre membre = new Membre();
// When & Then - Test des setters
membre.setNumeroMembre(numeroMembre);
membre.setPrenom(prenom);
membre.setNom(nom);
membre.setEmail(email);
membre.setTelephone(telephone);
membre.setDateNaissance(dateNaissance);
membre.setDateAdhesion(dateAdhesion);
membre.setActif(false);
// Test des getters
assertEquals(numeroMembre, membre.getNumeroMembre());
assertEquals(prenom, membre.getPrenom());
assertEquals(nom, membre.getNom());
assertEquals(email, membre.getEmail());
assertEquals(telephone, membre.getTelephone());
assertEquals(dateNaissance, membre.getDateNaissance());
assertEquals(dateAdhesion, membre.getDateAdhesion());
assertFalse(membre.getActif());
}
@Test
@DisplayName("Test des annotations Lombok - equals et hashCode")
void testLombokEqualsHashCode() {
// Given
Membre membre1 = Membre.builder()
.numeroMembre(numeroMembre)
.prenom(prenom)
.nom(nom)
.email(email)
.build();
Membre membre2 = Membre.builder()
.numeroMembre(numeroMembre)
.prenom(prenom)
.nom(nom)
.email(email)
.build();
Membre membre3 = Membre.builder()
.numeroMembre("DIFFERENT")
.prenom(prenom)
.nom(nom)
.email(email)
.build();
// Then
assertEquals(membre1, membre2);
assertEquals(membre1.hashCode(), membre2.hashCode());
assertNotEquals(membre1, membre3);
assertNotEquals(membre1.hashCode(), membre3.hashCode());
}
@Test
@DisplayName("Test des annotations Lombok - toString")
void testLombokToString() {
// Given
Membre membre = Membre.builder()
.numeroMembre(numeroMembre)
.prenom(prenom)
.nom(nom)
.email(email)
.build();
// When
String toStringResult = membre.toString();
// Then
assertNotNull(toStringResult);
assertTrue(toStringResult.contains("Membre"));
assertTrue(toStringResult.contains(numeroMembre));
assertTrue(toStringResult.contains(prenom));
assertTrue(toStringResult.contains(nom));
assertTrue(toStringResult.contains(email));
}
@Test
@DisplayName("Test des méthodes métier personnalisées")
void testMethodesMetier() {
// Given
Membre membre = Membre.builder()
.prenom(prenom)
.nom(nom)
.dateNaissance(LocalDate.of(1990, 5, 15)) // 34 ans
.build();
// When & Then
assertEquals("Jean Dupont", membre.getNomComplet());
assertTrue(membre.isMajeur());
assertEquals(34, membre.getAge());
}
@Test
@DisplayName("Test des valeurs par défaut avec @Builder.Default")
void testBuilderDefaults() {
// Given & When
Membre membre = Membre.builder()
.numeroMembre(numeroMembre)
.prenom(prenom)
.nom(nom)
.email(email)
.build();
// Then
assertTrue(membre.getActif()); // Valeur par défaut
assertNotNull(membre.getDateCreation()); // Valeur par défaut
assertTrue(membre.getDateCreation().isBefore(LocalDateTime.now().plusSeconds(1)));
}
}