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); }
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 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); }
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); }
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); }
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(); }
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 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); }
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); }
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); }
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); }