Skip to content

Commit

Permalink
Add tests for card number formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
epan-stripe committed Mar 9, 2022
1 parent ba21e4a commit 0c87580
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.stripe.android

import androidx.annotation.RestrictTo
import com.stripe.android.cards.CardNumber

/**
* See [Basic test card numbers](https://stripe.com/docs/testing#cards)
*/
internal object CardNumberFixtures {
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
object CardNumberFixtures {
const val AMEX_NO_SPACES = "378282246310005"
const val AMEX_WITH_SPACES = "3782 822463 10005"
val AMEX_BIN = AMEX_NO_SPACES.take(6)
Expand Down Expand Up @@ -49,4 +51,9 @@ internal object CardNumberFixtures {
const val UNIONPAY_WITH_SPACES = "6200 0000 0000 0005"
val UNIONPAY_BIN = UNIONPAY_NO_SPACES.take(6)
val UNIONPAY = CardNumber.Unvalidated(UNIONPAY_NO_SPACES)

const val UNIONPAY_19_NO_SPACES = "6200000000000005"
const val UNIONPAY_19_WITH_SPACES = "6200 0000 0000 0005"
val UNIONPAY_19_BIN = UNIONPAY_19_NO_SPACES.take(6)
val UNIONPAY_19 = CardNumber.Unvalidated(UNIONPAY_19_NO_SPACES)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.stripe.android.ui.core.elements

import androidx.compose.ui.text.AnnotatedString
import com.google.common.truth.Truth
import com.stripe.android.CardNumberFixtures
import com.stripe.android.model.CardBrand
import com.stripe.android.ui.core.R
import org.junit.Test
Expand All @@ -11,8 +12,29 @@ class CardNumberConfigTest {

@Test
fun `visualTransformation formats entered value`() {
Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString("1234567890123456")).text)
.isEqualTo(AnnotatedString("1234 5678 9012 3456"))
Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString(CardNumberFixtures.VISA_NO_SPACES)).text)
.isEqualTo(AnnotatedString(CardNumberFixtures.VISA_WITH_SPACES))

Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString(CardNumberFixtures.AMEX_NO_SPACES)).text)
.isEqualTo(AnnotatedString(CardNumberFixtures.AMEX_WITH_SPACES))

Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString(CardNumberFixtures.DISCOVER_NO_SPACES)).text)
.isEqualTo(AnnotatedString(CardNumberFixtures.DISCOVER_WITH_SPACES))

Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString(CardNumberFixtures.DINERS_CLUB_14_NO_SPACES)).text)
.isEqualTo(AnnotatedString(CardNumberFixtures.DINERS_CLUB_14_WITH_SPACES))

Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString(CardNumberFixtures.DINERS_CLUB_16_NO_SPACES)).text)
.isEqualTo(AnnotatedString(CardNumberFixtures.DINERS_CLUB_16_WITH_SPACES))

Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString(CardNumberFixtures.JCB_NO_SPACES)).text)
.isEqualTo(AnnotatedString(CardNumberFixtures.JCB_WITH_SPACES))

Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString(CardNumberFixtures.UNIONPAY_NO_SPACES)).text)
.isEqualTo(AnnotatedString(CardNumberFixtures.UNIONPAY_WITH_SPACES))

Truth.assertThat(cardNumberConfig.visualTransformation.filter(AnnotatedString(CardNumberFixtures.UNIONPAY_19_NO_SPACES)).text)
.isEqualTo(AnnotatedString(CardNumberFixtures.UNIONPAY_19_WITH_SPACES))
}

@Test
Expand Down

0 comments on commit 0c87580

Please sign in to comment.