feat(content-ranking): 오디오 랭킹 facade를 추가한다

This commit is contained in:
2026-06-24 12:35:26 +09:00
parent c9d7399f0e
commit 2c2607b6d0
3 changed files with 85 additions and 0 deletions
@@ -0,0 +1,52 @@
package kr.co.vividnext.sodalive.v2.api.content.ranking.application
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.v2.content.ranking.application.AudioRankingQueryService
import kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRanking
import kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRankingItem
import kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRankingType
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test
import org.mockito.Mockito
class AudioRankingFacadeTest {
private val queryService = Mockito.mock(AudioRankingQueryService::class.java)
private val facade = AudioRankingFacade(queryService)
@Test
@DisplayName("facade는 랭킹 타입과 회원을 쿼리 서비스에 그대로 전달하고 공개 응답으로 변환한다")
fun shouldDelegateTypeAndMemberAndConvertDomainRankingToResponse() {
val member = Mockito.mock(Member::class.java)
val ranking = AudioRanking(
showRankChange = true,
type = AudioRankingType.RISING,
items = listOf(
AudioRankingItem(
contentId = 1L,
title = "audio",
creatorNickname = "creator",
rank = 1,
rankChange = 2,
isNew = false,
coverImageUrl = "https://cdn.test/audio.png"
)
)
)
Mockito.doReturn(ranking).`when`(queryService).getRankings(AudioRankingType.RISING, member)
val response = facade.getRankings(AudioRankingType.RISING, member)
Mockito.verify(queryService).getRankings(AudioRankingType.RISING, member)
assertEquals(true, response.showRankChange)
assertEquals(AudioRankingType.RISING, response.type)
assertEquals(1, response.items.size)
assertEquals(1L, response.items[0].contentId)
assertEquals("audio", response.items[0].title)
assertEquals("creator", response.items[0].creatorNickname)
assertEquals(1, response.items[0].rank)
assertEquals(2, response.items[0].rankChange)
assertEquals(false, response.items[0].isNew)
assertEquals("https://cdn.test/audio.png", response.items[0].coverImageUrl)
}
}