public void SearchMoviesByFilter_NoFilterProvided_ExceptionThrown() { var repositoryMock = new Mock <IMoviesRespository>(); var service = new MoviesSearchService(repositoryMock.Object); Assert.Throws <InvalidInputException>(() => service.SearchMoviesByFilter(new MovieFilter())); }
public void SearchMoviesByFilter_RatingsExist_AverageRatingCorrectlyRoundedReturned() { var movies = new List <Movie>() { new Movie { Id = 1, Title = "Match" }, new Movie { Id = 1, Title = "NoMatch" } }; var userRatings = new List <UserRating>() { new UserRating() { UserId = 1, MovieId = 1, Rating = 4 }, new UserRating() { UserId = 2, MovieId = 1, Rating = 2 }, new UserRating() { UserId = 3, MovieId = 1, Rating = 1 } }; var repositoryMock = new Mock <IMoviesRespository>(); repositoryMock.Setup(r => r.GetMovies()).Returns(movies.AsQueryable()); repositoryMock.Setup(r => r.GetUserRatings()).Returns(userRatings.AsQueryable()); var service = new MoviesSearchService(repositoryMock.Object); var results = service.SearchMoviesByFilter(new MovieFilter() { Title = "Ma" }); Assert.Equal(2.5, results.Single().AverageRating); }
public void SearchMoviesByFilter_FilterContainsPartialTitle_CorrectItemsReturned() { var movies = new List <Movie>() { new Movie { Id = 1, Title = "Match" }, new Movie { Id = 1, Title = "NoMatch" } }; var repositoryMock = new Mock <IMoviesRespository>(); repositoryMock.Setup(r => r.GetMovies()).Returns(movies.AsQueryable()); var service = new MoviesSearchService(repositoryMock.Object); var results = service.SearchMoviesByFilter(new MovieFilter() { Title = "Ma" }); Assert.Equal(1, results.Single().Id); }
public MoviesController(MoviesSearchService searchService) { this.searchService = searchService; }