Exemplo n.º 1
0
        public DisputaDaFase(IFase fase)
        {
            if (fase == null)
            {
                throw new ArgumentNullException("Fase não informada");
            }

            _fase = fase;
        }
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 Campeonato(IList <IParticipante> participantes, IFase faseInicial)
        {
            if (faseInicial == null)
            {
                throw new ArgumentNullException("Fase inicial não foi informada");
            }

            if (participantes == null)
            {
                throw new ArgumentNullException("Os participantes não foram informados");
            }

            if (_fases == null)
            {
                _fases = new List <IFase>();
            }

            _fases.Add(faseInicial);
            _participantes = participantes.ToList();
        }
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);
        }
Exemplo n.º 6
0
        public IList <IFase> AdicionarFase(IFase fase)
        {
            _fases.Add(fase);

            return(Fases);
        }
 public static IDisputaDaFase Criar(IFase fase)
 {
     return(new DisputaDaFase(fase));
 }
 public static ICampeonato Criar(IList <IParticipante> participantes, IFase faseInicial)
 {
     return(new Campeonato(participantes, faseInicial));
 }
Exemplo n.º 9
0
 public FaseController(IMapper mapper, IFase fase)
 {
     _mapper = mapper;
     _fase   = fase;
 }