public void Verificar_se_retorna_filmes_corretos_na_semi_final_recebendo_oito_filmes()
        {
            var filmes       = _filmes.ToList();
            var primeiraFase = new PrimeiraFase
            {
                Filmes = new List <Filme> {
                    filmes.FirstOrDefault(x => x.Titulo == "Deadpool 2"),
                    filmes.FirstOrDefault(x => x.Titulo == "Han Solo: Uma História Star Wars"),
                    filmes.FirstOrDefault(x => x.Titulo == "Hereditário"),
                    filmes.FirstOrDefault(x => x.Titulo == "Jurassic World: Reino Ameaçado"),
                    filmes.FirstOrDefault(x => x.Titulo == "Oito Mulheres e um Segredo"),
                    filmes.FirstOrDefault(x => x.Titulo == "Os Incríveis 2"),
                    filmes.FirstOrDefault(x => x.Titulo == "Thor: Ragnarok"),
                    filmes.FirstOrDefault(x => x.Titulo == "Vingadores: Guerra Infinita")
                }
            };

            var semiFinal = primeiraFase.Iniciar();

            var filme1 = semiFinal.Filmes[0].Titulo == "Vingadores: Guerra Infinita";
            var filme2 = semiFinal.Filmes[1].Titulo == "Thor: Ragnarok";
            var filme3 = semiFinal.Filmes[2].Titulo == "Os Incríveis 2";
            var filme4 = semiFinal.Filmes[3].Titulo == "Jurassic World: Reino Ameaçado";

            Assert.True(filme1 && filme2 && filme3 && filme4);
        }
Beispiel #2
0
        public void DeveAnalisarListaDeFilmesEClassificarQuatroFilmes()
        {
            //arrange
            var listaEntrada = new List <Filme>();

            listaEntrada.Add(new Filme {
                Id = "tt3606756", Titulo = "Os Incríveis 2", Ano = 2018, Nota = 8.5
            });                                                                                                  //1
            listaEntrada.Add(new Filme {
                Id = "tt7784604", Titulo = "Hereditário", Ano = 2018, Nota = 7.8
            });                                                                                              //2
            listaEntrada.Add(new Filme {
                Id = "tt4881806", Titulo = "Jurassic World: Reino Ameaçado 2", Ano = 2018, Nota = 6.7
            });                                                                                                                   //3
            listaEntrada.Add(new Filme {
                Id = "tt5164214", Titulo = "Oito Mulheres e um Segredo", Ano = 2018, Nota = 6.3
            });                                                                                                             //4
            listaEntrada.Add(new Filme {
                Id = "tt5463162", Titulo = "Deadpool 2", Ano = 2018, Nota = 8.1
            });                                                                                             //5
            listaEntrada.Add(new Filme {
                Id = "tt2854926", Titulo = "Te Peguei!", Ano = 2018, Nota = 7.1
            });                                                                                             //6
            listaEntrada.Add(new Filme {
                Id = "tt1365519", Titulo = "Tomb Raider: A Origem", Ano = 2018, Nota = 6.5
            });                                                                                                        //7
            listaEntrada.Add(new Filme {
                Id = "tt1825683", Titulo = "Pantera Negra", Ano = 2018, Nota = 7.5
            });                                                                                                //8

            var listaSaida = new List <Filme>();

            listaSaida.Add(new Filme {
                Id = "tt3606756", Titulo = "Os Incríveis 2", Ano = 2018, Nota = 8.5
            });
            listaSaida.Add(new Filme {
                Id = "tt7784604", Titulo = "Hereditário", Ano = 2018, Nota = 7.8
            });
            listaSaida.Add(new Filme {
                Id = "tt2854926", Titulo = "Te Peguei!", Ano = 2018, Nota = 7.1
            });
            listaSaida.Add(new Filme {
                Id = "tt5463162", Titulo = "Deadpool 2", Ano = 2018, Nota = 8.1
            });

            var comparaFilmes = new ComparaFilmes();
            var primeiraFase  = new PrimeiraFase(comparaFilmes);

            //act
            var resultado = primeiraFase.DefinirFilmesVencedores(listaEntrada);

            //assert
            Assert.Equal(4, resultado.Count);
            Assert.Equal(listaSaida[0].Id, resultado[0].Id);
            Assert.Equal(listaSaida[1].Id, resultado[1].Id);
            Assert.Equal(listaSaida[2].Id, resultado[2].Id);
            Assert.Equal(listaSaida[3].Id, resultado[3].Id);
        }
        public void Verificar_se_retorna_erro_se_nao_receber_todos_os_times()
        {
            var primeiraFase = new PrimeiraFase
            {
                Filmes = _filmes.ToList().GetRange(0, 4)
            };

            Assert.Throws <ArgumentOutOfRangeException>(() => primeiraFase.Iniciar());
        }
        public void Verificar_se_retorna_semi_final_recebendo_oito_filmes()
        {
            var primeiraFase = new PrimeiraFase
            {
                Filmes = _filmes.ToList().GetRange(0, 8)
            };

            var semiFinal = primeiraFase.Iniciar();

            Assert.NotNull(semiFinal);
        }
Beispiel #5
0
        public Eliminatorias PreencherSemiFinal()
        {
            if (PrimeiraFase == null || PrimeiraFase.Count() < 4)
            {
                throw new Exception("Não é possível avançar para a semifinal antes da primeira fase");
            }

            SemiFinal = new Partida[2];

            for (int i = 0; i < SemiFinal.Length; i++)
            {
                var primeiroFilme = PrimeiraFase[i].ObterVencedor();
                var segundoFilme  = PrimeiraFase[PrimeiraFase.Length - i - 1].ObterVencedor();
                SemiFinal[i] = new Partida(primeiroFilme, segundoFilme);
            }

            return(this);
        }
Beispiel #6
0
        public void NaoDeveAnalisarListaDeFilmesSeQuantidadeDiferenteOito()
        {
            //arrange
            var lista = new List <Filme>();

            lista.Add(new Filme {
                Id = "tt3606756", Titulo = "Os Incríveis 2", Ano = 2018, Nota = 8.5
            });
            lista.Add(new Filme {
                Id = "tt7784604", Titulo = "Hereditário", Ano = 2018, Nota = 7.8
            });

            var comparaFilmes = new ComparaFilmes();
            var primeiraFase  = new PrimeiraFase(comparaFilmes);

            //act / assert
            Assert.Throws <ArgumentException>(() => primeiraFase.DefinirFilmesVencedores(lista));
        }
Beispiel #7
0
        public void Verificar_se_retorna_semi_final_recebendo_oito_filmes()
        {
            var primeiraFase = new PrimeiraFase
            {
                FilmeUm     = _filmes[0],
                FilmeDois   = _filmes[1],
                FilmeTres   = _filmes[2],
                FilmeQuatro = _filmes[3],
                FilmeCinco  = _filmes[4],
                FilmeSeis   = _filmes[5],
                FilmeSete   = _filmes[6],
                FilmeOito   = _filmes[7],
            };

            var semiFinal = primeiraFase.Inciar();

            Assert.IsNotNull(semiFinal);
        }
        public Dominios.CopaDosFilmes GerarMeuCampeonato(List <Filme> filmes)
        {
            if (filmes.Count != 8)
            {
                throw new Exception("A quantidade de necessária de filmes para o campeonato é 8");
            }

            var copa = new Dominios.CopaDosFilmes();

            var filmesOrdenados = filmes.OrderBy(x => x.Titulo);

            var primeiraFase = new PrimeiraFase
            {
                Filmes = filmesOrdenados.ToList()
            };

            var semiFinal = primeiraFase.Iniciar();

            copa.Final = semiFinal.Iniciar();

            copa.Campeao = copa.Final.Iniciar();

            return(copa);
        }
        public void Verificar_se_retorna_erro_se_nao_receber_nenhum_filme()
        {
            var primeiraFase = new PrimeiraFase();

            Assert.Throws <NullReferenceException>(() => primeiraFase.Iniciar());
        }