fix(agent-ratio): 정산 비율 목록을 current history 구조로 정리한다
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package kr.co.vividnext.sodalive.admin.partner.agent.ratio
|
||||
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.CreateAgentSettlementRatioRequest
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.GetAgentSettlementRatioHistoryItem
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.GetAgentSettlementRatioItem
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.GetAgentSettlementRatioResponse
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
@@ -60,9 +61,18 @@ class AdminAgentSettlementRatioControllerTest {
|
||||
GetAgentSettlementRatioItem(
|
||||
memberId = 31L,
|
||||
nickname = "agent-a",
|
||||
settlementRatio = 15,
|
||||
effectiveFrom = LocalDateTime.of(2026, 4, 9, 10, 0),
|
||||
effectiveTo = null
|
||||
current = GetAgentSettlementRatioHistoryItem(
|
||||
settlementRatio = 15,
|
||||
effectiveFrom = LocalDateTime.of(2026, 4, 9, 10, 0),
|
||||
effectiveTo = null
|
||||
),
|
||||
history = listOf(
|
||||
GetAgentSettlementRatioHistoryItem(
|
||||
settlementRatio = 10,
|
||||
effectiveFrom = LocalDateTime.of(2026, 4, 1, 0, 0),
|
||||
effectiveTo = LocalDateTime.of(2026, 4, 9, 10, 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -73,9 +83,10 @@ class AdminAgentSettlementRatioControllerTest {
|
||||
|
||||
assertEquals(true, response.success)
|
||||
assertEquals(1, response.data!!.totalCount)
|
||||
assertEquals(15, response.data!!.items[0].settlementRatio)
|
||||
assertEquals(LocalDateTime.of(2026, 4, 9, 10, 0), response.data!!.items[0].effectiveFrom)
|
||||
assertEquals(null, response.data!!.items[0].effectiveTo)
|
||||
assertEquals(15, response.data!!.items[0].current!!.settlementRatio)
|
||||
assertEquals(LocalDateTime.of(2026, 4, 9, 10, 0), response.data!!.items[0].current!!.effectiveFrom)
|
||||
assertEquals(null, response.data!!.items[0].current!!.effectiveTo)
|
||||
assertEquals(1, response.data!!.items[0].history.size)
|
||||
Mockito.verify(service).getAgentSettlementRatio(offset = 20L, limit = 20L)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,9 @@ import kr.co.vividnext.sodalive.member.MemberRole
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.AgentSettlementRatio
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.AgentSettlementRatioRepository
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.CreateAgentSettlementRatioRequest
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.GetAgentSettlementRatioHistoryItem
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.GetAgentSettlementRatioItem
|
||||
import kr.co.vividnext.sodalive.partner.agent.ratio.GetAgentSettlementRatioRow
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.Assertions.assertThrows
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
@@ -345,24 +347,67 @@ class AgentSettlementRatioServiceTest {
|
||||
@DisplayName("관리자는 에이전트 정산 비율 목록을 조회할 수 있다")
|
||||
fun shouldGetAgentSettlementRatioList() {
|
||||
val items = listOf(
|
||||
GetAgentSettlementRatioItem(
|
||||
GetAgentSettlementRatioRow(
|
||||
memberId = 31L,
|
||||
nickname = "agent-a",
|
||||
settlementRatio = 15,
|
||||
effectiveFrom = LocalDateTime.of(2026, 4, 9, 10, 0),
|
||||
effectiveTo = null
|
||||
),
|
||||
GetAgentSettlementRatioRow(
|
||||
memberId = 31L,
|
||||
nickname = "agent-a",
|
||||
settlementRatio = 10,
|
||||
effectiveFrom = LocalDateTime.of(2026, 4, 1, 0, 0),
|
||||
effectiveTo = LocalDateTime.of(2026, 4, 9, 10, 0)
|
||||
),
|
||||
GetAgentSettlementRatioRow(
|
||||
memberId = 21L,
|
||||
nickname = "agent-b",
|
||||
settlementRatio = 12,
|
||||
effectiveFrom = LocalDateTime.of(2026, 3, 1, 0, 0),
|
||||
effectiveTo = LocalDateTime.of(2026, 3, 15, 0, 0)
|
||||
)
|
||||
)
|
||||
|
||||
Mockito.`when`(repository.getAgentSettlementRatioTotalCount()).thenReturn(1)
|
||||
Mockito.`when`(repository.getAgentSettlementRatioTotalCount()).thenReturn(2)
|
||||
Mockito.`when`(repository.getAgentSettlementRatio(offset = 20L, limit = 20L)).thenReturn(items)
|
||||
|
||||
val response = service.getAgentSettlementRatio(offset = 20L, limit = 20L)
|
||||
|
||||
assertEquals(1, response.totalCount)
|
||||
assertEquals(1, response.items.size)
|
||||
assertEquals(15, response.items[0].settlementRatio)
|
||||
assertEquals(LocalDateTime.of(2026, 4, 9, 10, 0), response.items[0].effectiveFrom)
|
||||
assertEquals(null, response.items[0].effectiveTo)
|
||||
assertEquals(2, response.totalCount)
|
||||
assertEquals(2, response.items.size)
|
||||
assertEquals(
|
||||
GetAgentSettlementRatioItem(
|
||||
memberId = 31L,
|
||||
nickname = "agent-a",
|
||||
current = GetAgentSettlementRatioHistoryItem(
|
||||
settlementRatio = 15,
|
||||
effectiveFrom = LocalDateTime.of(2026, 4, 9, 10, 0),
|
||||
effectiveTo = null
|
||||
),
|
||||
history = listOf(
|
||||
GetAgentSettlementRatioHistoryItem(
|
||||
settlementRatio = 10,
|
||||
effectiveFrom = LocalDateTime.of(2026, 4, 1, 0, 0),
|
||||
effectiveTo = LocalDateTime.of(2026, 4, 9, 10, 0)
|
||||
)
|
||||
)
|
||||
),
|
||||
response.items[0]
|
||||
)
|
||||
assertEquals(21L, response.items[1].memberId)
|
||||
assertEquals("agent-b", response.items[1].nickname)
|
||||
assertEquals(null, response.items[1].current)
|
||||
assertEquals(
|
||||
listOf(
|
||||
GetAgentSettlementRatioHistoryItem(
|
||||
settlementRatio = 12,
|
||||
effectiveFrom = LocalDateTime.of(2026, 3, 1, 0, 0),
|
||||
effectiveTo = LocalDateTime.of(2026, 3, 15, 0, 0)
|
||||
)
|
||||
),
|
||||
response.items[1].history
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user