Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.com.intermedium.uikit.widget
- import android.content.Context
- import android.os.Build
- import android.view.View.GONE
- import android.view.View.VISIBLE
- import androidx.test.core.app.ApplicationProvider
- import androidx.test.ext.junit.runners.AndroidJUnit4
- import br.com.intermedium.uikit.R
- import com.google.common.truth.Truth.assertThat
- import kotlinx.android.synthetic.main.widget_inter_payment_chooser.view.*
- import org.junit.Before
- import org.junit.Test
- import org.junit.runner.RunWith
- import org.robolectric.Robolectric
- import org.robolectric.android.AttributeSetBuilder
- import org.robolectric.annotation.Config
- @RunWith(AndroidJUnit4::class)
- class InterPaymentChooserTest {
- private lateinit var context: Context
- private lateinit var attrs: AttributeSetBuilder
- @Before
- fun setup() {
- context = ApplicationProvider.getApplicationContext()
- attrs = Robolectric.buildAttributeSet()
- }
- @Test
- fun `when instantiated should set attributes correctly`() {
- attrs.addAttribute(R.attr.ipc_accountNumber, "938102-0")
- attrs.addAttribute(R.attr.ipc_cardNumber, "2345")
- attrs.addAttribute(R.attr.ipc_hasInstallments, "true")
- attrs.addAttribute(R.attr.ipc_installments, "3")
- attrs.addAttribute(R.attr.ipc_hasCreditCard, "true")
- val interPaymentChooser = InterPaymentChooser(context, attrs.build())
- with(interPaymentChooser) {
- assertThat(accountNumber).isEqualTo("938102-0")
- assertThat(cardNumber).isEqualTo("2345")
- assertThat(installments).isEqualTo(3)
- assertThat(hasInstallments).isTrue()
- assertThat(hasCreditCard).isTrue()
- }
- }
- @Test
- fun `when client has credit card should show account debit or credit views`() {
- attrs.addAttribute(R.attr.ipc_accountNumber, "938102-0")
- attrs.addAttribute(R.attr.ipc_cardNumber, "2345")
- attrs.addAttribute(R.attr.ipc_hasInstallments, "false")
- attrs.addAttribute(R.attr.ipc_installments, "1")
- attrs.addAttribute(R.attr.ipc_hasCreditCard, "true")
- val interPaymentChooser = InterPaymentChooser(context, attrs.build())
- with(interPaymentChooser) {
- assertThat(grOptionOnlyAccountDebit.visibility).isEqualTo(GONE)
- assertThat(grOptionCreditOrDebit.visibility).isEqualTo(VISIBLE)
- }
- }
- @Test
- fun `when client has no credit card should show account debit only views`() {
- attrs.addAttribute(R.attr.ipc_accountNumber, "938102-0")
- attrs.addAttribute(R.attr.ipc_hasInstallments, "false")
- attrs.addAttribute(R.attr.ipc_installments, "1")
- attrs.addAttribute(R.attr.ipc_hasCreditCard, "false")
- val interPaymentChooser = InterPaymentChooser(context, attrs.build())
- with(interPaymentChooser) {
- assertThat(grOptionOnlyAccountDebit.visibility).isEqualTo(VISIBLE)
- assertThat(grOptionCreditOrDebit.visibility).isEqualTo(GONE)
- }
- }
- @Test
- fun `when has no installment and option account debit is selected should hide installments spinner and set debit single installment message`() {
- attrs.addAttribute(R.attr.ipc_accountNumber, "938102-0")
- attrs.addAttribute(R.attr.ipc_cardNumber, "2345")
- attrs.addAttribute(R.attr.ipc_hasInstallments, "false")
- attrs.addAttribute(R.attr.ipc_hasCreditCard, "true")
- val interPaymentChooser = InterPaymentChooser(context, attrs.build())
- with(interPaymentChooser) {
- bgOptionAccountDebit.performClick()
- assertThat(spInstallments.visibility).isEqualTo(GONE)
- assertThat(tvPayment.text).isEqualTo("Pagamento Γ vista, parcela ΓΊnica")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement