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); } }
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"))); } }
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()); }
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); }
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)))); }
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))); }
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()); }
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 })); }