示例#1
0
        public void Devo_conseguir_definir_o_vencedor_pela_ordem_alfabetica_quando_acontecer_empate_por_nota()
        {
            //Arrange
            var filmeParticipante1 = ParticipanteFactory.Criar(FilmeFactory.Criar("1", "Filme 1", 10), 2);
            var filmeParticipante2 = ParticipanteFactory.Criar(FilmeFactory.Criar("2", "Filme 2", 10), 1);
            var confronto          = ConfrontoFactory.Criar(filmeParticipante1, filmeParticipante2, 1);

            //Act
            apuracaoDoConfronto = ApuracaoDoConfrontoFactory.Criar(confronto);
            var resultadoDaPartida = apuracaoDoConfronto.DefinirVencedor();

            //Assert
            Assert.IsTrue(resultadoDaPartida.Vencedor.PosicaoNaOrdemAlfabetica < resultadoDaPartida.Derrotado.PosicaoNaOrdemAlfabetica);
        }
        public IList <IParticipante> Inicializar()
        {
            IList <IParticipante> participantes = new List <IParticipante>();
            int posicaoNaOrdemAlfabetica        = 1;

            foreach (var filme in _filmesParticipantes.OrderBy(filme => filme.Titulo))
            {
                var participante = ParticipanteFactory.Criar(filme, posicaoNaOrdemAlfabetica);
                participantes.Add(participante);
                posicaoNaOrdemAlfabetica++;
            }

            return(participantes);
        }
示例#3
0
        public void Devo_conseguir_definir_como_vencedor_o_filme_com_maior_nota()
        {
            //Arrange
            var filmeParticipante1 = ParticipanteFactory.Criar(FilmeFactory.Criar("1", "Filme 1", 10), 1);
            var filmeParticipante2 = ParticipanteFactory.Criar(FilmeFactory.Criar("2", "Filme 2", 9), 2);
            var confronto          = ConfrontoFactory.Criar(filmeParticipante1, filmeParticipante2, 1);

            //Act
            apuracaoDoConfronto = ApuracaoDoConfrontoFactory.Criar(confronto);
            var resultadoDaPartida = apuracaoDoConfronto.DefinirVencedor();

            //Assert
            Assert.IsTrue(resultadoDaPartida.Vencedor.FilmeParticipante.Nota > resultadoDaPartida.Derrotado.FilmeParticipante.Nota);
        }
示例#4
0
        public void Devo_conseguir_inicializar_a_fase_organizando_os_confrontos()
        {
            //Arrange
            listaDeParticipantes = new List <IParticipante>();

            for (int i = 1; i <= 8; i++)
            {
                var filmeParticipante = ParticipanteFactory.Criar(FilmeFactory.Criar(i.ToString(), $"Filme {i}", i), i);
                listaDeParticipantes.Add(filmeParticipante);
            }

            IFase novaFase;

            //Act
            var inicializacaoDaFase = new InicializacaoDaFase(listaDeParticipantes);

            novaFase = inicializacaoDaFase.Inicializar();

            //Assert
            Assert.AreEqual(novaFase.Confrontos.Count, 4);
        }
示例#5
0
        public void Devo_conseguir_avancar_a_fase_executando_as_disputas_dos_conforntos()
        {
            //Arrange
            var filmeParticipante1 = ParticipanteFactory.Criar(FilmeFactory.Criar("1", "Filme 1", 10), 1);
            var filmeParticipante2 = ParticipanteFactory.Criar(FilmeFactory.Criar("2", "Filme 2", 9), 2);
            var confronto1         = ConfrontoFactory.Criar(filmeParticipante1, filmeParticipante2, 1);

            var filmeParticipante3 = ParticipanteFactory.Criar(FilmeFactory.Criar("1", "Filme 3", 10), 3);
            var filmeParticipante4 = ParticipanteFactory.Criar(FilmeFactory.Criar("2", "Filme 4", 9), 4);
            var confronto2         = ConfrontoFactory.Criar(filmeParticipante3, filmeParticipante4, 2);

            fase = FaseFactory.Criar();
            fase.AdicionarConfronto(confronto1);
            fase.AdicionarConfronto(confronto2);

            IFase novaFase = FaseFactory.Criar();
            //Act
            var disputaDaFase = new DisputaDaFase(fase);

            novaFase = disputaDaFase.AvancarFase(novaFase);

            //Assert
            Assert.AreEqual(novaFase.Confrontos.Count, 1);
        }