public async Task GetMoviesByGenre_WhenProvidedWithAValidGenre_ReturnsMoviesByGenre()
        {
            // Arrange
            //// It is not the controller's responsibility to filter by genre
            ///  or ensure all movies being returned have the genre specified
            var expectedMovies     = RandomMovieGenerator.GenerateRandomMovies(50);
            var moviesController   = new MovieControllerForTest(expectedMovies);
            var validGenreAsString = GenreParser.ToString(Genre.SciFi);

            // Act
            var actualMovieResources = await moviesController.GetMoviesByGenre(validGenreAsString);

            // Assert
            var actualMovies = MapToMvoies(actualMovieResources);

            MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies);
        }
        public async Task GetMoviesByGenre_WhenProvidedWithAInValidGenre_ShouldThrow()
        {
            // Arrange
            var moviesController     = new MovieControllerForTest(movies: null);
            var invalidGenreAsString = "xxxxx";

            // Act
            try
            {
                await moviesController.GetMoviesByGenre(invalidGenreAsString);

                Assert.Fail("We were expecting an exception of type InvalidGenreException to be thrown, but no exception was thrown");
            }
            catch (InvalidGenreException e)
            {
                // Assert
                StringAssert.Contains(e.Message, invalidGenreAsString);
            }
        }