Esempio n. 1
0
        public async Task DeleteReviewSuccessfully()
        {
            var options     = Utils.GetOptions(nameof(DeleteReviewSuccessfully));
            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.Reviews.AddRangeAsync(Utils.SeedReviews());

                await arrContext.Users.AddRangeAsync(Utils.SeedUsers());

                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.DeleteAsync(Guid.Parse("8198e13a-30cb-4f4b-99f0-acf31a70b02d"));

                Assert.IsTrue(result);
            }
        }
Esempio n. 2
0
        public async Task Throw_When_ReviewID_IsNotValid()
        {
            var options     = Utils.GetOptions(nameof(Throw_When_ReviewID_IsNotValid));
            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.SaveChangesAsync();
            };
            using (var actContext = new PhotoContestContext(options))
            {
                var sut = new ReviewService(actContext, photoService.Object, userService.Object, contextAccessor.Object, userManager.Object, signManager);

                await Assert.ThrowsExceptionAsync <ArgumentException>(() => sut.DeleteAsync(Guid.Parse("8198e13a-30cb-4f4b-99f0-acf31a70b02d")));
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> Update([FromRoute] int reviewId, CancellationToken ct)
        {
            var user = await GetCurrentUserAsync(ct);

            var review = await _reviewService.GetAsync(reviewId, ct);

            if (review.User.Id != user.Id)
            {
                return(BadRequest("You are not owner of specified review."));
            }

            await _reviewService.DeleteAsync(review, ct);

            return(Ok());
        }
Esempio n. 4
0
        public async Task DeleteAsync_WithReviewId_ShouldDeleteCommentSuccessfully()
        {
            // Arrange
            FitStoreDbContext database = this.Database;

            DatabaseHelper.SeedData(database);

            IReviewService reviewService = new ReviewService(database);

            // Act
            await reviewService.DeleteAsync(reviewId);

            // Assert
            Review review = database.Reviews.Find(reviewId);

            review.IsDeleted.Should().Be(true);
        }
Esempio n. 5
0
        public async Task <IActionResult> DeleteReview(long reviewId, string returnUrl)
        {
            var seller = await HttpContext.GetSellerAsync();

            var customer = await HttpContext.GetMemberAsync();

            var review = await _reviewService.GetAsync(new ReviewFilter { SellerId = seller.Id, CustomerId = customer.Id, ReviewId = reviewId });

            if (review != null)
            {
                await _reviewService.DeleteAsync(review);

                TempData.AddAlert(AlertMode.Notify, AlertType.Success, $"\"{review.Title}\" review was deleted.");
            }
            else
            {
                TempData.AddAlert(AlertMode.Notify, AlertType.Error, $"Review does not exist.");
            }

            return(LocalRedirect(returnUrl ?? Url.Action(nameof(Reviews))));
        }
Esempio n. 6
0
        public async Task <IActionResult> Delete(long id)
        {
            var seller = await HttpContext.GetMemberAsync();

            var review = await _reviewService.GetAsync(new ReviewFilter()
            {
                SellerId = seller.Id, ReviewId = id
            });

            if (review != null)
            {
                await _reviewService.DeleteAsync(review);

                TempData.AddAlert(AlertMode.Notify, AlertType.Success, $"\"{review.Title}\" review was deleted.");
            }
            else
            {
                TempData.AddAlert(AlertMode.Notify, AlertType.Error, $"Review does not exist.");
            }

            return(RedirectToAction(nameof(Index)));
        }
Esempio n. 7
0
        public async Task DeleteReviewSuccessfully()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;

            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <Review>(dbContext);
            var service    = new ReviewService(repository);

            var reviews = this.GetReviews();

            for (int i = 0; i < reviews.Count(); i++)
            {
                await repository.AddAsync(reviews[i]);
            }

            await repository.SaveChangesAsync();

            await service.DeleteAsync(1);

            Assert.Equal(3, repository.All().Count());
        }
Esempio n. 8
0
        public async Task <IActionResult> Delete(int reviewId)
        {
            var result = await _reviews.GetAsync(reviewId);

            if (result.IsAccessDenied)
            {
                return(Forbid());
            }
            if (!result.Succeeded)
            {
                return(Error(result.Errors));
            }

            var review = result.Value;

            if (review == null)
            {
                return(RedirectToAction("Index", "Movie"));
            }

            if (!review.CanEdit)
            {
                return(Forbid());
            }

            var deleteResult = await _reviews.DeleteAsync(reviewId);

            if (deleteResult.Succeeded)
            {
                return(View("Success", new ReviewSuccessViewModel {
                    MovieId = review.MovieId, Action = "Deleted"
                }));
            }

            return(RedirectToAction("Edit", new { id = reviewId }));
        }