public async Task <ISaida> CadastrarCartaoCredito(CadastrarCartaoCreditoEntrada cadastroEntrada) { // Verifica se as informações para cadastro foram informadas corretamente if (cadastroEntrada.Invalido) { return(new Saida(false, cadastroEntrada.Mensagens, null)); } // Verifica se o usuário já possui algum cartão com o nome informado this.NotificarSeVerdadeiro(await _cartaoCreditoRepositorio.VerificarExistenciaPorNome(cadastroEntrada.IdUsuario, cadastroEntrada.Nome), CartaoCreditoMensagem.Cartao_Com_Mesmo_Nome); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } var cartao = new CartaoCredito(cadastroEntrada); await _cartaoCreditoRepositorio.Inserir(cartao); await _uow.Commit(); return(_uow.Invalido ? new Saida(false, _uow.Mensagens, null) : new Saida(true, new[] { CartaoCreditoMensagem.Cartao_Cadastrado_Com_Sucesso }, new CartaoCreditoSaida(cartao))); }
public void Nao_Deve_Cadastrar_Cartao_Credito_Com_Mesmo_Nome_De_Outra_CartaoCredito() { var idUsuario = 1; _cartaoCreditoRepositorio.VerificarExistenciaPorNome(idUsuario, "Cartão 1") .Returns(true); var cadastroEntrada = new CadastrarCartaoCreditoEntrada(idUsuario, "Cartão 1", 5000, 5); _cartaoCreditoServico = Substitute.For <CartaoCreditoServico>(_cartaoCreditoRepositorio, _uow); var saida = _cartaoCreditoServico.CadastrarCartaoCredito(cadastroEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == CartaoCreditoMensagem.Cartao_Com_Mesmo_Nome), string.Join(", ", saida.Mensagens)); }