Exemplo n.º 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);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        public IFase Inicializar()
        {
            int primeiraPosicao          = 1;
            int ultimaPosicao            = _participantes.OrderBy(participanteSelecionado => participanteSelecionado.PosicaoNaOrdemAlfabetica).Last().PosicaoNaOrdemAlfabetica;
            int posicaoDoConfrontoNaFase = 1;

            while (ultimaPosicao - primeiraPosicao > 0)
            {
                IParticipante participante1 = BuscarParticipantePorPosicaoNaOrdemAlfabetica(primeiraPosicao);
                IParticipante participante2 = BuscarParticipantePorPosicaoNaOrdemAlfabetica(ultimaPosicao);
                var           confronto     = ConfrontoFactory.Criar(participante1, participante2, posicaoDoConfrontoNaFase);

                _fase.AdicionarConfronto(confronto);

                primeiraPosicao++;
                ultimaPosicao--;
                posicaoDoConfrontoNaFase++;
            }
            return(_fase);
        }
Exemplo n.º 4
0
        public IFase AvancarFase(IFase novaFase)
        {
            _posicaoDoConfrontoNaFase = 1;
            var vencedores = new List <IParticipante>();
            int posicaoDoConfrontoNaNovaFase = 1;
            var confrontosNaNovaFase         = new List <IConfronto>();

            while (_posicaoDoConfrontoNaFase < _fase.Confrontos.Count)
            {
                var resultado1 = ExecutarComfronto();

                var resultado2 = ExecutarComfronto();

                var novoConfronto = ConfrontoFactory.Criar(resultado1.Vencedor, resultado2.Vencedor, posicaoDoConfrontoNaNovaFase);

                novaFase.AdicionarConfronto(novoConfronto);
                posicaoDoConfrontoNaNovaFase++;
            }

            return(novaFase);
        }
Exemplo n.º 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);
        }