public void ConstructorShould_SetPassedDataCorrectlly_WhenDataIsNotNull() { var reviewsServiceMock = new Mock <IReviewsService>(); var placeServiceMock = new Mock <IPlaceService>(); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); var controller = new Web.Controllers.ReviewsController(reviewsServiceMock.Object, placeServiceMock.Object, dateTimeProviderMock.Object); Assert.IsNotNull(controller); }
public void LeaveReviewShould_ReturnPartialViewOfModel_WhenModelIsNotValid() { var reviewsServiceMock = new Mock <IReviewsService>(); var placeServiceMock = new Mock <IPlaceService>(); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); var controller = new Web.Controllers.ReviewsController(reviewsServiceMock.Object, placeServiceMock.Object, dateTimeProviderMock.Object); controller.ModelState.AddModelError("key", "message"); var model = new SingleReviewViewModel(); controller .WithCallTo(c => c.LeaveReview(model)) .ShouldRenderPartialView("_ReviewForm") .WithModel(model); }
public void LeaveReviewShould_ReturnJson_WhenUserHasAlreadyLeftReview() { var reviewsServiceMock = new Mock <IReviewsService>(); var placeServiceMock = new Mock <IPlaceService>(); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); var controller = new Web.Controllers.ReviewsController(reviewsServiceMock.Object, placeServiceMock.Object, dateTimeProviderMock.Object); var placeId = Guid.NewGuid(); var userId = Guid.NewGuid().ToString(); var model = new SingleReviewViewModel() { PlaceId = placeId, UserId = userId }; var review = new Review() { PlaceId = placeId, UserId = userId }; var list = new List <Review>() { review }; var currentTime = DateTime.Now; dateTimeProviderMock.Setup(dt => dt.GetCurrentTime()).Returns(currentTime); reviewsServiceMock.Setup(s => s.GetByUserAndPlace(model.PlaceId, model.UserId)) .Returns(list.AsQueryable()); reviewsServiceMock.Setup(s => s.AddReview(model.PlaceId, model.UserId, currentTime, model.Message, model.Rating)) .Returns(review); controller .WithCallTo(c => c.LeaveReview(model)) .ShouldReturnJson(); }
public void LeaveReviewShould_CallReviewsServiceMethodGetByUserAndPlace_WhenModelIsValid() { var reviewsServiceMock = new Mock <IReviewsService>(); var placeServiceMock = new Mock <IPlaceService>(); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); var controller = new Web.Controllers.ReviewsController(reviewsServiceMock.Object, placeServiceMock.Object, dateTimeProviderMock.Object); var placeId = Guid.NewGuid(); var userId = Guid.NewGuid().ToString(); var model = new SingleReviewViewModel() { PlaceId = placeId, UserId = userId }; var review = new Review() { PlaceId = placeId, UserId = userId }; var emptyList = new List <Review>(); var currentTime = DateTime.Now; dateTimeProviderMock.Setup(dt => dt.GetCurrentTime()).Returns(currentTime); reviewsServiceMock.Setup(s => s.GetByUserAndPlace(model.PlaceId, model.UserId)) .Returns(emptyList.AsQueryable()); reviewsServiceMock.Setup(s => s.AddReview(model.PlaceId, model.UserId, currentTime, model.Message, model.Rating)) .Returns(review); controller.LeaveReview(model); reviewsServiceMock.Verify(s => s.GetByUserAndPlace(model.PlaceId, model.UserId), Times.Once); }