feat(content): 전체 탭 요일 매핑을 추가한다
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package kr.co.vividnext.sodalive.v2.main.content.model
|
||||
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.home.SeriesPublishedDaysOfWeek
|
||||
import java.util.Calendar
|
||||
|
||||
val contentAllDayOfWeekOptions: List<SeriesPublishedDaysOfWeek> = listOf(
|
||||
SeriesPublishedDaysOfWeek.MON,
|
||||
SeriesPublishedDaysOfWeek.TUE,
|
||||
SeriesPublishedDaysOfWeek.WED,
|
||||
SeriesPublishedDaysOfWeek.THU,
|
||||
SeriesPublishedDaysOfWeek.FRI,
|
||||
SeriesPublishedDaysOfWeek.SAT,
|
||||
SeriesPublishedDaysOfWeek.SUN,
|
||||
SeriesPublishedDaysOfWeek.RANDOM
|
||||
)
|
||||
|
||||
fun currentDeviceDayOfWeek(calendar: Calendar = Calendar.getInstance()): SeriesPublishedDaysOfWeek {
|
||||
return when (calendar.get(Calendar.DAY_OF_WEEK)) {
|
||||
Calendar.MONDAY -> SeriesPublishedDaysOfWeek.MON
|
||||
Calendar.TUESDAY -> SeriesPublishedDaysOfWeek.TUE
|
||||
Calendar.WEDNESDAY -> SeriesPublishedDaysOfWeek.WED
|
||||
Calendar.THURSDAY -> SeriesPublishedDaysOfWeek.THU
|
||||
Calendar.FRIDAY -> SeriesPublishedDaysOfWeek.FRI
|
||||
Calendar.SATURDAY -> SeriesPublishedDaysOfWeek.SAT
|
||||
Calendar.SUNDAY -> SeriesPublishedDaysOfWeek.SUN
|
||||
else -> SeriesPublishedDaysOfWeek.RANDOM
|
||||
}
|
||||
}
|
||||
|
||||
fun SeriesPublishedDaysOfWeek.toContentAllDayLabelResId(): Int = when (this) {
|
||||
SeriesPublishedDaysOfWeek.MON -> R.string.day_mon_short
|
||||
SeriesPublishedDaysOfWeek.TUE -> R.string.day_tue_short
|
||||
SeriesPublishedDaysOfWeek.WED -> R.string.day_wed_short
|
||||
SeriesPublishedDaysOfWeek.THU -> R.string.day_thu_short
|
||||
SeriesPublishedDaysOfWeek.FRI -> R.string.day_fri_short
|
||||
SeriesPublishedDaysOfWeek.SAT -> R.string.day_sat_short
|
||||
SeriesPublishedDaysOfWeek.SUN -> R.string.day_sun_short
|
||||
SeriesPublishedDaysOfWeek.RANDOM -> R.string.screen_content_all_day_other
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package kr.co.vividnext.sodalive.v2.main.content
|
||||
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.home.SeriesPublishedDaysOfWeek
|
||||
import kr.co.vividnext.sodalive.v2.main.content.model.currentDeviceDayOfWeek
|
||||
import kr.co.vividnext.sodalive.v2.main.content.model.toContentAllDayLabelResId
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import java.util.Calendar
|
||||
|
||||
class MainContentAllDayOfWeekMapperTest {
|
||||
|
||||
@Test
|
||||
fun `Calendar 요일은 SeriesPublishedDaysOfWeek로 매핑된다`() {
|
||||
assertEquals(SeriesPublishedDaysOfWeek.MON, mappedDay(Calendar.MONDAY))
|
||||
assertEquals(SeriesPublishedDaysOfWeek.TUE, mappedDay(Calendar.TUESDAY))
|
||||
assertEquals(SeriesPublishedDaysOfWeek.WED, mappedDay(Calendar.WEDNESDAY))
|
||||
assertEquals(SeriesPublishedDaysOfWeek.THU, mappedDay(Calendar.THURSDAY))
|
||||
assertEquals(SeriesPublishedDaysOfWeek.FRI, mappedDay(Calendar.FRIDAY))
|
||||
assertEquals(SeriesPublishedDaysOfWeek.SAT, mappedDay(Calendar.SATURDAY))
|
||||
assertEquals(SeriesPublishedDaysOfWeek.SUN, mappedDay(Calendar.SUNDAY))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `RANDOM 요일 라벨은 전체 탭 기타 문자열을 사용한다`() {
|
||||
assertEquals(
|
||||
R.string.screen_content_all_day_other,
|
||||
SeriesPublishedDaysOfWeek.RANDOM.toContentAllDayLabelResId()
|
||||
)
|
||||
}
|
||||
|
||||
private fun mappedDay(dayOfWeek: Int): SeriesPublishedDaysOfWeek {
|
||||
return currentDeviceDayOfWeek(
|
||||
Calendar.getInstance().apply {
|
||||
set(Calendar.DAY_OF_WEEK, dayOfWeek)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user