Пример #1
0
        public void Nao_Deve_Alterar_Conta_Com_Parametros_Invalidos()
        {
            var idConta   = 0;
            var idUsuario = 0;

            var alterarEntrada = new AlterarContaEntrada(idConta, string.Empty, TipoConta.ContaCorrente, idUsuario);

            _contaServico = Substitute.For <ContaServico>(_contaRepositorio, _uow);

            var saida = _contaServico.AlterarConta(alterarEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == Mensagem.Id_Usuario_Invalido), string.Join(", ", saida.Mensagens));
        }
Пример #2
0
        public async Task <ISaida> AlterarConta([FromBody, SwaggerParameter("Informações para alteração da conta.", Required = true)] AlterarContaViewModel model)
        {
            var alterarEntrada = new AlterarContaEntrada(
                model.IdConta,
                model.Nome,
                model.Tipo.Value,
                base.ObterIdUsuarioClaim(),
                model.ValorSaldoInicial,
                model.NomeInstituicao,
                model.NumeroAgencia,
                model.Numero);

            return(await _contaServico.AlterarConta(alterarEntrada));
        }
Пример #3
0
        public void Alterar(AlterarContaEntrada alterarEntrada)
        {
            if (alterarEntrada.Invalido || alterarEntrada.IdConta != this.Id)
            {
                return;
            }

            this.Nome = alterarEntrada.Nome;
            this.Tipo = alterarEntrada.Tipo;
            this.ValorSaldoInicial = alterarEntrada.ValorSaldoInicial;
            this.NomeInstituicao   = alterarEntrada.NomeInstituicao;
            this.NumeroAgencia     = alterarEntrada.NumeroAgencia;
            this.Numero            = alterarEntrada.Numero;
        }
Пример #4
0
        public void Nao_Deve_Alterar_Conta_Com_Id_Inexistente()
        {
            var idUsuario = 1;
            var idConta   = 1;

            _contaRepositorio.ObterPorId(idConta, true)
            .Returns((Conta)null);

            var alterarEntrada = new AlterarContaEntrada(idConta, "Conta 1", TipoConta.ContaCorrente, idUsuario);

            _contaServico = Substitute.For <ContaServico>(_contaRepositorio, _uow);

            var saida = _contaServico.AlterarConta(alterarEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == ContaMensagem.Id_Conta_Nao_Existe), string.Join(", ", saida.Mensagens));
        }
Пример #5
0
        public async Task <ISaida> AlterarConta(AlterarContaEntrada alterarEntrada)
        {
            // Verifica se as informações para alteração foram informadas corretamente
            if (alterarEntrada.Invalido)
            {
                return(new Saida(false, alterarEntrada.Mensagens, null));
            }

            var conta = await _contaRepositorio.ObterPorId(alterarEntrada.IdConta, true);

            // Verifica se a conta existe
            this.NotificarSeNulo(conta, string.Format(ContaMensagem.Id_Conta_Nao_Existe, alterarEntrada.IdConta));

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            // Verifica se a conta pertece ao usuário informado.
            this.NotificarSeDiferentes(conta.IdUsuario, alterarEntrada.IdUsuario, ContaMensagem.Conta_Alterar_Nao_Pertence_Usuario);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            // Verifica se o usuário já possui alguma conta com o nome informado
            this.NotificarSeVerdadeiro(await _contaRepositorio.VerificarExistenciaPorNome(alterarEntrada.IdUsuario, alterarEntrada.Nome, alterarEntrada.IdConta), ContaMensagem.Conta_Com_Mesmo_Nome);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            conta.Alterar(alterarEntrada);

            _contaRepositorio.Atualizar(conta);

            await _uow.Commit();

            return(_uow.Invalido
                ? new Saida(false, _uow.Mensagens, null)
                : new Saida(true, new[] { ContaMensagem.Conta_Alterada_Com_Sucesso }, new ContaSaida(conta)));
        }
Пример #6
0
        public void Deve_Alterar_Conta()
        {
            var idUsuario = 1;
            var idConta   = 1;

            var conta = new Conta(new CadastrarContaEntrada(idUsuario, "Conta 1", TipoConta.ContaCorrente));

            typeof(Conta).GetProperty("Id").SetValue(conta, idConta);

            _contaRepositorio.ObterPorId(idConta, true)
            .Returns(conta);

            var alterarEntrada = new AlterarContaEntrada(idConta, "Conta 1 alterada", TipoConta.ContaCorrente, idUsuario);

            _contaServico = Substitute.For <ContaServico>(_contaRepositorio, _uow);

            var saida = _contaServico.AlterarConta(alterarEntrada).Result;

            Assert.IsTrue(saida.Sucesso && saida.Mensagens.Any(x => x == ContaMensagem.Conta_Alterada_Com_Sucesso), string.Join(", ", saida.Mensagens));
        }