public void AssertMoviesAreEqual_WhenActualHasMoviesNotInExpected_Throws() { // Arrange var expectedMovies = new List <Movie> { new Movie("A", "ImageUrlA", Genre.Action, 1900), new Movie("C", "ImageUrlB", Genre.Drama, 1901), }; var actualMovies = new List <Movie> { new Movie("A", "ImageUrlA", Genre.Action, 1900), new Movie("C", "ImageUrlB", Genre.SciFi, 1901), new Movie("D", "ImageUrlC", Genre.Thriller, 1902), new Movie("E", "ImageUrlE", Genre.Comedy, 1903), }; // Act try { MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); } catch (AssertFailedException e) { // Assert var expectedExceptionMessage = "The Following movies are in Expected Movies but Not in Actual Movies\r\n" + "Title: C, Genre: Drama, Year: 1901\r\n" + "The Following movies are in Actual Movies but Not in Expected Movies\r\n" + "Title: C, Genre: Sci-Fi, Year: 1901\r\n" + "Title: D, Genre: Thriller, Year: 1902\r\n" + "Title: E, Genre: Comedy, Year: 1903\r\n"; Assert.AreEqual(expectedExceptionMessage, e.Message); } }
public async Task GetMoviesByGenre_WhenCalledWithValidGenre_ShouldReturnMoviesFilteredByGenre() { // Arrange var(domainFacade, testMediator) = CreateDomainFacade(); try { var randomMovies = new List <Movie>(); var moviesFromService = RandomMovieGenerator.GenerateRandomMovies(50); testMediator.MoviesForGetAllMovies = moviesFromService; randomMovies.AddRange(moviesFromService); randomMovies.AddRange(moviesInDb); var expectGenre = Genre.Comedy; var expectedMovies = randomMovies.Where(m => m.Genre == expectGenre).ToList(); // Act var actualMovies = await domainFacade.GetMoviesByGenre(expectGenre); // Assert MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); } finally { domainFacade.Dispose(); } }
public async Task DomainFacade_GetAllMovies_WhenMethodIsCalled_ShouldReturnAllMovies() { // Arrange var expectedMovies = GetArrangedMovies(); _testMediator.HttpStatusCode = HttpStatusCode.OK; _testMediator.Movies = expectedMovies; // Act var actualMovies = await _domainFacade.GetAllMovies().ConfigureAwait(false); // Assert MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); }
public async Task GetMovies_WhenThereAreNoExceptions_ReturnsAllMovies() { // Arrange var expectedMovies = RandomMovieGenerator.GenerateRandomMovies(50); var moviesController = new MovieControllerForTest(expectedMovies); // Act var actualMovieResources = await moviesController.GetMovies(); // Assert var actualMovies = MapToMvoies(actualMovieResources); MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); }
public async Task DomainFacade_GetMoviesByYear_WhenCalledWithAYearThatHasMovies_ShouldReturnMoviesMatchingThatYear() { // Arrange var yearInWhichMoviesExist = 2011; var unFilteredMovies = GetArrangedMovies(); var expectedMovies = GetCopiesOfMoviesMatchingGenre(unFilteredMovies, m => m.Year == yearInWhichMoviesExist); _testMediator.HttpStatusCode = HttpStatusCode.OK; _testMediator.Movies = unFilteredMovies; // Act var actualMovies = await _domainFacade.GetMoviesByYear(yearInWhichMoviesExist).ConfigureAwait(false); // Assert MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); }
public async Task DomainFacade_GetMoviesByGenre_WhenCalledWithAValidGenre_ShouldReturnMoviesMatchingThatGenre() { // Arrange var validGenre = Genre.Drama; var unFilteredMovies = GetArrangedMovies(); var expectedMovies = GetCopiesOfMoviesMatchingGenre(unFilteredMovies, m => m.Genre == validGenre); _testMediator.HttpStatusCode = HttpStatusCode.OK; _testMediator.Movies = unFilteredMovies; // Act var actualMovies = await _domainFacade.GetMoviesByGenre(validGenre).ConfigureAwait(false); // Assert MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); }
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 MoviesController_GetMoviesByGenre_WhenCalledWithAValidGenre_ShouldReturnMovies() { // Arrange // Since the Controller is not responsible for filtering by Genre, all we need to assert is that // The movies that are arranged/expected are in fact the movies that are returned var expectedMovies = GetArrangedMovies(); var moviesController = new MoviesControllerForTest(expectedMovies); var validGenre = Genre.Drama.ToString(); // Act var actualMovieResources = await moviesController.MoviesByGenre(validGenre).ConfigureAwait(false); // Assert var actualMovies = MapMovieResourceToMovie(actualMovieResources); MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); }
public async Task MoviesController_GetAllMovies_WhenAllGoesOk_ShouldReturnAllMovies() { // Arrange var expectedMovies = GetArrangedMovies(); var moviesController = new MoviesControllerForTest(expectedMovies); // Act var actionResult = await moviesController.Get().ConfigureAwait(false); var okObjectResult = (OkObjectResult)actionResult.Result; var actualMovieResources = (IEnumerable <MovieResource>)okObjectResult.Value; // Assert var actualMovies = MapMovieResourceToMovie(actualMovieResources); MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); }
public async Task GetMoviesById_WhenCalledWithValidId_ShouldReturnMovieMatchingId() { // Arrange var(domainFacade, testMediator) = CreateDomainFacade(); try { var expectedMovie = moviesInDb.First(); var expectedMovieId = await MovieTestDataGenerator.GetMovieIdByTitle(dbConnectionString, expectedMovie.Title); // Act var actualMovie = await domainFacade.GetMovieById(expectedMovieId); // Assert MovieAssertions.AssertMoviesAreEqual(new[] { expectedMovie }, new[] { actualMovie }); } finally { domainFacade.Dispose(); } }
public void AssertMoviesAreEqual_WhenExpectedAndActualAreEqual_NoExceptionIsThrown() { // Arrange var expectedMovies = new List <Movie> { new Movie("A", "ImageUrlA", Genre.Action, 1900), new Movie("C", "ImageUrlB", Genre.Drama, 1901), }; var actualMovies = new List <Movie> { new Movie("A", "ImageUrlA", Genre.Action, 1900), new Movie("C", "ImageUrlB", Genre.Drama, 1901), }; // Act MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); // Assert }
public async Task CreateMovie_WhenCalledWithAValidMovieNonExistent_Succeed() { // Arrange var(domainFacade, _) = CreateDomainFacade(); var expectedMovie = RandomMovieGenerator.GenerateRandomMovies(1).Single(); try { // Act await domainFacade.CreateMovie(expectedMovie); // Assert var actualMovie = await MovieTestDataGenerator.RetrieveMovie(dbConnectionString, expectedMovie.Title); MovieAssertions.AssertMoviesAreEqual(new[] { expectedMovie }, new[] { actualMovie }); } finally { domainFacade.Dispose(); } }
public async Task GetAllMovies_WhenCalled_ReturnsAllMovies() { // Arrange var(domainFacade, testMediator) = CreateDomainFacade(); try { var moviesFromService = RandomMovieGenerator.GenerateRandomMovies(50); testMediator.MoviesForGetAllMovies = moviesFromService; var expectedMovies = new List <Movie>(); expectedMovies.AddRange(moviesFromService); expectedMovies.AddRange(moviesInDb); // Act var actualMovies = await domainFacade.GetAllMovies(); // Assert MovieAssertions.AssertMoviesAreEqual(expectedMovies, actualMovies); } finally { domainFacade.Dispose(); } }