fix(original-series-calculate): 소지 유저별 정산 엑셀 시트 생성을 정리한다

This commit is contained in:
2026-04-21 19:16:34 +09:00
parent 72f49f2471
commit 49b1aa8f0c
2 changed files with 33 additions and 16 deletions

View File

@@ -25,13 +25,13 @@ class AdminOriginalSeriesCalculateServiceTest {
@Test
@DisplayName("오리지널 시리즈 소지 유저 목록 조회는 리포지토리 결과를 반환한다")
fun shouldReturnOriginalSeriesOwners() {
val owners = listOf(GetAdminOriginalSeriesOwnerResponse(memberId = 1L, nickname = "owner-a"))
val owners = listOf(GetAdminOriginalSeriesOwnerResponse(creatorId = 1L, nickname = "owner-a"))
Mockito.`when`(repository.getOriginalSeriesOwners()).thenReturn(owners)
val result = service.getOriginalSeriesOwners()
assertEquals(1, result.size)
assertEquals(1L, result[0].memberId)
assertEquals(1L, result[0].creatorId)
Mockito.verify(repository).getOriginalSeriesOwners()
}
@@ -67,7 +67,7 @@ class AdminOriginalSeriesCalculateServiceTest {
val result = service.getSettlementDetails(
startDateStr = "2026-04-01",
endDateStr = "2026-04-30",
memberId = 9L,
creatorId = 9L,
offset = 0L,
limit = 20L
)
@@ -96,8 +96,8 @@ class AdminOriginalSeriesCalculateServiceTest {
@DisplayName("정산 엑셀 다운로드는 소지 유저별 시트를 생성한다")
fun shouldCreateOneSheetPerOwnerForExcel() {
val owners = listOf(
GetAdminOriginalSeriesOwnerResponse(memberId = 1L, nickname = "owner-a"),
GetAdminOriginalSeriesOwnerResponse(memberId = 2L, nickname = "owner-b")
GetAdminOriginalSeriesOwnerResponse(creatorId = 1L, nickname = "owner-a"),
GetAdminOriginalSeriesOwnerResponse(creatorId = 2L, nickname = "owner-b")
)
Mockito.`when`(repository.getOriginalSeriesOwners()).thenReturn(owners)
Mockito.`when`(
@@ -147,8 +147,8 @@ class AdminOriginalSeriesCalculateServiceTest {
XSSFWorkbook(ByteArrayInputStream(outputStream.toByteArray())).use { workbook ->
assertEquals(2, workbook.numberOfSheets)
assertEquals("1_owner-a", workbook.getSheetAt(0).sheetName)
assertEquals("2_owner-b", workbook.getSheetAt(1).sheetName)
assertEquals("owner-a", workbook.getSheetAt(0).sheetName)
assertEquals("owner-b", workbook.getSheetAt(1).sheetName)
assertEquals("시리즈 제목", workbook.getSheetAt(0).getRow(0).getCell(0).stringCellValue)
assertEquals("오리지널 시리즈", workbook.getSheetAt(0).getRow(1).getCell(0).stringCellValue)
assertEquals("시리즈 제목", workbook.getSheetAt(1).getRow(0).getCell(0).stringCellValue)
@@ -164,4 +164,23 @@ class AdminOriginalSeriesCalculateServiceTest {
1L
)
}
@Test
@DisplayName("소지 유저가 없으면 엑셀에 시트를 생성하지 않는다")
fun shouldCreateWorkbookWithoutSheetsWhenNoOwners() {
Mockito.`when`(repository.getOriginalSeriesOwners()).thenReturn(emptyList())
val response = service.downloadSettlementDetailsExcel(
startDateStr = "2026-04-01",
endDateStr = "2026-04-30"
)
val outputStream = ByteArrayOutputStream()
response.writeTo(outputStream)
assertTrue(outputStream.toByteArray().isNotEmpty())
XSSFWorkbook(ByteArrayInputStream(outputStream.toByteArray())).use { workbook ->
assertEquals(0, workbook.numberOfSheets)
}
}
}