Beispiel #1
0
        public async Task ShouldInvalidateCadastrarUsuarioCommandWhenNotFoundSetorById()
        {
            var usuario = new Usuario
            {
                Id      = 1,
                Nome    = "Teste",
                Sigla   = "FFF",
                Status  = StatusDeCadastro.Normal,
                SetorId = 1,
                Login   = "******",
                Senha   = "teste"
            };

            _repositoryMock.Setup(r => r.Usuario.GetUsuarioByNomeAsync("Teste"));
            _repositoryMock.Setup(r => r.Usuario.GetUsuarioBySiglaAsync("FFF"));
            _repositoryMock.Setup(r => r.Usuario.GetUsuarioByLoginAsync("teste"));
            _repositoryMock.Setup(r => r.Setor.GetSetorByIdAsync(1));

            var command = new CadastrarUsuarioCommand(
                usuario.Nome,
                usuario.Sigla,
                usuario.SetorId,
                usuario.Status,
                usuario.Login,
                usuario.Senha
                );

            var result = await _usuarioHandler.Handler(command);

            Assert.AreEqual("Setor não encontrado", ((CommandResult)result).Message);
        }
Beispiel #2
0
        public async Task ShouldInvalidateCadastrarUsuarioCommandWhenAlreadyUsuarioWithSameSigla()
        {
            var usuario = new Usuario
            {
                Id      = 1,
                Nome    = "Teste",
                Sigla   = "FFF",
                Status  = StatusDeCadastro.Normal,
                SetorId = 1,
                Login   = "******",
                Senha   = "teste"
            };

            _repositoryMock.Setup(r => r.Usuario.GetUsuarioByNomeAsync("Teste"));
            _repositoryMock.Setup(r => r.Usuario.GetUsuarioBySiglaAsync("FFF")).Returns(Task.FromResult(usuario));

            var command = new CadastrarUsuarioCommand(
                usuario.Nome,
                usuario.Sigla,
                usuario.SetorId,
                usuario.Status,
                usuario.Login,
                usuario.Senha
                );

            var result = await _usuarioHandler.Handler(command);

            Assert.AreEqual("Já existe um usuário com a mesma sigla cadastrada", ((CommandResult)result).Message);
        }
Beispiel #3
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenInitialsIsGreaterThan5()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("teste", "FFFFFD", 1, StatusDeCadastro.Normal, "luism", "teste123");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Sigla não pode ser maior que 5 caracteres.");
        }
Beispiel #4
0
        public void ShouldInvalidateUpdateUserWhenInitialsIsEmpty()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("teste", "", 1, StatusDeCadastro.Normal, "luism", "teste123");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Sigla é obrigatório");
        }
Beispiel #5
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenNameIsGreaterThan30()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("dhasghghghaghdgashdghgdhjghasgdjhagddhasghg", "teste", 1, StatusDeCadastro.Normal, "luism", "teste123");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Nome não pode ser maior que 30 caracteres.");
        }
Beispiel #6
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenPasswordIsLessThan3()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("teste", "FFF", 1, StatusDeCadastro.Normal, "luism", "df");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Senha deve ter no mínimo 3 caracteres.");
        }
Beispiel #7
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenPasswordGreaterThan8()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("teste", "FFF", 1, StatusDeCadastro.Normal, "luism", "teste123456");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Senha não pode ser maior que 8 caracteres.");
        }
Beispiel #8
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenLoginIsGreaterThan20()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("teste", "FFF", 1, StatusDeCadastro.Normal, "ssluismsfsffsfsfdsfsdffd", "teste123");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Login não pode ser maior que 20 caracteres.");
        }
Beispiel #9
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenIdDepartamentIsZero()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("teste", "FFF", 0, StatusDeCadastro.Normal, "", "teste123");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Obrigatório informar um setor com id válido");
        }
Beispiel #10
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenLoginIsEmpty()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("teste", "FFF", 1, StatusDeCadastro.Normal, "", "teste123");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Login é obrigatório");
        }
Beispiel #11
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenInitialsIsLessThan2()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("teste", "F", 1, StatusDeCadastro.Normal, "luism", "teste123");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Sigla deve ter no mínimo 2 caracteres.");
        }
Beispiel #12
0
        public void ShouldInvalidateCadastrarUsuarioCommandWhenNameIsLessThan3()
        {
            var cadastrarUsuarioCommand = new CadastrarUsuarioCommand("an", "tt", 1, StatusDeCadastro.Normal, "luism", "teste123");

            cadastrarUsuarioCommand.Validate();

            var result = cadastrarUsuarioCommand.Notifications.ToList();

            Assert.AreEqual(result[0].Message, "Nome deve ter no mínimo 3 caracteres.");
        }
Beispiel #13
0
        public async Task <IActionResult> CriarUsuarioAsync([FromBody] CadastrarUsuarioCommand command)
        {
            var result = await _commandUsuario.Handle(command).ConfigureAwait(true) as CommandResult;

            if (result.Success)
            {
                return(Ok());
            }
            else
            {
                return(UnprocessableEntity(result.Messages));
            }
        }
Beispiel #14
0
        public async Task <ActionResult <Guid> > CadastrarUsuario([FromBody] CadastrarUsuarioCommand command)
        {
            try
            {
                Guid id = await _Mediator.Send(command);

                return(Ok(id));
            }
            catch (Exception ex)
            {
                return(RetornarBadRequest(ex));
            }
        }
Beispiel #15
0
        public async Task ShouldInvalidateCadastrarUsuarioCommandValid()
        {
            var usuario = new Usuario
            {
                Id      = 1,
                Nome    = "Teste",
                Sigla   = "FFF",
                Status  = StatusDeCadastro.Normal,
                SetorId = 1,
                Login   = "******",
                Senha   = "teste"
            };

            var setor = new Setor
            {
                Id   = 1,
                Nome = "Teste"
            };

            var command = new CadastrarUsuarioCommand(
                usuario.Nome,
                usuario.Sigla,
                usuario.SetorId,
                usuario.Status,
                usuario.Login,
                usuario.Senha
                );

            _mapperMock.Setup(m => m.Map <Usuario>(command)).Returns(usuario);

            _cryptographyServiceMock.Setup(c => c.Encrypt(usuario.Senha)).Returns("senha");

            _repositoryMock.Setup(r => r.Usuario.Create(usuario));
            _repositoryMock.Setup(r => r.Setor.GetSetorByIdAsync(1)).Returns(Task.FromResult(setor));
            _repositoryMock.Setup(r => r.SaveAsync());



            var result = await _usuarioHandler.Handler(command);

            Assert.AreEqual("Usuário cadastrado com sucesso!", ((CommandResult)result).Message);
        }
        public async ValueTask <ICommandResult> Handle(CadastrarUsuarioCommand command)
        {
            if (!command.Validate())
            {
                AddNotifications(command);
                return(new CommandResult(false, base.Notifications));
            }
            var entity = new Usuario(command.Nome, command.Login, command.Senha);

            if (entity.Login.IsValidCpf())
            {
                var clienteResult = await _clienteRepository.GetClienteByCPF(entity.Login).ConfigureAwait(true);

                if (clienteResult == null)
                {
                    var entityOperador = new Operador(command.Login, command.Nome, command.Senha);

                    await _operadorRepository.Add(entityOperador);

                    await _operadorRepository.SaveChanges().ConfigureAwait(true);
                }
                else
                {
                    entity.VincularClienteAoUsuario(clienteResult.FirstOrDefault());
                    await _usuarioRepository.Add(entity);
                }
            }
            else
            {
                AddNotification("CPF", "CPF Invalido.");
            }

            var result = await _usuarioRepository.SaveChanges().ConfigureAwait(true);

            if (!result)
            {
                return(new CommandResult(false));
            }

            return(new CommandResult(true));
        }
Beispiel #17
0
 public async Task <ActionResult> Insert([FromBody] CadastrarUsuarioCommand model)
 {
     return(ResponseBase(await _mediator.Send(model) ? "Usuario cadastrado com sucesso" : null));
 }
 public ICommandResult Cadastrar(CadastrarUsuarioCommand command, [FromServices] CadastrarUsuarioCommandHandler handler)
 {
     return((GenericCommandResult)handler.Handle(command));
 }
 public IActionResult Cadastrar([FromBody] CadastrarUsuarioCommand command)
 {
     _cadastrarUsuario.Execute(command);
     return(Ok());
 }