public void CadastrarAtendenteComCpfSemMascaraTest() { // given var usuarioCadastro = new UsuarioCadastroViewModel("*****@*****.**", "25d55ad283aa400af464c76d713c07ad", "Atendente"); var enderecoCadastro = new EnderecoViewModel("29500-000", "Rua nova", "123", "Casa", "Centro", "Alegre", "ES"); var atendenteCadastro = new AtendenteCadastroViewModel("Joana", new DateTime(1980, 2, 5), "F", "12245778912", "12.345.678-1", "*****@*****.**", "(34)98543-3241", enderecoCadastro, usuarioCadastro); var endereco = new Endereco(new Guid("1EF2F5CB-A04B-4761-3C44-08D78CC135ED"), "29500-000", "Rua nova", "123", "Casa", "Centro", "Alegre", "ES"); var atendente = new Atendente(new Guid("16E16A8D-469F-4286-A470-08D78CC0F920"), "Joana", new DateTime(1980, 2, 5), "F", "12245778912", "12.345.678-1", "*****@*****.**", "(34)98543-3241", endereco.IdEndereco); var usuarioAtendente = new Usuario(new Guid("1A7C25A0-896F-49DF-A75E-EE7DD53AECB9"), "*****@*****.**", "25d55ad283aa400af464c76d713c07ad", "Atendente", null, atendente); this.atendenteRepositoryMock.SetupSequence(a => a.BuscarAtendentePorCpf("122.457.789-12")).Returns((Atendente)null).Returns(atendente); this.atendenteRepositoryMock.Setup(a => a.BuscarAtendentePorRg(atendenteCadastro.Rg)).Returns((Atendente)null); this.usuarioRepositoryMock.Setup(u => u.ObterUsuarioPorEmail(atendenteCadastro.Usuario.Email)).Returns((Usuario)null); this.enderecoRepositoryMock.Setup(e => e.BuscaIdEndereco(It.IsAny <Endereco>())).Returns(Guid.NewGuid()); this.enderecoRepositoryMock.Setup(e => e.CadastrarEndereco(It.IsAny <Endereco>())).Returns(true); this.atendenteRepositoryMock.Setup(a => a.CadastrarAtendente(It.IsAny <Atendente>())).Returns(true); this.usuarioRepositoryMock.Setup(u => u.CadastrarUsuario(It.IsAny <Usuario>())).Returns(true); var atendenteService = new AtendenteService(this.atendenteRepositoryMock.Object, this.enderecoRepositoryMock.Object, this.usuarioRepositoryMock.Object); // when var resultado = atendenteService.CadastrarAtendente(atendenteCadastro); // then Assert.NotNull(resultado); Assert.True(resultado.Id == 1); }
public Mensagem CadastrarAtendente(AtendenteCadastroViewModel atendenteCadastroViewModel) { return(this.atendenteService.CadastrarAtendente(atendenteCadastroViewModel)); }
public Mensagem CadastrarAtendente(AtendenteCadastroViewModel atendenteCadastroViewModel) { if (!Regex.IsMatch(atendenteCadastroViewModel.Cpf, cpfComMascara)) { if (Regex.IsMatch(atendenteCadastroViewModel.Cpf, cpfSemMascara)) { atendenteCadastroViewModel.Cpf = atendenteCadastroViewModel.Cpf.Substring(0, 3) + "." + atendenteCadastroViewModel.Cpf.Substring(3, 3) + "." + atendenteCadastroViewModel.Cpf.Substring(6, 3) + "-" + atendenteCadastroViewModel.Cpf.Substring(9, 2); } else { return(new Mensagem(0, "CPF não possui o formato correto!")); } } if (!Regex.IsMatch(atendenteCadastroViewModel.Rg, rgComMascara)) { if (Regex.IsMatch(atendenteCadastroViewModel.Rg, rgSemMascara)) { atendenteCadastroViewModel.Rg = atendenteCadastroViewModel.Rg.Substring(0, 2) + "." + atendenteCadastroViewModel.Rg.Substring(2, 3) + "." + atendenteCadastroViewModel.Rg.Substring(5, 3) + "-" + atendenteCadastroViewModel.Rg.Substring(8); } else { return(new Mensagem(0, "RG não possui o formato correto!")); } } if (!Regex.IsMatch(atendenteCadastroViewModel.Telefone, celularComMascara)) { if (Regex.IsMatch(atendenteCadastroViewModel.Telefone, celularSemMascara)) { atendenteCadastroViewModel.Telefone = "(" + atendenteCadastroViewModel.Telefone.Substring(0, 2) + ")" + atendenteCadastroViewModel.Telefone.Substring(2, 5) + "-" + atendenteCadastroViewModel.Telefone.Substring(7); } else { return(new Mensagem(0, "Telefone não possui o formato correto!")); } } if (!Regex.IsMatch(atendenteCadastroViewModel.Endereco.Cep, cepComMascara)) { if (Regex.IsMatch(atendenteCadastroViewModel.Endereco.Cep, cepSemMascara)) { atendenteCadastroViewModel.Endereco.Cep = atendenteCadastroViewModel.Endereco.Cep.Substring(0, 5) + "-" + atendenteCadastroViewModel.Endereco.Cep.Substring(5); } else { return(new Mensagem(0, "CEP não possui o formato correto!")); } } if (this.atendenteRepository.BuscarAtendentePorCpf(atendenteCadastroViewModel.Cpf) != null) { return(new Mensagem(0, "Já existe uma atendente com esse CPF registrado!")); } if (this.atendenteRepository.BuscarAtendentePorRg(atendenteCadastroViewModel.Rg) != null) { return(new Mensagem(0, "Já existe uma atendente com esse RG registrado!")); } if (this.usuarioRepository.ObterUsuarioPorEmail(atendenteCadastroViewModel.Usuario.Email) != null) { return(new Mensagem(0, "Já existe um usuário cadastrado com esse e-mail!")); } bool resultado = true; Endereco endereco = new Endereco(atendenteCadastroViewModel.Endereco.Cep, atendenteCadastroViewModel.Endereco.Logradouro, atendenteCadastroViewModel.Endereco.Numero, atendenteCadastroViewModel.Endereco.Complemento, atendenteCadastroViewModel.Endereco.Bairro, atendenteCadastroViewModel.Endereco.Localidade, atendenteCadastroViewModel.Endereco.Uf); Guid id = this.enderecoRepository.BuscaIdEndereco(endereco); if (id == Guid.Empty) { resultado = this.enderecoRepository.CadastrarEndereco(endereco); id = this.enderecoRepository.BuscaIdEndereco(endereco); } if (!resultado) { return(new Mensagem(0, "Falha ao cadastrar atendente!")); } Atendente atendente = new Atendente(atendenteCadastroViewModel.Nome, atendenteCadastroViewModel.DataNascimento, atendenteCadastroViewModel.Sexo, atendenteCadastroViewModel.Cpf, atendenteCadastroViewModel.Rg, atendenteCadastroViewModel.Email, atendenteCadastroViewModel.Telefone, id); resultado = this.atendenteRepository.CadastrarAtendente(atendente); if (!resultado) { return(new Mensagem(0, "Falha ao cadastrar atendente!")); } Atendente atendenteResultado = this.atendenteRepository.BuscarAtendentePorCpf(atendenteCadastroViewModel.Cpf); if (atendenteResultado == null) { return(new Mensagem(0, "Falha ao cadastrar atendente!")); } using (SHA256 sha256 = SHA256.Create()) { byte[] data = sha256.ComputeHash(Encoding.UTF8.GetBytes(atendenteCadastroViewModel.Usuario.Senha)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } atendenteCadastroViewModel.Usuario.Senha = sBuilder.ToString(); } Usuario usuario = new Usuario(atendenteCadastroViewModel.Usuario.Email, atendenteCadastroViewModel.Usuario.Senha, "Atendente", null, atendenteResultado.IdAtendente); resultado = this.usuarioRepository.CadastrarUsuario(usuario); if (!resultado) { return(new Mensagem(0, "Falha ao cadastrar atendente!")); } return(new Mensagem(1, "Atendente cadastrada com sucesso!")); }