コード例 #1
0
 public void Initialise()
 {
     _pinValidationService = Substitute.For <IPinValidationService>();
     _pinValidationService.RequiredPinDigits.Returns(4);
     _pinValidationService.GetEncryptedPin(TestPin).Returns(EncryptedPin.EncryptPin(TestPin));
     _pinValidationService.IsPinCorrect(Arg.Any <EncryptedPin>(), TestPin).Returns(true);
 }
コード例 #2
0
        public CashCard(string pin, IPinValidationService pinValidationService)
        {
            // This would probably in production come from a data store somewhere that tracked unique card ids but for this exercise this works almost as well as I don't have this store available
            CardId = Guid.NewGuid();

            Balance = 0;

            _pinValidationService = pinValidationService;
            Pin = _pinValidationService.GetEncryptedPin(pin);
        }
コード例 #3
0
        private static void UseCashMachine(IBillService billService, IPinValidationService pinValidationService)
        {
            Console.WriteLine("Por favor, introduzca su PIN.");
            string pin = Console.ReadLine();

            if (!Regex.IsMatch(pin, @"^\d{4}$"))
            {
                Console.WriteLine("El PIN debe contener cuatro números.");
                return;
            }
            if (!pinValidationService.ValidatePin(pin))
            {
                Console.WriteLine("PIN no válido.");
                return;
            }
            string choiceStr = null;

            do
            {
                Console.WriteLine("1. Sacar dinero." + Environment.NewLine +
                                  "2. Ingresar dinero." + Environment.NewLine +
                                  "3. Ver el efectivo que tiene el cajero (solo para superadministradores del cajero ;) )" + Environment.NewLine +
                                  "4. Salir.");
                choiceStr = Console.ReadLine();
                if (!Int32.TryParse(choiceStr, out int choice))
                {
                    Console.WriteLine($"{choiceStr} no es un valor de menú válido.");
                    continue;
                }
                switch (choice)
                {
                case 1:
                    ExtractMoney(billService);
                    break;

                case 2:
                    DepositMoney(billService);
                    break;

                case 3:
                    ViewAvailableCash(billService);
                    break;

                case 4:
                    Console.WriteLine("Recoja su tarjeta ;) Pulse Enter para salir.");
                    Console.ReadLine();
                    return;

                default:
                    Console.WriteLine($"{choice} no es un ítem válido en el menú.");
                    break;
                }
            } while (true);
        }
コード例 #4
0
        public string ValidatePin(long pinID)
        {
            _pinValidationService = new IPinValidationService();

            if (_pinValidationService.ValidatePin(pinID) == true)
            {
                return("Valid Pin");
            }

            else
            {
                return("Invalid Pin");
            }
        }