feat(content): 시리즈 성인 배지를 추가한다
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
package kr.co.vividnext.sodalive.v2.widget
|
||||
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.ImageView
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.Shadows.shadowOf
|
||||
import org.robolectric.annotation.Config
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(sdk = [28], application = Application::class)
|
||||
class SeriesContentCardViewTest {
|
||||
|
||||
@Test
|
||||
fun `inflate 직후 adult badge는 숨겨져 있다`() {
|
||||
val card = inflateCard()
|
||||
|
||||
assertEquals(View.GONE, card.adultBadge().visibility)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `setAdultVisible은 adult badge visibility를 변경한다`() {
|
||||
val card = inflateCard()
|
||||
|
||||
card.setAdultVisible(true)
|
||||
assertEquals(View.VISIBLE, card.adultBadge().visibility)
|
||||
|
||||
card.setAdultVisible(false)
|
||||
assertEquals(View.GONE, card.adultBadge().visibility)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `large size는 24dp adult badge와 large shield icon을 사용한다`() {
|
||||
val card = inflateCard()
|
||||
|
||||
card.setSize(SeriesContentCardSize.Large)
|
||||
|
||||
val badge = card.adultBadge()
|
||||
val params = badge.layoutParams as FrameLayout.LayoutParams
|
||||
assertEquals(24.dpToPx(), params.width)
|
||||
assertEquals(24.dpToPx(), params.height)
|
||||
assertEquals(8.dpToPx(), params.topMargin)
|
||||
assertEquals(8.dpToPx(), params.marginEnd)
|
||||
assertEquals(R.drawable.ic_new_shield_large, shadowOf(badge.drawable).createdFromResId)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `small size는 18dp adult badge와 small shield icon을 사용한다`() {
|
||||
val card = inflateCard()
|
||||
|
||||
card.setSize(SeriesContentCardSize.Small)
|
||||
|
||||
val badge = card.adultBadge()
|
||||
val params = badge.layoutParams as FrameLayout.LayoutParams
|
||||
assertEquals(18.dpToPx(), params.width)
|
||||
assertEquals(18.dpToPx(), params.height)
|
||||
assertEquals(6.dpToPx(), params.topMargin)
|
||||
assertEquals(6.dpToPx(), params.marginEnd)
|
||||
assertEquals(R.drawable.ic_new_shield_small, shadowOf(badge.drawable).createdFromResId)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `adult badge background는 creator channel adult badge drawable을 사용한다`() {
|
||||
val card = inflateCard()
|
||||
|
||||
assertEquals(
|
||||
R.drawable.bg_creator_channel_live_adult_badge,
|
||||
shadowOf(card.adultBadge().background).createdFromResId
|
||||
)
|
||||
}
|
||||
|
||||
private fun inflateCard(): SeriesContentCardView {
|
||||
val context = ApplicationProvider.getApplicationContext<Context>()
|
||||
return LayoutInflater.from(context).inflate(R.layout.view_series_content_card, null, false) as SeriesContentCardView
|
||||
}
|
||||
|
||||
private fun SeriesContentCardView.adultBadge(): ImageView = findViewById(R.id.iv_series_content_adult_badge)
|
||||
|
||||
private fun Int.dpToPx(): Int {
|
||||
val context = ApplicationProvider.getApplicationContext<Context>()
|
||||
return (this * context.resources.displayMetrics.density).toInt()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user