Esempio n. 1
0
        public void TestarSalvarUmCicloDeDesenvolvimentoComItensEmVariasSituacoes()
        {
            /**
             * Cenário 1: Será cadastrado um projeto que conterá dois ciclos.
             * Serão adicionadas Estórias para esse Ciclo e em seguida serão feitas alterações nos itens do ciclo
             * O sistema deverá alterar e salvar corretamente essas mudanças.
             */

            Projeto projeto01 = ProjetoFactory.Criar(SessionTest, 100, "");

            projeto01.DtInicioPlan     = new DateTime(2011, 04, 27);
            projeto01.DtInicioReal     = new DateTime(2011, 04, 27);
            projeto01.NbCicloTotalPlan = 2;
            projeto01.Save();

            Modulo modulo01 = ModuloFactory.Criar(SessionTest, projeto01, "Nome", false);

            modulo01.NbPontosTotal = 60;
            modulo01.Save();
            Modulo modulo02 = ModuloFactory.Criar(SessionTest, projeto01, "Nome", false);

            modulo02.NbPontosTotal = 40;
            modulo02.Save();

            Beneficiado beneficiado01 = BeneficiadoFactory.Criar(SessionTest, "Descrição", true);

            Estoria estoria01_3pts = EstoriaFactory.Criar(SessionTest, modulo01, "Estória01", "GostariaDe", "EntaoPoderei", beneficiado01, "Observações", "Referências", "Dúvidas");

            estoria01_3pts.NbPrioridade = 1;
            estoria01_3pts.NbTamanho    = 3;
            estoria01_3pts.Save();
            estoria01_3pts.Reload(); // força o onload

            Estoria estoria02_5pts = EstoriaFactory.Criar(SessionTest, modulo01, "Estória02", "GostariaDe", "EntaoPoderei", beneficiado01, "Observações", "Referências", "Dúvidas");

            estoria02_5pts.NbPrioridade = 2;
            estoria02_5pts.NbTamanho    = 5;
            estoria02_5pts.Save();
            estoria02_5pts.Reload(); // força o onload

            Estoria estoria03_13pts = EstoriaFactory.Criar(SessionTest, modulo01, "Estória03", "GostariaDe", "EntaoPoderei", beneficiado01, "Observações", "Referências", "Dúvidas");

            estoria03_13pts.NbPrioridade = 3;
            estoria03_13pts.NbTamanho    = 13;
            estoria03_13pts.Save();
            estoria03_13pts.Reload(); // força o onload

            Estoria estoria04_1pt = EstoriaFactory.Criar(SessionTest, modulo01, "Estória04", "GostariaDe", "EntaoPoderei", beneficiado01, "Observações", "Referências", "Dúvidas");

            estoria04_1pt.NbPrioridade = 4;
            estoria04_1pt.NbTamanho    = 1;
            estoria04_1pt.Save();
            estoria04_1pt.Reload(); // força o onload

            //Passo 01

            CicloDesenvEstoria cicloEstoria01_3pts = CicloDesenvEstoriaFactory.Criar(SessionTest, projeto01.Ciclos[0], estoria01_3pts, true);
            CicloDesenvEstoria cicloEstoria02_5pts = CicloDesenvEstoriaFactory.Criar(SessionTest, projeto01.Ciclos[0], estoria02_5pts, true);

            Assert.AreEqual(CsSituacaoEstoriaCicloDomain.NaoIniciado, cicloEstoria01_3pts.CsSituacao, "A situação do item do ciclo deveria ser 'Não Iniciado'");
            Assert.AreEqual(CsSituacaoEstoriaCicloDomain.NaoIniciado, cicloEstoria02_5pts.CsSituacao, "A situação do item do ciclo deveria ser 'Não Iniciado'");

            //Passo 02
            //Trocando situação dos itens no ciclo.
            cicloEstoria01_3pts.CsSituacao = CsSituacaoEstoriaCicloDomain.EmDesenv;
            cicloEstoria02_5pts.CsSituacao = CsSituacaoEstoriaCicloDomain.EmDesenv;

            projeto01.Ciclos[0].TxMeta = "TxMeta";
            projeto01.Ciclos[0].Save();

            Assert.AreEqual(8, projeto01.Ciclos[0].NbPontosPlanejados, "O total de pontos deveria ser 8");
            Assert.AreEqual(0, projeto01.Ciclos[0].NbPontosRealizados, "O total de pontos realizados deveria ser 0");
            Assert.AreEqual(0, projeto01.Ciclos[0].NbAlcanceMeta, "O alcance da meta deveria ser 0%");
            Assert.AreEqual("Ciclo 1", estoria01_3pts._TxQuando, "A variável 'Quando?' deveria ser alterada para 'Ciclo 1'");
            Assert.AreEqual("Ciclo 1", estoria02_5pts._TxQuando, "A variável 'Quando?' deveria ser alterada para 'Ciclo 1'");
            Assert.AreEqual(projeto01.Ciclos[0], estoria01_3pts.Ciclo, "O ciclo da estoria deveria ser Ciclo 1");
            Assert.AreEqual(projeto01.Ciclos[0], estoria02_5pts.Ciclo, "O ciclo da estoria deveria ser Ciclo 1");
            Assert.AreEqual(CsSituacaoCicloDomain.EmAndamento, projeto01.Ciclos[0].CsSituacaoCiclo, "A situação do ciclo deveria ser 'Não Iniciado'");
            Assert.AreEqual(CsEstoriaDomain.EmDesenv, estoria01_3pts.CsSituacao, "A estória deveria estar com a situação 'Em Desenvolvimento'");
            Assert.AreEqual(8, modulo01.NbPontosEmDesenv, "Os pontos em desenv deveriam ter sido recalculados.");
            Assert.AreEqual(13.33, modulo01._NbPercEmDesenv, "O percentual em desenv deveria ter sido recalculado.");

            Assert.AreEqual(1, estoria03_13pts.NbPrioridade, "A estoria que ficou no backlog deveria ter sido repriorizada.");
            Assert.AreEqual(2, estoria04_1pt.NbPrioridade, "A estoria que ficou no backlog deveria ter sido repriorizada.");

            //Passo 5

            projeto01.Ciclos[0].Reload();
            cicloEstoria01_3pts.Reload();
            cicloEstoria02_5pts.Reload();

            cicloEstoria01_3pts.Meta       = true;
            cicloEstoria01_3pts.CsSituacao = CsSituacaoEstoriaCicloDomain.Pronto;

            cicloEstoria01_3pts.Save();
            projeto01.Ciclos[0].Save();

            Assert.AreEqual(CsEstoriaDomain.Pronto, estoria01_3pts.CsSituacao, "A situação da estória deveria ter sido alterada para pronto");
            Assert.AreEqual(CsEstoriaDomain.EmDesenv, estoria02_5pts.CsSituacao, "A estória deveria estar com a situação 'Em Desenvolvimento'");
            Assert.AreEqual(3, modulo01.NbPontosPronto, "A quantidade de pontos pronto deveria ter sido recalculada.");
            Assert.AreEqual(5, modulo01.NbPontosEmDesenv, "A quantidade de pontos em desenveria ter sido mantida.");
            Assert.AreEqual(14, modulo01.NbPontosEmAnalise, "O percentual em analise foi calculado incorretamente");
            Assert.AreEqual(38, modulo01.NbPontosNaoIniciado, "O percentual nao iniciado foi calculado incorretamente");
            Assert.AreEqual(3, projeto01.Ciclos[0].NbPontosRealizados, "O total de pontos realizados deveria ser 3");
            Assert.AreEqual(100, projeto01.Ciclos[0].NbAlcanceMeta, "O alcance da meta deveria ser 100%");

            //Passo 6
            cicloEstoria02_5pts.CsSituacao = CsSituacaoEstoriaCicloDomain.Replanejado;
            cicloEstoria02_5pts.Save();

            projeto01.Ciclos[0].Save();

            Assert.AreEqual(3, modulo01.NbPontosPronto, "Os pontos prontos deveriam ter sido mantidos.");
            Assert.AreEqual(0, modulo01.NbPontosEmDesenv, "Os pontos em desenv deveriam ter sido recalculados.");
            Assert.AreEqual(19, modulo01.NbPontosEmAnalise, "Os pontos em desenv deveriam ter sido recalculados.");
            Assert.AreEqual(38, modulo01.NbPontosNaoIniciado, "Os pontos Nao iniciados deveriam ter sido mantidos.");
            Assert.AreEqual(CsEstoriaDomain.Replanejado, estoria02_5pts.CsSituacao, "A estória deveria estar com a situação 'Replanejado'");
            Assert.AreEqual(8, projeto01.Ciclos[0].NbPontosPlanejados, "O total de pontos planejados nao foi calculado corretamente");
            Assert.AreEqual(3, projeto01.Ciclos[0].NbPontosRealizados, "O total de pontos realizados deveria ser 3");
            Assert.AreEqual(CsSituacaoCicloDomain.Concluido, projeto01.Ciclos[0].CsSituacaoCiclo, "O ciclo deveria estar concluido");
            Assert.AreEqual(1, estoria02_5pts.NbPrioridade, "A estoria que ficou no backlog deveria ter sido repriorizada.");
            Assert.AreEqual(2, estoria03_13pts.NbPrioridade, "A estoria que ficou no backlog deveria ter sido repriorizada.");
            Assert.AreEqual(3, estoria04_1pt.NbPrioridade, "A estoria que ficou no backlog deveria ter sido repriorizada.");

            //Passo 7

            CicloDesenvEstoria cicloEstoria03_13pts = CicloDesenvEstoriaFactory.Criar(SessionTest, projeto01.Ciclos[1], estoria03_13pts);

            cicloEstoria03_13pts.Meta       = true;
            cicloEstoria03_13pts.CsSituacao = CsSituacaoEstoriaCicloDomain.EmDesenv;
            cicloEstoria03_13pts.Save();

            CicloDesenvEstoria cicloEstoria04_1pt = CicloDesenvEstoriaFactory.Criar(SessionTest, projeto01.Ciclos[1], estoria04_1pt);

            cicloEstoria04_1pt.Meta       = true;
            cicloEstoria04_1pt.CsSituacao = CsSituacaoEstoriaCicloDomain.EmDesenv;
            cicloEstoria04_1pt.Save();

            projeto01.Ciclos[1].Save();

            Assert.AreEqual(3, modulo01.NbPontosPronto, "Os pontos prontos deveriam ter sido mantidos.");
            Assert.AreEqual(5, modulo01.NbPontosEmAnalise, "Os pontos em analise deveriam ter sido recalculados.");
            Assert.AreEqual(38, modulo01.NbPontosNaoIniciado, "Os pontos nao iniciados deveriam ter sido mantidos.");
            Assert.AreEqual(14, modulo01.NbPontosEmDesenv, "Os pontos em desenv deveriam ter sido recalculados.");

            Assert.AreEqual(CsSituacaoEstoriaCicloDomain.EmDesenv, cicloEstoria03_13pts.CsSituacao, "A situação do item do ciclo deveria ser 'Em desenvolvimento'");
            Assert.AreEqual(CsSituacaoEstoriaCicloDomain.EmDesenv, cicloEstoria04_1pt.CsSituacao, "A situação do item do ciclo deveria ser 'Em desenvolvimento'");
            Assert.AreEqual(8, projeto01.Ciclos[0].NbPontosPlanejados, "O total de pontos planejados nao foi calculado corretamente");
            Assert.AreEqual(14, projeto01.Ciclos[1].NbPontosPlanejados, "O total de pontos planejados deveria ser 18");
            Assert.AreEqual(0, projeto01.Ciclos[1].NbPontosRealizados, "O total de pontos realizados deveria ser 0");
            Assert.AreEqual(0, projeto01.Ciclos[1].NbAlcanceMeta, "Alcance da meta deveria ser 0");
            Assert.AreEqual(CsSituacaoCicloDomain.EmAndamento, projeto01.Ciclos[1].CsSituacaoCiclo, "A situação do ciclo deveria ser 'Em Andamento'");
            Assert.AreEqual(1, estoria02_5pts.NbPrioridade, "A prioridade deveria ter sido mantida");
            Assert.AreEqual(0, estoria03_13pts.NbPrioridade, "A prioridade deveria ter sido zerada pois a entrega esta no ciclo");
            Assert.AreEqual(0, estoria04_1pt.NbPrioridade, "A prioridade deveria ter sido zerada pois a entrega esta no ciclo");
        }