Esempio n. 1
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);
        }
        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);
        }