public void Create_ValidReview_CorrectlyMapped()
        {
            //Arrange
            var editReviewVm = new EditRestaurantReviewViewModelBuilder().Build();

            //Act
            var review = (RestaurantReview)_factory.Create(editReviewVm);

            //Assert
            Assert.That(review, Is.Not.Null);
            Assert.That(review.ReviewerName, Is.EqualTo(review.ReviewerName));
            Assert.That(review.Rating, Is.EqualTo(review.Rating));
            Assert.That(review.RestaurantId, Is.EqualTo(review.RestaurantId));
            Assert.That(review.Body, Is.EqualTo(review.Body));
        }
        public void AddReview_ShouldAddReviewForRestaurant()
        {
            EditRestaurantReviewViewModel viewModel = new EditRestaurantReviewViewModelBuilder().Build();
            RestaurantReview review = new RestaurantReviewBuilder().Build();

            review.RestaurantId = viewModel.HorecaId;

            _editReviewVmToReviewFactoryMock.Setup(f => f.Create(It.IsAny <EditReviewViewModel>()))
            .Returns(review);

            _reviewsRepoMock.Setup(r => r.AddAsync(It.IsAny <RestaurantReview>())).ReturnsAsync(review);


            var redirectResult = _controller.AddReview(review.RestaurantId, viewModel).Result as RedirectToActionResult;

            Assert.That(redirectResult, Is.Not.Null);
            Assert.That(redirectResult.Permanent, Is.False);
            Assert.That(redirectResult.ActionName, Is.EqualTo("Index"));

            _reviewsRepoMock.Verify(r => r.AddAsync(It.IsAny <RestaurantReview>()), Times.Once);
            _editReviewVmToReviewFactoryMock.Verify(e => e.Create(It.IsAny <EditRestaurantReviewViewModel>()), Times.Once);
        }