Refactoring - Version stable
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package dev.lions.unionflow.server.entity;
|
||||
|
||||
import dev.lions.unionflow.server.api.enums.paiement.StatutIntentionPaiement;
|
||||
import dev.lions.unionflow.server.api.enums.paiement.TypeObjetIntentionPaiement;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests pour {@link IntentionPaiement} — méthode onCreate().
|
||||
*/
|
||||
@DisplayName("IntentionPaiement — onCreate")
|
||||
class IntentionPaiementBranchTest {
|
||||
|
||||
// ── onCreate() ────────────────────────────────────────────────────────────
|
||||
|
||||
@Test
|
||||
@DisplayName("onCreate: dateExpiration déjà définie → conservée")
|
||||
void onCreate_dateExpirationDejaDefinie_conservee() throws Exception {
|
||||
IntentionPaiement ip = new IntentionPaiement();
|
||||
ip.setMontantTotal(new BigDecimal("5000.00"));
|
||||
ip.setTypeObjet(TypeObjetIntentionPaiement.COTISATION);
|
||||
|
||||
LocalDateTime expirationFixe = LocalDateTime.of(2025, 12, 31, 23, 59);
|
||||
ip.setDateExpiration(expirationFixe);
|
||||
|
||||
Method onCreate = IntentionPaiement.class.getDeclaredMethod("onCreate");
|
||||
onCreate.setAccessible(true);
|
||||
onCreate.invoke(ip);
|
||||
|
||||
// dateExpiration doit rester la valeur fixée, pas être remplacée
|
||||
assertThat(ip.getDateExpiration()).isEqualTo(expirationFixe);
|
||||
// les autres defaults sont bien positionnés
|
||||
assertThat(ip.getStatut()).isEqualTo(StatutIntentionPaiement.INITIEE);
|
||||
assertThat(ip.getCodeDevise()).isEqualTo("XOF");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("onCreate: dateExpiration null → positionnée à now+30min")
|
||||
void onCreate_dateExpirationNull_setToNowPlusTrente() throws Exception {
|
||||
IntentionPaiement ip = new IntentionPaiement();
|
||||
ip.setMontantTotal(new BigDecimal("5000.00"));
|
||||
ip.setTypeObjet(TypeObjetIntentionPaiement.COTISATION);
|
||||
ip.setStatut(null);
|
||||
ip.setCodeDevise(null);
|
||||
ip.setDateExpiration(null);
|
||||
|
||||
LocalDateTime avant = LocalDateTime.now();
|
||||
|
||||
Method onCreate = IntentionPaiement.class.getDeclaredMethod("onCreate");
|
||||
onCreate.setAccessible(true);
|
||||
onCreate.invoke(ip);
|
||||
|
||||
LocalDateTime apres = LocalDateTime.now();
|
||||
|
||||
assertThat(ip.getDateExpiration()).isNotNull();
|
||||
assertThat(ip.getDateExpiration()).isAfterOrEqualTo(avant.plusMinutes(29));
|
||||
assertThat(ip.getDateExpiration()).isBeforeOrEqualTo(apres.plusMinutes(31));
|
||||
assertThat(ip.getStatut()).isEqualTo(StatutIntentionPaiement.INITIEE);
|
||||
assertThat(ip.getCodeDevise()).isEqualTo("XOF");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user