コード例 #1
0
        public void Devo_conseguir_executar_o_confronto_da_final()
        {
            //Arrange
            var listaDeFilmes = new List <IFilme>();

            for (int i = 1; i <= 8; i++)
            {
                var filmeParticipante = FilmeFactory.Criar(i.ToString(), $"Filme {i}", 10);
                listaDeFilmes.Add(filmeParticipante);
            }

            var inicializacaoDoCampeonato = InicializacaoDoCampeonatoFactory.Criar(listaDeFilmes, configuracaoDoCampeonato);

            campeonato = inicializacaoDoCampeonato.Inicializar();

            var disputaDoCampeonato = DisputaDoCampeonatoFactory.Criar(campeonato);

            disputaDoCampeonato.ExecutarDisputaDasFases();

            //Act
            var disputaDaFinal = DisputaDaFinalFactory.Criar(campeonato);

            disputaDaFinal.ExecutarConfrontoDaFinal();

            //Assert
            Assert.AreEqual(campeonato.ResultadoFinal.Campeao.Titulo, listaDeFilmes[0].Titulo);
        }
コード例 #2
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);
        }
コード例 #3
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);
        }
コード例 #4
0
        public void Devo_conseguir_inicializar_o_campeonato_configurando_a_fase_inicial()
        {
            //Arrange
            listaDeFilmes = new List <IFilme>();
            for (int i = 1; i <= 8; i++)
            {
                var filmeParticipante = FilmeFactory.Criar(i.ToString(), $"Filme {i}", 10);
                listaDeFilmes.Add(filmeParticipante);
            }

            //Act
            var inicializacaoDosParticipantes = InicializacaoDoCampeonatoFactory.Criar(listaDeFilmes, configuracaoDoCampeonato);
            var campeonato = inicializacaoDosParticipantes.Inicializar();

            //Assert
            Assert.AreEqual(campeonato.Fases.Count, 1);
        }
コード例 #5
0
        public void Devo_conseguir_inicializar_a_fase_organizando_os_confrontos()
        {
            //Arrange
            listaDeParticipantes = new List <IParticipante>();

            for (int i = 1; i <= 8; i++)
            {
                var filmeParticipante = ParticipanteFactory.Criar(FilmeFactory.Criar(i.ToString(), $"Filme {i}", i), i);
                listaDeParticipantes.Add(filmeParticipante);
            }

            IFase novaFase;

            //Act
            var inicializacaoDaFase = new InicializacaoDaFase(listaDeParticipantes);

            novaFase = inicializacaoDaFase.Inicializar();

            //Assert
            Assert.AreEqual(novaFase.Confrontos.Count, 4);
        }
コード例 #6
0
        public void Devo_conseguir_executar_o_campeonato_e_definir_o_campeao()
        {
            //Arrange
            listaDeFilmes = new List <IFilme>();
            IFilme filmeParticipante;

            filmeParticipante = FilmeFactory.Criar("10", $"Filme 10", 10);
            listaDeFilmes.Add(filmeParticipante);

            for (int i = 1; i <= 7; i++)
            {
                filmeParticipante = FilmeFactory.Criar(i.ToString(), $"Filme {i}", 9);
                listaDeFilmes.Add(filmeParticipante);
            }

            //Act
            var execucaoDoCampeonatoService = new ExecucaoDoCampeonatoService(configuracaoDoCampeonato);
            var campeonato = execucaoDoCampeonatoService.Executar(listaDeFilmes);

            //Assert
            Assert.AreEqual(campeonato.ResultadoFinal.Campeao.Titulo, listaDeFilmes[0].Titulo);
        }
コード例 #7
0
        public void Devo_conseguir_executar_a_disputa_das_fases()
        {
            //Arrange
            var listaDeFilmes = new List <IFilme>();

            for (int i = 1; i <= 8; i++)
            {
                var filmeParticipante = FilmeFactory.Criar(i.ToString(), $"Filme {i}", 10);
                listaDeFilmes.Add(filmeParticipante);
            }

            var inicializacaoDoCampeonato = InicializacaoDoCampeonatoFactory.Criar(listaDeFilmes, configuracaoDoCampeonato);

            campeonato = inicializacaoDoCampeonato.Inicializar();

            //Act
            var disputaDoCampeonato = DisputaDoCampeonatoFactory.Criar(campeonato);

            disputaDoCampeonato.ExecutarDisputaDasFases();

            //Assert
            Assert.Greater(campeonato.Fases.Count, 1);
        }
コード例 #8
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);
        }
コード例 #9
0
        public void Devo_conseguir_inicializar_a_lista_dos_participantes_ordenados_em_ordem_alfabetica()
        {
            //Arrange
            listaDeFilmes = new List <IFilme>();
            var filmeParticipante1 = FilmeFactory.Criar("1", "Filme 2", 10);

            listaDeFilmes.Add(filmeParticipante1);
            var filmeParticipante2 = FilmeFactory.Criar("2", "Filme 4", 9);

            listaDeFilmes.Add(filmeParticipante2);
            var filmeParticipante3 = FilmeFactory.Criar("1", "Filme 3", 10);

            listaDeFilmes.Add(filmeParticipante3);
            var filmeParticipante4 = FilmeFactory.Criar("2", "Filme 1", 9);

            listaDeFilmes.Add(filmeParticipante4);

            //Act
            var inicializacaoDosParticipantes = new InicializacaoDosParticipantes(listaDeFilmes);
            var participantes = inicializacaoDosParticipantes.Inicializar();

            //Assert
            Assert.AreEqual(participantes[0].FilmeParticipante.Titulo, "Filme 1");
        }
コード例 #10
0
        public IList <IFilme> Buscar()
        {
            var acessoDadosExternos = new AcessoDadosExternos(_fontesExternas.UrlFilmes);

            var jsonFilmes = acessoDadosExternos.BuscarDadosComoTexto();

            var filmesDynanmics = JArray.Parse(jsonFilmes);

            List <IFilme> filmes = new List <IFilme>();

            foreach (dynamic filmeDynamic in filmesDynanmics)
            {
                string id            = filmeDynamic.id;
                string titulo        = filmeDynamic.titulo;
                string notaTexto     = filmeDynamic.nota;
                double nota          = double.Parse(notaTexto, System.Globalization.CultureInfo.InvariantCulture);
                string anoLancamento = filmeDynamic.ano;

                var filme = FilmeFactory.Criar(id, titulo, nota, anoLancamento);
                filmes.Add(filme);
            }

            return(filmes);
        }