test #426

Merged
klaus merged 415 commits from test into main 2026-06-27 00:35:30 +00:00
3 changed files with 85 additions and 0 deletions
Showing only changes of commit 2c2607b6d0 - Show all commits

View File

@@ -0,0 +1,16 @@
package kr.co.vividnext.sodalive.v2.api.content.ranking.application
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.v2.api.content.ranking.dto.AudioRankingResponse
import kr.co.vividnext.sodalive.v2.content.ranking.application.AudioRankingQueryService
import kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRankingType
import org.springframework.stereotype.Component
@Component
class AudioRankingFacade(
private val queryService: AudioRankingQueryService
) {
fun getRankings(type: AudioRankingType, member: Member?): AudioRankingResponse {
return AudioRankingResponse.from(queryService.getRankings(type, member))
}
}

View File

@@ -0,0 +1,17 @@
package kr.co.vividnext.sodalive.v2.content.ranking.application
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRanking
import kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRankingType
import org.springframework.stereotype.Service
@Service
class AudioRankingQueryService {
fun getRankings(type: AudioRankingType, member: Member?): AudioRanking {
return AudioRanking(
showRankChange = false,
type = type,
items = emptyList()
)
}
}

View File

@@ -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)
}
}