public void GetRestaurantsByCity()
        {
            // Arrange
            var restaurantsByCityDto = new RestaurantsByCityDto
            {
                City    = "Niles",
                Country = "USA",
                State   = "OH"
            };
            var seededRestaurants = DataSeeder.Restaurants.Where(r =>
                                                                 r.City == restaurantsByCityDto.City &&
                                                                 r.Country == restaurantsByCityDto.Country &&
                                                                 r.State == restaurantsByCityDto.State
                                                                 );

            Mock.Get(_repositoryWrapper.Restaurant).Setup(x => (x.GetRestaurantsByCity(restaurantsByCityDto.City, restaurantsByCityDto.State, restaurantsByCityDto.Country))).ReturnsAsync(seededRestaurants);
            var controller = new RestaurantReviewsController(_loggerManager, _mapper, _repositoryWrapper);
            // Act
            var actionResult = controller.GetRestaurantsByCity(restaurantsByCityDto).Result;
            // Assert
            var okObjectResult = actionResult as OkObjectResult;

            Assert.IsNotNull(okObjectResult);
            var restaurants = okObjectResult.Value as IEnumerable <Restaurant>;

            Assert.IsTrue(restaurants.Count() == seededRestaurants.Count());
        }
        public void PostANewRestaurant()
        {
            // Arrange
            var restaurantDto = new RestaurantDto
            {
                Address      = "1 Avely Rd.",
                City         = "Girard",
                Country      = "USA",
                EmailAddress = "*****@*****.**",
                Name         = "New Restaurant",
                Phone        = "(330) 454-4543",
                PostalCode   = "44420",
                State        = "OH",
                WebsiteUrl   = "http://www.NewRestaurant.com"
            };
            var restaurant = _mapper.Map <Restaurant>(restaurantDto);

            Mock.Get(_repositoryWrapper.Restaurant).Setup(x => x.GetRestaurantById(restaurant.Id)).ReturnsAsync(restaurant);
            Mock.Get(_repositoryWrapper.Restaurant).Setup(x => x.CreateRestaurant(restaurant));
            var controller = new RestaurantReviewsController(_loggerManager, _mapper, _repositoryWrapper);
            // Act
            var actionResult = controller.PostANewRestaurant(restaurantDto).Result;
            // Assert
            var okObjectResult = actionResult as OkObjectResult;

            Assert.IsNotNull(okObjectResult);
        }
        public void RestaurantReviewService_DeleteReview()
        {
            //arrange
            var    moq = new Moq.Mock <IRestaurantReviewService>();
            object p   = moq.Setup((a) => a.DeleteReview(1)).Returns(200);

            //act
            var controller = new RestaurantReviewsController(null, moq.Object);
            var result     = controller.DeleteReview(1);

            //assert
            Assert.AreEqual(200, result);
        }
        public void DeleteAReview()
        {
            // Arrange
            var review = DataSeeder.Reviews[0];

            Mock.Get(_repositoryWrapper.Review).Setup(x => x.DeleteReview(review));
            Mock.Get(_repositoryWrapper.Review).Setup(x => x.GetReviewById(review.Id)).ReturnsAsync(review);
            var controller = new RestaurantReviewsController(_loggerManager, _mapper, _repositoryWrapper);
            // Act
            var actionResult = controller.DeleteAReview(review.Id).Result;
            // Assert
            var noContentResult = actionResult as NoContentResult;

            Assert.IsNotNull(noContentResult);
        }
        public void RestaurantReviewService_AddRestaurant()
        {
            //arrange
            var restaurant = new Restaurant()
            {
                BusinessName = "Burgatory", PriceRatings = "2", RestaurantId = 2
            };
            var    moq = new Moq.Mock <IRestaurantReviewService>();
            object p   = moq.Setup((a) => a.AddRestaurant(restaurant)).Returns(200);

            //act
            var controller = new RestaurantReviewsController(null, moq.Object);
            var result     = controller.AddRestaurant(restaurant);

            //assert
            Assert.AreEqual(200, result);
        }
        public void RestaurantReviewService_AddReview()
        {
            //arrange
            var review = new Review()
            {
                RatingScore = "1", ReviewDescription = "Delicious!", ReviewId = 1
            };
            var    moq = new Moq.Mock <IRestaurantReviewService>();
            object p   = moq.Setup((a) => a.AddReview(review)).Returns(200);

            //act
            var controller = new RestaurantReviewsController(null, moq.Object);
            var result     = controller.AddReview(review);

            //assert
            Assert.AreEqual(200, result);
        }
        public void RestaurantReviewService_GetReview()
        {
            //arrange
            var list = new List <Review>();

            list.Add(new Review()
            {
                RatingScore = "1", ReviewDescription = "Delicious!", ReviewId = 1
            });
            var    moq = new Moq.Mock <IRestaurantReviewService>();
            object p   = moq.Setup((a) => a.GetReviews(It.IsAny <string>())).Returns(list);

            //act
            var controller = new RestaurantReviewsController(null, moq.Object);
            var reviews    = (List <Review>)controller.GetReviews("testuser");

            //assert
            Assert.AreEqual(1, reviews.Count);
        }
        public void RestaurantReviewService_GetRestaraunts()
        {
            //arrange
            var list = new List <Restaurant>();

            list.Add(new Restaurant()
            {
                BusinessName = "Tai Pei", PriceRatings = "Economical", RestaurantId = 1
            });
            var    moq = new Moq.Mock <IRestaurantReviewService>();
            object p   = moq.Setup((a) => a.GetRestaraunts(It.IsAny <string>())).Returns(list);

            //act
            var controller  = new RestaurantReviewsController(null, moq.Object);
            var restaurants = (List <Restaurant>)controller.GetRestaurants("Pittsburgh");

            //assert
            Assert.AreEqual(1, restaurants.Count);
        }
        public void GetReviewsByUser()
        {
            // Arrange
            var user = DataSeeder.Users.FirstOrDefault();

            Assert.IsNotNull(user, string.Format("No users were setup in the DataSeeder"));
            var seededReviews = DataSeeder.Reviews.Where(r => r.UserId == user.Id);

            Mock.Get(_repositoryWrapper.Review).Setup(x => x.GetReviewsByUser(user.Id)).ReturnsAsync(seededReviews);
            var controller = new RestaurantReviewsController(_loggerManager, _mapper, _repositoryWrapper);
            // Act
            var actionResult = controller.GetReviewsByUser(user.Id).Result;
            // Assert
            var okObjectResult = actionResult as OkObjectResult;

            Assert.IsNotNull(okObjectResult);
            var reviews = okObjectResult.Value as IEnumerable <Review>;

            Assert.IsTrue(reviews.Count() == seededReviews.Count());
        }
        public void PostAReview()
        {
            // Arrange
            var reviewDto = new ReviewDto
            {
                Comment      = "Good food 2",
                Rating       = 4,
                RestaurantId = DataSeeder.Restaurants[0].Id,
                UserId       = DataSeeder.Users[0].Id
            };
            var review = _mapper.Map <Review>(reviewDto);

            review.Id             = Guid.NewGuid();
            review.SubmissionDate = DateTime.UtcNow;
            Mock.Get(_repositoryWrapper.Review).Setup(x => x.CreateReview(review));
            Mock.Get(_repositoryWrapper.Review).Setup(x => x.GetReviewById(review.Id)).ReturnsAsync(review);
            var controller = new RestaurantReviewsController(_loggerManager, _mapper, _repositoryWrapper);
            // Act
            var actionResult = controller.PostAReview(reviewDto).Result;
            // Assert
            var okObjectResult = actionResult as OkObjectResult;

            Assert.IsNotNull(okObjectResult);
        }