public void Saque(int qtdDez, int qtdVinte, int qtdCinquenta, int valorSaque)
        {
            ICaixaEletronico           caixaEletronico = new CaixaEletronico();
            Dictionary <TipoNota, int> saldo;
            Dictionary <TipoNota, int> retornoSaque;

            Deposito deposito = new Deposito();

            deposito.Nota            = TipoNota.Dez;
            deposito.QuantidadeNotas = qtdDez;
            caixaEletronico.Deposito(deposito);

            deposito.Nota            = TipoNota.Vinte;
            deposito.QuantidadeNotas = qtdVinte;
            caixaEletronico.Deposito(deposito);

            deposito.Nota            = TipoNota.Cinquenta;
            deposito.QuantidadeNotas = qtdCinquenta;
            caixaEletronico.Deposito(deposito);

            retornoSaque = caixaEletronico.Saque(valorSaque);

            saldo = caixaEletronico.Saldo();

            Assert.True(qtdDez == saldo[TipoNota.Dez] + (retornoSaque.ContainsKey(TipoNota.Dez) ? retornoSaque[TipoNota.Dez] : 0));
            Assert.True(qtdVinte == saldo[TipoNota.Vinte] + (retornoSaque.ContainsKey(TipoNota.Vinte) ? retornoSaque[TipoNota.Vinte] : 0));
            Assert.True(qtdCinquenta == saldo[TipoNota.Cinquenta] + (retornoSaque.ContainsKey(TipoNota.Cinquenta) ? retornoSaque[TipoNota.Cinquenta] : 0));
        }
        public void Deposito(int qtdDez, int qtdVinte, int qtdCinquenta)
        {
            ICaixaEletronico           caixaEletronico = new CaixaEletronico();
            Dictionary <TipoNota, int> saldo;

            Deposito deposito = new Deposito();

            deposito.Nota            = TipoNota.Dez;
            deposito.QuantidadeNotas = qtdDez;
            caixaEletronico.Deposito(deposito);

            deposito.Nota            = TipoNota.Vinte;
            deposito.QuantidadeNotas = qtdVinte;
            caixaEletronico.Deposito(deposito);

            deposito.Nota            = TipoNota.Cinquenta;
            deposito.QuantidadeNotas = qtdCinquenta;
            caixaEletronico.Deposito(deposito);

            saldo = caixaEletronico.Saldo();

            Assert.True(qtdDez == saldo[TipoNota.Dez]);
            Assert.True(qtdVinte == saldo[TipoNota.Vinte]);
            Assert.True(qtdCinquenta == saldo[TipoNota.Cinquenta]);
        }
        public void SaqueComSaldoThrowsException(int qtdDez, int qtdVinte, int qtdCinquenta, int valorSaque)
        {
            ICaixaEletronico caixaEletronico = new CaixaEletronico();

            Deposito deposito = new Deposito();

            deposito.Nota            = TipoNota.Dez;
            deposito.QuantidadeNotas = qtdDez;
            caixaEletronico.Deposito(deposito);

            deposito.Nota            = TipoNota.Vinte;
            deposito.QuantidadeNotas = qtdVinte;
            caixaEletronico.Deposito(deposito);

            deposito.Nota            = TipoNota.Cinquenta;
            deposito.QuantidadeNotas = qtdCinquenta;
            caixaEletronico.Deposito(deposito);

            Assert.Throws <Exception>(() => caixaEletronico.Saque(valorSaque));
        }