コード例 #1
0
        public void diaPodeIniciarSeFuncionarioNaoPossuirPontoEmAberto()
        {
            var funcionarioCorreto = new FuncionarioFactory().criarFuncionario("Thais", "tatacs", "123456", "", "41617099864");
            var pontoAntigo        = criarPontoTrabalhoDoDia(10, 6, 2016);
            var repositorio        = new PontoDiaMockRepository();
            var inicioDoDia        = new DataHoraMockStrategy(13, 6, 2016);

            repositorio.save(pontoAntigo);

            try
            {
                var service = criarService(inicioDoDia, repositorio);
                service.iniciarDia();
                Assert.Fail("O dia não deveria ter iniciado!");
            }
            catch (DiaEmAbertoException ex)
            {
                Assert.AreEqual("O ponto do dia 10/06/2016 não foi encerrado", ex.Message);
            }

            var serviceCorreto = criarService(inicioDoDia, repositorio, funcionarioCorreto);
            var ponto          = serviceCorreto.iniciarDia();

            Assert.AreEqual(new DateTime(2016, 6, 13), ponto.Data.Date);
        }
コード例 #2
0
        public static PontoService criarPontoService(SessaoLogin sessao, IDataHoraStrategy dataHoraStrategy = null, IPontoDiaRepository pontoRepository = null, bool mock = false, IFeriadoRepository feriadoRepository = null)
        {
            if (dataHoraStrategy == null)
            {
                dataHoraStrategy = new DataHoraMockStrategy(DateTime.Today);
            }

            if (pontoRepository == null)
            {
                pontoRepository = new PontoDiaMockRepository();
            }

            var tipoIntervaloRepository = new TipoIntervaloMockRepository();

            tipoIntervaloRepository.save(new TipoIntervalo("Almoço"));

            if (mock)
            {
                return(new PontoServiceMock(criarPontoFactory(pontoRepository, feriadoRepository),
                                            dataHoraStrategy,
                                            new FuncionarioPossuiPontoAbertoSpecification(pontoRepository),
                                            new FuncionarioJaTrabalhouHojeSpecification(pontoRepository),
                                            sessao,
                                            pontoRepository,
                                            tipoIntervaloRepository));
            }

            return(new PontoService(criarPontoFactory(pontoRepository, feriadoRepository),
                                    dataHoraStrategy,
                                    new FuncionarioPossuiPontoAbertoSpecification(pontoRepository),
                                    new FuncionarioJaTrabalhouHojeSpecification(pontoRepository),
                                    sessao,
                                    pontoRepository,
                                    tipoIntervaloRepository));
        }
コード例 #3
0
        private DiaTrabalho criarPontoTrabalhoDoDia(IPontoDiaRepository pontoRepository, IFeriadoRepository feriadoRepository, int dia, int mes, int ano, int hora = 9, int minuto = 0)
        {
            var dt = new DataHoraMockStrategy(new DateTime(ano, mes, dia, hora, minuto, 0));

            return(FactoryHelper
                   .criarPontoFactory(pontoRepository, feriadoRepository)
                   .criarDiaTrabalho(dt, new SessaoLoginMock(funcionario)));
        }
コード例 #4
0
        public void pontoDeveSerCriadoComDataHoraCorreta()
        {
            var esperado = new DataHoraMockStrategy(22, 8, 2014, 19, 30);
            var ponto    = criarFactory().criarDiaTrabalho(esperado, sessaoLogin);

            Assert.AreEqual(new DateTime(2014, 8, 22, 0, 0, 0), ponto.Data);
            Assert.AreEqual(new TimeSpan(19, 30, 0), ponto.Inicio);
        }
コード例 #5
0
        public void pontoDeveSerEncerradoComDataHoraCorreta()
        {
            var fimEsperado = new DataHoraMockStrategy(new DateTime(2014, 8, 22, 22, 30, 0));
            var service     = criarService(fimEsperado);

            var ponto = service.iniciarDia();

            service.encerrarDia(ponto);

            Assert.AreEqual(new TimeSpan(22, 30, 0), ponto.Fim);
        }
コード例 #6
0
        public void funcionarioNaoPodeTerDoisPontosParaMesmoDia()
        {
            var rep      = new PontoDiaMockRepository();
            var mesmoDia = new DataHoraMockStrategy(22, 8, 2014);
            var service  = criarService(mesmoDia, rep);

            var ponto = service.iniciarDia();

            service.encerrarDia(ponto);

            rep.save(ponto);

            service.iniciarDia();
        }
コード例 #7
0
        private DiaTrabalho criarPontoTrabalhoDoDia(int dia, int mes, int ano, int hora = 9, int minuto = 0)
        {
            var dt = new DataHoraMockStrategy(new DateTime(ano, mes, dia, hora, minuto, 0));

            return(criarFactory().criarDiaTrabalho(dt, sessaoLogin));
        }