Skip to content

Commit da8e011

Browse files
committed
DTS-50661: Review comment unit test fixes
Change-log: Batch processing ai-recommendation for performance improvement.
1 parent 5b2f1dd commit da8e011

File tree

3 files changed

+18
-21
lines changed

3 files changed

+18
-21
lines changed

ai-data-processor/src/test/java/com/publicissapient/kpidashboard/job/recommendationcalculation/processor/ProjectItemProcessorTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ void process_ServiceException_ReturnsNullAndLogsTrace() throws Exception {
177177

178178
// Assert
179179
assertNull(result);
180-
verify(processorExecutionTraceLogService, times(1)).upsertTraceLog(eq("Recommendation"), eq("project-1"),
180+
verify(processorExecutionTraceLogService, times(1)).upsertTraceLog(eq("recommendation-calculation"), eq("project-1"),
181181
eq(false), anyString());
182182
}
183183

@@ -194,7 +194,7 @@ void process_Exception_CapturesDetailedErrorMessage() throws Exception {
194194

195195
// Assert
196196
ArgumentCaptor<String> errorMessageCaptor = ArgumentCaptor.forClass(String.class);
197-
verify(processorExecutionTraceLogService).upsertTraceLog(eq("Recommendation"), eq("project-1"), eq(false),
197+
verify(processorExecutionTraceLogService).upsertTraceLog(eq("recommendation-calculation"), eq("project-1"), eq(false),
198198
errorMessageCaptor.capture());
199199

200200
String errorMessage = errorMessageCaptor.getValue();
@@ -346,7 +346,7 @@ void process_Failure_LogsWithCorrectJobName() throws Exception {
346346
processor.process(projectInput);
347347

348348
// Assert
349-
verify(processorExecutionTraceLogService).upsertTraceLog(eq("Recommendation"), anyString(), eq(false),
349+
verify(processorExecutionTraceLogService).upsertTraceLog(eq("recommendation-calculation"), anyString(), eq(false),
350350
anyString());
351351
}
352352

ai-data-processor/src/test/java/com/publicissapient/kpidashboard/job/recommendationcalculation/service/RecommendationCalculationServiceTest.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,8 @@ void calculateRecommendationsForProject_ParsingFails_ThrowsIllegalStateException
223223
}
224224

225225
@Test
226-
@DisplayName("Should wrap AI Gateway exception in IllegalStateException")
227-
void calculateRecommendationsForProject_AiGatewayFails_WrapsException() {
226+
@DisplayName("Should throw RuntimeException when AI Gateway fails")
227+
void calculateRecommendationsForProject_AiGatewayFails_ThrowsRuntimeException() {
228228
// Arrange
229229
RuntimeException aiException = new RuntimeException("AI Gateway connection failed");
230230
when(recommendationCalculationConfig.getCalculationConfig()).thenReturn(testCalculationConfig);
@@ -233,28 +233,25 @@ void calculateRecommendationsForProject_AiGatewayFails_WrapsException() {
233233
when(aiGatewayClient.generate(any())).thenThrow(aiException);
234234

235235
// Act & Assert
236-
IllegalStateException exception = assertThrows(IllegalStateException.class,
236+
RuntimeException exception = assertThrows(RuntimeException.class,
237237
() -> recommendationCalculationService.calculateRecommendationsForProject(testProjectInput));
238238

239-
assertTrue(exception.getMessage().contains("Failed to calculate recommendations"));
240-
assertTrue(exception.getMessage().contains(testProjectInput.nodeId()));
241-
assertEquals(aiException, exception.getCause());
239+
assertEquals("AI Gateway connection failed", exception.getMessage());
242240
}
243241

244242
@Test
245-
@DisplayName("Should wrap KPI extraction exception in IllegalStateException")
246-
void calculateRecommendationsForProject_KpiExtractionFails_WrapsException() {
243+
@DisplayName("Should throw RuntimeException when KPI extraction fails")
244+
void calculateRecommendationsForProject_KpiExtractionFails_ThrowsRuntimeException() {
247245
// Arrange
248246
RuntimeException kpiException = new RuntimeException("KPI data fetch failed");
249247
when(recommendationCalculationConfig.getCalculationConfig()).thenReturn(testCalculationConfig);
250248
when(kpiDataExtractionService.fetchKpiDataForProject(testProjectInput)).thenThrow(kpiException);
251249

252250
// Act & Assert
253-
IllegalStateException exception = assertThrows(IllegalStateException.class,
251+
RuntimeException exception = assertThrows(RuntimeException.class,
254252
() -> recommendationCalculationService.calculateRecommendationsForProject(testProjectInput));
255253

256-
assertTrue(exception.getMessage().contains("Failed to calculate recommendations"));
257-
assertEquals(kpiException, exception.getCause());
254+
assertEquals("KPI data fetch failed", exception.getMessage());
258255

259256
verify(promptService, never()).getKpiRecommendationPrompt(anyMap(), any());
260257
verify(aiGatewayClient, never()).generate(any());
@@ -276,7 +273,7 @@ void calculateRecommendationsForProject_MissingTTLConfig_ThrowsIllegalStateExcep
276273
IllegalStateException exception = assertThrows(IllegalStateException.class,
277274
() -> recommendationCalculationService.calculateRecommendationsForProject(testProjectInput));
278275

279-
assertFalse(exception.getMessage().contains("TTL configuration not found"));
276+
assertTrue(exception.getMessage().contains("TTL configuration"));
280277
}
281278

282279
@Test

ai-data-processor/src/test/java/com/publicissapient/kpidashboard/job/recommendationcalculation/writer/ProjectItemWriterTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ void write_MultipleRecommendations_LogsTraceForEach() {
222222
writer.write(chunk);
223223

224224
// Assert
225-
verify(processorExecutionTraceLogService, times(3)).upsertTraceLog(eq("Recommendation"), anyString(),
225+
verify(processorExecutionTraceLogService, times(3)).upsertTraceLog(eq("recommendation-calculation"), anyString(),
226226
eq(true), eq(null));
227227
}
228228

@@ -236,9 +236,9 @@ void write_Recommendations_LogsWithCorrectProjectIds() {
236236
writer.write(chunk);
237237

238238
// Assert
239-
verify(processorExecutionTraceLogService).upsertTraceLog(eq("Recommendation"), eq("project-1"), eq(true),
239+
verify(processorExecutionTraceLogService).upsertTraceLog(eq("recommendation-calculation"), eq("project-1"), eq(true),
240240
eq(null));
241-
verify(processorExecutionTraceLogService).upsertTraceLog(eq("Recommendation"), eq("project-2"), eq(true),
241+
verify(processorExecutionTraceLogService).upsertTraceLog(eq("recommendation-calculation"), eq("project-2"), eq(true),
242242
eq(null));
243243
}
244244

@@ -266,7 +266,7 @@ void write_ChunkWithNulls_LogsOnlyForNonNulls() {
266266
writer.write(chunk);
267267

268268
// Assert
269-
verify(processorExecutionTraceLogService, times(2)).upsertTraceLog(eq("Recommendation"), anyString(),
269+
verify(processorExecutionTraceLogService, times(2)).upsertTraceLog(eq("recommendation-calculation"), anyString(),
270270
eq(true), eq(null));
271271
}
272272

@@ -314,7 +314,7 @@ void write_NullProjectId_HandlesGracefully() {
314314

315315
// Assert
316316
verify(recommendationRepository, times(1)).saveAll(anyList());
317-
verify(processorExecutionTraceLogService).upsertTraceLog(eq("Recommendation"), eq(null), eq(true),
317+
verify(processorExecutionTraceLogService).upsertTraceLog(eq("recommendation-calculation"), eq(null), eq(true),
318318
eq(null));
319319
}
320320

@@ -331,7 +331,7 @@ void write_EmptyProjectId_HandlesGracefully() {
331331

332332
// Assert
333333
verify(recommendationRepository, times(1)).saveAll(anyList());
334-
verify(processorExecutionTraceLogService).upsertTraceLog(eq("Recommendation"), eq(""), eq(true), eq(null));
334+
verify(processorExecutionTraceLogService).upsertTraceLog(eq("recommendation-calculation"), eq(""), eq(true), eq(null));
335335
}
336336

337337
@Test

0 commit comments

Comments
 (0)