113 lines
3.6 KiB
Java
113 lines
3.6 KiB
Java
package dev.lions.unionflow.server.entity;
|
|
|
|
import dev.lions.unionflow.server.api.enums.membre.StatutMembre;
|
|
import org.junit.jupiter.api.DisplayName;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.time.LocalDate;
|
|
import java.util.UUID;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
@DisplayName("MembreOrganisation")
|
|
class MembreOrganisationTest {
|
|
|
|
private static Membre newMembre() {
|
|
Membre m = new Membre();
|
|
m.setId(UUID.randomUUID());
|
|
m.setNumeroMembre("M1");
|
|
m.setPrenom("A");
|
|
m.setNom("B");
|
|
m.setEmail("a@test.com");
|
|
m.setDateNaissance(LocalDate.now());
|
|
return m;
|
|
}
|
|
|
|
private static Organisation newOrganisation() {
|
|
Organisation o = new Organisation();
|
|
o.setId(UUID.randomUUID());
|
|
return o;
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("getters/setters")
|
|
void gettersSetters() {
|
|
MembreOrganisation mo = new MembreOrganisation();
|
|
mo.setMembre(newMembre());
|
|
mo.setOrganisation(newOrganisation());
|
|
mo.setStatutMembre(StatutMembre.ACTIF);
|
|
mo.setDateAdhesion(LocalDate.now());
|
|
mo.setMotifStatut("Approuvé");
|
|
|
|
assertThat(mo.getStatutMembre()).isEqualTo(StatutMembre.ACTIF);
|
|
assertThat(mo.getDateAdhesion()).isNotNull();
|
|
assertThat(mo.getMotifStatut()).isEqualTo("Approuvé");
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("isActif: true si ACTIF et actif true")
|
|
void isActif() {
|
|
MembreOrganisation mo = new MembreOrganisation();
|
|
mo.setMembre(newMembre());
|
|
mo.setOrganisation(newOrganisation());
|
|
mo.setStatutMembre(StatutMembre.ACTIF);
|
|
mo.setActif(true);
|
|
assertThat(mo.isActif()).isTrue();
|
|
mo.setStatutMembre(StatutMembre.EN_ATTENTE_VALIDATION);
|
|
assertThat(mo.isActif()).isFalse();
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("isActif: false si statutMembre ACTIF mais actif=false (branche &&)")
|
|
void isActif_statutActif_actifFalse_returnsFalse() {
|
|
// statutMembre ACTIF mais actif=false → isActif() retourne false
|
|
MembreOrganisation mo = new MembreOrganisation();
|
|
mo.setMembre(newMembre());
|
|
mo.setOrganisation(newOrganisation());
|
|
mo.setStatutMembre(StatutMembre.ACTIF);
|
|
mo.setActif(false);
|
|
assertThat(mo.isActif()).isFalse();
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("peutDemanderAide")
|
|
void peutDemanderAide() {
|
|
MembreOrganisation mo = new MembreOrganisation();
|
|
mo.setMembre(newMembre());
|
|
mo.setOrganisation(newOrganisation());
|
|
mo.setStatutMembre(StatutMembre.ACTIF);
|
|
assertThat(mo.peutDemanderAide()).isTrue();
|
|
mo.setStatutMembre(StatutMembre.EN_ATTENTE_VALIDATION);
|
|
assertThat(mo.peutDemanderAide()).isFalse();
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("equals et hashCode")
|
|
void equalsHashCode() {
|
|
UUID id = UUID.randomUUID();
|
|
Membre m = newMembre();
|
|
Organisation o = newOrganisation();
|
|
MembreOrganisation a = new MembreOrganisation();
|
|
a.setId(id);
|
|
a.setMembre(m);
|
|
a.setOrganisation(o);
|
|
a.setStatutMembre(StatutMembre.ACTIF);
|
|
MembreOrganisation b = new MembreOrganisation();
|
|
b.setId(id);
|
|
b.setMembre(m);
|
|
b.setOrganisation(o);
|
|
b.setStatutMembre(StatutMembre.ACTIF);
|
|
assertThat(a).isEqualTo(b);
|
|
assertThat(a.hashCode()).isEqualTo(b.hashCode());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("toString non null")
|
|
void toString_nonNull() {
|
|
MembreOrganisation mo = new MembreOrganisation();
|
|
mo.setMembre(newMembre());
|
|
mo.setOrganisation(newOrganisation());
|
|
assertThat(mo.toString()).isNotNull().isNotEmpty();
|
|
}
|
|
}
|