public bool Cadastrar(Funcionario funcionario, string login) { try { return(_funcionarioService.Cadastrar(funcionario, login)); } catch (RegistroExisteException e) { throw new RegistroExisteException(e.Message); } catch (ConcorrenciaBancoException e) { throw new ConcorrenciaBancoException(e.Message); } }
public async Task Cadastrar_OK_Quando_EMail_Nao_Existe() { var person = _faker.Person; var funcionario = new Funcionario("xxxxxx", "matricular", "cargo", new Nome(person.FirstName, person.LastName), new DataNascimento(new System.DateTime(1987, 08, 14)), new Email(person.Email)); _mockFuncionarioRepositorioEscrita.Setup(x => x.Inserir(It.IsAny <Funcionario>())) .ReturnsAsync(funcionario.Id); _mockFuncionarioRepositorioLeitura.Setup(x => x.ObterPorEmail(It.IsAny <string>())) .ReturnsAsync((Funcionario)null) .Callback <string>(email => { Assert.Equal(funcionario.Email.EnderecoEmail, email); }); var service = new FuncionarioService(_mockFuncionarioRepositorioLeitura.Object, _mockFuncionarioRepositorioEscrita.Object, _mockLogger.Object); bool result = await service.Cadastrar(funcionario); _mockFuncionarioRepositorioLeitura.Verify(x => x.ObterPorEmail(It.IsAny <string>()), Times.Once); _mockFuncionarioRepositorioEscrita.Verify(x => x.Inserir(It.IsAny <Funcionario>()), Times.Once); result.Should().BeTrue(); }
public async Task Cadastrar_Nao_OK_Quando_EMail_Ja_Existe() { var person = _faker.Person; var funcionario = new Funcionario(Guid.NewGuid().ToString(), "matricular", "cargo", new Nome(person.FirstName, person.LastName), new DataNascimento(new System.DateTime(1987, 08, 14)), new Email(person.Email)); _mockFuncionarioRepositorioEscrita.Setup(x => x.RecuperarConexao()) .Returns(_mockConexao.Object); _mockFuncionarioRepositorioEscrita.Setup(x => x.IniciarTransacao()) .Returns(_mockTransacao.Object); _mockFuncionarioRepositorioLeitura.Setup(x => x.ObterPorEmail(It.IsAny <IDbTransaction>(), It.IsAny <string>())) .ReturnsAsync(funcionario) .Callback <IDbTransaction, string>((transacao, email) => { Output.WriteLine($"Callback Email: {email}"); Assert.Equal(funcionario.Email.EnderecoEmail, email); }); var service = new FuncionarioService(_mockFuncionarioRepositorioLeitura.Object, _mockFuncionarioRepositorioEscrita.Object, _mockLogger.Object); await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.Cadastrar(funcionario)); Output.WriteLine($"Result: ok"); _mockFuncionarioRepositorioLeitura.Verify(x => x.ObterPorEmail(It.IsAny <IDbTransaction>(), It.IsAny <string>()), Times.Once); _mockFuncionarioRepositorioEscrita.Verify(x => x.Inserir(It.IsAny <Funcionario>(), It.IsAny <IDbTransaction>()), Times.Never); }
public async Task Cadastrar_Nao_OK_Quando_Banco_Nao_Acessivel() { var person = _faker.Person; var funcionario = new Funcionario(Guid.NewGuid().ToString(), "matricular", "cargo", new Nome(person.FirstName, person.LastName), new DataNascimento(new System.DateTime(1987, 08, 14)), new Email(person.Email)); _mockFuncionarioRepositorioEscrita.Setup(x => x.RecuperarConexao()) .Returns(_mockConexao.Object); _mockFuncionarioRepositorioEscrita.Setup(x => x.IniciarTransacao()) .Returns(_mockTransacao.Object); _mockFuncionarioRepositorioLeitura.Setup(x => x.ObterPorEmail(It.IsAny <IDbTransaction>(), It.IsAny <string>())) .Throws(new Exception()); var service = new FuncionarioService(_mockFuncionarioRepositorioLeitura.Object, _mockFuncionarioRepositorioEscrita.Object, _mockLogger.Object); await Assert.ThrowsAsync <Exception>(async() => await service.Cadastrar(funcionario)); Output.WriteLine($"Result: ok"); _mockFuncionarioRepositorioLeitura.Verify(x => x.ObterPorEmail(It.IsAny <IDbTransaction>(), It.IsAny <string>()), Times.Once); }
//EVENTO QUE PASSA O OBJETO PARA SER INSERIDO private void BtnSalvar_Click(object sender, EventArgs e) { try { if (btnSalvar.Text == "Salvar") { if (txtCodigo.Text == string.Empty) { MessageBox.Show("PREENCHA O CAMPO DE CODIGO"); txtCodigo.Focus(); } else if (txtDescricao.Text == string.Empty) { MessageBox.Show("PREENCHA O NOME!"); txtDescricao.Focus(); } else { service.Cadastrar(objGeradoCad()); MessageBox.Show("O FUNCIONÁRIO " + objGeradoCad().De_func + " FOI CADASTRADO COM SUCESSO!"); this.fUNCIONARIOSTableAdapter.Fill(this.maximosystemDataSetFuncionarios.FUNCIONARIOS); //ATUALIZA O DATA GRID eventoCancelar(); // RETORNA PARA O ABA DE CADASTRO } } if (btnSalvar.Text == "Modificar") { if (txtCodigo.Text == string.Empty) { MessageBox.Show("PREENCHA O CAMPO DE CODIGO"); txtCodigo.Focus(); } else if (txtDescricao.Text == string.Empty) { MessageBox.Show("PREENCHA O NOME!"); txtDescricao.Focus(); } else { service.Modificar(objGeradoMod()); MessageBox.Show("O FUNCIONÁRIO " + objGeradoMod().De_func + " FOI MODIFICADO COM SUCESSO!"); this.fUNCIONARIOSTableAdapter.Fill(this.maximosystemDataSetFuncionarios.FUNCIONARIOS); //ATUALIZA O DATA GRID eventoCancelar(); // RETORNA PARA O ABA DE CADASTRO } } } catch (Exception ex) { MessageBox.Show("Erro ao Salvar " + ex.Message); } }
public async Task CadastrarComEnderecoTelefone_OK_Quando_EMail_Nao_Existe() { var person = _faker.Person; var id = Guid.NewGuid(); var tels = new List <Telefone> { new Telefone("+55", "11", "90000-0000", id) }; var endereco = new Endereco("Rua", 10, "00000-000", "apto", "bairro", "cidade", "sp", Cadastro.Domain.Enums.TipoEnderecoEnum.Residencial, id); var funcionario = new Funcionario(id.ToString(), "matricular", "cargo", new Nome(person.FirstName, person.LastName), new DataNascimento(new System.DateTime(1987, 08, 14)), new Email(person.Email), tels, endereco, endereco); _mockFuncionarioRepositorioEscrita.Setup(x => x.RecuperarConexao()) .Returns(_mockConexao.Object); _mockFuncionarioRepositorioEscrita.Setup(x => x.IniciarTransacao()) .Returns(_mockTransacao.Object); _mockFuncionarioRepositorioEscrita.Setup(x => x.Inserir(It.IsAny <Funcionario>(), It.IsAny <IDbTransaction>())) .ReturnsAsync(funcionario.Id); _mockFuncionarioRepositorioLeitura.Setup(x => x.ObterPorEmail(It.IsAny <IDbTransaction>(), It.IsAny <string>())) .ReturnsAsync((Funcionario)null) .Callback <IDbTransaction, string>((transaction, email) => { Output.WriteLine($"Callback Email: {email}"); Assert.Equal(funcionario.Email.EnderecoEmail, email); }); var service = new FuncionarioService(_mockFuncionarioRepositorioLeitura.Object, _mockFuncionarioRepositorioEscrita.Object, _mockLogger.Object); await service.Cadastrar(funcionario); Output.WriteLine($"Result: ok"); _mockFuncionarioRepositorioLeitura.Verify(x => x.ObterPorEmail(It.IsAny <IDbTransaction>(), It.IsAny <string>()), Times.Once); _mockFuncionarioRepositorioEscrita.Verify(x => x.Inserir(It.IsAny <Funcionario>(), It.IsAny <IDbTransaction>()), Times.Once); }