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,49 @@
package dev.lions.unionflow.server.service;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
import dev.lions.unionflow.server.api.dto.analytics.KPITrendResponse;
import dev.lions.unionflow.server.api.enums.analytics.PeriodeAnalyse;
import dev.lions.unionflow.server.api.enums.analytics.TypeMetrique;
import io.quarkus.test.InjectMock;
import io.quarkus.test.junit.QuarkusTest;
import jakarta.inject.Inject;
import java.math.BigDecimal;
import java.util.Map;
import java.util.UUID;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@QuarkusTest
class TrendAnalysisServiceTest {
@Inject
TrendAnalysisService trendService;
@InjectMock
KPICalculatorService kpiCalculatorService;
@Test
@DisplayName("calculerTendance génère des statistiques et des prédictions")
void calculerTendance_generatesStats() {
UUID organisationId = UUID.randomUUID();
// Mocking KPI calculator to return fixed values for different points
when(kpiCalculatorService.calculerTousLesKPI(eq(organisationId), any(), any()))
.thenReturn(Map.of(TypeMetrique.NOMBRE_MEMBRES_ACTIFS, new BigDecimal("100")))
.thenReturn(Map.of(TypeMetrique.NOMBRE_MEMBRES_ACTIFS, new BigDecimal("110")))
.thenReturn(Map.of(TypeMetrique.NOMBRE_MEMBRES_ACTIFS, new BigDecimal("120")));
KPITrendResponse response = trendService.calculerTendance(
TypeMetrique.NOMBRE_MEMBRES_ACTIFS, PeriodeAnalyse.CE_MOIS, organisationId);
assertThat(response).isNotNull();
assertThat(response.getPointsDonnees()).isNotEmpty();
assertThat(response.getValeurMoyenne()).isNotNull();
assertThat(response.getTendanceGenerale()).isNotNull();
assertThat(response.getPredictionProchainePeriode()).isNotNull();
}
}