Пример #1
0
        public void NaoDeveVincularCargoQuandoNaoTemEmpresa()
        {
            //Given
            var dto = new FuncionarioDto
            {
                Id      = _faker.Random.Number(100),
                IdCargo = _faker.Random.Number(100)
            };

            var funcionarioMock = FuncionarioBuilder.Novo().ComId(dto.Id).Build();
            var cargoMock       = CargoBuilder.Novo().ComId(dto.IdCargo).Build();

            _funcionarioRepositoryMock
            .Setup(fr => fr.ObterPorId(dto.Id))
            .Returns(funcionarioMock);

            _cargoRepositoryMock
            .Setup(cr => cr.ObterPorId(dto.IdCargo))
            .Returns(cargoMock);

            //When
            _vinculacaoDeFuncionarioACargo.VincularCargo(dto);

            //Then
            _funcionarioRepositoryMock.Verify(fr => fr.Atualizar(funcionarioMock), Times.Never);
        }
Пример #2
0
        public VinculadorDeFuncionarioNoCargoTestes()
        {
            _onboardingSIGDB1faker = OnboardingSIGDB1FakerBuilder.Novo().Build();
            _funcionarioId         = _onboardingSIGDB1faker.Id();
            _cargoId = _onboardingSIGDB1faker.Id();

            _onboardingSIGDB1faker = OnboardingSIGDB1FakerBuilder.Novo().Build();
            _cargoDoFuncionarioDto = new CargoDoFuncionarioDto()
            {
                FuncionarioId = _funcionarioId,
                CargoId       = _cargoId,
                DataDeVinculo = _onboardingSIGDB1faker.QualquerDataDoUltimoAno()
            };

            var empresa = EmpresaBuilder.Novo().ComId(_onboardingSIGDB1faker.Id()).Build();

            _funcionario = FuncionarioBuilder.Novo().ComId(_funcionarioId).ComEmpresa(empresa).Build();
            _cargo       = CargoBuilder.Novo().ComId(_cargoId).Build();

            _notificacaoDeDominioMock   = new Mock <IDomainNotificationHandler>();
            _funcionarioRepositorioMock = new Mock <IFuncionarioRepositorio>();
            _cargoRepositorioMock       = new Mock <ICargoRepositorio>();

            _vinculadorDeFuncionarioNoCargo = new VinculadorDeFuncionarioNoCargo(
                _notificacaoDeDominioMock.Object,
                _funcionarioRepositorioMock.Object,
                _cargoRepositorioMock.Object
                );
        }
Пример #3
0
        public void DeveNotificarQueExistemFuncionariosUtilizandoEsseCargo()
        {
            int                id           = -1;
            string             descricao    = "descricao";
            List <Funcionario> funcionarios = new List <Funcionario>()
            {
                FuncionarioBuilder.Novo().ComId(1).Build()
            };
            Cargo cargo = CargoBuilder.Novo()
                          .ComId(id)
                          .ComDescricao(descricao)
                          .ComFuncionarios(funcionarios)
                          .Build();

            _cargoRepositorioMock.Setup(x => x.ObterPorId(id)).Returns(cargo);

            var cargoExcluidoComSucesso = _excluidorDeCargo.Excluir(id);

            _notificationContextMock.Verify(
                x =>
                x.AddNotification(TipoDeNotificacao.ErroDeServico, "Existem funcionários associados ao cargo"),
                Times.Once
                );
            Assert.False(cargoExcluidoComSucesso);
        }
Пример #4
0
        public void NaoDeveAceitarDescricaoComQuantidadeCaracterInvalido(int quantidadeDeCaracteres)
        {
            var descricaoInvalido = _onboardingSIGDB1faker.FraseComQuantidadeExataDeCaracteres(quantidadeDeCaracteres);
            var empresa           = CargoBuilder.Novo().ComDescricao(descricaoInvalido).Build();

            Assert.False(empresa.Validar());
        }
Пример #5
0
        public void DeveNotificarQuandoAtualizarCargoComDescricaoQueJaFoiUtilizada()
        {
            CargoDto dto = GerarCargoDtoParaAtualizarCargo(_descricaoValida);

            Cargo cargo = CargoBuilder.Novo()
                          .ComId(dto.Id)
                          .ComDescricao(dto.Descricao)
                          .Build();

            var cargoJaExiste = new List <Cargo> {
                CargoBuilder.Novo().ComId(dto.Id).ComDescricao(dto.Descricao).Build(),
                CargoBuilder.Novo().ComId(2).ComDescricao(_descricaoValida).Build()
            };

            _cargoRepositorioMock.Setup(x => x.ObterPorId(dto.Id)).Returns(cargo);
            _cargoRepositorioMock.Setup(x => x.ObterPorDescricao(_descricaoValida)).Returns(cargoJaExiste);

            _armazenadorDeCargo.Armazenar(dto);

            _notificationContextMock.Verify(
                x =>
                x.AddNotification(TipoDeNotificacao.ErroDeServico, "Descrição utilizada"),
                Times.Once
                );
        }
Пример #6
0
        public void DeveRetornarFalseQuandoDescricaoEstiverVaziaOuNula(string descricaoVazia)
        {
            var cargo = CargoBuilder.Novo().ComDescricao(descricaoVazia).Build();

            var resultado = cargo.Validar();

            Assert.False(resultado);
        }
Пример #7
0
        public void NaoDeveAceitarVinculoComCargoSemCadastro()
        {
            var cargoInvalido = CargoBuilder.Novo().Build();

            var cargoDoFuncionario = CargoDoFuncionarioBuilder.Novo().ComCargo(cargoInvalido).Build();

            Assert.False(cargoDoFuncionario.Validar());
        }
Пример #8
0
        public void DeveRetornarFalseQuandoDescricaoForMuitoGrande()
        {
            var descricaoInvalida = _faker.Random.String2(251);

            var cargo     = CargoBuilder.Novo().ComDescricao(descricaoInvalida).Build();
            var resultado = cargo.Validar();

            Assert.False(resultado);
        }
Пример #9
0
        public void DeveCriarCargo()
        {
            var cargo = CargoBuilder
                        .Novo()
                        .ComDescricao(_descricao)
                        .Build();

            Assert.Equal(_descricao, cargo.Descricao);
        }
Пример #10
0
        public CargoDoFuncionarioTestes()
        {
            _onboardingSIGDB1faker = OnboardingSIGDB1FakerBuilder.Novo().Build();
            _dataDeVinvulo         = _onboardingSIGDB1faker.QualquerDataDoUltimoAno();

            var empresa = EmpresaBuilder.Novo().ComId(_onboardingSIGDB1faker.Id()).Build();

            _funcionario = FuncionarioBuilder.Novo().ComId(_onboardingSIGDB1faker.Id()).ComEmpresa(empresa).Build();
            _cargo       = CargoBuilder.Novo().ComId(_onboardingSIGDB1faker.Id()).Build();
        }
        private void MockarAEdicaoDoDto()
        {
            var cargoDoBancoDeDados = CargoBuilder.Novo().
                                      ComId(_id).
                                      ComDescricao(_cargoDto.Descricao).
                                      Build();

            _editarUmCargoMock.Setup(_ => _.EditarAsync(_cargoDto))
            .ReturnsAsync(cargoDoBancoDeDados);
        }
Пример #12
0
        public void DeveCriarUmCargo()
        {
            var cargoEsperado = new
            {
                Descricao = "teste"
            };

            var cargo = CargoBuilder.Novo().ComDescricao("teste").Build();

            cargoEsperado.ToExpectedObject().ShouldMatch(cargo);
        }
Пример #13
0
        public void DeveValidarDescricaoCaracteres()
        {
            var cargo = CargoBuilder
                        .Novo()
                        .ComDescricao(_faker.Lorem.Random.String2(251))
                        .Build();

            var resultado = cargo.Validar();

            Assert.False(resultado);
        }
Пример #14
0
        public void DeveValidarDescricaoObrigatoria(string descricaoInvalida)
        {
            var cargo = CargoBuilder
                        .Novo()
                        .ComDescricao(descricaoInvalida)
                        .Build();

            var resultado = cargo.Validar();

            Assert.False(resultado);
        }
        public async Task DeveExcluiroCargo()
        {
            var cargo = CargoBuilder.Novo().ComId(_cargoId).Build();

            _cargoRepositorioMock.Setup(_ => _.ObterPorIdAsync(_cargoId)).ReturnsAsync(cargo);

            await _exclusaoDeCargo.ExcluirAsync(_cargoId);

            _cargoRepositorioMock.Verify(_ => _.Remover(It.Is <Cargo>(
                                                            _1 => _1.Id == _cargoId
                                                            )));
        }
Пример #16
0
        public async Task DeveNotificarQuandoExisteFuncionarioVinculadoNoCargo()
        {
            var funcionario = FuncionarioBuilder.Novo().ComId(_onboardingSIGDB1faker.Id()).Build();
            var cargo       = CargoBuilder.Novo().ComId(_cargoId).ComFuncionario(funcionario).Build();

            _cargoRepositorioMock.Setup(_ => _.ObterPorIdAsync(_cargoId)).ReturnsAsync(cargo);

            await _validadorDeExclusaoDeCargo.ValidarAsync(_cargoId);

            _notificacaoDeDominioMock.Verify(_ => _.HandleNotificacaoDeServicoAsync(It.Is <string>(
                                                                                        _1 => _1 == CargoResources.ExisteFuncionarioVinculadoNoCargo
                                                                                        )));
        }
        public async Task DeveEditarADescricaoDoCargo()
        {
            var descricaoInicial    = _onboardingSIGDB1faker.FraseComQuantidadeExataDeCaracteres(Constantes.Numero250);
            var cargoDoBancoDeDados = CargoBuilder.Novo().ComId(_id).Build();

            _cargoDto.Id = _id;

            _cargoRepositorioMock.Setup(_ => _.ObterPorIdAsync(_id)).ReturnsAsync(cargoDoBancoDeDados);

            await _editarUmCargo.EditarAsync(_cargoDto);

            Assert.NotEqual(cargoDoBancoDeDados.Descricao, descricaoInicial);
            Assert.Equal(cargoDoBancoDeDados.Descricao, _cargoDto.Descricao);
        }
Пример #18
0
        public void Armazenar(CargoDto dto)
        {
            Cargo cargo;

            if (dto.Id == 0)
            {
                cargo = CargoBuilder.Novo().ComDescricao(dto.Descricao).Build();
            }
            else
            {
                cargo = _cargoRepositorio.ObterPorId(dto.Id);
                if (cargo == null)
                {
                    _notificationContext.AddNotification(TipoDeNotificacao.ErroDeServico, "Cargo não encontrado");
                    return;
                }

                List <Cargo> cargos = _cargoRepositorio.ObterPorDescricao(dto.Descricao);

                if (cargos.Count > 0 && cargos.Any(x => x.Id != cargo.Id))
                {
                    _notificationContext.AddNotification(TipoDeNotificacao.ErroDeServico, "Descrição utilizada");
                    return;
                }

                cargo.Descricao = dto.Descricao;

                _cargoRepositorio.Put(cargo);
            }

            if (!cargo.Validar())
            {
                _notificationContext.AddNotification(TipoDeNotificacao.ErroDeServico, "Cargo inválido");
                return;
            }

            if (dto.Id == 0)
            {
                List <Cargo> cargos = _cargoRepositorio.ObterPorDescricao(dto.Descricao);

                if (cargos.Count > 0)
                {
                    _notificationContext.AddNotification(TipoDeNotificacao.ErroDeServico, "Descrição utilizada");
                    return;
                }

                _cargoRepositorio.Post(cargo);
            }
        }
        public void TestarNaoDeveAlterarCargoMesmaDescricaoDeOutroJaSalvo()
        {
            var cargo = CargoBuilder.Novo().Build();

            _cargoRepositoryMock.Setup(r => r.Get(It.IsAny <Expression <Func <Cargo, bool> > >())).Returns(cargo);

            _cargoDTO.Descricao = cargo.Descricao;
            _cargoRepositoryMock.Setup(r => r.Exist(It.IsAny <Expression <Func <Cargo, bool> > >())).Returns(true);

            _gravarCargoService.Alterar(0, _cargoDTO);

            _cargoRepositoryMock.Verify(m => m.Update(
                                            It.Is <Cargo>(c => c.Descricao == _cargoDTO.Descricao)
                                            ), Times.Never());
        }
Пример #20
0
        public void DeveAdicionarFuncionario()
        {
            var cargo = CargoBuilder.Novo().Build();

            var funcionarioCargo = new FuncionarioCargo()
            {
                IdCargo       = cargo.Id,
                IdFuncionario = 1,
                DataVinculo   = DateTime.Now
            };

            cargo.AdicionarFuncionario(funcionarioCargo);

            Assert.Contains(funcionarioCargo, cargo.FuncionariosCargos);
        }
Пример #21
0
        public void DeveExcluirUmCargo()
        {
            int    id        = 1;
            string descricao = "descricao";
            Cargo  cargo     = CargoBuilder.Novo()
                               .ComId(id)
                               .ComDescricao(descricao)
                               .ComFuncionarios(new List <Funcionario>())
                               .Build();

            _cargoRepositorioMock.Setup(x => x.ObterPorId(id)).Returns(cargo);

            var cargoExcluidoComSucesso = _excluidorDeCargo.Excluir(id);

            Assert.True(cargoExcluidoComSucesso);
        }
        public void TestarDeveAlterarCargo()
        {
            var cargo = CargoBuilder.Novo().Build();

            _cargoRepositoryMock.Setup(r => r.Get(It.IsAny <Expression <Func <Cargo, bool> > >())).Returns(cargo);

            while (cargo.Descricao.Equals(_cargoDTO.Descricao))
            {
                _cargoDTO.Descricao = _fake.Random.Words(2);
            }

            _gravarCargoService.Alterar(0, _cargoDTO);

            _cargoRepositoryMock.Verify(m => m.Update(
                                            It.Is <Cargo>(c => c.Descricao == _cargoDTO.Descricao)
                                            ));
        }
Пример #23
0
        public void DeveAtualizarCargo()
        {
            CargoDto dto   = GerarCargoDtoParaAtualizarCargo(_descricaoValida);
            Cargo    cargo = CargoBuilder.Novo()
                             .ComId(dto.Id)
                             .ComDescricao(dto.Descricao)
                             .Build();

            _cargoRepositorioMock.Setup(x => x.ObterPorId(dto.Id)).Returns(cargo);
            _cargoRepositorioMock.Setup(x => x.ObterPorDescricao(dto.Descricao)).Returns(new List <Cargo>());

            _armazenadorDeCargo.Armazenar(dto);

            _cargoRepositorioMock.Verify(x => x.Put(
                                             It.Is <Cargo>(
                                                 c => c.Descricao == dto.Descricao
                                                 )),
                                         Times.Once
                                         );
        }
        public void DeveAtualizar()
        {
            //Given
            var dto = new CargoDto
            {
                Id        = _faker.Random.Int(100),
                Descricao = _faker.Random.AlphaNumeric(50)
            };

            var cargoMock = CargoBuilder.Novo().ComId(dto.Id).Build();

            _cargoRepositoryMock
            .Setup(cr => cr.ObterPorId(dto.Id))
            .Returns(cargoMock);

            //When
            _armazenadorDeCargo.Armazenar(dto);

            //Then
            _cargoRepositoryMock.Verify(cr => cr.Atualizar(cargoMock), Times.Once);
        }
Пример #25
0
        public void NaoDeveAceitarDescricaoNuloOuVazio(string descricao)
        {
            var cargo = CargoBuilder.Novo().ComDescricao(descricao).Build();

            Assert.False(cargo.Validar());
        }
Пример #26
0
        public void TestarCriacaoCargoDescricaoValida()
        {
            Cargo cargo = CargoBuilder.Novo().Build();

            Assert.True(cargo.Validar());
        }
Пример #27
0
        public void TestarCriacaoCargoDescricaoInvalida(string descricao)
        {
            Cargo cargo = CargoBuilder.Novo().ComDescricao(descricao).Build();

            Assert.False(cargo.Validar());
        }