示例#1
0
        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"));
        }
示例#3
0
        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);
        }