feat(common): 크리에이터 활동 타입을 공용화한다

This commit is contained in:
2026-06-13 16:21:34 +09:00
parent 92fdd6ab54
commit 55b4d9bc8d
2 changed files with 55 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
package kr.co.vividnext.sodalive.v2.common
import androidx.annotation.StringRes
import com.google.gson.annotations.SerializedName
import kr.co.vividnext.sodalive.R
enum class CreatorActivityType(
val code: String,
@StringRes val labelResId: Int
) {
@SerializedName("LIVE")
Live("LIVE", R.string.home_recommendation_activity_live),
@SerializedName("LIVE_REPLAY")
LiveReplay("LIVE_REPLAY", R.string.home_recommendation_activity_live),
@SerializedName("AUDIO")
Audio("AUDIO", R.string.home_recommendation_activity_audio),
@SerializedName("COMMUNITY")
Community("COMMUNITY", R.string.home_recommendation_activity_community);
companion object {
fun from(code: String): CreatorActivityType? = entries.firstOrNull { it.code.equals(code, ignoreCase = true) }
}
}

View File

@@ -0,0 +1,29 @@
package kr.co.vividnext.sodalive.v2.common
import kr.co.vividnext.sodalive.R
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Test
class CreatorActivityTypeTest {
@Test
fun `known activity codes parse ignoring case`() {
assertEquals(CreatorActivityType.Live, CreatorActivityType.from("LIVE"))
assertEquals(CreatorActivityType.LiveReplay, CreatorActivityType.from("live_replay"))
assertEquals(CreatorActivityType.Audio, CreatorActivityType.from("Audio"))
assertEquals(CreatorActivityType.Community, CreatorActivityType.from("community"))
}
@Test
fun `activity type label resources match home recommendation labels`() {
assertEquals(R.string.home_recommendation_activity_live, CreatorActivityType.Live.labelResId)
assertEquals(R.string.home_recommendation_activity_live, CreatorActivityType.LiveReplay.labelResId)
assertEquals(R.string.home_recommendation_activity_audio, CreatorActivityType.Audio.labelResId)
assertEquals(R.string.home_recommendation_activity_community, CreatorActivityType.Community.labelResId)
}
@Test
fun `unknown activity code returns null`() {
assertNull(CreatorActivityType.from("UNKNOWN"))
}
}