refactor(creator-ranking): 배치 모델을 단순화한다
This commit is contained in:
@@ -6,45 +6,45 @@ import org.junit.Test
|
||||
class CreatorRankingPlacementTest {
|
||||
|
||||
@Test
|
||||
fun `rank 1 uses large variant and one item row`() {
|
||||
fun `rank 1은 top ten view type과 1 item row를 사용한다`() {
|
||||
val placement = CreatorRankingPlacement.fromRank(1)
|
||||
|
||||
assertEquals(CreatorRankingCardVariant.Large, placement.variant)
|
||||
assertEquals(CreatorRankingViewType.TopTen, placement.viewType)
|
||||
assertEquals(1, placement.itemsPerRow)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `rank 2 to 7 uses compact variant and two item row`() {
|
||||
fun `rank 2부터 7은 top ten view type과 2 item row를 사용한다`() {
|
||||
(2..7).forEach { rank ->
|
||||
val placement = CreatorRankingPlacement.fromRank(rank)
|
||||
|
||||
assertEquals(CreatorRankingCardVariant.Compact, placement.variant)
|
||||
assertEquals(CreatorRankingViewType.TopTen, placement.viewType)
|
||||
assertEquals(2, placement.itemsPerRow)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `rank 8 to 10 uses compact variant and three item row`() {
|
||||
fun `rank 8부터 10은 top ten view type과 3 item row를 사용한다`() {
|
||||
(8..10).forEach { rank ->
|
||||
val placement = CreatorRankingPlacement.fromRank(rank)
|
||||
|
||||
assertEquals(CreatorRankingCardVariant.Compact, placement.variant)
|
||||
assertEquals(CreatorRankingViewType.TopTen, placement.viewType)
|
||||
assertEquals(3, placement.itemsPerRow)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `rank 11 or greater uses horizontal variant and one item row`() {
|
||||
listOf(11, 12, 100).forEach { rank ->
|
||||
fun `rank 11부터 20과 20 초과는 lower view type과 1 item row를 사용한다`() {
|
||||
listOf(11, 12, 20, 21, 100).forEach { rank ->
|
||||
val placement = CreatorRankingPlacement.fromRank(rank)
|
||||
|
||||
assertEquals(CreatorRankingCardVariant.Horizontal, placement.variant)
|
||||
assertEquals(CreatorRankingViewType.Lower, placement.viewType)
|
||||
assertEquals(1, placement.itemsPerRow)
|
||||
}
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException::class)
|
||||
fun `rank less than 1 is invalid`() {
|
||||
fun `rank 1 미만은 유효하지 않다`() {
|
||||
CreatorRankingPlacement.fromRank(0)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package kr.co.vividnext.sodalive.v2.widget.creatorranking
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
|
||||
class CreatorRankingTextStyleTest {
|
||||
|
||||
@Test
|
||||
fun `top 1 item row는 가장 큰 rank name delta text size를 사용한다`() {
|
||||
val style = CreatorRankingTextStyle.fromRank(1)
|
||||
|
||||
assertEquals(96, style.rankTextSizeSp)
|
||||
assertEquals(32, style.nameTextSizeSp)
|
||||
assertEquals(16, style.deltaTextSizeSp)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `top 2 item row는 중간 rank name delta text size를 사용한다`() {
|
||||
listOf(2, 7).forEach { rank ->
|
||||
val style = CreatorRankingTextStyle.fromRank(rank)
|
||||
|
||||
assertEquals(54, style.rankTextSizeSp)
|
||||
assertEquals(22, style.nameTextSizeSp)
|
||||
assertEquals(16, style.deltaTextSizeSp)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `top 3 item row는 작은 rank name delta text size를 사용한다`() {
|
||||
listOf(8, 10).forEach { rank ->
|
||||
val style = CreatorRankingTextStyle.fromRank(rank)
|
||||
|
||||
assertEquals(36, style.rankTextSizeSp)
|
||||
assertEquals(14, style.nameTextSizeSp)
|
||||
assertEquals(14, style.deltaTextSizeSp)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `lower row는 lower 전용 rank name과 기존 delta amount text size를 사용한다`() {
|
||||
listOf(11, 20, 21).forEach { rank ->
|
||||
val style = CreatorRankingTextStyle.fromRank(rank)
|
||||
|
||||
assertEquals(40, style.rankTextSizeSp)
|
||||
assertEquals(18, style.nameTextSizeSp)
|
||||
assertEquals(16, style.deltaTextSizeSp)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user