From 5098994f4bb9070794858c45526cab17e92e3ca8 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 21 Apr 2026 19:15:55 +0900 Subject: [PATCH] =?UTF-8?q?refactor(original-series-calculate):=20?= =?UTF-8?q?=EC=A0=95=EC=82=B0=20=EC=A1=B0=ED=9A=8C=20=ED=8C=8C=EB=9D=BC?= =?UTF-8?q?=EB=AF=B8=ED=84=B0=EB=A5=BC=20snake=5Fcase=EB=A1=9C=20=ED=86=B5?= =?UTF-8?q?=EC=9D=BC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdminOriginalSeriesCalculateController.kt | 12 ++--- ...inOriginalSeriesCalculateControllerTest.kt | 44 +++++++++++++++++-- 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/originalSeries/AdminOriginalSeriesCalculateController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/originalSeries/AdminOriginalSeriesCalculateController.kt index 4f5f826c..3939430b 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/originalSeries/AdminOriginalSeriesCalculateController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/originalSeries/AdminOriginalSeriesCalculateController.kt @@ -25,15 +25,15 @@ class AdminOriginalSeriesCalculateController( @GetMapping("/original-series/settlement-details") fun getSettlementDetails( - @RequestParam("startDate") startDateStr: String, - @RequestParam("endDate") endDateStr: String, - @RequestParam memberId: Long, + @RequestParam("start_date") startDateStr: String, + @RequestParam("end_date") endDateStr: String, + @RequestParam("creator_id") creatorId: Long, pageable: Pageable ) = ApiResponse.ok( service.getSettlementDetails( startDateStr = startDateStr, endDateStr = endDateStr, - memberId = memberId, + creatorId = creatorId, offset = pageable.offset, limit = pageable.pageSize.toLong() ) @@ -41,8 +41,8 @@ class AdminOriginalSeriesCalculateController( @GetMapping("/original-series/settlement-details/excel") fun downloadSettlementDetailsExcel( - @RequestParam("startDate") startDateStr: String, - @RequestParam("endDate") endDateStr: String + @RequestParam("start_date") startDateStr: String, + @RequestParam("end_date") endDateStr: String ): ResponseEntity = createExcelResponse( fileName = "original-series-settlement-details.xlsx", response = service.downloadSettlementDetailsExcel(startDateStr, endDateStr) diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/admin/calculate/originalSeries/AdminOriginalSeriesCalculateControllerTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/admin/calculate/originalSeries/AdminOriginalSeriesCalculateControllerTest.kt index e4b667eb..58eadce1 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/admin/calculate/originalSeries/AdminOriginalSeriesCalculateControllerTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/admin/calculate/originalSeries/AdminOriginalSeriesCalculateControllerTest.kt @@ -23,13 +23,14 @@ class AdminOriginalSeriesCalculateControllerTest { @Test @DisplayName("관리자 컨트롤러는 오리지널 시리즈 소지 유저 목록을 반환한다") fun shouldReturnOriginalSeriesOwners() { - val owners = listOf(GetAdminOriginalSeriesOwnerResponse(memberId = 1L, nickname = "owner-a")) + val owners = listOf(GetAdminOriginalSeriesOwnerResponse(creatorId = 1L, nickname = "owner-a")) Mockito.`when`(service.getOriginalSeriesOwners()).thenReturn(owners) val response = controller.getOriginalSeriesOwners() assertEquals(true, response.success) assertEquals(1, response.data!!.size) + assertEquals(1L, response.data!![0].creatorId) assertEquals("owner-a", response.data!![0].nickname) Mockito.verify(service).getOriginalSeriesOwners() } @@ -55,7 +56,7 @@ class AdminOriginalSeriesCalculateControllerTest { service.getSettlementDetails( startDateStr = "2026-04-01", endDateStr = "2026-04-30", - memberId = 5L, + creatorId = 5L, offset = 10L, limit = 10L ) @@ -64,7 +65,7 @@ class AdminOriginalSeriesCalculateControllerTest { val response = controller.getSettlementDetails( startDateStr = "2026-04-01", endDateStr = "2026-04-30", - memberId = 5L, + creatorId = 5L, pageable = PageRequest.of(1, 10) ) @@ -74,12 +75,47 @@ class AdminOriginalSeriesCalculateControllerTest { Mockito.verify(service).getSettlementDetails( startDateStr = "2026-04-01", endDateStr = "2026-04-30", - memberId = 5L, + creatorId = 5L, offset = 10L, limit = 10L ) } + @Test + @DisplayName("정산 내역 조회 API는 snake_case 파라미터를 사용한다") + fun shouldUseSnakeCaseQueryParameterNames() { + val method = AdminOriginalSeriesCalculateController::class.java + .getDeclaredMethod( + "getSettlementDetails", + String::class.java, + String::class.java, + java.lang.Long.TYPE, + org.springframework.data.domain.Pageable::class.java + ) + val parameters = method.parameters + val requestParamClass = org.springframework.web.bind.annotation.RequestParam::class.java + + assertEquals("start_date", parameters[0].getAnnotation(requestParamClass).value) + assertEquals("end_date", parameters[1].getAnnotation(requestParamClass).value) + assertEquals("creator_id", parameters[2].getAnnotation(requestParamClass).value) + } + + @Test + @DisplayName("정산 엑셀 다운로드 API는 snake_case 파라미터를 사용한다") + fun shouldUseSnakeCaseQueryParameterNamesForExcel() { + val method = AdminOriginalSeriesCalculateController::class.java + .getDeclaredMethod( + "downloadSettlementDetailsExcel", + String::class.java, + String::class.java + ) + val parameters = method.parameters + val requestParamClass = org.springframework.web.bind.annotation.RequestParam::class.java + + assertEquals("start_date", parameters[0].getAnnotation(requestParamClass).value) + assertEquals("end_date", parameters[1].getAnnotation(requestParamClass).value) + } + @Test @DisplayName("관리자 컨트롤러는 오리지널 시리즈 정산 엑셀을 다운로드한다") fun shouldDownloadOriginalSeriesSettlementExcel() {