コード例 #1
0
        public async Task DeveCadastrarUsuarioValido()
        {
            var nome  = Guid.NewGuid().ToString();
            var email = $"{DateTime.Now:yyyyMMddhhmmss}@test.io";
            var senha = Guid.NewGuid().ToString("N");

            var criarUsuarioCommand = new CriarUsuarioCommand(nome, email, senha);

            using (var client = CreateClient())
            {
                var response = await client.PostAsJsonAsync(_actionName, criarUsuarioCommand);

                Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);

                var usuario = await response.Content.ReadAsAsync <UsuarioOutputCommand>();

                Assert.IsNotNull(usuario);

                Assert.AreNotEqual(Guid.Empty, usuario.Id);
                Assert.AreEqual(nome, usuario.Nome);
                Assert.AreEqual(email, usuario.Email);
                Assert.AreEqual("***", usuario.Senha);
                Assert.IsNotNull(usuario.DataUltimoLogin);
                Assert.IsNotNull(usuario.DataUpdate);
                Assert.IsNotNull(usuario.Token);
                Assert.AreEqual(0, usuario.Telefones.Count);
            }
        }
コード例 #2
0
        public async Task DeveRecusarEmailJaExistente()
        {
            var nome  = Guid.NewGuid().ToString();
            var email = $"{Guid.NewGuid():N}@test.io";
            var senha = Guid.NewGuid().ToString("N");

            var criarUsuarioCommand = new CriarUsuarioCommand(nome, email, senha);

            using (var client = CreateClient())
            {
                var response = await client.PostAsJsonAsync(_actionName, criarUsuarioCommand);

                Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);

                var usuario = await response.Content.ReadAsAsync <UsuarioOutputCommand>();

                Assert.IsNotNull(usuario);
            }

            using (var client = CreateClient())
            {
                var response = await client.PostAsJsonAsync(_actionName, criarUsuarioCommand);

                Assert.IsTrue(response.StatusCode == HttpStatusCode.Unauthorized);

                var error = await response.Content.ReadAsAsync <ErrorResultModel>();

                Assert.IsNotNull(error);

                Assert.AreEqual((int)HttpStatusCode.Unauthorized, error.StatusCode);
                Assert.AreEqual(Messages.EmailExistente, error.Mensagem);
            }
        }
コード例 #3
0
        public void DeveRetornarErroSeDadosInvalidos()
        {
            var command = new CriarUsuarioCommand();

            command.Validar();
            Assert.True(command.Valid, "Os Dados estão preenchidos corretamente");
        }
コード例 #4
0
        public void DeveRetornarErroSeDadosValidos()
        {
            var command = new CriarUsuarioCommand("Erick", "*****@*****.**", "123456", "", Comum.Enum.EnTipoUsuario.comun);

            command.Validar();
            Assert.True(command.Valid, "Os Dados estão preenchidos corretamente");
        }
コード例 #5
0
 public GerencCommandResult SignUp(
     CriarUsuarioCommand command,
     [FromServices] CriarUsuarioHandle handle
     )
 {
     return((GerencCommandResult)handle.Handle(command));
 }
コード例 #6
0
        public void DeveCriarUsuarioComDataDeCriacaoETelefones()
        {
            var criarUsuarioCommand = new CriarUsuarioCommand(NOME, EMAIL, SENHA);

            criarUsuarioCommand.Telefones.Add(new CriarTelefoneCommand(DDD1, TELEFONE1));
            criarUsuarioCommand.Telefones.Add(new CriarTelefoneCommand($"({DDD2})", TELEFONE2));

            var usuario = new UsuarioMapper().MapFrom(criarUsuarioCommand);

            Assert.IsNotNull(usuario);
            Assert.AreNotEqual(Guid.Empty, usuario.Id);
            Assert.IsNotNull(usuario.Telefones);
            Assert.IsTrue(usuario.Telefones.Any());
            Assert.AreEqual(2, usuario.Telefones.Count);

            Assert.AreEqual(NOME, usuario.Nome);
            Assert.AreEqual(EMAIL, usuario.Email);
            Assert.IsTrue(new PasswordEncryptionService().ComparePasswords(SENHA, usuario.Senha));

            Assert.AreEqual(usuario.Telefones.First().Ddd, DDD1);
            Assert.AreEqual(usuario.Telefones.First().Numero, TELEFONE1);

            Assert.AreEqual(usuario.Telefones.Last().Ddd, DDD2.OnlyNumbers());
            Assert.AreEqual(usuario.Telefones.Last().Numero, TELEFONE2.OnlyNumbers());
        }
コード例 #7
0
        public Usuario MapFrom(CriarUsuarioCommand command)
        {
            var usuario = new Usuario(command.Nome, command.Email, command.Senha, DateTime.Now);

            command.Telefones.ForEach(telefone => usuario.Telefones.Add(new Telefone(usuario.Id, telefone.Ddd, telefone.Numero)));

            return(usuario);
        }
コード例 #8
0
        public void DeveRetornarErroSeDadosInvalidos()
        {
            var command = new CriarUsuarioCommand();

            command.Validar();

            Assert.False(command.Valid, "Usuário é válido");
        }
コード例 #9
0
        public void DeveRetornarErroCasoOsDadosDoHandleSejamInvalidos()
        {
            var command   = new CriarUsuarioCommand();
            var handle    = new CriarUsuarioHandle(new FakeUsuarioRepositorio());
            var resultado = (GerencCommandResult)handle.Handle(command);

            Assert.False(resultado.Sucesso, "Usuario válido");
        }
コード例 #10
0
        public void DeveRetornarSucessoCasoOsDadosDoHandleSejamValidos()
        {
            var command   = new CriarUsuarioCommand("Erick", "*****@*****.**", "123456", "", Comum.Enum.EnTipoUsuario.comun);
            var handle    = new CriarUsuarioHandle(new FakeUsuarioRepositorio());
            var resultado = (GerencCommandResult)handle.Handle(command);

            Assert.False(resultado.Sucesso, "Usuario válido");
        }
コード例 #11
0
        public void CriarUsuario(CriarUsuarioCommand command)
        {
            ValidacaoLogica.IsTrue <ValidacaoException>(command is null, "Comando não pode ser nulo");

            var usuario = new Usuario(command);

            usuariosRepository.Adicionar(usuario);

            unitOfWork.SaveChanges();
        }
コード例 #12
0
        public void SucessoCasoDadosCommandValidosComTelefone()
        {
            var _command = new CriarUsuarioCommand("Nome command", "*****@*****.**", "123456", "11962553590", EnTipoPerfil.Comum);

            //Validando os campos informados
            _command.Validar();

            //Espera sucesso ao inserir um novo usuário
            Assert.True(_command.Valid, "Os dados estão incorretos");
        }
コード例 #13
0
        public async Task <ActionResult> Post([FromBody] CriarUsuarioCommand command)
        {
            var response = await EventBus.SendCommand(command);

            if (response.HasFails)
            {
                return(BadRequest(response.Fails));
            }

            return(Ok());
        }
コード例 #14
0
        public void ErroCasoDadosCommandInvalidos()
        {
            var _command = new CriarUsuarioCommand("", "", "", "", EnTipoPerfil.Comum);

            //Validando os campos informados
            _command.Validar();

            //Espera erro ao inserir um novo command de usuário
            //devido a falta de um resultado para o parametro 'nome', 'email', 'senha', 'telefone'
            Assert.True(_command.Invalid, "Os dados estão corretos");
        }
コード例 #15
0
        public void ErroCasoEmailCommandInvalido()
        {
            var _command = new CriarUsuarioCommand("Nome command", "", "123456", "11962553590", EnTipoPerfil.Comum);

            //Validando os campos informados
            _command.Validar();

            //Espera erro ao inserir um novo command de usuário
            //devido a falta de um resultado para o parametro 'email'
            Assert.True(_command.Invalid, "O email de usuário está correto");
        }
コード例 #16
0
        public void ErroCasoSenhaCommandInvalida()
        {
            var _command = new CriarUsuarioCommand("Nome command", "*****@*****.**", "", "1162553590", EnTipoPerfil.Comum);

            //Validando os campos informados
            _command.Validar();

            //Espera erro ao inserir um novo command de usuário
            //devido a falta de um resultado para o parametro 'senha'
            Assert.True(_command.Invalid, "A senha informada está correta");
        }
コード例 #17
0
ファイル: Usuario.cs プロジェクト: eletroweb/autosoft
        protected Usuario(CriarUsuarioCommand cmd) : base(cmd.Id)
        {
            Login = cmd.Login;
            Senha = cmd.Senha;

            AddEvent(new UsuarioCriadoEvent()
            {
                AggregateRootId = Id,
                UsuarioId       = cmd.Id
            });
        }
コード例 #18
0
        public async Task Usuario_CriarUsuarioEmailInvalido_Retornar400BadRequest()
        {
            // Arrange
            var criarUsuarioCommand = new CriarUsuarioCommand("", "Maria", -23.5950753, -46.645421, "Admin123@");

            // Act
            var postResponse = await _testsFixture.Client.PostAsJsonAsync("/api/usuarios/registrar", criarUsuarioCommand);

            // Assert
            Assert.Equal(HttpStatusCode.BadRequest, postResponse.StatusCode);
        }
コード例 #19
0
        public void Dado_um_usuario_com_nome_invalido()
        {
            var command = new CriarUsuarioCommand("Ful",
                                                  "*****@*****.**",
                                                  "123456",
                                                  "candidato");

            command.Validate();

            Assert.IsTrue(command.Invalid);
        }
コード例 #20
0
        public async Task Usuario_CriarUsuario_Retornar200OKSucesso()
        {
            // Arrange
            var criarUsuarioCommand = new CriarUsuarioCommand("*****@*****.**", "Maria", -23.5950753, -46.645421, "Admin123@");

            // Act
            var postResponse = await _testsFixture.Client.PostAsJsonAsync("/api/usuarios/registrar", criarUsuarioCommand);

            // Assert
            postResponse.EnsureSuccessStatusCode();
        }
コード例 #21
0
        public void Dado_um_usuario_com_senha_invalida()
        {
            var command = new CriarUsuarioCommand("Fulano de tal",
                                                  "*****@*****.**",
                                                  "123",
                                                  "candidato");

            command.Validate();

            Assert.IsTrue(command.Invalid);
        }
コード例 #22
0
        public void Dado_um_usuario_com_role_invalido()
        {
            var command = new CriarUsuarioCommand("Fulano de tal",
                                                  "*****@*****.**",
                                                  "123456",
                                                  "gerente");

            command.Validate();

            Assert.IsTrue(command.Invalid);
        }
コード例 #23
0
        public void DeveRetornarErroSeOsDadosDoHandlerForemValidos()
        {
            //criar um command
            var command = new CriarUsuarioCommand("Maria Eduarda", "*****@*****.**", "1234567", "", EnTipoUsuario.Comum);
            //criar um handle
            var handle = new CriarUsuarioHandle(new FakeUsuarioRepositorio());
            //pega o resultado
            var resultado = (GenericCommandResult)handle.Handle(command);

            //valida a condição
            Assert.True(resultado.Sucesso, "Usuário é válido");
        }
コード例 #24
0
        public void DeveRetornarErroCasoOsDadosDoHandleSejamInvalidos()
        {
            // criar um command
            var command = new CriarUsuarioCommand();
            // criar um handle
            var handle = new CriarUsuarioHandle(new FakeUsuarioRepositorio()); //Moq ou FakeRepository
            //Pega o resultado
            var resultado = (GenericCommandResult)handle.Handle(command);

            //Validar Condicao
            Assert.False(resultado.Sucesso, "Usuario válido");
        }
コード例 #25
0
        public void DeveRetornarSucessoCasoOsDadosDoHandleSejamValidos()
        {
            // criar um command
            var command = new CriarUsuarioCommand("Cauê", "*****@*****.**", "1234567", "", Comum.Enum.EnTipoUsuario.Comum);
            // criar um handle
            var handle = new CriarUsuarioHandle(new FakeUsuarioRepositorio()); //Moq
            //Pega o resultado
            var resultado = (GenericCommandResult)handle.Handle(command);

            //Validar Condicao
            Assert.True(resultado.Sucesso, "Usuario inválido");
        }
コード例 #26
0
        public void DeveRetornarErroSeDadosValidos()
        {
            var command = new CriarUsuarioCommand("Maria Eduarda", "*****@*****.**", "123456", "", EnTipoUsuario.Comum);

            command.Validar();

            //Se o meu objeto commmand passar pelas validações
            //Invalid = false - se passar pelas validações e der false significa q ele n tá inválido
            //Se não, Invalid = true

            Assert.True(command.Valid, "Usuário é inválido");
        }
コード例 #27
0
        public IHttpActionResult CriarUsuario([FromBody] UsuarioViewModel viewModel)
        {
            var cmd = new CriarUsuarioCommand();

            cmd.Id    = Guid.NewGuid();
            cmd.Login = viewModel.Login;
            cmd.Senha = viewModel.Senha;

            _commandSender.Send(cmd, false);

            return(Ok(SuccessResponse.Instance));
        }
コード例 #28
0
        public Usuario(CriarUsuarioCommand command)
        {
            ValidarCampos(command.Nome, command.Login, command.Senha);
            ValidacaoLogica.IsTrue <ValidacaoException>(command.Cpf <= 0, "Cpf deve ser maior que zero.");
            ValidacaoLogica.IsTrue <ValidacaoException>(command.Cpf.ToString().Length != 11, "Cpf inválido. Deve conter 11 dígitos.");


            Nome  = command.Nome;
            Cpf   = command.Cpf;
            Login = command.Login;
            Senha = command.Senha;
        }
コード例 #29
0
        public void DeveRetornarSucessoSeDadosValidosConstrutor()
        {
            var command = new CriarUsuarioCommand("Fernando",
                                                  "*****@*****.**",
                                                  "1234567", "",
                                                  Comum.Enum.EnTipoUsuario.Comum
                                                  );

            command.Validar();

            Assert.True(command.Valid, "Os dados estão preenchidos corretamente");
        }
コード例 #30
0
        public void Criar_um_usuario_com_sucesso()
        {
            var cmd = new CriarUsuarioCommand("Fulano de tal",
                                              "*****@*****.**",
                                              "123456",
                                              "candidato"
                                              );

            var hdl    = new CriarUsuarioHandler(_repositorio.Object);
            var result = (ResponseCommandResult)hdl.Handle(cmd);

            Assert.IsTrue(result.Valid, result.Message);
        }