public async Task GetAllReviewsFailureTest(string movieId) { // Arrange var mockReviewRepository = new Mock <IReviewRepository>(); mockReviewRepository.Setup(x => x.GetAsync(It.IsAny <Expression <Func <ReviewEntity, bool> > >())) .Returns(Task.FromResult(ReviewCollection.Where(x => string.Equals(x.MovieId, movieId, StringComparison.OrdinalIgnoreCase)))); var mockMovieRepository = new Mock <IMovieRepository>(); mockMovieRepository.Setup(x => x.GetAsync(It.IsAny <Expression <Func <MovieEntity, bool> > >())) .Returns(Task.FromResult(Enumerable.Empty <MovieEntity>())); var mockUserRepository = new Mock <IUserProfileRepository>(); mockUserRepository.Setup(x => x.GetAsync(It.IsAny <Expression <Func <UserProfileEntity, bool> > >())) .Returns((Expression <Func <UserProfileEntity, bool> > x) => Task.FromResult(UserCollection.AsQueryable <UserProfileEntity>().Where(x).AsEnumerable())); var unitOfWork = new Mock <IUnitOfWork>(); unitOfWork.SetupGet(x => x.ReviewRepository).Returns(mockReviewRepository.Object); unitOfWork.SetupGet(x => x.UserProfileRepository).Returns(mockUserRepository.Object); unitOfWork.SetupGet(x => x.MovieRepository).Returns(mockMovieRepository.Object); // Act var reviewService = new ReviewService(unitOfWork.Object); var response = await Assert.ThrowsAsync <ArgumentException>(() => reviewService.GetAllReviewsAsync(movieId)); }
public async Task GetAllReviewsBaseEntities() { var options = Utils.GetOptions(nameof(GetAllReviewsBaseEntities)); var userStore = new Mock <IUserStore <User> >(); var userManager = new Mock <UserManager <User> >(userStore.Object, null, null, null, null, null, null, null, null); var contextAccessor = new Mock <IHttpContextAccessor>(); var userPrincipalFactory = new Mock <IUserClaimsPrincipalFactory <User> >().Object; var signManager = new Mock <SignInManager <User> >(userManager.Object, contextAccessor.Object, userPrincipalFactory, null, null, null, null).Object; var context = new Mock <HttpContext>(); contextAccessor.Setup(x => x.HttpContext).Returns(context.Object); var userService = new Mock <IUserService>(); var photoService = new Mock <IPhotoService>(); using (var arrContext = new PhotoContestContext(options)) { await arrContext.Photos.AddRangeAsync(Utils.SeedPhotos()); await arrContext.Users.AddRangeAsync(Utils.SeedUsers()); await arrContext.Reviews.AddRangeAsync(Utils.SeedReviews()); await arrContext.SaveChangesAsync(); }; using (var actContext = new PhotoContestContext(options)) { var sut = new ReviewService(actContext, photoService.Object, userService.Object, contextAccessor.Object, userManager.Object, signManager); var result = await sut.GetAllReviewsAsync(); var reviews = await actContext.Reviews.ToListAsync(); Assert.AreEqual(reviews.Count(), result.Count()); } }
public async Task GetAllReviewsSuccessTest(string movieId, MovieReviewDto expectedResult) { // Arrange var mockReviewRepository = new Mock <IReviewRepository>(); mockReviewRepository.Setup(x => x.GetAsync(It.IsAny <Expression <Func <ReviewEntity, bool> > >())) .Returns(Task.FromResult(ReviewCollection.Where(x => string.Equals(x.MovieId, movieId, StringComparison.OrdinalIgnoreCase)))); var mockMovieRepository = new Mock <IMovieRepository>(); mockMovieRepository.Setup(x => x.GetAsync(It.IsAny <Expression <Func <MovieEntity, bool> > >())) .Returns(Task.FromResult(MovieCollection.Where(x => string.Equals(x.Id, movieId, StringComparison.OrdinalIgnoreCase)))); var mockUserRepository = new Mock <IUserProfileRepository>(); mockUserRepository.Setup(x => x.GetAsync(It.IsAny <Expression <Func <UserProfileEntity, bool> > >())) .Returns((Expression <Func <UserProfileEntity, bool> > x) => Task.FromResult(UserCollection.AsQueryable <UserProfileEntity>().Where(x).AsEnumerable())); var unitOfWork = new Mock <IUnitOfWork>(); unitOfWork.SetupGet(x => x.ReviewRepository).Returns(mockReviewRepository.Object); unitOfWork.SetupGet(x => x.MovieRepository).Returns(mockMovieRepository.Object); unitOfWork.SetupGet(x => x.UserProfileRepository).Returns(mockUserRepository.Object); // Act var reviewService = new ReviewService(unitOfWork.Object); var response = await reviewService.GetAllReviewsAsync(movieId); // Assert Assert.Equal(expectedResult.Reviews.Count(), response.Reviews.Count()); foreach (var(expected, actual) in expectedResult.Reviews.OrderBy(x => x.Id).Zip(response.Reviews.OrderBy(x => x.Id))) { Assert.Equal(expected.Title, actual.Title); Assert.Equal(expected.Description, actual.Description); Assert.Equal(expected.Id, actual.Id); Assert.Equal(expected.Rating, actual.Rating); Assert.Equal(expected.UpvotedBy.OrderBy(x => x), actual.UpvotedBy.OrderBy(x => x)); Assert.Equal(expected.DownvotedBy.OrderBy(x => x), actual.DownvotedBy.OrderBy(x => x)); Assert.Equal(expected.Movie.Id, actual.Movie.Id); Assert.Equal(expected.Movie.Title, actual.Movie.Title); } }