コード例 #1
0
        public void DetailsReturnsValidRestaurantDetailedViewModelId()
        {
            //Arrange
            var restaurantId       = Guid.NewGuid().ToString();
            var resultDbRestaurant = new RestaurantUser
            {
                Id = restaurantId
            };

            var mockedRestaurantUserService = new Mock <IRestaurantUserService>();

            mockedRestaurantUserService.Setup(x => x.GetById(restaurantId)).Returns(resultDbRestaurant);

            var autoMapperConfig = new AutoMapperConfig();

            autoMapperConfig.Execute(typeof(RestaurantController).Assembly);

            var restaurantController = new RestaurantController(mockedRestaurantUserService.Object, null);

            //Act
            var actionResult        = restaurantController.Details(restaurantId) as ViewResult;
            var restaurantViewModel = (RestaurantDetailedViewModel)actionResult.ViewData.Model;

            var expectedRestaurantViewModel = new RestaurantDetailedViewModel
            {
                Id = resultDbRestaurant.Id
            };

            //Assert
            Assert.AreEqual(expectedRestaurantViewModel.Id, restaurantViewModel.Id, "Expected RestaurantDetailedViewModel Id doesn`t match actual Id.");
        }
コード例 #2
0
        public ActionResult PostComment(RestaurantDetailedViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View("Details", model));
            }

            var commentModel = model.CommentInputModel;
            var authorId     = this.User.Identity.GetUserId();
            var restaurantId = model.Id;
            var content      = commentModel.Content;

            this.comments.CreateComment(authorId, restaurantId, content);

            return(this.RedirectToAction("Details", new { id = model.Id }));
        }
コード例 #3
0
        public ActionResult PostComment(RestaurantDetailedViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.View("Details", model);
            }

            var commentModel = model.CommentInputModel;
            var authorId = this.User.Identity.GetUserId();
            var restaurantId = model.Id;
            var content = commentModel.Content;

            this.comments.CreateComment(authorId, restaurantId, content);

            return this.RedirectToAction("Details", new { id = model.Id });
        }
コード例 #4
0
        public void DetailsReturnsValidRestaurantDetailedViewModelComments()
        {
            //Arrange
            var restaurantId = Guid.NewGuid().ToString();

            var comments = new List <Comment>
            {
                new Comment
                {
                    Author = new RegularUser()
                    {
                        FirstName = "Test",
                        LastName  = "User1"
                    }
                }
            };

            var resultDbRestaurant = new RestaurantUser
            {
                Comments = comments
            };

            var mockedRestaurantUserService = new Mock <IRestaurantUserService>();

            mockedRestaurantUserService.Setup(x => x.GetById(restaurantId)).Returns(resultDbRestaurant);

            var autoMapperConfig = new AutoMapperConfig();

            autoMapperConfig.Execute(typeof(RestaurantController).Assembly);

            var restaurantController = new RestaurantController(mockedRestaurantUserService.Object, null);

            //Act
            var actionResult        = restaurantController.Details(restaurantId) as ViewResult;
            var restaurantViewModel = (RestaurantDetailedViewModel)actionResult.ViewData.Model;

            var expectedRestaurantViewModel = new RestaurantDetailedViewModel
            {
                Comments = resultDbRestaurant.Comments.AsQueryable().To <CommentViewModel>().ToList()
            };

            //Assert
            Assert.AreEqual(restaurantViewModel.Comments.Count, expectedRestaurantViewModel.Comments.Count, "Expected RestaurantDetailedViewModel Comments count doesn`t match actual count.");
            Assert.AreEqual(restaurantViewModel.Comments.FirstOrDefault().Author, expectedRestaurantViewModel.Comments.FirstOrDefault().Author, "Expected RestaurantDetailedViewModel comment Author doesn`t match the actual Author.");
        }
コード例 #5
0
        public void DetailsReturnsValidRestaurantDetailedViewModelFavourites()
        {
            //Arrange
            var restaurantId = Guid.NewGuid().ToString();

            var regularUsers = new List <RegularUser>
            {
                new RegularUser(),
                new RegularUser()
            };

            var resultDbRestaurant = new RestaurantUser
            {
                RegularUsers = regularUsers
            };

            var mockedRestaurantUserService = new Mock <IRestaurantUserService>();

            mockedRestaurantUserService.Setup(x => x.GetById(restaurantId)).Returns(resultDbRestaurant);

            var autoMapperConfig = new AutoMapperConfig();

            autoMapperConfig.Execute(typeof(RestaurantController).Assembly);

            var restaurantController = new RestaurantController(mockedRestaurantUserService.Object, null);

            //Act
            var actionResult        = restaurantController.Details(restaurantId) as ViewResult;
            var restaurantViewModel = (RestaurantDetailedViewModel)actionResult.ViewData.Model;

            var expectedRestaurantViewModel = new RestaurantDetailedViewModel
            {
                Favourites = resultDbRestaurant.RegularUsers.AsQueryable().To <RegularUserViewModel>().ToList(),
            };

            //Assert
            Assert.AreEqual(restaurantViewModel.Favourites.Count, expectedRestaurantViewModel.Favourites.Count, "Expected RestaurantDetailedViewModel Favourites count doesn`t match actual count.");
        }
コード例 #6
0
        public ActionResult Details(string id)
        {
            if (id == null)
            {
                return this.RedirectToAction("Index", "Home");
            }

            var restaurant = this.restaurants.GetById(id);

            var restaurantView = new RestaurantDetailedViewModel
            {
                Id = restaurant.Id,
                Address = restaurant.Address,
                Category = restaurant.Category == null ? "All" : restaurant.Category.Name,
                Email = restaurant.Email,
                Name = restaurant.Name,
                PhoneNumber = restaurant.PhoneNumber,
                Favourites = restaurant.RegularUsers.AsQueryable().To<RegularUserViewModel>().ToList(),
                Comments = restaurant.Comments.AsQueryable().To<CommentViewModel>().ToList()
            };

            return this.View(restaurantView);
        }