Пример #1
0
        public void Setters_ShouldSetPropertiesCorrectly()
        {
            // Arrange
            var expectedId       = this.Fixture.Create <int>();
            var expectedBeerType = this.Fixture.Create <string>();
            var expectedBrewery  = this.Fixture.Create <string>();
            var expectedBeer     = this.Fixture.Create <string>();
            var expectedUrl      = this.Fixture.Create <string>();
            var expectedDate     = DateTime.UtcNow;
            var sut = new SingleReviewViewModel();

            // Act
            sut.BeerBeerTypeType = expectedBeerType;
            sut.BeerBreweryName  = expectedBrewery;
            sut.BeerName         = expectedBeer;
            sut.CreatedAt        = expectedDate;
            sut.ImgUrl           = expectedUrl;
            sut.IsEdit           = true;
            sut.Id = expectedId;
            // Assert
            Assert.AreEqual(expectedId, sut.Id);
            Assert.AreEqual(true, sut.IsEdit);
            Assert.AreEqual(expectedDate, sut.CreatedAt);
            Assert.AreEqual(expectedBeerType, sut.BeerBeerTypeType);
            Assert.AreEqual(expectedBrewery, sut.BeerBreweryName);
            Assert.AreEqual(expectedBeer, sut.BeerName);
            Assert.AreEqual(expectedUrl, sut.ImgUrl);
        }
Пример #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);
        }
Пример #3
0
        public void Call_ReviewServiceGetByIdMethodOnceWithCorrectParams(int expectedId)
        {
            // Arrange
            var sut           = this.MockingKernel.Get <ReviewsController>();
            var reviewService = this.MockingKernel.GetMock <IBeerReviewService>();
            var viewModel     = new SingleReviewViewModel();
            var mapper        = this.MockingKernel.GetMock <IMapper>();

            mapper.Setup(m => m.Map <IBeerReview, SingleReviewViewModel>(It.IsAny <IBeerReview>()))
            .Returns(viewModel);

            // Act
            sut.Cancel(expectedId);

            // Assert
            reviewService.Verify(s => s.GetById(expectedId), Times.Once);
        }
Пример #4
0
        public void Call_IMapperMapMethodOnceWithCorrectParams_WhenReviewIsFound()
        {
            // Arrange
            var sut = this.MockingKernel.Get <ReviewsController>();
            var expectedBeerReview = new Mock <IBeerReview>();
            var reviewService      = this.MockingKernel.GetMock <IBeerReviewService>();

            reviewService.Setup(s => s.GetById(It.IsAny <int>()))
            .Returns(expectedBeerReview.Object);
            var viewModel = new SingleReviewViewModel();
            var mapper    = this.MockingKernel.GetMock <IMapper>();

            mapper.Setup(m => m.Map <IBeerReview, SingleReviewViewModel>(It.IsAny <IBeerReview>()))
            .Returns(viewModel);
            // Act
            sut.Cancel(It.IsAny <int>());

            // Assert
            mapper.Verify(m => m.Map <IBeerReview, SingleReviewViewModel>(expectedBeerReview.Object), Times.Once);
        }
Пример #5
0
        public void Set_ModelIsEditPropertyToTrue()
        {
            // Arrange
            var sut               = this.MockingKernel.Get <ReviewsController>();
            var beerReview        = new Mock <IBeerReview>();
            var expectedViewModel = new SingleReviewViewModel();
            var reviewService     = this.MockingKernel.GetMock <IBeerReviewService>();

            reviewService.Setup(s => s.GetById(It.IsAny <int>()))
            .Returns(beerReview.Object);
            var mapper = this.MockingKernel.GetMock <IMapper>();

            mapper.Setup(m => m.Map <IBeerReview, SingleReviewViewModel>(It.IsAny <IBeerReview>()))
            .Returns(expectedViewModel);
            // Act
            sut.Cancel(It.IsAny <int>());

            // Assert
            Assert.IsTrue(expectedViewModel.IsEdit);
        }
Пример #6
0
        public void DetailsShould_ReturnView_WhenPlaceWasFound()
        {
            var placeServiceMock   = new Mock <IPlaceService>();
            var addressServiceMock = new Mock <IAddressService>();
            var tablesServiceMock  = new Mock <ITablesService>();
            var reviewsServiceMock = new Mock <IReviewsService>();
            var authProviderMock   = new Mock <IAuthenticationProvider>();
            var factoryMock        = new Mock <IViewModelFactory>();

            var controller = new Web.Controllers.PlacesController(authProviderMock.Object, factoryMock.Object,
                                                                  placeServiceMock.Object, addressServiceMock.Object, tablesServiceMock.Object,
                                                                  reviewsServiceMock.Object);

            InitializeMapper();

            var placeId  = Guid.NewGuid();
            var userId   = Guid.NewGuid().ToString();
            var username = "******";
            var place    = new Place()
            {
                Id = placeId
            };
            var list = new List <Place>()
            {
                place
            };

            placeServiceMock.Setup(s => s.GetPlaceWithReviews(placeId)).Returns(list.AsQueryable());
            authProviderMock.Setup(ap => ap.CurrentUserId).Returns(userId);
            authProviderMock.Setup(ap => ap.CurrentUserUsername).Returns(username);
            var emptyListReviews = new List <Review>();

            reviewsServiceMock.Setup(s => s.GetByUserAndPlace(placeId, userId)).Returns(emptyListReviews.AsQueryable());
            var reviewForm = new SingleReviewViewModel();

            factoryMock.Setup(f => f.CreateReviewViewModel(placeId, userId, username)).Returns(reviewForm);

            controller
            .WithCallTo(c => c.Details(placeId))
            .ShouldRenderDefaultView();
        }
Пример #7
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();
        }
Пример #8
0
        public ActionResult LeaveReview(SingleReviewViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView("_ReviewForm", model));
            }

            var reviewsOfUser = this.reviewsService.GetByUserAndPlace(model.PlaceId, model.UserId).ToList();

            if (reviewsOfUser.Count > 0)
            {
                return(Json("You have already left a review for this place!"));
            }

            var currentTime = this.dateTimeProvider.GetCurrentTime();
            var addedReview = this.reviewsService
                              .AddReview(model.PlaceId, model.UserId, currentTime, model.Message, model.Rating);

            model.PostedOn = addedReview.PostedOn;

            return(PartialView("_Review", model));
        }
        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);
        }
Пример #10
0
        public void Return_CorrectViewResult()
        {
            // Arrange
            var sut               = this.MockingKernel.Get <ReviewsController>();
            var beerReview        = new Mock <IBeerReview>();
            var expectedViewModel = new SingleReviewViewModel();
            var reviewService     = this.MockingKernel.GetMock <IBeerReviewService>();

            reviewService.Setup(s => s.GetById(It.IsAny <int>()))
            .Returns(beerReview.Object);
            var mapper = this.MockingKernel.GetMock <IMapper>();

            mapper.Setup(m => m.Map <IBeerReview, SingleReviewViewModel>(It.IsAny <IBeerReview>()))
            .Returns(expectedViewModel);
            // Act
            var result = sut.Cancel(It.IsAny <int>()) as PartialViewResult;

            // Assert
            Assert.IsNotNull(result);
            var actualViewModel = result.Model as SingleReviewViewModel;

            Assert.AreSame(expectedViewModel, actualViewModel);
        }
Пример #11
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);
        }
Пример #12
0
        public void ReturnValueFrom_IMapperMapMethod_WhenReviewIsFound()
        {
            // Arrange
            var sut               = this.MockingKernel.Get <ReviewsController>();
            var beerReview        = new Mock <IBeerReview>();
            var expectedViewModel = new SingleReviewViewModel();
            var reviewService     = this.MockingKernel.GetMock <IBeerReviewService>();

            reviewService.Setup(s => s.GetById(It.IsAny <int>()))
            .Returns(beerReview.Object);
            var mapper = this.MockingKernel.GetMock <IMapper>();

            mapper.Setup(m => m.Map <IBeerReview, SingleReviewViewModel>(beerReview.Object))
            .Returns(expectedViewModel);

            // Act
            var result = sut.Details(It.IsAny <int>());

            // Assert
            Assert.IsNotNull(result);
            var actualViewModel = result.Model as SingleReviewViewModel;

            Assert.AreSame(expectedViewModel, actualViewModel);
        }