Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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();
        }
Example #4
0
        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);
        }