public void DeveRetornarNuloQuandoNaoHouverHistoricoCadastradoParaUmaTarefaEmDeterminadaData() { DateTime dataInicio = DateTime.Parse("05/05/2014"); var oidTarefa = Guid.NewGuid(); var historicoPesquisado = TarefaHistoricoEstimativaDao.ConsultarHistoricoEstimativaPorOidTarefaEData(contexto, oidTarefa, dataInicio); Assert.IsNull(historicoPesquisado, "Não deveria ter retornado o objeto do histórico criado"); }
public void DeveRetornarOSomatorioDeHorasPlanejadasDoCronogramaQuandoNaoHouverTarefasTest() { //TODO: MIGRAR TESTE PARA TarefaHistoricoEstimativaDao Cronograma cronograma = CronogramaBo.CriarCronogramaPadrao(); double horasPlanejadas = TarefaHistoricoEstimativaDao.ConsultarTotalHorasPlanejadasCronograma(cronograma.Oid); Assert.AreEqual(0, horasPlanejadas, "Deve ter 0 horas planejadas, pois não existem tarefas cadastradas."); }
public void DeveDispararExceptionQuandoTentarSalvarHistoricoParaUmaTarefaQueNaoExiste() { var historicoEstimativa = new TarefaHistoricoEstimativaBuilder() .Data("05/05/2014") .HorasRestantes(0) .OidTarefa(Guid.NewGuid()) .Criar(); historicoEstimativa = TarefaHistoricoEstimativaDao.SalvarHistorico(historicoEstimativa); Assert.IsNull(historicoEstimativa, "Não deveria criar um histórico pois não há tarefa para ser referenciada com o Oid"); }
public void DeveRetornarOSomatorioDeHorasPlanejadasDoCronogramaQuandoHouverTarefasTest() { //TODO: MIGRAR TESTE PARA TarefaHistoricoEstimativaDao Cronograma cronograma = CronogramaBo.CriarCronogramaPadrao(); CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 01", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3); CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 02", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3); CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 03", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3); CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 04", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3); CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "Tarefa 05", situacoesPlanejamento.FirstOrDefault(o => o.CsTipo == CsTipoPlanejamento.Planejamento), DateTime.MinValue, "", colaboradorPadrao.Usuario.UserName, out tarefasImpactadas, ref dataAcao, "Criar método", 3); double horasPlanejadas = TarefaHistoricoEstimativaDao.ConsultarTotalHorasPlanejadasCronograma(cronograma.Oid); Assert.AreEqual(15, horasPlanejadas.ToTimeSpan().Hours, "Deve ter 0 horas planejadas, pois não existem tarefas cadastradas."); }
/// <summary> /// Método responsável por efetuar a criação de um histórico de estimativa /// </summary> /// <param name="dataHistorico">data do histórico</param> /// <param name="oidTarefa">oid da tarefa</param> /// <param name="nbHorasRestantes"></param> public static TarefaHistoricoEstimativa CriarHistorico(DateTime dataHistorico, Guid oidTarefa, double nbHorasRestantes) { if (oidTarefa == Guid.Empty) { throw new ArgumentException(string.Format("O oid da tarefa indicada é inválido. valor:{0}", oidTarefa)); } var historicoEstimativa = new TarefaHistoricoEstimativa { DtPlanejado = dataHistorico, OidTarefa = oidTarefa, NbHoraRestante = nbHorasRestantes }; return(TarefaHistoricoEstimativaDao.SalvarHistorico(historicoEstimativa)); }
public void DeveCriarUmHistoricoQuandoNaoPossuirHistoricoRestanteParaDataEspecificada() { DateTime dataInicio = DateTime.Parse("05/05/2014"); AlterarDataInicioEDataFinalCronograma(dataInicio, DateTime.Parse("09/05/2014")); CronogramaTarefa cronogramaTarefa = _cronogramaTarefas.FirstOrDefault(); const int nbHorasRestantes = 0; var tarefaEstimativa = new TarefaHistoricoEstimativaBuilder().Data(dataInicio).HorasRestantes(nbHorasRestantes).OidTarefa(cronogramaTarefa.OidTarefa).Criar(); var novoHistorico = TarefaHistoricoEstimativaDao.SalvarHistorico(tarefaEstimativa); Assert.IsNotNull(novoHistorico, "Deveria ter retornado o objeto do histórico criado"); Assert.AreEqual(dataInicio.Date, novoHistorico.DtPlanejado.Date, string.Format("Deveria ter criado um histórico para a data {0}", dataInicio.Date)); Assert.AreEqual(cronogramaTarefa.OidTarefa, novoHistorico.OidTarefa, string.Format("Deveria ter criado um histórico para a tarefa de oid {0}", cronogramaTarefa.OidTarefa)); Assert.AreEqual(nbHorasRestantes, novoHistorico.NbHoraRestante, string.Format("Deveria ter criado um histórico para a data {0}", dataInicio.Date)); }
/// <summary> /// Método responsável por realizar os cálculos necessários para formar o gráfico de Burndown /// </summary> /// <returns>Lista contendo os dados calculados que formam o gráfico</returns> public BurndownGraficoDto CalcularDadosGraficoBurndown(Guid oidCronograma) { List <BurndownDadosDto> dadosGrafico = new List <BurndownDadosDto>(); Cronograma cronograma = CronogramaDao.ConsultarCronogramaPorOid(oidCronograma, o => o.CronogramaTarefas); var diasUteis = CalendarioBo.CalcularDiasUteis(cronograma.DtInicio, cronograma.DtFinal); double totalHorasCronograma = TarefaHistoricoEstimativaDao.ConsultarTotalHorasPlanejadasCronograma(oidCronograma); totalHorasCronograma = totalHorasCronograma.ToTimeSpan().TotalHours; double cargaDiaria = DividirCargaHoraria(totalHorasCronograma, diasUteis.Count - 1); double horasRestantes = totalHorasCronograma; diasUteis.ForEach(data => dadosGrafico.Add(CriarDtoPlanejamentoGraficoBurndown(cargaDiaria, ref horasRestantes, data))); var somatorios = TarefaHistoricoEstimativaDao.ConsultarTotalHorasRealizadasCronograma(oidCronograma, cronograma.DtInicio, cronograma.DtFinal); if (somatorios.Count > 0) { diasUteis = diasUteis.Union(somatorios.Keys.Where(o => o.Date <= DateUtil.ConsultarDataHoraAtual().Date)).OrderBy(o => o).ToList(); var ultimaEstimativa = somatorios.LastOrDefault(); var dataUltimaEstimativa = ultimaEstimativa.Key.AddDays(1); var somaUltimaEstimativa = ultimaEstimativa.Value; while (dataUltimaEstimativa.Date <= cronograma.DtFinal && dataUltimaEstimativa.Date <= DateUtil.ConsultarDataHoraAtual().Date) { if (diasUteis.Any(o => o.Date.Equals(dataUltimaEstimativa) && o.Date <= DateUtil.ConsultarDataHoraAtual().Date)) { somatorios.Add(dataUltimaEstimativa, somaUltimaEstimativa); } dataUltimaEstimativa = dataUltimaEstimativa.AddDays(1); } dadosGrafico.AddRange(CriarDtoRealizadoGraficoBurndown(somatorios)); } double desvio = CalcularDesvio(dadosGrafico); return(new BurndownGraficoDto { DadosBurndown = dadosGrafico, Desvio = desvio }); }
public void DeveDispararExceptionQuandoOidTipoDoOidNaoEstiverCorreto() { TarefaHistoricoEstimativaDao.ConsultarHistoricoEstimativaPorOidTarefaEData(contexto, new Guid(), DateTime.MinValue); }
public void DeveDispararExceptionQuandoContextoNulo() { TarefaHistoricoEstimativaDao.ConsultarHistoricoEstimativaPorOidTarefaEData(null, Guid.NewGuid(), DateTime.MinValue); }
public void NaoDeveSalvarQuandoOHistoricoDeEstimativaForNulo() { var historicoEstimativa = TarefaHistoricoEstimativaDao.SalvarHistorico(null); Assert.IsNull(historicoEstimativa, "Não deveria possuir histórico de estimativa"); }