public async Task <Dominio.Servicos.Resposta <Modelos.Usuario> > Salvar(DTOs.NovoUsuario dadosUsuario) { var resposta = new Resposta <Modelos.Usuario>(); var senha = new Modelos.Senha(); if (string.IsNullOrWhiteSpace(dadosUsuario.Nome)) { resposta.Erro = new ErroAtributoEmBranco("nome"); } else if (string.IsNullOrWhiteSpace(dadosUsuario.Login)) { resposta.Erro = new ErroAtributoEmBranco("login"); } else if (string.IsNullOrWhiteSpace(dadosUsuario.Senha)) { resposta.Erro = new ErroAtributoEmBranco("senha"); } else { var usuario = new Modelos.Usuario(dadosUsuario.Login, senha.GerarHash(dadosUsuario.Senha), dadosUsuario.Nome); usuario.Id = await _usuarios.Salvar(usuario); resposta.Resultado = usuario; } return(resposta); }
public async Task Deve_Autenticar_Um_Usuario() { var usuario = new Modelos.Usuario( "usuario login", "pMt6WXGnAFrN1o13CIDRGw==.Bc8/fYrDFfyw576GfZnlEgnYIqZfszuKEErs2agPgRA=", "usuario nome") { Id = 1, }; usuario.AdicionarToken(Guid.NewGuid().ToString()); var dadosUsuario = new DTOs.NovoUsuario { Login = "******", Senha = "123456" }; _usuarios.Setup(repositorio => repositorio.ObterPorLogin(It.IsAny <string>())) .Returns(Task.FromResult(usuario)); var resposta = await _servico.Autenticar(dadosUsuario); var usuarioEncontrado = resposta.Resultado; usuarioEncontrado.Id.Should().NotBe(0); usuarioEncontrado.Login.Should().Be("usuario login"); usuarioEncontrado.Token.Should().NotBeNullOrWhiteSpace(); usuarioEncontrado.Nome.Should().Be("usuario nome"); }
public async Task Deve_Deletar_Um_Usuario() { var usuario = new Modelos.Usuario("", "", ""); _usuarios.Setup(repositorio => repositorio.ObterPorId(It.IsAny <int>())) .Returns(Task.FromResult(usuario)); var resposta = await _servico.Deletar(1); resposta.TemErro().Should().BeFalse(); }
public async Task Deve_Retornar_Um_Usuario_Por_Id() { var usuario = new Modelos.Usuario("usuario.xpto", "123456", "usuário nome"); _usuarios.Setup(repositorio => repositorio.ObterPorId(It.IsAny <int>())) .Returns(Task.FromResult(usuario)); var resposta = await _servico.ObterPorId(1); var usuarioEncontrado = resposta.Resultado; usuarioEncontrado.Login.Should().Be("usuario.xpto"); usuarioEncontrado.Nome.Should().Be("usuário nome"); usuarioEncontrado.Senha.Should().Be("123456"); }
public async Task Deve_Retornar_Erro_Quando_Tentar_Deletar_Um_Usuario_Com_Contatos_Vinculados_A_Ele() { var usuario = new Modelos.Usuario("xpto", "123", "usuario nome"); var contato = new Modelos.Contato("Contato", "11 985478521", "11 45873214", "*****@*****.**", usuario); usuario.AdicionarContato(contato); _usuarios.Setup(repositorio => repositorio.ObterPorId(It.IsAny <int>())) .Returns(Task.FromResult(usuario)); var resposta = await _servico.Deletar(1); resposta.Erro.Mensagem.Should().Be("Erro! Este usuário possui contatos vinculados."); resposta.Erro.StatusCode.Should().Be(400); resposta.Erro.GetType().Should().Be(typeof(ErroObjetoPossuiObjetosVinculados)); }
public async Task Deve_Deletar_Um_Contato() { var usuario = new Modelos.Usuario("", "", ""); var contato = new Modelos.Contato( "Contato", "11 985478521", "11 45873214", "*****@*****.**", usuario ); _contatos.Setup(repositorio => repositorio.ObterPorId(It.IsAny <int>())) .Returns(Task.FromResult(contato)); var resposta = await _servico.Deletar(1); resposta.TemErro().Should().BeFalse(); }
public async Task Deve_Atualizar_Um_Contato() { var usuario = new Modelos.Usuario("usuario", "123", "usuário nome"); var contato = new DTOs.AlteraContato { Id = 1, Nome = "Contato", Telefone = "11 45873214", Celular = "11 985478521", Email = "*****@*****.**" }; _contatos.Setup(repositorio => repositorio.ObterPorId(It.IsAny <int>())) .Returns(Task.FromResult(new Modelos.Contato("Contato", "11 985478521", "11 45873214", "*****@*****.**", usuario))); var resposta = await _servico.Atualizar(contato); resposta.TemErro().Should().BeFalse(); }
public async Task Deve_Retornar_Erro_Quando_Tentar_Autenticar_Um_Usuario_Com_Senha_Invalida() { var usuario = new Modelos.Usuario( "usuario login", "bHBlUVj1rFG48+Bd+4+yGA==.7KQGnYFMukLhkfSqhbfGhtqtqELUntz4AbGhrrqspLs=", "usuario nome"); var dadosUsuario = new DTOs.NovoUsuario { Login = "******", Senha = "123456" }; _usuarios.Setup(repositorio => repositorio.ObterPorLogin(It.IsAny <string>())) .Returns(Task.FromResult(usuario)); var resposta = await _servico.Autenticar(dadosUsuario); resposta.Erro.Mensagem.Should().Be("Senha inválido(a)!"); resposta.Erro.StatusCode.Should().Be(400); resposta.Erro.GetType().Should().Be(typeof(ErroAtributoInvalido)); }
public async Task Deve_Retornar_Um_Contato_Por_Id() { var usuario = new Modelos.Usuario("", "", ""); var contato = new Modelos.Contato( "Contato", "11 985478521", "11 45873214", "*****@*****.**", usuario ); _contatos.Setup(repositorio => repositorio.ObterPorId(It.IsAny <int>())) .Returns(Task.FromResult(contato)); var resposta = await _servico.ObterPorId(1); var contatoEncontrado = resposta.Resultado; contatoEncontrado.Nome.Should().Be("Contato"); contatoEncontrado.Celular.Should().Be("11 985478521"); contatoEncontrado.Telefone.Should().Be("11 45873214"); contatoEncontrado.Email.Should().Be("*****@*****.**"); }
public async Task Deve_Retornar_Todos_Os_Contatos_De_Um_Usuario() { var usuario = new Modelos.Usuario("usuario", "123", "usuário nome"); var contato = new Modelos.Contato("Contato", "11 985478521", "11 45873214", "*****@*****.**", usuario); usuario.AdicionarContato(contato); _usuarios.Setup(repositorio => repositorio.ObterPorId(It.IsAny <int>())) .Returns(Task.FromResult(usuario)); var resposta = await _servico.ListarPorUsuarioId(1); var contatos = resposta.Resultado; contatos.Should().HaveCountGreaterThan(0); contatos.ForEach((contato) => { contato.GetType().GetProperty("Id").Should().NotBeNull(); contato.GetType().GetProperty("Nome").Should().NotBeNull(); contato.GetType().GetProperty("Telefone").Should().NotBeNull(); contato.GetType().GetProperty("Celular").Should().NotBeNull(); contato.GetType().GetProperty("Email").Should().NotBeNull(); }); }
private bool ExisteContatosVinculados(Modelos.Usuario usuario) => usuario.Contatos.Count() > 0;