public async Task ThrowArgumentException_WhenParametersAreIncorrect(int reviewId) { // Arrange var movieRepoStub = new Mock <IRepository <Movie> >(); var reviewRepoMock = new Mock <IRepository <Review> >(); var reviewRatingsStub = new Mock <IRepository <ReviewRatings> >(); var reviewMock = new Review() { ID = 1, IsDeleted = false, Text = "Mnogo qk Unit Test!" }; var allReviews = new List <Review>() { reviewMock }.AsQueryable().BuildMock().Object; reviewRepoMock.Setup(m => m.All()).Returns(allReviews); var reviewServices = new ReviewsService(reviewRepoMock.Object, movieRepoStub.Object, reviewRatingsStub.Object); // Act and Assert await Assert.ThrowsExceptionAsync <ArgumentException>(async() => await reviewServices.DeleteReviewAsync(reviewId)); }
public async Task DeleteReviewAsyncThrowsArgumentExceptionWhenGivenInvalidAuthorId() { var reviews = new List <Review>(); var review = new Review() { ReviewNumber = "pesho", Id = "test123", ReviewAuthorId = "gosho" }; reviews.Add(review); var mockReviewsRepo = new Mock <IReviewsRepository>();; mockReviewsRepo.Setup(x => x.GetReviewByReviewNumber("pesho")).Returns(review); var service = new ReviewsService(mockReviewsRepo.Object, null); await Assert.ThrowsAsync <ArgumentException>(() => service.DeleteReviewAsync("pesho", "ivan")); }
public async Task DeletedReview_WhenUserHasPermission() { // Arrange const int reviewId = 1; const bool deletedFlag = false; var movieRepoStub = new Mock <IRepository <Movie> >(); var reviewRepoMock = new Mock <IRepository <Review> >(); var reviewRatingsStub = new Mock <IRepository <ReviewRatings> >(); var movie = new Movie() { Name = "American Pie", ID = 1, NumberOfVotes = 100, }; var reviewMock = new Review() { ID = 1, IsDeleted = deletedFlag, Text = "Mnogo qk Unit Test!", Movie = movie }; var allReviews = new List <Review>() { reviewMock }.AsQueryable().BuildMock().Object; reviewRepoMock.Setup(m => m.All()).Returns(allReviews); var reviewServices = new ReviewsService(reviewRepoMock.Object, movieRepoStub.Object, reviewRatingsStub.Object); // Act await reviewServices.DeleteReviewAsync(reviewId); // Assert Assert.IsTrue(reviewMock.IsDeleted == true); Assert.IsTrue(reviewMock.Movie.NumberOfVotes == 99); reviewRepoMock.Verify(rRepo => rRepo.Update(reviewMock), Times.Once); reviewRepoMock.Verify(rRepo => rRepo.SaveAsync(), Times.Once); }
public async Task DeleteReviewAsyncWorksCorrectly() { var reviews = new List <Review>(); var review = new Review() { ReviewNumber = "pesho", Id = "test123", ReviewAuthorId = "gosho" }; reviews.Add(review); var mockReviewsRepo = new Mock <IReviewsRepository>();; mockReviewsRepo.Setup(x => x.GetReviewByReviewNumber("pesho")).Returns(review); mockReviewsRepo.Setup(x => x.Delete(It.IsAny <Review>())).Callback((Review review) => review.IsDeleted = true); var service = new ReviewsService(mockReviewsRepo.Object, null); await service.DeleteReviewAsync("pesho", "gosho"); Assert.Single(reviews); Assert.True(reviews.First().IsDeleted); }