Beispiel #1
0
        public void EliminatoriasTests_Dado_Eliminatorias_Sem_Jogar_Quando_Consultar_Pelo_Campeao_Lanca_Excecao()
        {
            var copaMundo     = new CopaMundo();
            var eliminatorias = new Eliminatorias(copaMundo);

            _ = Assert.ThrowsException <InvalidOperationException>(() =>
            {
                try
                {
                    _ = eliminatorias.Campeao;
                }
                catch (InvalidOperationException excecao)
                {
                    if (excecao.Message == "Operação inválida. O campeão somente estará disponível quando as eliminatórias forem jogadas.")
                    {
                        throw;
                    }

                    Assert.Fail($"A exceção esperada {nameof(InvalidOperationException)} foi lançada mas com uma mensagem inesperada. A mensagem da exceção foi {excecao.Message}");
                }
                catch (Exception excecao)
                {
                    Assert.Fail($"A exceção esperada não foi lançada. O tipo da exceção esperada é {nameof(InvalidOperationException)} mas foi {excecao.GetType().FullName}.");
                }
            });
        }
Beispiel #2
0
        public void EliminatoriasTests_Dado_Filmes_Selecionados_Sem_Montar_Chaveamento_Quando_Jogar_As_Eliminatorias_Lanca_Excecao()
        {
            var copaMundo     = new CopaMundo();
            var eliminatorias = new Eliminatorias(copaMundo);

            _ = Assert.ThrowsException <InvalidOperationException>(() =>
            {
                try
                {
                    eliminatorias.Jogar();
                }
                catch (InvalidOperationException excecao)
                {
                    if (excecao.Message == "Operação inválida. É necessário primeiro montar o chaveamento para, somente então, realizar as partidas das eliminatórias.")
                    {
                        throw;
                    }

                    Assert.Fail($"A exceção esperada {nameof(InvalidOperationException)} foi lançada mas com uma mensagem inesperada. A mensagem da exceção foi {excecao.Message}");
                }
                catch (Exception excecao)
                {
                    Assert.Fail($"A exceção esperada não foi lançada. O tipo da exceção esperada é {nameof(InvalidOperationException)} mas foi {excecao.GetType().FullName}.");
                }
            });
        }
        public void SucessoAoInstanciarComNumeroDeFilmesValido()
        {
            var quantidadeValida = 8;
            var filmes           = GerarListaDeFilmes(quantidadeValida);


            var eliminatorias = new Eliminatorias(filmes);

            Assert.AreEqual(quantidadeValida, eliminatorias.Filmes.Count());
        }
        public void ExcecaoAoInstanciarComNumeroDeFilmesInvalidos(int quantidadeFilmes)
        {
            var filmes = GerarListaDeFilmes(quantidadeFilmes);

            try
            {
                var eliminatorias = new Eliminatorias(filmes);
                Assert.Fail();
            }
            catch (Exception ex)
            {
                Assert.AreEqual("As eliminatorias devem ter 8 filmes", ex.Message);
            }
        }
        public void SucessoAoInstanciarComNumeroDeFilmesValidoEAvancarAteAFinal()
        {
            var quantidadeValida = 8;
            var filmes           = GerarListaDeFilmes(quantidadeValida);


            var eliminatorias = new Eliminatorias(filmes);

            eliminatorias.OrdenarFilmes()
            .PreencherPrimeiraFase()
            .PreencherSemiFinal()
            .PreencherFinal();

            Assert.AreEqual(quantidadeValida, eliminatorias.Filmes.Count());
        }
Beispiel #6
0
        public CampeonatoDTO GerarCampeonato(IEnumerable <FilmeDTO> filmes)
        {
            var filmesSelecionados = filmes.Select(x => new Filme(x.Id, x.Titulo, x.Ano, x.Nota)).ToList();

            var eliminatorias = new Eliminatorias(filmesSelecionados);

            eliminatorias.OrdenarFilmes()
            .PreencherPrimeiraFase()
            .PreencherSemiFinal()
            .PreencherFinal();

            var campeonato = _mapper.Map <CampeonatoDTO>(eliminatorias);

            return(campeonato);
        }
Beispiel #7
0
        public void EliminatoriasTests_Dado_Nulo_Argumento_Copa_Do_Mundo_Quando_Instanciar_Lanca_Excecao()
        {
            _ = Assert.ThrowsException <ArgumentNullException>(() =>
            {
                try
                {
                    _ = new Eliminatorias(null);
                }
                catch (ArgumentNullException excecao)
                {
                    if (excecao.ParamName == "copaMundo")
                    {
                        throw;
                    }

                    Assert.Fail($"A exceção esperada {nameof(ArgumentNullException)} foi lançada mas com uma mensagem inesperada. A mensagem da exceção foi {excecao.Message}");
                }
                catch (Exception excecao)
                {
                    Assert.Fail($"A exceção esperada não foi lançada. O tipo da exceção esperada é {nameof(ArgumentNullException)} mas foi {excecao.GetType().FullName}.");
                }
            });
        }
        internal PartidaTestBuilder ComEliminatorias(Eliminatorias eliminatorias)
        {
            _eliminatorias = eliminatorias;

            return(this);
        }
 internal PartidaTestBuilder()
 {
     _filmes        = new List <Filme>();
     _copaMundo     = new CopaMundo();
     _eliminatorias = new Eliminatorias(_copaMundo);
 }