Exemple #1
0
 public Cliente ConverterAdicionar(AdicionarClienteCommand command)
 {
     return(new Cliente()
     {
         Nome = command.Nome,
         Cpf = command.Cpf,
         Email = command.Email
     });
 }
        public void Deve_Retornar_Nome_Do_Cliente_Valido_No_Comando_Adicionar_Cliente()
        {
            var nome  = "André";
            var email = "*****@*****.**";

            var adicionarClienteCommand = new AdicionarClienteCommand(nome, email);
            var commandResult           = adicionarClienteCommand.EhValido();

            Assert.IsTrue(commandResult);
        }
        public void Nao_Deve_Retornar_Email_Do_Cliente_Valido_No_Comando_Adicionar_Cliente()
        {
            var nome  = "Andre";
            var email = "";

            var adicionarClienteCommand = new AdicionarClienteCommand(nome, email);
            var commandResult           = adicionarClienteCommand.EhValido();

            Assert.IsFalse(commandResult);
        }
Exemple #4
0
        public void Deve_Retornar_Erro_De_Validacao_Quando_Email_Do_Cliente_Eh_Invalido()
        {
            //Arrange
            var adicionarClienteCommand = new AdicionarClienteCommand("Andre", "");

            //Act
            var adicionarClienteHandler = new AdicionarClienteHandler(clienteRepository, unitOfWork);
            var commandResult           = adicionarClienteHandler.Handle(adicionarClienteCommand, new CancellationToken());

            //Assert
            Assert.AreEqual("E-mail é obrigatório.", commandResult.Result.Erros.FirstOrDefault());
        }
        public async Task <ResponseToUser> CreateAsync(AdicionarClienteCommand command)
        {
            var result = _adicionarValidator.Validate(command);

            if (!result.IsValid)
            {
                return(ErrorResult(result.Errors.Select(q => q.ErrorMessage)));
            }
            var entidade = _clienteMapper.ConverterAdicionar(command);
            await _clienteRepository.CreateAsync(entidade);

            return(SuccessResult());
        }
        public async Task <IActionResult> Post([FromBody] AdicionarClienteCommand command)
        {
            var result = await _clienteService.CreateAsync(command);

            if (result.Success)
            {
                return(Ok("Cliente cadastrado com sucesso"));
            }
            else
            {
                return(BadRequest(result.Messages));
            }
        }
Exemple #7
0
        public void Deve_Retornar_Erro_Ao_Adicionar_Cliente()
        {
            //Arrange
            var adicionarClienteCommand = new AdicionarClienteCommand("Andre", "*****@*****.**");

            clienteRepository.GetByEmail(adicionarClienteCommand.Email).Returns((ClienteModel)null);
            unitOfWork.Commit().Returns(false);

            //Act
            var adicionarClienteHandler = new AdicionarClienteHandler(clienteRepository, unitOfWork);
            var commandResult           = adicionarClienteHandler.Handle(adicionarClienteCommand, new CancellationToken());

            //Assert
            Assert.AreEqual("Ocorreu um erro ao salvar o cliente.", commandResult.Result.Erros.FirstOrDefault());
        }
Exemple #8
0
        public void Deve_Adicionar_Cliente()
        {
            //Arrange
            var adicionarClienteCommand = new AdicionarClienteCommand("André", "*****@*****.**");

            clienteRepository.GetByEmail(adicionarClienteCommand.Email).Returns((ClienteModel)null);
            unitOfWork.Commit().Returns(true);

            //Act
            var adicionarClienteHandler = new AdicionarClienteHandler(clienteRepository, unitOfWork);
            var commandResult           = adicionarClienteHandler.Handle(adicionarClienteCommand, new CancellationToken());

            //Assert
            Assert.AreEqual(ResponseStatus.Sucesso, commandResult.Result.Status);
        }
Exemple #9
0
        public void Deve_Retornar_Erro_De_Validacao_Quando_Ja_Existe_Email_Do_Cliente()
        {
            //Arrange
            var adicionarClienteCommand = new AdicionarClienteCommand("Andre", "*****@*****.**");

            clienteRepository.GetByEmail(adicionarClienteCommand.Email).Returns(new ClienteModel(
                                                                                    nome: adicionarClienteCommand.Nome,
                                                                                    email: adicionarClienteCommand.Email
                                                                                    ));

            //Act
            var adicionarClienteHandler = new AdicionarClienteHandler(clienteRepository, unitOfWork);
            var commandResult           = adicionarClienteHandler.Handle(adicionarClienteCommand, new CancellationToken());

            //Assert
            Assert.AreEqual($"Já existe cliente com este e-mail: {adicionarClienteCommand.Email}.", commandResult.Result.Erros.FirstOrDefault());
        }
Exemple #10
0
        public void Handle(AdicionarClienteCommand cmd)
        {
            Cliente cliente = new Cliente(cmd.Id, cmd.Nome, cmd.Email, StringHelper.RemoverCaracteresEspeciais(cmd.Telefone), cmd.Facebook, cmd.DataNascimento, cmd.Sexo, cmd.EstadoCivil, cmd.AtracaoPreferida, cmd.EstiloPreferido);
            Usuario usuario = new Usuario(Guid.NewGuid(), cmd.Nome, DateTime.Now, cmd.Email, cmd.Senha, null, null, cliente, cliente.Id);

            if (!usuario.IsValidCliente())
            {
                NotificarValidacoesErro(usuario.ValidationResult);
                return;
            }

            _usuarioRepository.Adicionar(usuario);

            if (Commit())
            {
                _mediator.PublicarEvento(new ClienteAdicionadoEvent(cliente.Id, cliente.Nome, cliente.Email, cliente.Sexo, cliente.Telefone, cliente.Facebook, cliente.DataNascimento, cliente.Sexo, cliente.EstadoCivil, cliente.AtracaoPreferida, cliente.EstiloPreferido));
            }
        }