feat(common): 크리에이터 활동 타입을 공용화한다
This commit is contained in:
@@ -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) }
|
||||
}
|
||||
}
|
||||
@@ -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"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user