Ejemplo n.º 1
0
        public void CheckCardNumber_CorrectNumber_ReturnTrue(string cardNumber)
        {
            // Act
            var cardIsValid = _cardChecker.CheckCardNumber(cardNumber);

            // Assert
            Assert.True(cardIsValid);
        }
        /// <inheritdoc />
        public CardType GetCardType(string number)
        {
            if (!_cardChecker.CheckCardNumber(number))
            {
                return(CardType.OTHER);
            }

            var firstDigit  = number[0];
            var secondDigit = number[1];

            switch (firstDigit)
            {
            case '2':
                return(CardType.MIR);

            case '4':
                return(CardType.VISA);

            case '5'
                when secondDigit == '0' || secondDigit > '5':
                return(CardType.MAESTRO);

            case '5'
                when secondDigit >= '1' && secondDigit <= '5':
                return(CardType.MASTERCARD);

            case '6':
                return(CardType.MAESTRO);

            default:
                return(CardType.OTHER);
            }
        }