public async Task ObterFilmesCompetidoresAsync_RetornoVazio_NotFound()
        {
            var filmesRepository = Substitute.For <IFilmesRepository>();

            filmesRepository.ObterFilmesAsync().Returns(Enumerable.Empty <Filme>());

            var competicaoController = new CompeticaoController(filmesRepository);

            var resultado = await competicaoController.ObterFilmesCompetidoresAsync();

            Assert.IsType <NotFoundResult>(resultado.Result);
        }
        public async Task ObterFilmesCompetidoresAsync_ErroInesperado_InternalServerError()
        {
            var filmesRepository = Substitute.For <IFilmesRepository>();

            filmesRepository.ObterFilmesAsync().Throws(new Exception("Erro inesperado"));

            var competicaoController = new CompeticaoController(filmesRepository);

            var resultado = await competicaoController.ObterFilmesCompetidoresAsync();

            Assert.IsType <ObjectResult>(resultado.Result);
            int?statusCode = (resultado.Result as ObjectResult).StatusCode;

            Assert.Equal(500, statusCode);
        }
        public async Task ObterFilmesCompetidoresAsync_RetornoComSucesso_Ok()
        {
            var filmesRepository = Substitute.For <IFilmesRepository>();

            filmesRepository.ObterFilmesAsync().Returns(_listaFilmes);

            var competicaoController = new CompeticaoController(filmesRepository);

            var resultado = await competicaoController.ObterFilmesCompetidoresAsync();

            Assert.IsType <OkObjectResult>(resultado.Result);
            IEnumerable <FilmeView> filmesView = (resultado.Result as OkObjectResult).Value as IEnumerable <FilmeView>;

            Assert.NotEmpty(filmesView);
        }