public void NaoDeveRetornarNenhumaAlteracaoRelevante()
        {
            Guid oidTarefa = Guid.NewGuid();
            CronogramaTarefaGridItem tarefa = new CronogramaTarefaGridItem()
            {
                CsLinhaBaseSalva              = false,
                DtAtualizadoEm                = DateTime.Now,
                NbEstimativaInicial           = 0,
                NbEstimativaRestante          = 0,
                NbRealizado                   = 0,
                OidSituacaoPlanejamentoTarefa = oidTarefa
            };

            CronogramaTarefaGridItem tarefaAlterada = new CronogramaTarefaGridItem()
            {
                CsLinhaBaseSalva              = false,
                DtAtualizadoEm                = DateTime.Now,
                NbEstimativaInicial           = 0,
                NbEstimativaRestante          = 0,
                NbRealizado                   = 0,
                OidSituacaoPlanejamentoTarefa = oidTarefa
            };

            var alteracao = TarefaEditada.VerificarAlteracoesRelevantes(tarefa, tarefaAlterada);

            CollectionAssert.AreEqual(new List <int>(), alteracao, "Não deveria haver alteracoes relevantes");
        }
        public void DeveValidarQuandoHouverAlteracaoRelevanteNaEstimativaRestante()
        {
            Guid oidTarefa = Guid.NewGuid();
            CronogramaTarefaGridItem tarefa = new CronogramaTarefaGridItem()
            {
                CsLinhaBaseSalva              = false,
                DtAtualizadoEm                = DateTime.Now,
                NbEstimativaInicial           = 0,
                NbEstimativaRestante          = 0,
                NbRealizado                   = 0,
                OidSituacaoPlanejamentoTarefa = oidTarefa
            };

            CronogramaTarefaGridItem tarefaAlterada = new CronogramaTarefaGridItem()
            {
                CsLinhaBaseSalva              = false,
                DtAtualizadoEm                = DateTime.Now,
                NbEstimativaInicial           = 0,
                NbEstimativaRestante          = 5,
                NbRealizado                   = 0,
                OidSituacaoPlanejamentoTarefa = oidTarefa
            };

            var alteracao = TarefaEditada.VerificarAlteracoesRelevantes(tarefa, tarefaAlterada);

            Assert.AreEqual((int)CsTipoCampoEditado.EstimativaRestante, alteracao.First(), "Deveria ter sido alterada a estimativa restante da tarefa");
        }
        public void DeveValidarQuandoHouverAlteracaoRelevanteNaEstimativaRestanteEstimativaInicialENoOidSituacaoPlanejamento()
        {
            Guid oidTarefa  = Guid.NewGuid();
            Guid oidTarefa2 = Guid.NewGuid();
            CronogramaTarefaGridItem tarefa = new CronogramaTarefaGridItem()
            {
                CsLinhaBaseSalva              = false,
                DtAtualizadoEm                = DateTime.Now,
                NbEstimativaInicial           = 0,
                NbEstimativaRestante          = 0,
                NbRealizado                   = 0,
                OidSituacaoPlanejamentoTarefa = oidTarefa
            };

            CronogramaTarefaGridItem tarefaAlterada = new CronogramaTarefaGridItem()
            {
                CsLinhaBaseSalva              = false,
                DtAtualizadoEm                = DateTime.Now,
                NbEstimativaInicial           = 2,
                NbEstimativaRestante          = 5,
                NbRealizado                   = 0,
                OidSituacaoPlanejamentoTarefa = oidTarefa2
            };

            var alteracao = TarefaEditada.VerificarAlteracoesRelevantes(tarefa, tarefaAlterada);

            CollectionAssert.AreEqual(new List <int>()
            {
                (int)CsTipoCampoEditado.SituacaoPlanejamento, (int)CsTipoCampoEditado.EstimativaInicial, (int)CsTipoCampoEditado.EstimativaRestante
            }, alteracao, "Deveria ter verificado a alteração na estimativa restante e na estimativa inicial");
        }
        public void DeveValidarQuandoHouverAlteracaoRelevanteNoOidDaSituacaoPlanejamentoDaTarefa()
        {
            Func <Guid> criarNovoOid        = () => Guid.NewGuid();
            CronogramaTarefaGridItem tarefa = new CronogramaTarefaGridItem()
            {
                CsLinhaBaseSalva              = false,
                DtAtualizadoEm                = DateTime.Now,
                NbEstimativaInicial           = 0,
                NbEstimativaRestante          = 0,
                NbRealizado                   = 0,
                OidSituacaoPlanejamentoTarefa = criarNovoOid()
            };

            CronogramaTarefaGridItem tarefaAlterada = new CronogramaTarefaGridItem()
            {
                CsLinhaBaseSalva              = false,
                DtAtualizadoEm                = DateTime.Now,
                NbEstimativaInicial           = 0,
                NbEstimativaRestante          = 0,
                NbRealizado                   = 0,
                OidSituacaoPlanejamentoTarefa = criarNovoOid()
            };

            var alteracao = TarefaEditada.VerificarAlteracoesRelevantes(tarefa, tarefaAlterada);

            CollectionAssert.AreEqual(new List <int>()
            {
                (int)CsTipoCampoEditado.SituacaoPlanejamento
            }, alteracao, "Deveria ter sido alterada a situação de planejamento da tarefa");
        }
        public void DevePermitirEdicaoSituacaoPlanejamentoParaAndamentoApenasQuandoPossuirHorasParaConsumir()
        {
            CronogramaTarefaDto novaTarefa = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 0,
                NbEstimativaRestante = 0,
                NbRealizado          = 0,
            };

            CronogramaTarefaDto novaTarefaComEstimativa = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"),
                NbRealizado          = 0,
            };

            CronogramaTarefaDto tarefaConsumidaParcialmente = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = true,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"),
                NbRealizado          = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"),
            };

            CronogramaTarefaDto tarefaPronta = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = true,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = 0,
                NbRealizado          = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"),
            };

            CronogramaTarefaDto tarefaCancelada = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = 0,
                NbRealizado          = 0,
            };

            string mensagem;

            Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefa, CsTipoPlanejamento.Execução, out mensagem), "Não deveria permitir setar a situação como execução pois não foi estimada uma quantidade de horas a ser realizada a tarefa.");
            Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefaComEstimativa, CsTipoPlanejamento.Execução, out mensagem), "Deveria permitir setar a situação como execução pois foi estimada uma quantidade de horas a ser realizada a tarefa.");
            Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaConsumidaParcialmente, CsTipoPlanejamento.Execução, out mensagem), "Deveria permitir setar a situação como execução pois ainda há horas restantes para executar a tarefa.");
            Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaPronta, CsTipoPlanejamento.Execução, out mensagem), "Não deveria permitir setar a situação como execução pois foram consumidas todas as horas de execução da tarefa.");
            Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaCancelada, CsTipoPlanejamento.Execução, out mensagem), "Não deveria permitir setar a situação como execução pois após o cancelamento não há horas restantes para trabalhar na tarefa.");
        }
        public void HouveMudancasSituacaoPlanejamentoModificadaTest()
        {
            CronogramaTarefaGridItem tarefaAtual;
            Guid oidCronograma           = Guid.NewGuid();
            Guid oidSituacaoPlanejamento = Guid.NewGuid();

            tarefaAtual = CriarTarefa(oidCronograma, oidSituacaoPlanejamento);
            TarefaEditada tarefaEmEdicao = new TarefaEditada(tarefaAtual);

            tarefaAtual.OidSituacaoPlanejamentoTarefa = Guid.NewGuid();
            Assert.IsTrue(tarefaEmEdicao.HouveMudancas(tarefaAtual), "Deveria alertar que houve mudança, pois foi modificado a situação planejamento da tarefa");
        }
        public void HouveMudancasDescricaoColaboradorModificadaTest()
        {
            CronogramaTarefaGridItem tarefaAtual;
            Guid oidCronograma           = Guid.NewGuid();
            Guid oidSituacaoPlanejamento = Guid.NewGuid();

            tarefaAtual = CriarTarefa(oidCronograma, oidSituacaoPlanejamento);
            TarefaEditada tarefaEmEdicao = new TarefaEditada(tarefaAtual);

            Assert.IsFalse(tarefaEmEdicao.HouveMudancas(tarefaAtual));
            tarefaAtual.TxDescricaoColaborador = "Gabriel Matos";
            Assert.IsTrue(tarefaEmEdicao.HouveMudancas(tarefaAtual), "Deveria alertar que houve mudança, pois foi modificada a descrição dos colaboradores da tarefa");
        }
        public void HouveMudancasEstimativaRestanteModificadaTest()
        {
            CronogramaTarefaGridItem tarefaAtual;
            Guid oidCronograma           = Guid.NewGuid();
            Guid oidSituacaoPlanejamento = Guid.NewGuid();

            tarefaAtual = CriarTarefa(oidCronograma, oidSituacaoPlanejamento);
            TarefaEditada tarefaEmEdicao = new TarefaEditada(tarefaAtual);

            tarefaAtual.NbEstimativaRestante = 0;
            Assert.IsFalse(tarefaEmEdicao.HouveMudancas(tarefaAtual), "As mudanças nulas não devem ser registradas");
            tarefaAtual.NbEstimativaRestante = new TimeSpan(12, 0, 0).Ticks;
            Assert.IsTrue(tarefaEmEdicao.HouveMudancas(tarefaAtual), "Deveria alertar que houve mudança, pois foi modificada a estimativa restante da tarefa");
        }
        public void HouveMudancasObservacaoModificadaTest()
        {
            CronogramaTarefaGridItem tarefaAtual;
            Guid oidCronograma           = Guid.NewGuid();
            Guid oidSituacaoPlanejamento = Guid.NewGuid();

            tarefaAtual = CriarTarefa(oidCronograma, oidSituacaoPlanejamento);
            TarefaEditada tarefaEmEdicao = new TarefaEditada(tarefaAtual);

            tarefaAtual.TxObservacaoTarefa = "";
            Assert.IsFalse(tarefaEmEdicao.HouveMudancas(tarefaAtual), "As mudanças nulas não devem ser registradas");
            tarefaAtual.TxObservacaoTarefa = "Nova Observacao Tarefa";
            Assert.IsTrue(tarefaEmEdicao.HouveMudancas(tarefaAtual), "Deveria alertar que houve mudança, pois foi modificada a observação da tarefa");
        }
        public void HouveMudancasEsforcoRealizadoModificadaTest()
        {
            CronogramaTarefaGridItem tarefaAtual;
            Guid oidCronograma           = Guid.NewGuid();
            Guid oidSituacaoPlanejamento = Guid.NewGuid();

            tarefaAtual = CriarTarefa(oidCronograma, oidSituacaoPlanejamento);
            TarefaEditada tarefaEmEdicao = new TarefaEditada(tarefaAtual);

            tarefaAtual.NbRealizado = 0;
            Assert.IsFalse(tarefaEmEdicao.HouveMudancas(tarefaAtual), "As mudanças nulas não devem ser registradas");
            tarefaAtual.NbRealizado = ConversorTimeSpan.ConverterHorasDeStringParaTicks("12:00");
            Assert.IsTrue(tarefaEmEdicao.HouveMudancas(tarefaAtual), "Deveria alertar que houve mudança, pois foi modificado esforço realizado da tarefa");
        }
        public void DevePermitirEdicaoSituacaoPlanejamentoParaProntoSePossuirEstimativaInicial()
        {
            CronogramaTarefaDto novaTarefa = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 0,
                NbEstimativaRestante = 0,
                NbRealizado          = 0,
            };

            CronogramaTarefaDto novaTarefaComEstimativa = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"),
                NbRealizado          = 0,
            };

            CronogramaTarefaDto tarefaConsumidaParcialmente = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = true,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"),
                NbRealizado          = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"),
            };

            CronogramaTarefaDto tarefaCanceladaParcialmenteRealizada = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("6:00"),
                NbRealizado          = ConversorTimeSpan.ConverterHorasDeStringParaTicks("2:00"),
            };

            string mensagem;

            Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefa, CsTipoPlanejamento.Encerramento, out mensagem), "Não deve permitir ir para o estado de pronto pois não possui uma estimativa inicial de duração");
            Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefaComEstimativa, CsTipoPlanejamento.Encerramento, out mensagem), "Deve permitir pois a tarefa já possui uma estimativa inicial de duração.");
            Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaConsumidaParcialmente, CsTipoPlanejamento.Encerramento, out mensagem), "Deve permitir pois a tarefa já possui uma estimativa inicial de duração");
            Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaCanceladaParcialmenteRealizada, CsTipoPlanejamento.Encerramento, out mensagem), "Deve permitir a edição pois a tarefa já possui uma estimativa inicial de duração.");
        }
Example #12
0
        public void RnValidarTarefaEditadaQuandoEstimativaInicialSejaAlteradaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento1 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                           CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                           CsPadraoSistema.Sim, true);

            //cria cronograma
            Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento1, new DateTime(),
                                                                             new DateTime(), true);

            //cria colaborador
            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            //adiciona colaborador como responsável pela tarefa
            string responsaveis = colaborador1.NomeCompleto;

            List <CronogramaTarefa> tarefasImpactadas;
            DateTime dataHoraAcao = new DateTime();
            //cria tarefa a partir da RnIncluirTarefa em CronogramaTarefa
            CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronograma1.Oid, "Tarefa 01", situacaoPlanejamento1, DateTime.Now, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, "Criar método1", 3, 0);

            //recupera a tarefa criada
            CronogramaTarefa tarefa = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(novaTarefa.Oid, o => o.Tarefa.SituacaoPlanejamento);

            //criar um Dto da tarefa e repassa as informações para poder utilizar o método que está sendo testado
            CronogramaTarefaGridItem tarefaDto = new CronogramaTarefaGridItem();

            tarefaDto.OidCronogramaTarefa = tarefa.Oid;
            tarefaDto.TxDescricaoSituacaoPlanejamentoTarefa = tarefa.Tarefa.SituacaoPlanejamento.TxDescricao;
            tarefaDto.NbEstimativaInicial  = tarefa.Tarefa.NbEstimativaInicial;
            tarefaDto.NbEstimativaRestante = tarefa.Tarefa.NbEstimativaRestante;

            //adiciona tarefa na lista de tarefas antigas (antes de serem alteradas)
            List <CronogramaTarefaGridItem> tarefasAntigas = new List <CronogramaTarefaGridItem>();

            tarefasAntigas.Add(tarefaDto);

            //cria uma tarefa Dto alterada e modifica o campo situação de planejamento
            CronogramaTarefaGridItem tarefaDtoAlterada = new CronogramaTarefaGridItem();

            tarefaDtoAlterada.OidCronogramaTarefa = tarefaDto.OidCronogramaTarefa;
            tarefaDtoAlterada.TxDescricaoSituacaoPlanejamentoTarefa = tarefaDto.TxDescricaoSituacaoPlanejamentoTarefa;
            tarefaDtoAlterada.NbEstimativaInicial  = 5;
            tarefaDtoAlterada.NbEstimativaRestante = tarefaDto.NbEstimativaRestante;

            //adiciona a tarefa na lista de tarefas modificadas.
            List <CronogramaTarefaGridItem> tarefasAtualizadas = new List <CronogramaTarefaGridItem>();

            tarefasAtualizadas.Add(tarefaDtoAlterada);

            //valida os campos alterados
            Hashtable camposAlterados = TarefaEditada.ValidarCamposRelevantesAlterados(tarefasAntigas, tarefasAtualizadas);

            List <int> campos = new List <int>();

            campos = (List <int>)camposAlterados[tarefaDto.OidCronogramaTarefa];

            Assert.AreEqual(1, campos.Count, "Deveria ter sido alterado apenas um campo.");
            Assert.AreEqual((int)CsTipoCampoEditado.EstimativaInicial, campos[0], "O campo alterado deveria ser do mesmo Tipo");
            Assert.AreNotEqual(tarefaDto.NbEstimativaInicial, tarefaDtoAlterada.NbEstimativaInicial, "Não deveriam ser iguais, pois o campo foi alterado.");
        }
        public void DevePermitirEdicaoSituacaoPlanejamentoParaNaoIniciadoApenasQuandoNaoFoiRealizadoNenhumEsforco()
        {
            CronogramaTarefaDto novaTarefa = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 0,
                NbEstimativaRestante = 0,
                NbRealizado          = 0,
            };

            CronogramaTarefaDto novaTarefaComEstimativa = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"),
                NbRealizado          = 0,
            };

            CronogramaTarefaDto tarefaConsumidaParcialmente = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = true,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"),
                NbRealizado          = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"),
            };

            CronogramaTarefaDto tarefaPronta = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = true,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = 0,
                NbRealizado          = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"),
            };

            CronogramaTarefaDto tarefaCancelada = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = 0,
                NbRealizado          = 0,
            };

            CronogramaTarefaDto tarefaCanceladaParcialmenteRealizada = new CronogramaTarefaDto()
            {
                CsLinhaBaseSalva     = false,
                DtAtualizadoEm       = DateTime.Now,
                NbEstimativaInicial  = 8,
                NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("6:00"),
                NbRealizado          = ConversorTimeSpan.ConverterHorasDeStringParaTicks("2:00"),
            };

            string mensagem;

            Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefa, CsTipoPlanejamento.Planejamento, out mensagem), "Deve poder estar na situação de não iniciado pois não foi realizado nenhum esforço");
            Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefaComEstimativa, CsTipoPlanejamento.Planejamento, out mensagem), "Deve poder estar na situação de não iniciado pois não foi realizado nenhum esforço.");
            Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaConsumidaParcialmente, CsTipoPlanejamento.Planejamento, out mensagem), "Não deve poder estar na situação de não iniciado pois foi estimado um esforço realizado.");
            Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaPronta, CsTipoPlanejamento.Planejamento, out mensagem), "Não deve poder estar na situação de não iniciado pois a tarefa já foi executada.");
            Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaCancelada, CsTipoPlanejamento.Planejamento, out mensagem), "Deve poder estar na situação de não iniciado pois não foi realizado nenhum esforço.");
            Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaCanceladaParcialmenteRealizada, CsTipoPlanejamento.Planejamento, out mensagem), "Não deve poder estar na situação de não iniciado pois foi realizado um esforço parcial na tarefa.");
        }