feat(server-impl): refactoring resources JAX-RS, corrections AuditService/SyncService/UserService, ajout entites Sync et scripts Docker
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package dev.lions.user.manager.resource;
|
||||
|
||||
import dev.lions.user.manager.dto.audit.AuditLogDTO;
|
||||
import dev.lions.user.manager.dto.common.CountDTO;
|
||||
import dev.lions.user.manager.enums.audit.TypeActionAudit;
|
||||
import dev.lions.user.manager.service.AuditService;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
@@ -10,7 +11,6 @@ import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -32,33 +32,11 @@ class AuditResourceTest {
|
||||
void testSearchLogs() {
|
||||
List<AuditLogDTO> logs = Collections.singletonList(
|
||||
AuditLogDTO.builder().acteurUsername("admin").typeAction(TypeActionAudit.USER_CREATE).build());
|
||||
when(auditService.findByActeur(eq("admin"), isNull(), isNull(), eq(0), eq(50))).thenReturn(logs);
|
||||
when(auditService.findByActeur(eq("admin"), any(), any(), eq(0), eq(50))).thenReturn(logs);
|
||||
|
||||
Response response = auditResource.searchLogs("admin", null, null, null, null, null, 0, 50);
|
||||
List<AuditLogDTO> result = auditResource.searchLogs("admin", null, null, null, null, null, 0, 50);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
assertEquals(logs, response.getEntity());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSearchLogsWithDates() {
|
||||
List<AuditLogDTO> logs = Collections.emptyList();
|
||||
when(auditService.findByRealm(eq("master"), any(), any(), eq(0), eq(50))).thenReturn(logs);
|
||||
|
||||
Response response = auditResource.searchLogs(null, "2024-01-01T00:00:00", "2024-12-31T23:59:59",
|
||||
TypeActionAudit.USER_CREATE, null, true, 0, 50);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSearchLogsError() {
|
||||
when(auditService.findByRealm(eq("master"), isNull(), isNull(), eq(0), eq(50)))
|
||||
.thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.searchLogs(null, null, null, null, null, null, 0, 50);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals(logs, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -67,204 +45,89 @@ class AuditResourceTest {
|
||||
AuditLogDTO.builder().acteurUsername("admin").build());
|
||||
when(auditService.findByActeur(eq("admin"), isNull(), isNull(), eq(0), eq(100))).thenReturn(logs);
|
||||
|
||||
Response response = auditResource.getLogsByActor("admin", 100);
|
||||
List<AuditLogDTO> result = auditResource.getLogsByActor("admin", 100);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
assertEquals(logs, response.getEntity());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetLogsByActorError() {
|
||||
when(auditService.findByActeur(eq("admin"), isNull(), isNull(), eq(0), eq(100)))
|
||||
.thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.getLogsByActor("admin", 100);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals(logs, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetLogsByResource() {
|
||||
List<AuditLogDTO> logs = Collections.emptyList();
|
||||
when(auditService.findByRessource(eq("USER"), eq("1"), isNull(), isNull(), eq(0), eq(100)))
|
||||
when(auditService.findByRessource(eq("USER"), eq("1"), any(), any(), eq(0), eq(100)))
|
||||
.thenReturn(logs);
|
||||
|
||||
Response response = auditResource.getLogsByResource("USER", "1", 100);
|
||||
List<AuditLogDTO> result = auditResource.getLogsByResource("USER", "1", 100);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
assertEquals(logs, response.getEntity());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetLogsByResourceError() {
|
||||
when(auditService.findByRessource(eq("USER"), eq("1"), isNull(), isNull(), eq(0), eq(100)))
|
||||
.thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.getLogsByResource("USER", "1", 100);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals(logs, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetLogsByAction() {
|
||||
List<AuditLogDTO> logs = Collections.emptyList();
|
||||
when(auditService.findByTypeAction(eq(TypeActionAudit.USER_CREATE), eq("master"), isNull(), isNull(), eq(0), eq(100)))
|
||||
when(auditService.findByTypeAction(eq(TypeActionAudit.USER_CREATE), eq("master"), any(), any(), eq(0), eq(100)))
|
||||
.thenReturn(logs);
|
||||
|
||||
Response response = auditResource.getLogsByAction(TypeActionAudit.USER_CREATE, null, null, 100);
|
||||
List<AuditLogDTO> result = auditResource.getLogsByAction(TypeActionAudit.USER_CREATE, null, null, 100);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetLogsByActionWithDates() {
|
||||
List<AuditLogDTO> logs = Collections.emptyList();
|
||||
when(auditService.findByTypeAction(eq(TypeActionAudit.USER_UPDATE), eq("master"), any(), any(), eq(0), eq(50)))
|
||||
.thenReturn(logs);
|
||||
|
||||
Response response = auditResource.getLogsByAction(TypeActionAudit.USER_UPDATE,
|
||||
"2024-01-01T00:00:00", "2024-12-31T23:59:59", 50);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetLogsByActionError() {
|
||||
when(auditService.findByTypeAction(any(), eq("master"), any(), any(), anyInt(), anyInt()))
|
||||
.thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.getLogsByAction(TypeActionAudit.USER_CREATE, null, null, 100);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals(logs, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetActionStatistics() {
|
||||
Map<TypeActionAudit, Long> stats = Map.of(TypeActionAudit.USER_CREATE, 10L);
|
||||
when(auditService.countByActionType(eq("master"), isNull(), isNull())).thenReturn(stats);
|
||||
when(auditService.countByActionType(eq("master"), any(), any())).thenReturn(stats);
|
||||
|
||||
Response response = auditResource.getActionStatistics(null, null);
|
||||
Map<TypeActionAudit, Long> result = auditResource.getActionStatistics(null, null);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
assertEquals(stats, response.getEntity());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetActionStatisticsError() {
|
||||
when(auditService.countByActionType(eq("master"), any(), any())).thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.getActionStatistics(null, null);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals(stats, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetUserActivityStatistics() {
|
||||
Map<String, Long> stats = Map.of("admin", 100L);
|
||||
when(auditService.countByActeur(eq("master"), isNull(), isNull())).thenReturn(stats);
|
||||
when(auditService.countByActeur(eq("master"), any(), any())).thenReturn(stats);
|
||||
|
||||
Response response = auditResource.getUserActivityStatistics(null, null);
|
||||
Map<String, Long> result = auditResource.getUserActivityStatistics(null, null);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
assertEquals(stats, response.getEntity());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetUserActivityStatisticsError() {
|
||||
when(auditService.countByActeur(eq("master"), any(), any())).thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.getUserActivityStatistics(null, null);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals(stats, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetFailureCount() {
|
||||
Map<String, Long> successVsFailure = Map.of("failure", 5L, "success", 100L);
|
||||
when(auditService.countSuccessVsFailure(eq("master"), isNull(), isNull())).thenReturn(successVsFailure);
|
||||
when(auditService.countSuccessVsFailure(eq("master"), any(), any())).thenReturn(successVsFailure);
|
||||
|
||||
Response response = auditResource.getFailureCount(null, null);
|
||||
CountDTO result = auditResource.getFailureCount(null, null);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
assertNotNull(response.getEntity());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetFailureCountError() {
|
||||
when(auditService.countSuccessVsFailure(eq("master"), any(), any())).thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.getFailureCount(null, null);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals(5L, result.getCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetSuccessCount() {
|
||||
Map<String, Long> successVsFailure = Map.of("failure", 5L, "success", 100L);
|
||||
when(auditService.countSuccessVsFailure(eq("master"), isNull(), isNull())).thenReturn(successVsFailure);
|
||||
when(auditService.countSuccessVsFailure(eq("master"), any(), any())).thenReturn(successVsFailure);
|
||||
|
||||
Response response = auditResource.getSuccessCount(null, null);
|
||||
CountDTO result = auditResource.getSuccessCount(null, null);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
assertNotNull(response.getEntity());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testGetSuccessCountError() {
|
||||
when(auditService.countSuccessVsFailure(eq("master"), any(), any())).thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.getSuccessCount(null, null);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals(100L, result.getCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testExportLogsToCSV() {
|
||||
when(auditService.exportToCSV(eq("master"), isNull(), isNull())).thenReturn("csv,data");
|
||||
when(auditService.exportToCSV(eq("master"), any(), any())).thenReturn("csv,data");
|
||||
|
||||
Response response = auditResource.exportLogsToCSV(null, null);
|
||||
|
||||
assertEquals(200, response.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testExportLogsToCSVError() {
|
||||
when(auditService.exportToCSV(eq("master"), any(), any())).thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.exportLogsToCSV(null, null);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
assertEquals("csv,data", response.getEntity());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPurgeOldLogs() {
|
||||
when(auditService.purgeOldLogs(any())).thenReturn(50L);
|
||||
doNothing().when(auditService).purgeOldLogs(any());
|
||||
|
||||
Response response = auditResource.purgeOldLogs(90);
|
||||
auditResource.purgeOldLogs(90);
|
||||
|
||||
assertEquals(204, response.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testPurgeOldLogsError() {
|
||||
when(auditService.purgeOldLogs(any())).thenThrow(new RuntimeException("Error"));
|
||||
|
||||
Response response = auditResource.purgeOldLogs(90);
|
||||
|
||||
assertEquals(500, response.getStatus());
|
||||
}
|
||||
|
||||
// ============== Inner Class Tests ==============
|
||||
|
||||
@Test
|
||||
void testCountResponseClass() {
|
||||
AuditResource.CountResponse response = new AuditResource.CountResponse(42);
|
||||
assertEquals(42, response.count);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testErrorResponseClass() {
|
||||
AuditResource.ErrorResponse response = new AuditResource.ErrorResponse("Error message");
|
||||
assertEquals("Error message", response.message);
|
||||
verify(auditService).purgeOldLogs(any());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user