public async Task <ISaida> AlterarCartaoCredito([FromBody, SwaggerParameter("Informações para alteração do cartão.", Required = true)] AlterarCartaoCreditoViewModel model) { var alterarEntrada = new AlterarCartaoCreditoEntrada( model.IdCartao, model.Nome, base.ObterIdUsuarioClaim(), model.ValorLimite.Value, model.DiaVencimentoFatura.Value); return(await _cartaoCreditoServico.AlterarCartaoCredito(alterarEntrada)); }
public void Alterar(AlterarCartaoCreditoEntrada alterarEntrada) { if (alterarEntrada.Invalido || alterarEntrada.IdCartaoCredito != this.Id) { return; } this.Nome = alterarEntrada.Nome; this.ValorLimite = alterarEntrada.ValorLimite; this.DiaVencimentoFatura = alterarEntrada.DiaVencimentoFatura; }
public void Nao_Deve_Alterar_Cartao_Credito_Com_Parametros_Invalidos() { var idCartaoCredito = 0; var idUsuario = 0; var alterarEntrada = new AlterarCartaoCreditoEntrada(idCartaoCredito, string.Empty, idUsuario, -5000, 32); _cartaoCreditoServico = Substitute.For <CartaoCreditoServico>(_cartaoCreditoRepositorio, _uow); var saida = _cartaoCreditoServico.AlterarCartaoCredito(alterarEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == Mensagem.Id_Usuario_Invalido), string.Join(", ", saida.Mensagens)); }
public void Nao_Deve_Alterar_Cartao_Credito_Com_Id_Inexistente() { var idUsuario = 1; var idCartaoCredito = 1; _cartaoCreditoRepositorio.ObterPorId(idCartaoCredito, true) .Returns((CartaoCredito)null); var alterarEntrada = new AlterarCartaoCreditoEntrada(idCartaoCredito, "Cartão 1", idUsuario, 5000, 5); _cartaoCreditoServico = Substitute.For <CartaoCreditoServico>(_cartaoCreditoRepositorio, _uow); var saida = _cartaoCreditoServico.AlterarCartaoCredito(alterarEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == string.Format(CartaoCreditoMensagem.Id_Cartao_Nao_Existe, idCartaoCredito)), string.Join(", ", saida.Mensagens)); }
public async Task <ISaida> AlterarCartaoCredito(AlterarCartaoCreditoEntrada alterarEntrada) { // Verifica se as informações para alteração foram informadas corretamente if (alterarEntrada.Invalido) { return(new Saida(false, alterarEntrada.Mensagens, null)); } var cartao = await _cartaoCreditoRepositorio.ObterPorId(alterarEntrada.IdCartaoCredito, true); // Verifica se o cartão existe this.NotificarSeNulo(cartao, CartaoCreditoMensagem.Id_Cartao_Nao_Existe); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se o cartão pertece ao usuário informado. this.NotificarSeDiferentes(cartao.IdUsuario, alterarEntrada.IdUsuario, CartaoCreditoMensagem.Cartao_Alterar_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se o usuário já possui algum cartão com o nome informado this.NotificarSeVerdadeiro(await _cartaoCreditoRepositorio.VerificarExistenciaPorNome(alterarEntrada.IdUsuario, alterarEntrada.Nome, alterarEntrada.IdCartaoCredito), CartaoCreditoMensagem.Cartao_Com_Mesmo_Nome); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } cartao.Alterar(alterarEntrada); _cartaoCreditoRepositorio.Atualizar(cartao); await _uow.Commit(); return(_uow.Invalido ? new Saida(false, _uow.Mensagens, null) : new Saida(true, new[] { CartaoCreditoMensagem.Cartao_Alterado_Com_Sucesso }, new CartaoCreditoSaida(cartao))); }
public void Deve_Alterar_Cartao_Credito() { var idUsuario = 1; var idCartaoCredito = 1; var cartao = new CartaoCredito(new CadastrarCartaoCreditoEntrada(idUsuario, "Cartão 1", 5000, 5)); typeof(CartaoCredito).GetProperty("Id").SetValue(cartao, idCartaoCredito); _cartaoCreditoRepositorio.ObterPorId(idCartaoCredito, true) .Returns(cartao); var alterarEntrada = new AlterarCartaoCreditoEntrada(idCartaoCredito, "Cartão 1 alterado", idUsuario, 5000, 5); _cartaoCreditoServico = Substitute.For <CartaoCreditoServico>(_cartaoCreditoRepositorio, _uow); var saida = _cartaoCreditoServico.AlterarCartaoCredito(alterarEntrada).Result; Assert.IsTrue(saida.Sucesso && saida.Mensagens.Any(x => x == CartaoCreditoMensagem.Cartao_Alterado_Com_Sucesso), string.Join(", ", saida.Mensagens)); }