fix(tests): replace record-style accessors with JavaBean getters in server-api tests

All response DTOs were converted from records to @Data classes for JSF/EL
compatibility. Updated 8 test files to use getters instead of record
component accessors. Also added isActif() method to MembreSummaryResponse
(Boolean wrapper needs explicit isActif() since Lombok generates getActif()).
Fixed ConversationResponseTest builder calls: .isMuted() → .muted(),
and MessageResponseTest builder calls: .isEdited() → .edited(), .isDeleted() → .deleted().
This commit is contained in:
dahoud
2026-04-11 02:21:08 +00:00
parent 43678c8ae9
commit ae7ada6b91
9 changed files with 217 additions and 212 deletions

View File

@@ -95,6 +95,11 @@ public class MembreSummaryResponse {
return "secondary";
}
/** Retourne true si le membre est actif (null traité comme false). */
public boolean isActif() {
return actif != null && actif;
}
/** Icône PrimeIcons calculée depuis {@link #getRoles()}. */
public String getTypeIcon() {
if (roles == null || roles.isEmpty()) return "pi pi-user";

View File

@@ -40,28 +40,28 @@ class ConversationResponseTest {
.organisationId(orgId)
.lastMessage(lastMessage)
.unreadCount(5)
.isMuted(true)
.isPinned(false)
.isArchived(false)
.muted(true)
.pinned(false)
.archived(false)
.createdAt(createdAt)
.updatedAt(updatedAt)
.avatarUrl("https://example.com/avatar.jpg")
.build();
assertThat(response.id()).isEqualTo(id);
assertThat(response.name()).isEqualTo("Conversation Test");
assertThat(response.description()).isEqualTo("Description test");
assertThat(response.type()).isEqualTo(ConversationType.GROUP);
assertThat(response.participantIds()).containsExactly(participant1, participant2);
assertThat(response.organisationId()).isEqualTo(orgId);
assertThat(response.lastMessage()).isEqualTo(lastMessage);
assertThat(response.unreadCount()).isEqualTo(5);
assertThat(response.getId()).isEqualTo(id);
assertThat(response.getName()).isEqualTo("Conversation Test");
assertThat(response.getDescription()).isEqualTo("Description test");
assertThat(response.getType()).isEqualTo(ConversationType.GROUP);
assertThat(response.getParticipantIds()).containsExactly(participant1, participant2);
assertThat(response.getOrganisationId()).isEqualTo(orgId);
assertThat(response.getLastMessage()).isEqualTo(lastMessage);
assertThat(response.getUnreadCount()).isEqualTo(5);
assertThat(response.isMuted()).isTrue();
assertThat(response.isPinned()).isFalse();
assertThat(response.isArchived()).isFalse();
assertThat(response.createdAt()).isEqualTo(createdAt);
assertThat(response.updatedAt()).isEqualTo(updatedAt);
assertThat(response.avatarUrl()).isEqualTo("https://example.com/avatar.jpg");
assertThat(response.getCreatedAt()).isEqualTo(createdAt);
assertThat(response.getUpdatedAt()).isEqualTo(updatedAt);
assertThat(response.getAvatarUrl()).isEqualTo("https://example.com/avatar.jpg");
}
@Test
@@ -69,20 +69,20 @@ class ConversationResponseTest {
void testBuilderWithNulls() {
ConversationResponse response = ConversationResponse.builder().build();
assertThat(response.id()).isNull();
assertThat(response.name()).isNull();
assertThat(response.description()).isNull();
assertThat(response.type()).isNull();
assertThat(response.participantIds()).isNull();
assertThat(response.organisationId()).isNull();
assertThat(response.lastMessage()).isNull();
assertThat(response.unreadCount()).isEqualTo(0);
assertThat(response.getId()).isNull();
assertThat(response.getName()).isNull();
assertThat(response.getDescription()).isNull();
assertThat(response.getType()).isNull();
assertThat(response.getParticipantIds()).isNull();
assertThat(response.getOrganisationId()).isNull();
assertThat(response.getLastMessage()).isNull();
assertThat(response.getUnreadCount()).isEqualTo(0);
assertThat(response.isMuted()).isFalse();
assertThat(response.isPinned()).isFalse();
assertThat(response.isArchived()).isFalse();
assertThat(response.createdAt()).isNull();
assertThat(response.updatedAt()).isNull();
assertThat(response.avatarUrl()).isNull();
assertThat(response.getCreatedAt()).isNull();
assertThat(response.getUpdatedAt()).isNull();
assertThat(response.getAvatarUrl()).isNull();
}
@Test

View File

@@ -51,28 +51,28 @@ class MessageResponseTest {
.createdAt(createdAt)
.readAt(readAt)
.attachments(List.of("file1.pdf", "file2.png"))
.isEdited(true)
.edited(true)
.editedAt(editedAt)
.isDeleted(false)
.deleted(false)
.build();
assertThat(response.id()).isEqualTo(id);
assertThat(response.conversationId()).isEqualTo(conversationId);
assertThat(response.senderId()).isEqualTo(senderId);
assertThat(response.senderName()).isEqualTo("John Doe");
assertThat(response.senderAvatar()).isEqualTo("https://example.com/avatar.jpg");
assertThat(response.content()).isEqualTo("Message content");
assertThat(response.type()).isEqualTo(MessageType.INDIVIDUAL);
assertThat(response.status()).isEqualTo(MessageStatus.READ);
assertThat(response.priority()).isEqualTo(MessagePriority.HIGH);
assertThat(response.recipientIds()).containsExactly(recipient1, recipient2);
assertThat(response.recipientRoles()).containsExactly("ADMIN", "USER");
assertThat(response.organisationId()).isEqualTo(orgId);
assertThat(response.createdAt()).isEqualTo(createdAt);
assertThat(response.readAt()).isEqualTo(readAt);
assertThat(response.attachments()).containsExactly("file1.pdf", "file2.png");
assertThat(response.getId()).isEqualTo(id);
assertThat(response.getConversationId()).isEqualTo(conversationId);
assertThat(response.getSenderId()).isEqualTo(senderId);
assertThat(response.getSenderName()).isEqualTo("John Doe");
assertThat(response.getSenderAvatar()).isEqualTo("https://example.com/avatar.jpg");
assertThat(response.getContent()).isEqualTo("Message content");
assertThat(response.getType()).isEqualTo(MessageType.INDIVIDUAL);
assertThat(response.getStatus()).isEqualTo(MessageStatus.READ);
assertThat(response.getPriority()).isEqualTo(MessagePriority.HIGH);
assertThat(response.getRecipientIds()).containsExactly(recipient1, recipient2);
assertThat(response.getRecipientRoles()).containsExactly("ADMIN", "USER");
assertThat(response.getOrganisationId()).isEqualTo(orgId);
assertThat(response.getCreatedAt()).isEqualTo(createdAt);
assertThat(response.getReadAt()).isEqualTo(readAt);
assertThat(response.getAttachments()).containsExactly("file1.pdf", "file2.png");
assertThat(response.isEdited()).isTrue();
assertThat(response.editedAt()).isEqualTo(editedAt);
assertThat(response.getEditedAt()).isEqualTo(editedAt);
assertThat(response.isDeleted()).isFalse();
}
@@ -81,23 +81,23 @@ class MessageResponseTest {
void testBuilderWithNulls() {
MessageResponse response = MessageResponse.builder().build();
assertThat(response.id()).isNull();
assertThat(response.conversationId()).isNull();
assertThat(response.senderId()).isNull();
assertThat(response.senderName()).isNull();
assertThat(response.senderAvatar()).isNull();
assertThat(response.content()).isNull();
assertThat(response.type()).isNull();
assertThat(response.status()).isNull();
assertThat(response.priority()).isNull();
assertThat(response.recipientIds()).isNull();
assertThat(response.recipientRoles()).isNull();
assertThat(response.organisationId()).isNull();
assertThat(response.createdAt()).isNull();
assertThat(response.readAt()).isNull();
assertThat(response.attachments()).isNull();
assertThat(response.getId()).isNull();
assertThat(response.getConversationId()).isNull();
assertThat(response.getSenderId()).isNull();
assertThat(response.getSenderName()).isNull();
assertThat(response.getSenderAvatar()).isNull();
assertThat(response.getContent()).isNull();
assertThat(response.getType()).isNull();
assertThat(response.getStatus()).isNull();
assertThat(response.getPriority()).isNull();
assertThat(response.getRecipientIds()).isNull();
assertThat(response.getRecipientRoles()).isNull();
assertThat(response.getOrganisationId()).isNull();
assertThat(response.getCreatedAt()).isNull();
assertThat(response.getReadAt()).isNull();
assertThat(response.getAttachments()).isNull();
assertThat(response.isEdited()).isFalse();
assertThat(response.editedAt()).isNull();
assertThat(response.getEditedAt()).isNull();
assertThat(response.isDeleted()).isFalse();
}

View File

@@ -10,7 +10,7 @@ import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
/**
* Tests unitaires pour CotisationSummaryResponse (record).
* Tests unitaires pour CotisationSummaryResponse.
*
* @author UnionFlow Team
* @version 1.0
@@ -51,16 +51,16 @@ class CotisationSummaryResponseTest {
);
assertThat(response).isNotNull();
assertThat(response.id()).isEqualTo(id);
assertThat(response.numeroReference()).isEqualTo("COT-2026-001");
assertThat(response.nomMembre()).isEqualTo("Jean Dupont");
assertThat(response.montantDu()).isEqualTo(new BigDecimal("50000.00"));
assertThat(response.montantPaye()).isEqualTo(new BigDecimal("30000.00"));
assertThat(response.statut()).isEqualTo("EN_COURS");
assertThat(response.statutLibelle()).isEqualTo("Paiement en cours");
assertThat(response.dateEcheance()).isEqualTo(LocalDate.of(2026, 12, 31));
assertThat(response.annee()).isEqualTo(2026);
assertThat(response.actif()).isTrue();
assertThat(response.getId()).isEqualTo(id);
assertThat(response.getNumeroReference()).isEqualTo("COT-2026-001");
assertThat(response.getNomMembre()).isEqualTo("Jean Dupont");
assertThat(response.getMontantDu()).isEqualTo(new BigDecimal("50000.00"));
assertThat(response.getMontantPaye()).isEqualTo(new BigDecimal("30000.00"));
assertThat(response.getStatut()).isEqualTo("EN_COURS");
assertThat(response.getStatutLibelle()).isEqualTo("Paiement en cours");
assertThat(response.getDateEcheance()).isEqualTo(LocalDate.of(2026, 12, 31));
assertThat(response.getAnnee()).isEqualTo(2026);
assertThat(response.getActif()).isTrue();
}
@Test
@@ -80,16 +80,16 @@ class CotisationSummaryResponseTest {
);
assertThat(response).isNotNull();
assertThat(response.id()).isNull();
assertThat(response.numeroReference()).isNull();
assertThat(response.nomMembre()).isNull();
assertThat(response.montantDu()).isNull();
assertThat(response.montantPaye()).isNull();
assertThat(response.statut()).isNull();
assertThat(response.statutLibelle()).isNull();
assertThat(response.dateEcheance()).isNull();
assertThat(response.annee()).isNull();
assertThat(response.actif()).isNull();
assertThat(response.getId()).isNull();
assertThat(response.getNumeroReference()).isNull();
assertThat(response.getNomMembre()).isNull();
assertThat(response.getMontantDu()).isNull();
assertThat(response.getMontantPaye()).isNull();
assertThat(response.getStatut()).isNull();
assertThat(response.getStatutLibelle()).isNull();
assertThat(response.getDateEcheance()).isNull();
assertThat(response.getAnnee()).isNull();
assertThat(response.getActif()).isNull();
}
}
@@ -213,8 +213,8 @@ class CotisationSummaryResponseTest {
true
);
assertThat(response.montantDu()).isEqualTo(response.montantPaye());
assertThat(response.statut()).isEqualTo("PAYE");
assertThat(response.getMontantDu()).isEqualTo(response.getMontantPaye());
assertThat(response.getStatut()).isEqualTo("PAYE");
}
@Test
@@ -233,8 +233,8 @@ class CotisationSummaryResponseTest {
true
);
assertThat(response.montantPaye()).isLessThan(response.montantDu());
assertThat(response.statut()).isEqualTo("EN_COURS");
assertThat(response.getMontantPaye()).isLessThan(response.getMontantDu());
assertThat(response.getStatut()).isEqualTo("EN_COURS");
}
@Test
@@ -253,8 +253,8 @@ class CotisationSummaryResponseTest {
true
);
assertThat(response.montantPaye()).isEqualByComparingTo(BigDecimal.ZERO);
assertThat(response.statut()).isEqualTo("IMPAYE");
assertThat(response.getMontantPaye()).isEqualByComparingTo(BigDecimal.ZERO);
assertThat(response.getStatut()).isEqualTo("IMPAYE");
}
@Test
@@ -275,8 +275,8 @@ class CotisationSummaryResponseTest {
true
);
assertThat(response.dateEcheance()).isBefore(LocalDate.now());
assertThat(response.statut()).isEqualTo("RETARD");
assertThat(response.getDateEcheance()).isBefore(LocalDate.now());
assertThat(response.getStatut()).isEqualTo("RETARD");
}
}
}

View File

@@ -10,8 +10,8 @@ import org.junit.jupiter.api.Test;
class MembreDashboardSyntheseResponseTest {
@Test
@DisplayName("Record MembreDashboardSyntheseResponse : construction et accesseurs")
void record_constructionAndAccessors() {
@DisplayName("MembreDashboardSyntheseResponse : construction et getters")
void constructionAndGetters() {
MembreDashboardSyntheseResponse dto = new MembreDashboardSyntheseResponse(
"Jean",
"Dupont",
@@ -35,20 +35,20 @@ class MembreDashboardSyntheseResponseTest {
100
);
assertThat(dto.prenom()).isEqualTo("Jean");
assertThat(dto.nom()).isEqualTo("Dupont");
assertThat(dto.dateInscription()).isEqualTo(LocalDate.of(2023, 1, 15));
assertThat(dto.mesCotisationsPaiement()).isEqualByComparingTo(BigDecimal.valueOf(50000));
assertThat(dto.totalCotisationsPayeesAnnee()).isEqualByComparingTo(BigDecimal.valueOf(150000));
assertThat(dto.totalCotisationsPayeesToutTemps()).isEqualByComparingTo(BigDecimal.valueOf(200000));
assertThat(dto.nombreCotisationsPayees()).isEqualTo(5);
assertThat(dto.statutCotisations()).isEqualTo("À jour");
assertThat(dto.tauxCotisationsPerso()).isEqualTo(100);
assertThat(dto.monSoldeEpargne()).isEqualByComparingTo(BigDecimal.valueOf(250000));
assertThat(dto.objectifEpargne()).isEqualTo(500000);
assertThat(dto.mesEvenementsInscrits()).isEqualTo(3);
assertThat(dto.tauxParticipationPerso()).isEqualTo(75);
assertThat(dto.mesDemandesAide()).isEqualTo(1);
assertThat(dto.tauxAidesApprouvees()).isEqualTo(100);
assertThat(dto.getPrenom()).isEqualTo("Jean");
assertThat(dto.getNom()).isEqualTo("Dupont");
assertThat(dto.getDateInscription()).isEqualTo(LocalDate.of(2023, 1, 15));
assertThat(dto.getMesCotisationsPaiement()).isEqualByComparingTo(BigDecimal.valueOf(50000));
assertThat(dto.getTotalCotisationsPayeesAnnee()).isEqualByComparingTo(BigDecimal.valueOf(150000));
assertThat(dto.getTotalCotisationsPayeesToutTemps()).isEqualByComparingTo(BigDecimal.valueOf(200000));
assertThat(dto.getNombreCotisationsPayees()).isEqualTo(5);
assertThat(dto.getStatutCotisations()).isEqualTo("À jour");
assertThat(dto.getTauxCotisationsPerso()).isEqualTo(100);
assertThat(dto.getMonSoldeEpargne()).isEqualByComparingTo(BigDecimal.valueOf(250000));
assertThat(dto.getObjectifEpargne()).isEqualTo(500000);
assertThat(dto.getMesEvenementsInscrits()).isEqualTo(3);
assertThat(dto.getTauxParticipationPerso()).isEqualTo(75);
assertThat(dto.getMesDemandesAide()).isEqualTo(1);
assertThat(dto.getTauxAidesApprouvees()).isEqualTo(100);
}
}

View File

@@ -23,14 +23,14 @@ class MembreSummaryResponseTest {
// ── nomComplet ─────────────────────────────────────────────────────────
@Nested
@DisplayName("nomComplet()")
@DisplayName("getNomComplet()")
class NomComplet {
@Test
@DisplayName("prenom + nom concaténés")
void nominal() {
MembreSummaryResponse r = make("ACTIF", List.of());
assertThat(r.nomComplet()).isEqualTo("Jean Dupont");
assertThat(r.getNomComplet()).isEqualTo("Jean Dupont");
}
@Test
@@ -39,7 +39,7 @@ class MembreSummaryResponseTest {
MembreSummaryResponse r = new MembreSummaryResponse(
UUID.randomUUID(), null, null, "Dupont", null,
null, null, null, null, null, false, List.of(), null, null, null);
assertThat(r.nomComplet()).isEqualTo("Dupont");
assertThat(r.getNomComplet()).isEqualTo("Dupont");
}
@Test
@@ -48,7 +48,7 @@ class MembreSummaryResponseTest {
MembreSummaryResponse r = new MembreSummaryResponse(
UUID.randomUUID(), null, "Jean", null, null,
null, null, null, null, null, false, List.of(), null, null, null);
assertThat(r.nomComplet()).isEqualTo("Jean");
assertThat(r.getNomComplet()).isEqualTo("Jean");
}
@Test
@@ -57,7 +57,7 @@ class MembreSummaryResponseTest {
MembreSummaryResponse r = new MembreSummaryResponse(
UUID.randomUUID(), null, null, null, null,
null, null, null, null, null, false, List.of(), null, null, null);
assertThat(r.nomComplet()).isEmpty();
assertThat(r.getNomComplet()).isEmpty();
}
}
@@ -68,42 +68,42 @@ class MembreSummaryResponseTest {
class AliasStatut {
@Test
@DisplayName("statut() retourne statutCompte")
@DisplayName("getStatut() retourne getStatutCompte()")
void statut() {
MembreSummaryResponse r = make("ACTIF", List.of());
assertThat(r.statut()).isEqualTo(r.statutCompte());
assertThat(r.getStatut()).isEqualTo(r.getStatutCompte());
}
@Test
@DisplayName("statutLibelle() retourne statutCompteLibelle")
@DisplayName("getStatutLibelle() retourne getStatutCompteLibelle()")
void statutLibelle() {
MembreSummaryResponse r = make("ACTIF", List.of());
assertThat(r.statutLibelle()).isEqualTo(r.statutCompteLibelle());
assertThat(r.getStatutLibelle()).isEqualTo(r.getStatutCompteLibelle());
}
@Test
@DisplayName("statutSeverity() retourne statutCompteSeverity")
@DisplayName("getStatutSeverity() retourne getStatutCompteSeverity()")
void statutSeverity() {
MembreSummaryResponse r = make("ACTIF", List.of());
assertThat(r.statutSeverity()).isEqualTo(r.statutCompteSeverity());
assertThat(r.getStatutSeverity()).isEqualTo(r.getStatutCompteSeverity());
}
}
// ── statutIcon ─────────────────────────────────────────────────────────
@Nested
@DisplayName("statutIcon()")
@DisplayName("getStatutIcon()")
class StatutIcon {
@Test void actif() { assertThat(make("ACTIF", List.of()).statutIcon()).isEqualTo("pi pi-check-circle"); }
@Test void inactif() { assertThat(make("INACTIF", List.of()).statutIcon()).isEqualTo("pi pi-pause-circle"); }
@Test void suspendu() { assertThat(make("SUSPENDU", List.of()).statutIcon()).isEqualTo("pi pi-ban"); }
@Test void radie() { assertThat(make("RADIE", List.of()).statutIcon()).isEqualTo("pi pi-times-circle"); }
@Test void actif() { assertThat(make("ACTIF", List.of()).getStatutIcon()).isEqualTo("pi pi-check-circle"); }
@Test void inactif() { assertThat(make("INACTIF", List.of()).getStatutIcon()).isEqualTo("pi pi-pause-circle"); }
@Test void suspendu() { assertThat(make("SUSPENDU", List.of()).getStatutIcon()).isEqualTo("pi pi-ban"); }
@Test void radie() { assertThat(make("RADIE", List.of()).getStatutIcon()).isEqualTo("pi pi-times-circle"); }
@Test
@DisplayName("statut inconnu → pi pi-question-circle")
void inconnu() {
assertThat(make("AUTRE", List.of()).statutIcon()).isEqualTo("pi pi-question-circle");
assertThat(make("AUTRE", List.of()).getStatutIcon()).isEqualTo("pi pi-question-circle");
}
@Test
@@ -112,96 +112,96 @@ class MembreSummaryResponseTest {
MembreSummaryResponse r = new MembreSummaryResponse(
UUID.randomUUID(), null, null, null, null,
null, null, null, null, null, false, List.of(), null, null, null);
assertThat(r.statutIcon()).isEqualTo("pi pi-question-circle");
assertThat(r.getStatutIcon()).isEqualTo("pi pi-question-circle");
}
}
// ── typeMembre ─────────────────────────────────────────────────────────
@Nested
@DisplayName("typeMembre()")
@DisplayName("getTypeMembre()")
class TypeMembre {
@Test void president() { assertThat(make("ACTIF", List.of("PRESIDENT")).typeMembre()).isEqualTo("Président"); }
@Test void vicePresident() { assertThat(make("ACTIF", List.of("VICE_PRESIDENT")).typeMembre()).isEqualTo("Vice-Président"); }
@Test void secretaire() { assertThat(make("ACTIF", List.of("SECRETAIRE")).typeMembre()).isEqualTo("Secrétaire"); }
@Test void tresorier() { assertThat(make("ACTIF", List.of("TRESORIER")).typeMembre()).isEqualTo("Trésorier"); }
@Test void adminOrg() { assertThat(make("ACTIF", List.of("ADMIN_ORGANISATION")).typeMembre()).isEqualTo("Administrateur"); }
@Test void moderateur() { assertThat(make("ACTIF", List.of("MODERATEUR")).typeMembre()).isEqualTo("Modérateur"); }
@Test void membreActif() { assertThat(make("ACTIF", List.of("MEMBRE_ACTIF")).typeMembre()).isEqualTo("Membre"); }
@Test void rolesVide() { assertThat(make("ACTIF", List.of()).typeMembre()).isEqualTo("Membre"); }
@Test void president() { assertThat(make("ACTIF", List.of("PRESIDENT")).getTypeMembre()).isEqualTo("Président"); }
@Test void vicePresident() { assertThat(make("ACTIF", List.of("VICE_PRESIDENT")).getTypeMembre()).isEqualTo("Vice-Président"); }
@Test void secretaire() { assertThat(make("ACTIF", List.of("SECRETAIRE")).getTypeMembre()).isEqualTo("Secrétaire"); }
@Test void tresorier() { assertThat(make("ACTIF", List.of("TRESORIER")).getTypeMembre()).isEqualTo("Trésorier"); }
@Test void adminOrg() { assertThat(make("ACTIF", List.of("ADMIN_ORGANISATION")).getTypeMembre()).isEqualTo("Administrateur"); }
@Test void moderateur() { assertThat(make("ACTIF", List.of("MODERATEUR")).getTypeMembre()).isEqualTo("Modérateur"); }
@Test void membreActif() { assertThat(make("ACTIF", List.of("MEMBRE_ACTIF")).getTypeMembre()).isEqualTo("Membre"); }
@Test void rolesVide() { assertThat(make("ACTIF", List.of()).getTypeMembre()).isEqualTo("Membre"); }
@Test void rolesNull() {
MembreSummaryResponse r = new MembreSummaryResponse(
UUID.randomUUID(), null, null, null, null,
null, null, null, null, null, false, null, null, null, null);
assertThat(r.typeMembre()).isEqualTo("Membre");
assertThat(r.getTypeMembre()).isEqualTo("Membre");
}
}
// ── typeSeverity ───────────────────────────────────────────────────────
@Nested
@DisplayName("typeSeverity()")
@DisplayName("getTypeSeverity()")
class TypeSeverity {
@Test void president() { assertThat(make("ACTIF", List.of("PRESIDENT")).typeSeverity()).isEqualTo("primary"); }
@Test void vicePresident() { assertThat(make("ACTIF", List.of("VICE_PRESIDENT")).typeSeverity()).isEqualTo("primary"); }
@Test void secretaire() { assertThat(make("ACTIF", List.of("SECRETAIRE")).typeSeverity()).isEqualTo("info"); }
@Test void tresorier() { assertThat(make("ACTIF", List.of("TRESORIER")).typeSeverity()).isEqualTo("warning"); }
@Test void adminOrg() { assertThat(make("ACTIF", List.of("ADMIN_ORGANISATION")).typeSeverity()).isEqualTo("danger"); }
@Test void moderateur() { assertThat(make("ACTIF", List.of("MODERATEUR")).typeSeverity()).isEqualTo("warning"); }
@Test void roleDefault() { assertThat(make("ACTIF", List.of("MEMBRE_ACTIF")).typeSeverity()).isEqualTo("secondary"); }
@Test void rolesVide() { assertThat(make("ACTIF", List.of()).typeSeverity()).isEqualTo("secondary"); }
@Test void president() { assertThat(make("ACTIF", List.of("PRESIDENT")).getTypeSeverity()).isEqualTo("primary"); }
@Test void vicePresident() { assertThat(make("ACTIF", List.of("VICE_PRESIDENT")).getTypeSeverity()).isEqualTo("primary"); }
@Test void secretaire() { assertThat(make("ACTIF", List.of("SECRETAIRE")).getTypeSeverity()).isEqualTo("info"); }
@Test void tresorier() { assertThat(make("ACTIF", List.of("TRESORIER")).getTypeSeverity()).isEqualTo("warning"); }
@Test void adminOrg() { assertThat(make("ACTIF", List.of("ADMIN_ORGANISATION")).getTypeSeverity()).isEqualTo("danger"); }
@Test void moderateur() { assertThat(make("ACTIF", List.of("MODERATEUR")).getTypeSeverity()).isEqualTo("warning"); }
@Test void roleDefault() { assertThat(make("ACTIF", List.of("MEMBRE_ACTIF")).getTypeSeverity()).isEqualTo("secondary"); }
@Test void rolesVide() { assertThat(make("ACTIF", List.of()).getTypeSeverity()).isEqualTo("secondary"); }
@Test void rolesNull() {
MembreSummaryResponse r = new MembreSummaryResponse(
UUID.randomUUID(), null, null, null, null,
null, null, null, null, null, false, null, null, null, null);
assertThat(r.typeSeverity()).isEqualTo("secondary");
assertThat(r.getTypeSeverity()).isEqualTo("secondary");
}
}
// ── typeIcon ───────────────────────────────────────────────────────────
@Nested
@DisplayName("typeIcon()")
@DisplayName("getTypeIcon()")
class TypeIcon {
@Test void president() { assertThat(make("ACTIF", List.of("PRESIDENT")).typeIcon()).isEqualTo("pi pi-star"); }
@Test void vicePresident() { assertThat(make("ACTIF", List.of("VICE_PRESIDENT")).typeIcon()).isEqualTo("pi pi-star"); }
@Test void secretaire() { assertThat(make("ACTIF", List.of("SECRETAIRE")).typeIcon()).isEqualTo("pi pi-file-edit"); }
@Test void tresorier() { assertThat(make("ACTIF", List.of("TRESORIER")).typeIcon()).isEqualTo("pi pi-wallet"); }
@Test void adminOrg() { assertThat(make("ACTIF", List.of("ADMIN_ORGANISATION")).typeIcon()).isEqualTo("pi pi-shield"); }
@Test void moderateur() { assertThat(make("ACTIF", List.of("MODERATEUR")).typeIcon()).isEqualTo("pi pi-wrench"); }
@Test void roleDefault() { assertThat(make("ACTIF", List.of("MEMBRE_ACTIF")).typeIcon()).isEqualTo("pi pi-user"); }
@Test void rolesVide() { assertThat(make("ACTIF", List.of()).typeIcon()).isEqualTo("pi pi-user"); }
@Test void president() { assertThat(make("ACTIF", List.of("PRESIDENT")).getTypeIcon()).isEqualTo("pi pi-star"); }
@Test void vicePresident() { assertThat(make("ACTIF", List.of("VICE_PRESIDENT")).getTypeIcon()).isEqualTo("pi pi-star"); }
@Test void secretaire() { assertThat(make("ACTIF", List.of("SECRETAIRE")).getTypeIcon()).isEqualTo("pi pi-file-edit"); }
@Test void tresorier() { assertThat(make("ACTIF", List.of("TRESORIER")).getTypeIcon()).isEqualTo("pi pi-wallet"); }
@Test void adminOrg() { assertThat(make("ACTIF", List.of("ADMIN_ORGANISATION")).getTypeIcon()).isEqualTo("pi pi-shield"); }
@Test void moderateur() { assertThat(make("ACTIF", List.of("MODERATEUR")).getTypeIcon()).isEqualTo("pi pi-wrench"); }
@Test void roleDefault() { assertThat(make("ACTIF", List.of("MEMBRE_ACTIF")).getTypeIcon()).isEqualTo("pi pi-user"); }
@Test void rolesVide() { assertThat(make("ACTIF", List.of()).getTypeIcon()).isEqualTo("pi pi-user"); }
@Test void rolesNull() {
MembreSummaryResponse r = new MembreSummaryResponse(
UUID.randomUUID(), null, null, null, null,
null, null, null, null, null, false, null, null, null, null);
assertThat(r.typeIcon()).isEqualTo("pi pi-user");
assertThat(r.getTypeIcon()).isEqualTo("pi pi-user");
}
}
// ── dateAdhesion ───────────────────────────────────────────────────────
@Nested
@DisplayName("dateAdhesion()")
@DisplayName("getDateAdhesion()")
class DateAdhesion {
@Test
@DisplayName("dateAdhesion est accessible via le composant record")
@DisplayName("dateAdhesion est accessible via le getter")
void accesseur() {
LocalDate date = LocalDate.of(2024, 3, 15);
MembreSummaryResponse r = new MembreSummaryResponse(
UUID.randomUUID(), null, "Jean", "Dupont", null,
null, null, "ACTIF", null, null, true, List.of(), null, null, date);
assertThat(r.dateAdhesion()).isEqualTo(date);
assertThat(r.getDateAdhesion()).isEqualTo(date);
}
@Test
@DisplayName("dateAdhesion null par défaut")
void nullParDefaut() {
assertThat(make("ACTIF", List.of()).dateAdhesion()).isNull();
assertThat(make("ACTIF", List.of()).getDateAdhesion()).isNull();
}
}
@@ -250,17 +250,17 @@ class MembreSummaryResponseTest {
}
@Test
@DisplayName("getters calculés délèguent aux méthodes calculées")
@DisplayName("getters calculés retournent les valeurs attendues")
void gettersCalcules() {
MembreSummaryResponse r = make("ACTIF", List.of("PRESIDENT"));
assertThat(r.getNomComplet()).isEqualTo(r.nomComplet());
assertThat(r.getStatut()).isEqualTo(r.statut());
assertThat(r.getStatutLibelle()).isEqualTo(r.statutLibelle());
assertThat(r.getStatutSeverity()).isEqualTo(r.statutSeverity());
assertThat(r.getStatutIcon()).isEqualTo(r.statutIcon());
assertThat(r.getTypeMembre()).isEqualTo(r.typeMembre());
assertThat(r.getTypeSeverity()).isEqualTo(r.typeSeverity());
assertThat(r.getTypeIcon()).isEqualTo(r.typeIcon());
assertThat(r.getNomComplet()).isEqualTo("Jean Dupont");
assertThat(r.getStatut()).isEqualTo("ACTIF");
assertThat(r.getStatutLibelle()).isEqualTo("ACTIF_libelle");
assertThat(r.getStatutSeverity()).isEqualTo("ACTIF_severity");
assertThat(r.getStatutIcon()).isEqualTo("pi pi-check-circle");
assertThat(r.getTypeMembre()).isEqualTo("Président");
assertThat(r.getTypeSeverity()).isEqualTo("primary");
assertThat(r.getTypeIcon()).isEqualTo("pi pi-star");
}
}
}

View File

@@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test;
class OrganisationSummaryResponseTest {
@Test
void testRecord_AllFields() {
void testAllFields() {
UUID id = UUID.randomUUID();
OrganisationSummaryResponse response = new OrganisationSummaryResponse(
@@ -24,20 +24,20 @@ class OrganisationSummaryResponseTest {
true
);
assertThat(response.id()).isEqualTo(id);
assertThat(response.nom()).isEqualTo("Mutuelle du Futur");
assertThat(response.nomCourt()).isEqualTo("MDF");
assertThat(response.typeOrganisation()).isEqualTo("MUTUELLE");
assertThat(response.typeOrganisationLibelle()).isEqualTo("Mutuelle");
assertThat(response.statut()).isEqualTo("ACTIF");
assertThat(response.statutLibelle()).isEqualTo("Actif");
assertThat(response.statutSeverity()).isEqualTo("success");
assertThat(response.nombreMembres()).isEqualTo(150);
assertThat(response.actif()).isTrue();
assertThat(response.getId()).isEqualTo(id);
assertThat(response.getNom()).isEqualTo("Mutuelle du Futur");
assertThat(response.getNomCourt()).isEqualTo("MDF");
assertThat(response.getTypeOrganisation()).isEqualTo("MUTUELLE");
assertThat(response.getTypeOrganisationLibelle()).isEqualTo("Mutuelle");
assertThat(response.getStatut()).isEqualTo("ACTIF");
assertThat(response.getStatutLibelle()).isEqualTo("Actif");
assertThat(response.getStatutSeverity()).isEqualTo("success");
assertThat(response.getNombreMembres()).isEqualTo(150);
assertThat(response.getActif()).isTrue();
}
@Test
void testRecord_Equals() {
void testEquals() {
UUID id = UUID.randomUUID();
OrganisationSummaryResponse response1 = new OrganisationSummaryResponse(
@@ -53,7 +53,7 @@ class OrganisationSummaryResponseTest {
}
@Test
void testRecord_ToString() {
void testToString() {
OrganisationSummaryResponse response = new OrganisationSummaryResponse(
UUID.randomUUID(), "Org", "ORG", "TYPE", "Type",
"ACTIF", "Actif", "success", 100, true
@@ -67,14 +67,14 @@ class OrganisationSummaryResponseTest {
}
@Test
void testRecord_WithNullValues() {
void testWithNullValues() {
OrganisationSummaryResponse response = new OrganisationSummaryResponse(
UUID.randomUUID(), "Org", null, "TYPE", "Type",
"ACTIF", "Actif", "success", null, false
);
assertThat(response.nomCourt()).isNull();
assertThat(response.nombreMembres()).isNull();
assertThat(response.actif()).isFalse();
assertThat(response.getNomCourt()).isNull();
assertThat(response.getNombreMembres()).isNull();
assertThat(response.getActif()).isFalse();
}
}

View File

@@ -24,14 +24,14 @@ class IntentionStatutResponseTest {
.build();
assertThat(response).isNotNull();
assertThat(response.intentionId()).isEqualTo(intentionId);
assertThat(response.statut()).isEqualTo("COMPLETEE");
assertThat(response.waveLaunchUrl()).isEqualTo("https://pay.wave.com/c/cos-abc123");
assertThat(response.waveCheckoutSessionId()).isEqualTo("cos-abc123");
assertThat(response.waveTransactionId()).isEqualTo("TCN4Y4ZC3FM");
assertThat(response.montant()).isEqualByComparingTo(new BigDecimal("5000"));
assertThat(response.referenceCotisation()).isEqualTo("COT-2025-001");
assertThat(response.message()).isEqualTo("Paiement confirmé !");
assertThat(response.getIntentionId()).isEqualTo(intentionId);
assertThat(response.getStatut()).isEqualTo("COMPLETEE");
assertThat(response.getWaveLaunchUrl()).isEqualTo("https://pay.wave.com/c/cos-abc123");
assertThat(response.getWaveCheckoutSessionId()).isEqualTo("cos-abc123");
assertThat(response.getWaveTransactionId()).isEqualTo("TCN4Y4ZC3FM");
assertThat(response.getMontant()).isEqualByComparingTo(new BigDecimal("5000"));
assertThat(response.getReferenceCotisation()).isEqualTo("COT-2025-001");
assertThat(response.getMessage()).isEqualTo("Paiement confirmé !");
}
@Test
@@ -47,11 +47,11 @@ class IntentionStatutResponseTest {
.message("En attente de confirmation Wave...")
.build();
assertThat(response.intentionId()).isEqualTo(intentionId);
assertThat(response.statut()).isEqualTo("EN_COURS");
assertThat(response.waveLaunchUrl()).isEqualTo("https://pay.wave.com/c/cos-xyz789");
assertThat(response.waveTransactionId()).isNull();
assertThat(response.referenceCotisation()).isNull();
assertThat(response.getIntentionId()).isEqualTo(intentionId);
assertThat(response.getStatut()).isEqualTo("EN_COURS");
assertThat(response.getWaveLaunchUrl()).isEqualTo("https://pay.wave.com/c/cos-xyz789");
assertThat(response.getWaveTransactionId()).isNull();
assertThat(response.getReferenceCotisation()).isNull();
}
@Test
@@ -65,10 +65,10 @@ class IntentionStatutResponseTest {
.message("Session Wave expirée")
.build();
assertThat(response.statut()).isEqualTo("EXPIREE");
assertThat(response.waveLaunchUrl()).isNull();
assertThat(response.waveCheckoutSessionId()).isNull();
assertThat(response.waveTransactionId()).isNull();
assertThat(response.getStatut()).isEqualTo("EXPIREE");
assertThat(response.getWaveLaunchUrl()).isNull();
assertThat(response.getWaveCheckoutSessionId()).isNull();
assertThat(response.getWaveTransactionId()).isNull();
}
@Test

View File

@@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test;
class PaiementSummaryResponseTest {
@Test
void testRecord_AllFields() {
void testAllFields() {
UUID id = UUID.randomUUID();
LocalDateTime datePaiement = LocalDateTime.now();
@@ -26,19 +26,19 @@ class PaiementSummaryResponseTest {
datePaiement
);
assertThat(response.id()).isEqualTo(id);
assertThat(response.numeroReference()).isEqualTo("PAY-2026-001");
assertThat(response.montant()).isEqualByComparingTo(new BigDecimal("5000.00"));
assertThat(response.codeDevise()).isEqualTo("XOF");
assertThat(response.methodePaiementLibelle()).isEqualTo("Carte bancaire");
assertThat(response.statutPaiement()).isEqualTo("REUSSI");
assertThat(response.statutPaiementLibelle()).isEqualTo("Réussi");
assertThat(response.statutPaiementSeverity()).isEqualTo("success");
assertThat(response.datePaiement()).isEqualTo(datePaiement);
assertThat(response.getId()).isEqualTo(id);
assertThat(response.getNumeroReference()).isEqualTo("PAY-2026-001");
assertThat(response.getMontant()).isEqualByComparingTo(new BigDecimal("5000.00"));
assertThat(response.getCodeDevise()).isEqualTo("XOF");
assertThat(response.getMethodePaiementLibelle()).isEqualTo("Carte bancaire");
assertThat(response.getStatutPaiement()).isEqualTo("REUSSI");
assertThat(response.getStatutPaiementLibelle()).isEqualTo("Réussi");
assertThat(response.getStatutPaiementSeverity()).isEqualTo("success");
assertThat(response.getDatePaiement()).isEqualTo(datePaiement);
}
@Test
void testRecord_Equals() {
void testEquals() {
UUID id = UUID.randomUUID();
LocalDateTime date = LocalDateTime.now();
@@ -57,7 +57,7 @@ class PaiementSummaryResponseTest {
}
@Test
void testRecord_ToString() {
void testToString() {
PaiementSummaryResponse response = new PaiementSummaryResponse(
UUID.randomUUID(), "PAY-001", new BigDecimal("1000.00"), "XOF",
"Wave", "REUSSI", "Réussi", "success", LocalDateTime.now()