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);
        }
Beispiel #3
0
        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);
        }
Beispiel #12
0
        public async Task <IActionResult> DeleteReview(EditReviewBindingModel model)
        {
            bool isDeleted = await this.reviewService.DeleteReviewAsync(model.Id);

            return(RedirectToAction(RedirectConstants.IndexSuffix));
        }