public void Return_CorrectHttpStatusCodeResult_WhenReviewUpdateFails() { // Arrange var expectedErrors = new[] { "error1", "error2" }; var updateResult = new Mock <IDataModifiedResult>(); updateResult.Setup(r => r.Errors).Returns(expectedErrors); var sut = this.MockingKernel.Get <ReviewsController>(AjaxContextName); var bindingModel = new EditReviewBindingModel(); var beerReview = new Mock <IBeerReview>(); beerReview.Setup(r => r.ApplicationUserId) .Returns(this.expectedUserId); var reviewService = this.MockingKernel.GetMock <IBeerReviewService>(); reviewService.Setup(r => r.GetById(It.IsAny <int>())) .Returns(beerReview.Object); reviewService.Setup(s => s.UpdateReview(It.IsAny <IBeerReview>())) .Returns(updateResult.Object); // Act var result = sut.Index(bindingModel) as HttpStatusCodeResult; // Assert Assert.IsNotNull(result); Assert.AreEqual((int)HttpStatusCode.BadRequest, result.StatusCode); StringAssert.Contains("error1, error2", result.StatusDescription); }
public void Call_IMapperMapMethodOnceWithCorrectParams_WhenReviewUpdateIsSuccessful() { // Arrange var updateResult = new Mock <IDataModifiedResult>(); updateResult.Setup(r => r.Successful).Returns(true); var sut = this.MockingKernel.Get <ReviewsController>(AjaxContextName); var bindingModel = new EditReviewBindingModel(); var beerReview = new Mock <IBeerReview>(); beerReview.Setup(r => r.ApplicationUserId) .Returns(this.expectedUserId); var reviewService = this.MockingKernel.GetMock <IBeerReviewService>(); reviewService.Setup(r => r.GetById(It.IsAny <int>())) .Returns(beerReview.Object); reviewService.Setup(s => s.UpdateReview(It.IsAny <IBeerReview>())) .Returns(updateResult.Object); var mapper = this.MockingKernel.GetMock <IMapper>(); mapper.Setup(m => m.Map <IBeerReview, SingleReviewViewModel>(beerReview.Object)) .Returns(new SingleReviewViewModel()); // Act sut.Index(bindingModel); // Assert mapper.Verify(m => m.Map <IBeerReview, SingleReviewViewModel>(beerReview.Object), Times.Once); }
public async Task <int> EditReviewAsync(EditReviewBindingModel model) { var review = this.DbContext .Reviews .FirstOrDefault(x => x.Id == model.Id); if (review == null) { return(ErrorId); } review.Content = model.Content; review.PhotoURL = model.PhotoURL; review.HighLightVideoURL = model.HighLightVideoURL; review.AdditionalInfoURL = model.AdditionalInfoURL; if (review.HighLightVideoURL.Contains(CommonConstants.OriginalVideoUrlPart)) { review.HighLightVideoURL = ModifyVideoURL_Embeded.ModifyEmbed(review.HighLightVideoURL); } await this.DbContext.SaveChangesAsync(); return(review.Id); }
public void Setters_ShouldSetPropertiesCorrectly() { // Arrange var expectedId = this.Fixture.Create <int>(); var expectedOverall = this.Fixture.Create <int>(); var expectedSmell = this.Fixture.Create <int>(); var expectedTaste = this.Fixture.Create <int>(); var expectedLooks = this.Fixture.Create <int>(); var expectedDescr = this.Fixture.Create <string>(); var expectedPlace = this.Fixture.Create <string>(); var sut = new EditReviewBindingModel(); // Act sut.Id = expectedId; sut.Description = expectedDescr; sut.Overall = expectedOverall; sut.Look = expectedLooks; sut.Smell = expectedSmell; sut.Taste = expectedTaste; sut.Place = expectedPlace; // Assert Assert.AreEqual(expectedId, sut.Id); Assert.AreEqual(expectedOverall, sut.Overall); Assert.AreEqual(expectedLooks, sut.Look); Assert.AreEqual(expectedSmell, sut.Smell); Assert.AreEqual(expectedTaste, sut.Taste); Assert.AreSame(expectedPlace, sut.Place); Assert.AreSame(expectedDescr, sut.Description); }
public ActionResult Index(EditReviewBindingModel m) { if (!this.ModelState.IsValid) { return(this.ReviewValidationFailure()); } var review = this.reviewService.GetById(m.Id); var userId = this.User?.Identity?.GetUserId(); if (userId != review.ApplicationUserId && !this.User.IsInRole(Constants.AdminRole)) { return(this.Unauthorized()); } this.mapper.Map(m, review); var result = this.reviewService.UpdateReview(review); if (!result.Successful) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, string.Join(", ", result.Errors))); } var mapped = this.mapper.Map <IBeerReview, SingleReviewViewModel>(review); mapped.IsEdit = true; return(this.PartialView("_SingleReview", mapped)); }
public void Return_CorrectHttpStatusCodeResult_WhenModelValidationFails() { // Arrange var sut = this.MockingKernel.Get <ReviewsController>(); var invalidModel = new EditReviewBindingModel(); sut.InvalidateViewModel(); // Act var result = sut.Index(invalidModel) as HttpStatusCodeResult; // Assert Assert.IsNotNull(result); Assert.AreEqual((int)HttpStatusCode.BadRequest, result.StatusCode); StringAssert.Contains("validation failed", result.StatusDescription); }
public async Task <IActionResult> EditReview(EditReviewBindingModel model) { if (!this.ModelState.IsValid) { SetErrorMessage(CommonConstants.DangerMessage); return(this.EditReview(model.Id)); } int generatedId = await this.reviewService.EditReviewAsync(model); if (generatedId < 1) { return(RedirectToAction(RedirectConstants.IndexSuffix)); } return(Redirect(string.Format(RedirectConstants.AdministratorAreaReviewDetailsPage, generatedId))); }
public void Return_CorrectHttpStatusCodeResult_WhenUserIsNotTheOwnerOfTheFoundReviewAndIsNotAdmin() { // Arrange var sut = this.MockingKernel.Get <ReviewsController>(AjaxContextName); var bindingModel = new EditReviewBindingModel(); var beerReview = new Mock <IBeerReview>(); var reviewService = this.MockingKernel.GetMock <IBeerReviewService>(); reviewService.Setup(r => r.GetById(It.IsAny <int>())) .Returns(beerReview.Object); // Act var result = sut.Index(bindingModel) as HttpStatusCodeResult; // Assert Assert.IsNotNull(result); Assert.AreEqual((int)HttpStatusCode.Unauthorized, result.StatusCode); StringAssert.Contains("edit other people", result.StatusDescription); }
public void Call_ReviewServiceGetByIdMethodOnceWithCorrectParams() { // Arrange var expectedId = 10; var sut = this.MockingKernel.Get <ReviewsController>(AjaxContextName); var bindingModel = new EditReviewBindingModel() { Id = expectedId }; var beerReview = new Mock <IBeerReview>(); var reviewService = this.MockingKernel.GetMock <IBeerReviewService>(); reviewService.Setup(r => r.GetById(expectedId)) .Returns(beerReview.Object); // Act sut.Index(bindingModel); // Assert reviewService.Verify(s => s.GetById(expectedId), Times.Once); }
public void Call_ReviewServiceUpdateReviewMethodOnceWithCorrectParams_WhenUserIsTheOwnerOfTheFoundReview() { // Arrange var sut = this.MockingKernel.Get <ReviewsController>(AjaxContextName); var bindingModel = new EditReviewBindingModel(); var beerReview = new Mock <IBeerReview>(); beerReview.Setup(r => r.ApplicationUserId) .Returns(this.expectedUserId); var reviewService = this.MockingKernel.GetMock <IBeerReviewService>(); reviewService.Setup(r => r.GetById(It.IsAny <int>())) .Returns(beerReview.Object); reviewService.Setup(s => s.UpdateReview(It.IsAny <IBeerReview>())) .Returns(new Mock <IDataModifiedResult>().Object); // Act sut.Index(bindingModel); // Assert reviewService.Verify(s => s.UpdateReview(beerReview.Object), Times.Once); }
public void Return_CorrectPartialViewWithCorrectParams_WhenUpdateIsSuccessful() { // Arrange var updateResult = new Mock <IDataModifiedResult>(); updateResult.Setup(r => r.Successful).Returns(true); var sut = this.MockingKernel.Get <ReviewsController>(AjaxContextName); var bindingModel = new EditReviewBindingModel(); var beerReview = new Mock <IBeerReview>(); beerReview.Setup(r => r.ApplicationUserId) .Returns(this.expectedUserId); var reviewService = this.MockingKernel.GetMock <IBeerReviewService>(); reviewService.Setup(r => r.GetById(It.IsAny <int>())) .Returns(beerReview.Object); reviewService.Setup(s => s.UpdateReview(It.IsAny <IBeerReview>())) .Returns(updateResult.Object); var expectedViewModel = new SingleReviewViewModel(); var mapper = this.MockingKernel.GetMock <IMapper>(); mapper.Setup(m => m.Map <IBeerReview, SingleReviewViewModel>(beerReview.Object)) .Returns(expectedViewModel); // Act var result = sut.Index(bindingModel) as PartialViewResult; // Assert Assert.IsNotNull(result); Assert.AreEqual("_SingleReview", result.ViewName); var actualViewModel = result.Model as SingleReviewViewModel; Assert.IsNotNull(actualViewModel); Assert.AreSame(expectedViewModel, actualViewModel); }
public async Task <IActionResult> DeleteReview(EditReviewBindingModel model) { bool isDeleted = await this.reviewService.DeleteReviewAsync(model.Id); return(RedirectToAction(RedirectConstants.IndexSuffix)); }