### Question:
CardInputWidget extends LinearLayout { @VisibleForTesting static boolean shouldIconShowBrand( @NonNull @Card.CardBrand String brand, boolean cvcHasFocus, @Nullable String cvcText) { if (!cvcHasFocus) { return true; } return ViewUtils.isCvcMaximalLength(brand, cvcText); } CardInputWidget(Context context);  CardInputWidget(Context context, AttributeSet attrs);  CardInputWidget(Context context, AttributeSet attrs, int defStyleAttr); @Nullable Card getCard(); void setCardInputListener(@Nullable CardInputListener listener); void setCardNumber(String cardNumber); void setExpiryDate(
            @IntRange(from = 1, to = 12) int month,
            @IntRange(from = 0, to = 9999) int year); void setCvcCode(String cvcCode); void clear(); void setEnabled(boolean isEnabled); @Override boolean isEnabled(); @Override boolean onInterceptTouchEvent(MotionEvent ev); @Override void onWindowFocusChanged(boolean hasWindowFocus);  }### Answer:
@Test public void shouldIconShowBrand_whenCvcNotFocused_isAlwaysTrue() { assertTrue(shouldIconShowBrand(Card.AMERICAN_EXPRESS, false, "1234")); assertTrue(shouldIconShowBrand(Card.AMERICAN_EXPRESS, false, "")); assertTrue(shouldIconShowBrand(Card.VISA, false, "333")); assertTrue(shouldIconShowBrand(Card.DINERS_CLUB, false, "12")); assertTrue(shouldIconShowBrand(Card.DISCOVER, false, null)); assertTrue(shouldIconShowBrand(Card.JCB, false, "7")); }
@Test public void shouldIconShowBrand_whenAmexAndCvCStringLengthNotFour_isFalse() { assertFalse(shouldIconShowBrand(Card.AMERICAN_EXPRESS, true, "")); assertFalse(shouldIconShowBrand(Card.AMERICAN_EXPRESS, true, "1")); assertFalse(shouldIconShowBrand(Card.AMERICAN_EXPRESS, true, "22")); assertFalse(shouldIconShowBrand(Card.AMERICAN_EXPRESS, true, "333")); }
@Test public void shouldIconShowBrand_whenAmexAndCvcStringLengthIsFour_isTrue() { assertTrue(shouldIconShowBrand(Card.AMERICAN_EXPRESS, true, "1234")); }
@Test public void shouldIconShowBrand_whenNotAmexAndCvcStringLengthIsNotThree_isFalse() { assertFalse(shouldIconShowBrand(Card.VISA, true, "")); assertFalse(shouldIconShowBrand(Card.DISCOVER, true, "12")); assertFalse(shouldIconShowBrand(Card.JCB, true, "55")); assertFalse(shouldIconShowBrand(Card.MASTERCARD, true, "9")); assertFalse(shouldIconShowBrand(Card.DINERS_CLUB, true, null)); assertFalse(shouldIconShowBrand(Card.UNKNOWN, true, "12")); }
@Test public void shouldIconShowBrand_whenNotAmexAndCvcStringLengthIsThree_isTrue() { assertTrue(shouldIconShowBrand(Card.VISA, true, "999")); assertTrue(shouldIconShowBrand(Card.DISCOVER, true, "123")); assertTrue(shouldIconShowBrand(Card.JCB, true, "555")); assertTrue(shouldIconShowBrand(Card.MASTERCARD, true, "919")); assertTrue(shouldIconShowBrand(Card.DINERS_CLUB, true, "415")); assertTrue(shouldIconShowBrand(Card.UNKNOWN, true, "212")); }