feat(creator-channel): 후원 탭 legacy 랭킹 adapter를 추가한다
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
package kr.co.vividnext.sodalive.v2.creator.channel.donation.adapter.out.legacy
|
||||
|
||||
import kr.co.vividnext.sodalive.explorer.profile.CreatorDonationRankingService
|
||||
import kr.co.vividnext.sodalive.member.DonationRankingPeriod
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.donation.port.out.CreatorChannelDonationRankingPort
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.donation.port.out.CreatorChannelDonationRankingRecord
|
||||
import org.springframework.stereotype.Component
|
||||
|
||||
@Component
|
||||
class LegacyCreatorChannelDonationRankingAdapter(
|
||||
private val creatorDonationRankingService: CreatorDonationRankingService
|
||||
) : CreatorChannelDonationRankingPort {
|
||||
override fun findTopRankings(
|
||||
creatorId: Long,
|
||||
period: DonationRankingPeriod,
|
||||
withDonationCan: Boolean
|
||||
): List<CreatorChannelDonationRankingRecord> {
|
||||
return creatorDonationRankingService.getMemberDonationRanking(
|
||||
creatorId = creatorId,
|
||||
offset = 0L,
|
||||
limit = 8L,
|
||||
withDonationCan = withDonationCan,
|
||||
period = period
|
||||
).map {
|
||||
CreatorChannelDonationRankingRecord(
|
||||
userId = it.userId,
|
||||
nickname = it.nickname,
|
||||
profileImage = it.profileImage,
|
||||
donationCan = it.donationCan
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package kr.co.vividnext.sodalive.v2.creator.channel.donation.adapter.out.legacy
|
||||
|
||||
import kr.co.vividnext.sodalive.explorer.MemberDonationRankingResponse
|
||||
import kr.co.vividnext.sodalive.explorer.profile.CreatorDonationRankingService
|
||||
import kr.co.vividnext.sodalive.member.DonationRankingPeriod
|
||||
import org.junit.jupiter.api.Assertions.assertEquals
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.mockito.Mockito
|
||||
|
||||
class LegacyCreatorChannelDonationRankingAdapterTest {
|
||||
private val creatorDonationRankingService = Mockito.mock(CreatorDonationRankingService::class.java)
|
||||
private val adapter = LegacyCreatorChannelDonationRankingAdapter(creatorDonationRankingService)
|
||||
|
||||
@Test
|
||||
@DisplayName("누적 기간 후원 랭킹 Top 8을 legacy service에 위임한다")
|
||||
fun shouldDelegateCumulativeRankingRequestToLegacyService() {
|
||||
Mockito.`when`(
|
||||
creatorDonationRankingService.getMemberDonationRanking(
|
||||
creatorId = 10L,
|
||||
offset = 0L,
|
||||
limit = 8L,
|
||||
withDonationCan = false,
|
||||
period = DonationRankingPeriod.CUMULATIVE
|
||||
)
|
||||
).thenReturn(emptyList())
|
||||
|
||||
val rankings = adapter.findTopRankings(
|
||||
creatorId = 10L,
|
||||
period = DonationRankingPeriod.CUMULATIVE,
|
||||
withDonationCan = false
|
||||
)
|
||||
|
||||
assertEquals(emptyList<Any>(), rankings)
|
||||
Mockito.verify(creatorDonationRankingService).getMemberDonationRanking(
|
||||
creatorId = 10L,
|
||||
offset = 0L,
|
||||
limit = 8L,
|
||||
withDonationCan = false,
|
||||
period = DonationRankingPeriod.CUMULATIVE
|
||||
)
|
||||
Mockito.verifyNoMoreInteractions(creatorDonationRankingService)
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("주간 기간 후원 랭킹 Top 8을 legacy service에 위임하고 필드를 그대로 매핑한다")
|
||||
fun shouldDelegateWeeklyRankingRequestAndMapFields() {
|
||||
Mockito.`when`(
|
||||
creatorDonationRankingService.getMemberDonationRanking(
|
||||
creatorId = 20L,
|
||||
offset = 0L,
|
||||
limit = 8L,
|
||||
withDonationCan = true,
|
||||
period = DonationRankingPeriod.WEEKLY
|
||||
)
|
||||
).thenReturn(
|
||||
listOf(
|
||||
MemberDonationRankingResponse(
|
||||
userId = 30L,
|
||||
nickname = "donor",
|
||||
profileImage = "https://cdn.test/profile.png",
|
||||
donationCan = 1234
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
val rankings = adapter.findTopRankings(
|
||||
creatorId = 20L,
|
||||
period = DonationRankingPeriod.WEEKLY,
|
||||
withDonationCan = true
|
||||
)
|
||||
|
||||
assertEquals(1, rankings.size)
|
||||
assertEquals(30L, rankings[0].userId)
|
||||
assertEquals("donor", rankings[0].nickname)
|
||||
assertEquals("https://cdn.test/profile.png", rankings[0].profileImage)
|
||||
assertEquals(1234, rankings[0].donationCan)
|
||||
Mockito.verify(creatorDonationRankingService).getMemberDonationRanking(
|
||||
creatorId = 20L,
|
||||
offset = 0L,
|
||||
limit = 8L,
|
||||
withDonationCan = true,
|
||||
period = DonationRankingPeriod.WEEKLY
|
||||
)
|
||||
Mockito.verifyNoMoreInteractions(creatorDonationRankingService)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user