public async Task ReturnCorrect_RatingIsNotSet() { var options = TestUtils.GetOptions(nameof(ReturnCorrect_RatingIsNotSet)); using (var arrangeContext = new MoviesCatalogContext(options)) { await arrangeContext.Reviews.AddAsync(TestHelper.TestReview3()); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new MoviesCatalogContext(options)) { var sut = new ReviewService(assertContext); var rating = await sut.AddReviewToMovieAsync(TestHelper.TestMovie2().Id, TestHelper.TestUser1().Id, "Perfect movie!", 3); var movie = rating.Movie; Assert.AreEqual(8, movie.TotalRating); Assert.IsTrue(movie.AverageRating == 4); Assert.IsTrue(movie.NumberOfVotes == 2); Assert.IsTrue(assertContext.Reviews.Count() == 1); } }
public async Task Succeed_WhenUserNotVoted() { var options = TestUtils.GetOptions(nameof(Succeed_WhenUserNotVoted)); using (var arrangeContext = new MoviesCatalogContext(options)) { await arrangeContext.Users.AddAsync(TestHelper.TestUser2()); await arrangeContext.Movies.AddAsync(TestHelper.TestMovie1()); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new MoviesCatalogContext(options)) { var sut = new ReviewService(assertContext); var review = await sut.AddReviewToMovieAsync(1, TestHelper.TestUser2().Id, "Perfect movie.", 5); var movie = review.Movie; Assert.IsTrue(movie.TotalRating == 10); Assert.IsTrue(movie.AverageRating == 5); Assert.IsTrue(movie.NumberOfVotes == 2); Assert.IsTrue(assertContext.Reviews.Count() == 1); } }
public async Task ThrowExeption_WhenUserIsVoted() { var options = TestUtils.GetOptions(nameof(ThrowExeption_WhenUserIsVoted)); using (var arrangeContext = new MoviesCatalogContext(options)) { await arrangeContext.Reviews.AddAsync(TestHelper.TestReview1()); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new MoviesCatalogContext(options)) { var sut = new ReviewService(assertContext); var ex = await Assert.ThrowsExceptionAsync <ArgumentException>(() => sut.AddReviewToMovieAsync(TestHelper.TestMovie1().Id, TestHelper.TestUser1().Id, "Perfect movie!", 3)); Assert.AreEqual(ex.Message, string.Format(ServicesConstants.UserAlreadyVoted, TestHelper.TestUser1().UserName, TestHelper.TestMovie1().Title)); } }
public async Task SetCorrect_WhenReviewIsNotActive() { var options = TestUtils.GetOptions(nameof(SetCorrect_WhenReviewIsNotActive)); using (var arrangeContext = new MoviesCatalogContext(options)) { await arrangeContext.Users.AddAsync(TestHelper.TestUser1()); await arrangeContext.Reviews.AddAsync(TestHelper.TestReview2()); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new MoviesCatalogContext(options)) { var sut = new ReviewService(assertContext); var review = await sut.AddReviewToMovieAsync(TestHelper.TestMovie1().Id, TestHelper.TestUser1().Id, "Perfect movie!", 3); Assert.AreEqual("Perfect movie!", review.Description); Assert.AreEqual(3, review.Rating); Assert.IsTrue(!review.IsDeleted); } }