Refactoring - Version stable

This commit is contained in:
dahoud
2026-03-28 14:21:30 +00:00
parent 00b981c510
commit a740c172ef
4402 changed files with 88517 additions and 1555 deletions

View File

@@ -1,7 +1,9 @@
package dev.lions.unionflow.server.service.registre;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.*;
import dev.lions.unionflow.server.api.dto.registre.AgrementProfessionnelDTO;
@@ -12,9 +14,12 @@ import dev.lions.unionflow.server.mapper.registre.AgrementProfessionnelMapper;
import dev.lions.unionflow.server.repository.MembreRepository;
import dev.lions.unionflow.server.repository.OrganisationRepository;
import dev.lions.unionflow.server.repository.registre.AgrementProfessionnelRepository;
import io.quarkus.hibernate.orm.panache.PanacheQuery;
import io.quarkus.test.InjectMock;
import io.quarkus.test.junit.QuarkusTest;
import jakarta.inject.Inject;
import jakarta.ws.rs.NotFoundException;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import org.junit.jupiter.api.DisplayName;
@@ -65,4 +70,99 @@ class AgrementProfessionnelServiceTest {
assertThat(entity.getOrganisation()).isEqualTo(org);
verify(repository).persist(any(AgrementProfessionnel.class));
}
@Test
@DisplayName("enregistrerAgrement lance NotFoundException si le membre n'existe pas")
void enregistrerAgrement_membreNotFound_throwsNotFound() {
UUID membreId = UUID.randomUUID();
UUID orgId = UUID.randomUUID();
AgrementProfessionnelDTO dto = new AgrementProfessionnelDTO();
dto.setMembreId(membreId.toString());
dto.setOrganisationId(orgId.toString());
when(membreRepository.findByIdOptional(membreId)).thenReturn(Optional.empty());
assertThatThrownBy(() -> service.enregistrerAgrement(dto))
.isInstanceOf(NotFoundException.class);
}
@Test
@DisplayName("enregistrerAgrement lance NotFoundException si l'organisation n'existe pas")
void enregistrerAgrement_orgNotFound_throwsNotFound() {
UUID membreId = UUID.randomUUID();
UUID orgId = UUID.randomUUID();
AgrementProfessionnelDTO dto = new AgrementProfessionnelDTO();
dto.setMembreId(membreId.toString());
dto.setOrganisationId(orgId.toString());
Membre membre = new Membre();
membre.setId(membreId);
when(membreRepository.findByIdOptional(membreId)).thenReturn(Optional.of(membre));
when(organisationRepository.findByIdOptional(orgId)).thenReturn(Optional.empty());
assertThatThrownBy(() -> service.enregistrerAgrement(dto))
.isInstanceOf(NotFoundException.class);
}
@Test
@DisplayName("getAgrementById retourne le DTO quand l'agrément existe")
void getAgrementById_found_returnsDto() {
UUID id = UUID.randomUUID();
AgrementProfessionnel entity = new AgrementProfessionnel();
AgrementProfessionnelDTO dto = new AgrementProfessionnelDTO();
when(repository.findByIdOptional(id)).thenReturn(Optional.of(entity));
when(mapper.toDto(entity)).thenReturn(dto);
AgrementProfessionnelDTO result = service.getAgrementById(id);
assertThat(result).isEqualTo(dto);
}
@Test
@DisplayName("getAgrementById lance NotFoundException si l'agrément n'existe pas")
void getAgrementById_notFound_throws() {
UUID id = UUID.randomUUID();
when(repository.findByIdOptional(id)).thenReturn(Optional.empty());
assertThatThrownBy(() -> service.getAgrementById(id))
.isInstanceOf(NotFoundException.class);
}
@Test
@SuppressWarnings("unchecked")
@DisplayName("getAgrementsByMembre retourne la liste des agréments du membre")
void getAgrementsByMembre_returnsList() {
UUID membreId = UUID.randomUUID();
AgrementProfessionnel entity = new AgrementProfessionnel();
AgrementProfessionnelDTO dto = new AgrementProfessionnelDTO();
PanacheQuery<AgrementProfessionnel> mockQuery = mock(PanacheQuery.class);
when(repository.find(anyString(), (Object[]) any())).thenReturn(mockQuery);
when(mockQuery.stream()).thenReturn(List.of(entity).stream());
when(mapper.toDto(entity)).thenReturn(dto);
List<AgrementProfessionnelDTO> result = service.getAgrementsByMembre(membreId);
assertThat(result).hasSize(1).containsExactly(dto);
}
@Test
@SuppressWarnings("unchecked")
@DisplayName("getAgrementsByOrganisation retourne la liste des agréments de l'organisation")
void getAgrementsByOrganisation_returnsList() {
UUID orgId = UUID.randomUUID();
AgrementProfessionnel entity = new AgrementProfessionnel();
AgrementProfessionnelDTO dto = new AgrementProfessionnelDTO();
PanacheQuery<AgrementProfessionnel> mockQuery = mock(PanacheQuery.class);
when(repository.find(anyString(), (Object[]) any())).thenReturn(mockQuery);
when(mockQuery.stream()).thenReturn(List.of(entity).stream());
when(mapper.toDto(entity)).thenReturn(dto);
List<AgrementProfessionnelDTO> result = service.getAgrementsByOrganisation(orgId);
assertThat(result).hasSize(1).containsExactly(dto);
}
}