test #426
@@ -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