package com.superbiz.agent.controller; import com.superbiz.agent.dto.FeedbackRequest; import com.superbiz.agent.dto.FeedbackResponse; import com.superbiz.agent.service.FeedbackService; import org.junit.jupiter.api.Test; import org.springframework.http.ResponseEntity; import org.springframework.test.util.ReflectionTestUtils; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; class FeedbackControllerTest { @Test void submitFeedbackPassesRunIdToService() { FeedbackController controller = new FeedbackController(); FeedbackService feedbackService = mock(FeedbackService.class); ReflectionTestUtils.setField(controller, "feedbackService", feedbackService); FeedbackRequest request = new FeedbackRequest(); request.setSessionId("session-1"); request.setRunId("run-1"); request.setFeedback("useful"); when(feedbackService.submitFeedback("session-1", "run-1", "useful")) .thenReturn(FeedbackResponse.builder() .success(true) .runId("run-1") .fallbackToLatestRun(false) .build()); ResponseEntity response = controller.submitFeedback(request); assertEquals(200, response.getStatusCode().value()); assertTrue(response.getBody().isSuccess()); assertEquals("run-1", response.getBody().getRunId()); verify(feedbackService).submitFeedback("session-1", "run-1", "useful"); } }