private void AssertCardNetwork(ICardNetwork actualCardNetwork, CardNetwork cardNetwork, string securityCode, int securityCodeLength, int cardNumberLength, bool shouldDisplayStartDate, bool shouldDisplayIssueNumber) { Assert.That(actualCardNetwork.GetCardNetworkType(), Is.EqualTo(cardNetwork)); Assert.That(actualCardNetwork.GetSecurityCodeLabel(), Is.EqualTo(securityCode)); Assert.That(actualCardNetwork.GetSecurityCodeLength(), Is.EqualTo(securityCodeLength)); Assert.That(actualCardNetwork.GetCardNumberLength(), Is.EqualTo(cardNumberLength)); Assert.That(actualCardNetwork.ShouldDisplayStartDate(), Is.EqualTo(shouldDisplayStartDate)); Assert.That(actualCardNetwork.ShouldDisplayIssueNumber(), Is.EqualTo(shouldDisplayIssueNumber)); }
public ValidationResponse Validate(string entry, ICardNetwork cardNetwork, List<CardNetwork> acceptableCardNetworksForTransaction) { var strippedEntry = (entry ?? string.Empty).Replace(" ", ""); var errorMessage = string.Empty; var networkAccepted = cardNetwork.CardNetworkAcceptedForTransaction(cardNetwork.GetCardNetworkType(), acceptableCardNetworksForTransaction); var cardNumberIsValid = cardNetwork.IsCardNumberValid(strippedEntry) && strippedEntry.Length >= cardNetwork.GetCardNumberLength(); if (!networkAccepted) { errorMessage = string.Format("We do not accept {0}, please use other cards", cardNetwork.GetCardNetworkType().GetAttribute<DisplayName>().Name); } else if (!cardNumberIsValid && strippedEntry.Length >= cardNetwork.GetCardNumberLength()) { errorMessage = "Check card number"; } return new ValidationResponse(networkAccepted && cardNumberIsValid, errorMessage , !string.IsNullOrWhiteSpace(errorMessage)); }
public TokenPaymentDefaultsViewModel(string lastFour, string expiryDate, string cardToken, string consumerToken, CardNetwork cardNetwork) { var unformattedLastFour = lastFour ?? string.Empty; var unformattedExpiryDate = expiryDate ?? string.Empty; CardToken = cardToken; ConsumerToken = consumerToken; CardNetork = CardNetorkDiscoverer.DiscoverCardNetwork(cardNetwork); var masklength = CardNetork.GetCardNumberLength() - unformattedLastFour.Length; var mask = string.Concat(Enumerable.Repeat("*", masklength)); MaskedCardNumber = string.Concat(mask, lastFour).FormatToJudoString(CardNetork.CardNumberFormat()); ExpiryDate = unformattedExpiryDate.FormatToJudoString(DateFormat); }