feat(widget): 공통 탭바와 타이틀바 컴포넌트를 추가한다
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package kr.co.vividnext.sodalive.v2.widget
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertThrows
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class CapsuleTabSelectionStateTest {
|
||||
|
||||
@Test
|
||||
fun `create keeps one selected tab with one or more menus`() {
|
||||
val state = CapsuleTabSelectionState.create(listOf("추천", "랭킹", "팔로잉"), selectedIndex = 2)
|
||||
|
||||
assertEquals(listOf("추천", "랭킹", "팔로잉"), state.menus)
|
||||
assertEquals(2, state.selectedIndex)
|
||||
assertFalse(state.isSelected(0))
|
||||
assertFalse(state.isSelected(1))
|
||||
assertTrue(state.isSelected(2))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `create rejects empty menus`() {
|
||||
assertThrows(IllegalArgumentException::class.java) {
|
||||
CapsuleTabSelectionState.create(emptyList())
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `create normalizes out of range selected index to first menu`() {
|
||||
val state = CapsuleTabSelectionState.create(listOf("추천", "랭킹"), selectedIndex = 5)
|
||||
|
||||
assertEquals(0, state.selectedIndex)
|
||||
assertTrue(state.isSelected(0))
|
||||
assertFalse(state.isSelected(1))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `select changes selected tab`() {
|
||||
val state = CapsuleTabSelectionState.create(listOf("추천", "랭킹", "팔로잉"))
|
||||
.select(1)
|
||||
|
||||
assertEquals(1, state.selectedIndex)
|
||||
assertFalse(state.isSelected(0))
|
||||
assertTrue(state.isSelected(1))
|
||||
assertFalse(state.isSelected(2))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package kr.co.vividnext.sodalive.v2.widget
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertThrows
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class TextTabSelectionStateTest {
|
||||
|
||||
@Test
|
||||
fun `create keeps one selected tab within one to three menus`() {
|
||||
val state = TextTabSelectionState.create(listOf("홈", "랭킹", "마이"), selectedIndex = 1)
|
||||
|
||||
assertEquals(listOf("홈", "랭킹", "마이"), state.menus)
|
||||
assertEquals(1, state.selectedIndex)
|
||||
assertFalse(state.isSelected(0))
|
||||
assertTrue(state.isSelected(1))
|
||||
assertFalse(state.isSelected(2))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `create rejects empty or more than three menus`() {
|
||||
assertThrows(IllegalArgumentException::class.java) {
|
||||
TextTabSelectionState.create(emptyList())
|
||||
}
|
||||
assertThrows(IllegalArgumentException::class.java) {
|
||||
TextTabSelectionState.create(listOf("1", "2", "3", "4"))
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `create normalizes out of range selected index to first menu`() {
|
||||
val state = TextTabSelectionState.create(listOf("홈", "랭킹"), selectedIndex = 3)
|
||||
|
||||
assertEquals(0, state.selectedIndex)
|
||||
assertTrue(state.isSelected(0))
|
||||
assertFalse(state.isSelected(1))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `select changes selected tab and keeps only one selected`() {
|
||||
val state = TextTabSelectionState.create(listOf("홈", "랭킹", "마이"))
|
||||
.select(2)
|
||||
|
||||
assertEquals(2, state.selectedIndex)
|
||||
assertFalse(state.isSelected(0))
|
||||
assertFalse(state.isSelected(1))
|
||||
assertTrue(state.isSelected(2))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user