예제 #1
0
        public void NaoDeveAtualizarQuandoNaoEncontrarFuncionario()
        {
            FuncionarioDto funcionario = new FuncionarioDto
            {
                Nome         = "Marvin",
                Cpf          = "12321025980",
                Inativo      = false,
                CargoId      = 1,
                EhHomeOffice = false,
                EmpresaId    = 1
            };
            Cargo   cargo   = new Cargo("Tester");
            Empresa empresa = new Empresa("DB1", new CNPJ(""));

            _empresaRepositoryMock = new Mock <IEmpresaRepository>();
            _empresaRepositoryMock.Setup(mock => mock.ObterPorId(It.IsAny <int>())).Returns(empresa);

            _cargoRepositoryMock = new Mock <ICargoRepository>();
            _cargoRepositoryMock.Setup(mock => mock.ObterPorId(It.IsAny <int>())).Returns(cargo);

            _funcionarioRepositoryMock = new Mock <IFuncionarioRepository>();
            _funcionarioRepositoryMock.Setup(mock => mock.Atualizar(It.IsAny <Funcionario>())).Throws(new Exception());

            IFuncionarioService funcionarioService = new FuncionarioService(_empresaRepositoryMock.Object, _cargoRepositoryMock.Object, _funcionarioRepositoryMock.Object);

            var mensagens = funcionarioService.Atualizar(funcionario, 1);

            _funcionarioRepositoryMock.Verify(mock => mock.Atualizar(It.IsAny <Funcionario>()), Times.Never());
            Assert.Equal(1, mensagens.Count);
        }
예제 #2
0
        public void NaoDeveAtualizarUmFuncionarioComCpfInvalido()
        {
            FuncionarioDto funcionario = new FuncionarioDto
            {
                Nome         = "Marvin",
                Cpf          = "",
                Inativo      = false,
                CargoId      = 1,
                EhHomeOffice = false,
                EmpresaId    = 1
            };
            Cargo   cargo   = new Cargo("Tester");
            Empresa empresa = new Empresa("Db1", new CNPJ("87717167000156"));

            _empresaRepositoryMock = new Mock <IEmpresaRepository>();
            _empresaRepositoryMock.Setup(mock => mock.ObterPorId(It.IsAny <int>())).Returns(empresa);

            _cargoRepositoryMock = new Mock <ICargoRepository>();
            _cargoRepositoryMock.Setup(mock => mock.ObterPorId(It.IsAny <int>())).Returns(cargo);

            _funcionarioRepositoryMock = new Mock <IFuncionarioRepository>();
            _funcionarioRepositoryMock.Setup(mock => mock.Atualizar(It.IsAny <Funcionario>()));

            IFuncionarioService funcionarioService = new FuncionarioService(_empresaRepositoryMock.Object, _cargoRepositoryMock.Object, _funcionarioRepositoryMock.Object);

            var mensagens = funcionarioService.Atualizar(funcionario, 1);

            _funcionarioRepositoryMock.Verify(mock => mock.Atualizar(It.IsAny <Funcionario>()), Times.Never());
            Assert.Equal(1, mensagens.Count);
        }
        public IActionResult Atualizar(string id, Funcionarios funcionarioIn)
        {
            var funcionario = _funcionarioService.Get(id);

            if (funcionario == null)
            {
                return(NotFound());
            }

            _funcionarioService.Atualizar(id, funcionarioIn);

            return(NoContent());
        }
예제 #4
0
        public void FuncionarioIntegracaoSistema_Atualizar_DeveSerValido()
        {
            //Cenário
            Funcionario funcionarioParaEditar = _funcionarioService.Obter(1);

            funcionarioParaEditar.Id = 1;
            string nomeAntigo = funcionarioParaEditar.Nome;
            string nomeNovo   = "Nome";

            if (nomeAntigo == nomeNovo)
            {
                nomeNovo = "Nome novo";
            }

            funcionarioParaEditar.Nome = nomeNovo;

            //Ação
            Funcionario funcionarioResultado = _funcionarioService.Atualizar(funcionarioParaEditar);

            //Verificar
            funcionarioResultado.Nome.Should().NotBe(nomeAntigo);
            funcionarioResultado.Id.Should().Be(funcionarioParaEditar.Id);
        }
예제 #5
0
        public void FuncionarioService_Atualizar_DeveSerValido()
        {
            //Cenário
            Funcionario funcionario = ObjectMother.ObterFuncionarioValido();

            funcionario.Id = 1;

            _mockFuncionarioRepositorio.Setup(rp => rp.Atualizar(funcionario)).Returns(new Funcionario {
                Id = funcionario.Id, Cargo = "cargo", Nome = "nome", Ramal = "ramal"
            });

            //Ação
            Funcionario retorno = _funcionarioService.Atualizar(funcionario);

            //Verificar
            _mockFuncionarioRepositorio.Verify(rp => rp.Atualizar(funcionario));
            retorno.Should().NotBeNull();
            retorno.Id.Should().Be(funcionario.Id);
        }
예제 #6
0
        public async Task AtualizarComEnderecoTelefone_OK_Quando_Registro_Existe()
        {
            var person = _faker.Person;
            var id     = Guid.NewGuid();

            var telsNovo = new List <Telefone> {
                new Telefone("+55", "11", "90000-0000", id),
                new Telefone("+55", "11", "80000-0000", id)
            };
            var enderecoNovo          = new Endereco("Rua", 11, "00000-000", "apt", "bairro", "cidade", "sp", Cadastro.Domain.Enums.TipoEnderecoEnum.Comercial, id);
            var funcionarioAtualizado = new Funcionario(id.ToString(), "matricular", "cargo 2",
                                                        new Nome(person.FirstName, "Silva Sauro"),
                                                        new DataNascimento(new System.DateTime(1985, 08, 14)),
                                                        new Email(person.Email), telsNovo, enderecoNovo, enderecoNovo);

            _mockFuncionarioRepositorioEscrita.Setup(x => x.RecuperarConexao())
            .Returns(_mockConexao.Object);

            _mockFuncionarioRepositorioEscrita.Setup(x => x.IniciarTransacao())
            .Returns(_mockTransacao.Object);


            _mockFuncionarioRepositorioLeitura.Setup(x => x.ObterPorId(It.IsAny <IDbTransaction>(), It.IsAny <Guid>()))
            .ReturnsAsync(new Funcionario(id.ToString(), "matricular", "cargo",
                                          new Nome(person.FirstName, "Silva"),
                                          new DataNascimento(new DateTime(1987, 08, 14)),
                                          new Email(person.Email), telsNovo, enderecoNovo, enderecoNovo))
            .Callback <IDbTransaction, Guid>((transacao, id) =>
            {
                Output.WriteLine($"Callback ObterPorId: {id}");
            });

            var service = new FuncionarioService(_mockFuncionarioRepositorioLeitura.Object, _mockFuncionarioRepositorioEscrita.Object, _mockLogger.Object);

            await service.Atualizar(funcionarioAtualizado);

            Output.WriteLine($"Result: ok");

            _mockFuncionarioRepositorioLeitura.Verify(x => x.ObterPorId(It.IsAny <IDbTransaction>(), It.IsAny <Guid>()), Times.Once);
        }