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); }
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(); }
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); }