public void TestVisa() { string expected, actual; _card = new VisaCreditCard("4111111111111111", _validator); _validator.IsValid(Arg.Any <string>()).Returns(true); expected = "VISA: 4111111111111111 (valid)"; actual = _card.ToString(); Assert.AreEqual(expected, actual); _validator.IsValid(Arg.Any <string>()).Returns(false); expected = "VISA: 4111111111111111 (invalid)"; actual = _card.ToString(); Assert.AreEqual(expected, actual); }
public void Accept() { var product = _dbContext.Products.FirstOrDefault(); if (product == null || product.Quantity == 0) { _messageWriter.WriteLine(" No product in inventory "); return; } _messageWriter.WriteLine("Name : "); var name = _inputReader.ReadLine(); _messageWriter.WriteLine("Quantity : "); var validQuantity = int.TryParse(_inputReader.ReadLine(), out var intQuantity); if (!validQuantity) { _messageWriter.WriteLine("Invalid quantity, please try again"); return; } if (product.Quantity < intQuantity) { _messageWriter.WriteLine("Please try again with less quantity "); return; } _messageWriter.WriteLine("Credit Card Number : "); var ccNumber = _inputReader.ReadLine(); if (!_creditCardValidator.IsValid(ccNumber)) { _messageWriter.WriteLine("Invalid Credit Card number, Please try again "); return; } if (!_paymentProcessor.ChargePayment(ccNumber, intQuantity * product.Price)) { _messageWriter.WriteLine("Could not charge your card, please try again "); return; } _dbContext.Orders.Add(new Order() { Name = name, Quantity = intQuantity, CCNumber = ccNumber }); product.Quantity -= intQuantity; _dbContext.Products.Update(product); _dbContext.SaveChanges(); _emailSender.Send("*****@*****.**", $"An order has been placed for {product.Name} for {intQuantity}. Please ship that to {name} "); _messageWriter.WriteLine( $" Thanks you {name}, Your order of {product.Name}, quantity {intQuantity} is submitted successfully "); }
static void Main(string[] args) { string creditCardNumber = "4539 0685 4366 1747"; ICreditCardValidator validator = CreditCardValidationFactory.Validator(CreditCardIssuerEnum.Nccc); string validationResult = validator.IsValid(creditCardNumber) ? "有效" : "無效"; Console.WriteLine($"信用卡卡號[{creditCardNumber}] 是{validationResult}的"); Console.ReadKey(); }
protected string ToString(string cardType) { StringBuilder result = new StringBuilder(); result.Append(cardType); result.Append(": "); result.Append(_cardNumber); int paddingLength = 28 - result.ToString().Length; if (paddingLength > 0) { result.Append(new String(' ', paddingLength)); } result.Append(_validator.IsValid(_cardNumber) ? " (valid)" : " (invalid)"); return(result.ToString()); }
public void TestIsValidReturnsTrue() { bool result; result = validator.IsValid("4408041234567893"); Assert.IsTrue(result); result = validator.IsValid("4111111111111111"); Assert.IsTrue(result); result = validator.IsValid("4012888888881881"); Assert.IsTrue(result); result = validator.IsValid("378282246310005"); Assert.IsTrue(result); result = validator.IsValid("6011111111111117"); Assert.IsTrue(result); result = validator.IsValid("5105105105105100"); Assert.IsTrue(result); result = validator.IsValid("5105 1051 0510 5100"); Assert.IsTrue(result); }