feat(recommend): 추천 활동 공통 모델을 추가한다
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
package kr.co.vividnext.sodalive.v2.recommend.application
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.v2.recommend.domain.RecommendedActivityType
|
||||||
|
|
||||||
|
class HomeRecommendationQueryService {
|
||||||
|
fun resolveAudioContentActivityType(theme: String): RecommendedActivityType {
|
||||||
|
return if (theme == LIVE_REPLAY_THEME) {
|
||||||
|
RecommendedActivityType.LIVE_REPLAY
|
||||||
|
} else {
|
||||||
|
RecommendedActivityType.AUDIO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val LIVE_REPLAY_THEME = "다시듣기"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package kr.co.vividnext.sodalive.v2.recommend.domain
|
||||||
|
|
||||||
|
enum class RecommendedActivityType(val code: String) {
|
||||||
|
LIVE("LIVE"),
|
||||||
|
AUDIO("AUDIO"),
|
||||||
|
COMMUNITY("COMMUNITY"),
|
||||||
|
LIVE_REPLAY("LIVE_REPLAY")
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package kr.co.vividnext.sodalive.v2.recommend.domain
|
||||||
|
|
||||||
|
enum class RecommendedSectionType(val code: String) {
|
||||||
|
LIVE("LIVE"),
|
||||||
|
BANNER("BANNER"),
|
||||||
|
ACTIVE_CREATOR("ACTIVE_CREATOR"),
|
||||||
|
DEBUT_CREATOR("DEBUT_CREATOR"),
|
||||||
|
FIRST_AUDIO_CONTENT("FIRST_AUDIO_CONTENT"),
|
||||||
|
AI_CHARACTER("AI_CHARACTER"),
|
||||||
|
GENRE_CREATOR("GENRE_CREATOR"),
|
||||||
|
CHEER_CREATOR("CHEER_CREATOR"),
|
||||||
|
POPULAR_COMMUNITY("POPULAR_COMMUNITY")
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package kr.co.vividnext.sodalive.v2.recommend.application
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.v2.recommend.domain.RecommendedActivityType
|
||||||
|
import kr.co.vividnext.sodalive.v2.recommend.domain.RecommendedSectionType
|
||||||
|
import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
|
import org.junit.jupiter.api.DisplayName
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
|
class HomeRecommendationQueryServiceTest {
|
||||||
|
private val service = HomeRecommendationQueryService()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("다시듣기 테마 콘텐츠는 AUDIO가 아니라 LIVE_REPLAY 활동으로 분류한다")
|
||||||
|
fun shouldClassifyLiveReplayThemeContentAsLiveReplay() {
|
||||||
|
val activityType = service.resolveAudioContentActivityType(theme = "다시듣기")
|
||||||
|
|
||||||
|
assertEquals(RecommendedActivityType.LIVE_REPLAY, activityType)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("다시듣기가 아닌 테마 콘텐츠는 AUDIO 활동으로 분류한다")
|
||||||
|
fun shouldClassifyNonLiveReplayThemeContentAsAudio() {
|
||||||
|
val activityType = service.resolveAudioContentActivityType(theme = "수면")
|
||||||
|
|
||||||
|
assertEquals(RecommendedActivityType.AUDIO, activityType)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("활동 타입 enum code는 앱 다국어 처리를 위해 영문 값과 동일하게 유지한다")
|
||||||
|
fun shouldKeepRecommendedActivityTypeCodeAsEnglishName() {
|
||||||
|
assertEquals("LIVE", RecommendedActivityType.LIVE.code)
|
||||||
|
assertEquals("AUDIO", RecommendedActivityType.AUDIO.code)
|
||||||
|
assertEquals("COMMUNITY", RecommendedActivityType.COMMUNITY.code)
|
||||||
|
assertEquals("LIVE_REPLAY", RecommendedActivityType.LIVE_REPLAY.code)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("섹션 타입 enum code는 앱 다국어 처리를 위해 영문 값과 동일하게 유지한다")
|
||||||
|
fun shouldKeepRecommendedSectionTypeCodeAsEnglishName() {
|
||||||
|
assertEquals("LIVE", RecommendedSectionType.LIVE.code)
|
||||||
|
assertEquals("BANNER", RecommendedSectionType.BANNER.code)
|
||||||
|
assertEquals("ACTIVE_CREATOR", RecommendedSectionType.ACTIVE_CREATOR.code)
|
||||||
|
assertEquals("DEBUT_CREATOR", RecommendedSectionType.DEBUT_CREATOR.code)
|
||||||
|
assertEquals("FIRST_AUDIO_CONTENT", RecommendedSectionType.FIRST_AUDIO_CONTENT.code)
|
||||||
|
assertEquals("AI_CHARACTER", RecommendedSectionType.AI_CHARACTER.code)
|
||||||
|
assertEquals("GENRE_CREATOR", RecommendedSectionType.GENRE_CREATOR.code)
|
||||||
|
assertEquals("CHEER_CREATOR", RecommendedSectionType.CHEER_CREATOR.code)
|
||||||
|
assertEquals("POPULAR_COMMUNITY", RecommendedSectionType.POPULAR_COMMUNITY.code)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user