feat(audio-recommendation): 추천 섹션 매핑 서비스를 추가한다

This commit is contained in:
2026-06-23 16:12:45 +09:00
parent 3df66d98ef
commit 9c4ec03624
4 changed files with 153 additions and 1 deletions
@@ -0,0 +1,51 @@
package kr.co.vividnext.sodalive.v2.audio.recommendation.application
import kr.co.vividnext.sodalive.member.contentpreference.MemberContentPreferenceService
import kr.co.vividnext.sodalive.v2.audio.recommendation.domain.AudioRecommendationVisibility
import kr.co.vividnext.sodalive.v2.audio.recommendation.port.out.AudioRecommendationQueryPort
import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedSectionType
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test
import org.mockito.Mockito
class AudioRecommendationQueryServiceTest {
private val queryPort = Mockito.mock(AudioRecommendationQueryPort::class.java)
private val preferenceService = Mockito.mock(MemberContentPreferenceService::class.java)
private val service = AudioRecommendationQueryService(queryPort, preferenceService)
@Test
@DisplayName("비회원은 SAFE visibility를 사용한다")
fun shouldResolveSafeVisibilityForAnonymous() {
assertEquals(AudioRecommendationVisibility.SAFE, service.resolveVisibility(null))
}
@Test
@DisplayName("visibility와 섹션 조합은 신규 RecommendedSectionType으로 매핑된다")
fun shouldMapVisibilityToAudioSectionTypes() {
assertEquals(
RecommendedSectionType.NEW_AND_HOT_AUDIO_SAFE,
service.newAndHotSectionType(AudioRecommendationVisibility.SAFE)
)
assertEquals(
RecommendedSectionType.NEW_AND_HOT_AUDIO_ALL,
service.newAndHotSectionType(AudioRecommendationVisibility.ALL)
)
assertEquals(
RecommendedSectionType.MOST_COMMENTED_AUDIO_SAFE,
service.mostCommentedSectionType(AudioRecommendationVisibility.SAFE)
)
assertEquals(
RecommendedSectionType.MOST_COMMENTED_AUDIO_ALL,
service.mostCommentedSectionType(AudioRecommendationVisibility.ALL)
)
assertEquals(
RecommendedSectionType.RECOMMENDED_AUDIO_SAFE,
service.recommendedAudioSectionType(AudioRecommendationVisibility.SAFE)
)
assertEquals(
RecommendedSectionType.RECOMMENDED_AUDIO_ALL,
service.recommendedAudioSectionType(AudioRecommendationVisibility.ALL)
)
}
}