public void Sacar10_RecebeUmaNota10()
        {
            //Preparar
            Nota notaEsperada = new Nota() { ValorNota = 10 };
            CaixaEletronicoContext.ValorSaque = 10;

            //Ação
            CaixaEletronicoContext.RealizarSaque();

            //Acerto
            Assert.AreEqual(notaEsperada.ValorNota, CaixaEletronicoContext.NotasSaque[0].ValorNota);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Realiza o saque efetivamente
        /// </summary>
        public void RealizarSaque()
        {
            //Verifica se o valor é válido
            VerificaValorSaque();
            //Limpa a lista de notas que serão entregues para o cliente
            NotasSaque.Clear();
            //Faz a separação das notas
            while (ValorSaque > 0)
            {
                Nota notaSaque = new Nota();
                notaSaque = NotasDisponiveis.Where(x => x.ValorNota <= ValorSaque).FirstOrDefault();

                if (notaSaque.ValorNota != 0)
                {
                    NotasSaque.Add(notaSaque);
                    ValorSaque -= notaSaque.ValorNota;
                }
            }
        }