Refactoring - Version stable
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
package dev.lions.unionflow.server.entity;
|
||||
|
||||
import dev.lions.unionflow.server.api.enums.abonnement.StatutSouscription;
|
||||
import dev.lions.unionflow.server.api.enums.abonnement.TypePeriodeAbonnement;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests de couverture pour SouscriptionOrganisation.
|
||||
* Couvre les branches manquantes de onCreate() et decrementerQuota().
|
||||
*/
|
||||
@DisplayName("SouscriptionOrganisation - branches manquantes")
|
||||
class SouscriptionOrganisationBranchTest {
|
||||
|
||||
// ── onCreate() ────────────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Branch manquante : formule != null mais quotaMax est déjà renseigné
|
||||
* → la ligne `quotaMax = formule.getMaxMembres()` n'est PAS exécutée.
|
||||
*/
|
||||
@Test
|
||||
@DisplayName("onCreate: formule présente mais quotaMax déjà défini → quotaMax conservé")
|
||||
void onCreate_formuleNonNull_quotaMaxDejaDefini_conserveQuotaMax() throws Exception {
|
||||
FormuleAbonnement formule = new FormuleAbonnement();
|
||||
formule.setMaxMembres(50);
|
||||
|
||||
SouscriptionOrganisation s = new SouscriptionOrganisation();
|
||||
s.setDateDebut(LocalDate.now());
|
||||
s.setDateFin(LocalDate.now().plusMonths(1));
|
||||
s.setFormule(formule);
|
||||
s.setQuotaMax(100); // déjà défini → ne doit PAS être écrasé
|
||||
|
||||
Method onCreate = SouscriptionOrganisation.class.getDeclaredMethod("onCreate");
|
||||
onCreate.setAccessible(true);
|
||||
onCreate.invoke(s);
|
||||
|
||||
// quotaMax reste 100, pas remplacé par formule.getMaxMembres() (50)
|
||||
assertThat(s.getQuotaMax()).isEqualTo(100);
|
||||
// les autres defaults sont positionnés
|
||||
assertThat(s.getStatut()).isEqualTo(StatutSouscription.ACTIVE);
|
||||
assertThat(s.getTypePeriode()).isEqualTo(TypePeriodeAbonnement.MENSUEL);
|
||||
assertThat(s.getQuotaUtilise()).isEqualTo(0);
|
||||
}
|
||||
|
||||
// ── decrementerQuota() ────────────────────────────────────────────────────
|
||||
|
||||
/**
|
||||
* Branch manquante : quotaUtilise == 0 → la condition
|
||||
* `quotaUtilise != null && quotaUtilise > 0` est false, le quota ne change pas.
|
||||
*/
|
||||
@Test
|
||||
@DisplayName("decrementerQuota: quotaUtilise=0 → reste 0 (pas de décrément)")
|
||||
void decrementerQuota_quotaUtiliseZero_resterAZero() {
|
||||
SouscriptionOrganisation s = new SouscriptionOrganisation();
|
||||
s.setDateDebut(LocalDate.now());
|
||||
s.setDateFin(LocalDate.now().plusMonths(1));
|
||||
s.setQuotaUtilise(0);
|
||||
|
||||
s.decrementerQuota();
|
||||
|
||||
assertThat(s.getQuotaUtilise()).isEqualTo(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Branche couverte pour référence : quotaUtilise null → décrement ignoré.
|
||||
*/
|
||||
@Test
|
||||
@DisplayName("decrementerQuota: quotaUtilise=null → reste null")
|
||||
void decrementerQuota_quotaUtiliseNull_resterNull() {
|
||||
SouscriptionOrganisation s = new SouscriptionOrganisation();
|
||||
s.setDateDebut(LocalDate.now());
|
||||
s.setDateFin(LocalDate.now().plusMonths(1));
|
||||
s.setQuotaUtilise(null);
|
||||
|
||||
s.decrementerQuota();
|
||||
|
||||
assertThat(s.getQuotaUtilise()).isNull();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user