コード例 #1
0
 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);
     }
 }
コード例 #2
0
        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();
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        //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);
            }
        }
コード例 #6
0
        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);
        }