public ICampeonato ExecutarDisputaDasFases()
        {
            var temProximaFase = true;
            var fase           = _campeonato.Fases.First();

            while (temProximaFase)
            {
                var disputaDeFase = DisputaDaFaseFactory.Criar(fase);

                var novaFase = FaseFactory.Criar();
                disputaDeFase.AvancarFase(novaFase);
                _campeonato.AdicionarFase(novaFase);

                if (novaFase.Confrontos.Count > 1)
                {
                    fase = novaFase;
                }
                else
                {
                    temProximaFase = false;
                }
            }

            return(_campeonato);
        }
Exemplo n.º 2
0
        public InicializacaoDaFase(IList <IParticipante> participantes, IFase fase = null)
        {
            if (participantes == null)
            {
                throw new ArgumentNullException("Os filmes participantes não foram informados");
            }

            if (participantes.Count % 2 != 0)
            {
                throw new ArgumentException("Quantidade de participantes deve ser par");
            }

            if (fase == null)
            {
                fase = FaseFactory.Criar();
            }

            _fase          = fase;
            _participantes = participantes.ToList();
        }
Exemplo n.º 3
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);
        }