Sync: code local unifié

Synchronisation du code source local (fait foi).

Signed-off-by: lions dev Team
This commit is contained in:
dahoud
2026-03-15 16:25:40 +00:00
parent e82dc356f3
commit 75a19988b0
730 changed files with 53599 additions and 13145 deletions

View File

@@ -0,0 +1,145 @@
package dev.lions.unionflow.server.entity;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.UUID;
import static org.assertj.core.api.Assertions.assertThat;
@DisplayName("Cotisation")
class CotisationTest {
private static Membre newMembre() {
Membre m = new Membre();
m.setId(UUID.randomUUID());
return m;
}
private static Organisation newOrganisation() {
Organisation o = new Organisation();
o.setId(UUID.randomUUID());
return o;
}
@Test
@DisplayName("getters/setters")
void gettersSetters() {
Cotisation c = new Cotisation();
c.setNumeroReference("COT-2025-00000001");
c.setMembre(newMembre());
c.setOrganisation(newOrganisation());
c.setTypeCotisation("MENSUEL");
c.setLibelle("Cotisation janvier");
c.setMontantDu(new BigDecimal("5000.00"));
c.setMontantPaye(new BigDecimal("2000.00"));
c.setCodeDevise("XOF");
c.setStatut("EN_ATTENTE");
c.setDateEcheance(LocalDate.now().plusMonths(1));
c.setAnnee(2025);
c.setMois(1);
c.setRecurrente(true);
assertThat(c.getNumeroReference()).isEqualTo("COT-2025-00000001");
assertThat(c.getTypeCotisation()).isEqualTo("MENSUEL");
assertThat(c.getLibelle()).isEqualTo("Cotisation janvier");
assertThat(c.getMontantDu()).isEqualByComparingTo("5000.00");
assertThat(c.getMontantPaye()).isEqualByComparingTo("2000.00");
assertThat(c.getCodeDevise()).isEqualTo("XOF");
assertThat(c.getStatut()).isEqualTo("EN_ATTENTE");
assertThat(c.getAnnee()).isEqualTo(2025);
assertThat(c.getMois()).isEqualTo(1);
assertThat(c.getRecurrente()).isTrue();
}
@Test
@DisplayName("getMontantRestant")
void getMontantRestant() {
Cotisation c = new Cotisation();
c.setMontantDu(new BigDecimal("100.00"));
c.setMontantPaye(new BigDecimal("30.00"));
assertThat(c.getMontantRestant()).isEqualByComparingTo("70.00");
c.setMontantPaye(null);
assertThat(c.getMontantRestant()).isEqualByComparingTo(BigDecimal.ZERO);
}
@Test
@DisplayName("isEntierementPayee")
void isEntierementPayee() {
Cotisation c = new Cotisation();
c.setMontantDu(new BigDecimal("100.00"));
c.setMontantPaye(new BigDecimal("100.00"));
assertThat(c.isEntierementPayee()).isTrue();
c.setMontantPaye(new BigDecimal("50.00"));
assertThat(c.isEntierementPayee()).isFalse();
}
@Test
@DisplayName("isEnRetard: true si échéance passée et non payée")
void isEnRetard() {
Cotisation c = new Cotisation();
c.setDateEcheance(LocalDate.now().minusDays(1));
c.setMontantDu(new BigDecimal("100.00"));
c.setMontantPaye(BigDecimal.ZERO);
assertThat(c.isEnRetard()).isTrue();
c.setMontantPaye(new BigDecimal("100.00"));
assertThat(c.isEnRetard()).isFalse();
}
@Test
@DisplayName("genererNumeroReference non null")
void genererNumeroReference() {
String ref = Cotisation.genererNumeroReference();
assertThat(ref).startsWith("COT-").isNotNull();
}
@Test
@DisplayName("equals et hashCode")
void equalsHashCode() {
UUID id = UUID.randomUUID();
Cotisation a = new Cotisation();
a.setId(id);
a.setNumeroReference("REF-1");
a.setMembre(newMembre());
a.setOrganisation(newOrganisation());
a.setTypeCotisation("MENSUEL");
a.setLibelle("L");
a.setMontantDu(BigDecimal.ONE);
a.setCodeDevise("XOF");
a.setStatut("EN_ATTENTE");
a.setDateEcheance(LocalDate.now());
a.setAnnee(2025);
Cotisation b = new Cotisation();
b.setId(id);
b.setNumeroReference("REF-1");
b.setMembre(a.getMembre());
b.setOrganisation(a.getOrganisation());
b.setTypeCotisation("MENSUEL");
b.setLibelle("L");
b.setMontantDu(BigDecimal.ONE);
b.setCodeDevise("XOF");
b.setStatut("EN_ATTENTE");
b.setDateEcheance(LocalDate.now());
b.setAnnee(2025);
assertThat(a).isEqualTo(b);
assertThat(a.hashCode()).isEqualTo(b.hashCode());
}
@Test
@DisplayName("toString non null")
void toString_nonNull() {
Cotisation c = new Cotisation();
c.setNumeroReference("REF");
c.setTypeCotisation("MENSUEL");
c.setLibelle("L");
c.setMontantDu(BigDecimal.ONE);
c.setCodeDevise("XOF");
c.setStatut("EN_ATTENTE");
c.setDateEcheance(LocalDate.now());
c.setAnnee(2025);
assertThat(c.toString()).isNotNull().isNotEmpty();
}
}