Server-Api OK
This commit is contained in:
@@ -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)));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user