示例#1
0
        public async Task GetRestaurantByIdAsyncTest()
        {
            IActionResult result = await _mockRestaurantController.Get(1);

            Assert.IsNotNull(((Restaurant)((OkObjectResult)result).Value));

            Assert.AreEqual(1, ((Restaurant)((OkObjectResult)result).Value).RestaurantID);
        }
示例#2
0
        public async Task RetrievesRestaurants_ByOutCode()
        {
            const string outcode = "some outcode";

            _mockQueryRestaurant.Setup(x => x.GetAsync(outcode)).ReturnsAsync(new RestaurantResults()).Verifiable();

            await _controller.Get(outcode);

            _mockQueryRestaurant.Verify();
        }
        public void Get_ExplicitParams_ReturnsList()
        {
            IEnumerable <Restaurant> expected = new List <Restaurant> {
                new Restaurant {
                    Id   = 1,
                    Name = "test"
                },
                new Restaurant {
                    Id   = 2,
                    Name = "test2"
                }
            };
            var restaurantRepository           = new Mock <IRestaurantRepository>();
            DbFilter <Restaurant> actualFilter = null;

            restaurantRepository.Setup(x => x.GetRestaurantsAsync(3, 2, It.IsAny <DbFilter <Restaurant> >()))
            .Callback <int, int, DbFilter <Restaurant> >((page, pagesize, filter) => { actualFilter = filter; })
            .Returns(Task.FromResult(expected));
            var sut = new RestaurantsController(restaurantRepository.Object);

            var actual = sut.Get(3, 2, "TestCity").Result;

            Assert.AreEqual(expected, actual);
            Assert.IsNotNull(actualFilter);
            Assert.AreEqual("City", actualFilter.Field);
            Assert.AreEqual(OperatorEnum.Equal, actualFilter.Operator);
            Assert.AreEqual("TestCity", actualFilter.Value);
            restaurantRepository.VerifyAll();
        }
        public void GetTest_RejectsInValid()
        {
            //Arrange
            var RC = new RestaurantsController(connection);

            //Act
            var result = RC.Get("HocusPocus");

            //Assert
            Assert.IsType <NotFoundObjectResult>(result);
        }
        public void GetTest_ReturnsValid()
        {
            //Arrange
            var RC = new RestaurantsController(connection);

            //Act
            var result = RC.Get("Boston");

            //Assert
            Assert.IsType <OkObjectResult>(result);
        }
示例#6
0
        public void GetAllRestaurants_ServerException_InternalError()
        {
            //arrange
            MockIdentity.Setup(m => m.GetRequestingUserId()).Throws(new Exception());
            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult = ctrl.Get();

            // assert
            Assert.IsInstanceOfType(actionResult, typeof(InternalServerErrorResult));
        }
示例#7
0
        public void GetAllRestaurants_OneRestaurnat_OK()
        {
            //arrange
            var restID                  = 1234;
            var cuisineName             = "Mexican";
            var cuisineId               = 10;
            var restName                = "No1 Mexican Restaurant";
            var createdUser             = 10;
            var expectedCollectionCount = 1;
            var cuisine                 = new Cuisine
            {
                Name      = cuisineName,
                Id        = cuisineId,
                CreatedBy = createdUser,
                UpdatedBy = createdUser
            };

            var expectedResponse = new[]
            {
                new API.ViewModels.Restaurant {
                    Id            = restID,
                    AverageRating = 0,
                    CuisineName   = cuisineName,
                    CuisineId     = cuisineId,
                    Name          = restName,
                    ReviewCount   = 0
                }
            };

            var repoResonse = new[] {
                new Restaurant {
                    Id        = restID,
                    CreatedBy = createdUser,
                    UpdatedBy = createdUser,
                    Cuisine   = cuisine,
                    Name      = restName
                }
            };

            MockRepository.Setup(m => m.GetAllRestaurantsWithReview()).Returns(repoResonse);
            MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(10);

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult  = ctrl.Get();
            var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <API.ViewModels.Restaurant> >;

            //assert
            Assert.IsNotNull(contentResult, "Ok-200 status was not returned");
            Assert.IsNotNull(contentResult.Content, "No content was returned");
            ValidateRestaurantCollectionResponse(contentResult.Content, expectedResponse, expectedCollectionCount);
        }
示例#8
0
        public void RestaurantGetByID_InvalidRestaurantID_NotFound()
        {
            //arrange
            var restID = 600;

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult = ctrl.Get(restID);

            // assert
            Assert.IsInstanceOfType(actionResult, typeof(NotFoundResult));
        }
        public void Get_ReturnsAllRestaurantsFromRepository()
        {
            var allRestaurants = new List <Restaurant>
            {
                new RestaurantBuilder().Build()
            };

            _repo.Setup(repo => repo.GetAll()).Returns(allRestaurants);

            var returnedRestaurants = _controller.Get();

            _repo.Verify(repo => repo.GetAll(), Times.Once);
            Assert.That(returnedRestaurants, Is.EquivalentTo(allRestaurants));
        }
示例#10
0
        public void GetAllRestaurants_DatabaseException_BadData()
        {
            //arrange
            MockRepository.Setup(m => m.GetAllRestaurantsWithReview()).Throws(new Exception());
            MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(10);

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult = ctrl.Get();

            // assert
            Assert.IsInstanceOfType(actionResult, typeof(BadRequestResult));
        }
示例#11
0
        public void DeleteRestaurant_ServerException_InternalError()
        {
            //arrange
            var RestIdToDelete = 555;

            MockRepository.Setup(m => m.DoseRestaurentIdExist(RestIdToDelete)).Returns(true);
            MockIdentity.Setup(m => m.GetRequestingUserId()).Throws(new Exception());

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult = ctrl.Get(RestIdToDelete);

            // assert
            Assert.IsInstanceOfType(actionResult, typeof(InternalServerErrorResult));
        }
        public void Get_CallsRepository_ReturnsRestaurant()
        {
            var expected = new Restaurant
            {
                Id   = 1,
                Name = "test"
            };
            var restaurantRepository = new Mock <IRestaurantRepository>();

            restaurantRepository.Setup(x => x.GetRestaurantAsync(123)).Returns(Task.FromResult <Restaurant>(expected));

            var sut    = new RestaurantsController(restaurantRepository.Object);
            var actual = sut.Get(123).Result;

            Assert.AreEqual(expected, actual);
            restaurantRepository.VerifyAll();
        }
        public void Get_DefaultParams_ReturnsList()
        {
            IEnumerable <Restaurant> expected = new List <Restaurant> {
                new Restaurant {
                    Id   = 1,
                    Name = "test"
                },
                new Restaurant {
                    Id   = 2,
                    Name = "test2"
                }
            };
            var restaurantRepository = new Mock <IRestaurantRepository>();

            restaurantRepository.Setup(x => x.GetRestaurantsAsync(1, 1000, null)).Returns(Task.FromResult <IEnumerable <Restaurant> >(expected));
            var sut    = new RestaurantsController(restaurantRepository.Object);
            var actual = sut.Get(null, null, null).Result;

            Assert.AreEqual(expected, actual);
            restaurantRepository.VerifyAll();
        }
示例#14
0
        public void GetAllRestaurants_NoRestaurnats_Empty()
        {
            //arrange
            var expectedResponse        = new API.ViewModels.Restaurant[] { };
            var expectedCollectionCount = 0;

            var repoResonse = new Restaurant[] { };

            MockRepository.Setup(m => m.GetAllRestaurantsWithReview())
            .Returns(repoResonse);

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(10);

            //act
            var actionResult  = ctrl.Get();
            var contentResult = actionResult as OkNegotiatedContentResult <IEnumerable <API.ViewModels.Restaurant> >;

            //assert
            Assert.IsNotNull(contentResult, "Ok-200 status was not returned");
            Assert.IsNotNull(contentResult.Content, "No content was returned");
            ValidateRestaurantCollectionResponse(contentResult.Content, expectedResponse, expectedCollectionCount);
        }
 public void GetRestaurantsTest()
 {
     Assert.IsInstanceOf <List <RestaurantDto> >(_restaurantsController.Get().Value);
 }
示例#16
0
        public void RestaurantGetByID_ValidRestaurantID_OK()
        {
            //arrange
            var restID      = 555;
            var cuisineName = "Mexican";
            var cuisineId   = 10;
            var restName    = "No1 Mexican Restaurant";
            var createdUser = 10;
            var cuisine     = new Cuisine
            {
                Name      = cuisineName,
                Id        = cuisineId,
                CreatedBy = createdUser,
                UpdatedBy = createdUser
            };

            var expectedResponse = new API.ViewModels.Restaurant
            {
                Id            = restID,
                AverageRating = 3,
                CuisineName   = cuisineName,
                CuisineId     = cuisineId,
                Name          = restName,
                ReviewCount   = 100
            };

            var repoResonse = new Restaurant
            {
                Id        = restID,
                CreatedBy = createdUser,
                UpdatedBy = createdUser,
                Cuisine   = cuisine,
                Name      = restName
            };

            //restaurant 4 setup
            for (var i = 0; i < 100; i++)
            {
                var newReview = new Review
                {
                    CreatedBy      = createdUser,
                    UpdatedBy      = createdUser,
                    Comment        = $"Comment {i} for Restaurant 555",
                    Rating         = (i % 5) + 1,
                    PostedDateTime = new DateTime(2016, 07, 1).AddDays(i + 1),
                    ReviewNumber   = 4 + i,
                    ReviewUser     = new User {
                        Id = createdUser, UserName = "******"
                    }
                };
                // 0+1 to 4+1

                repoResonse.AddReview(newReview);
            }
            MockRepository.Setup(m => m.GetRestaurantWithReviewsById(restID)).Returns(repoResonse);
            MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(10);

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult  = ctrl.Get(restID);
            var contentResult = actionResult as OkNegotiatedContentResult <API.ViewModels.Restaurant>;

            //assert
            Assert.IsNotNull(contentResult, "Ok-200 status was not returned");
            Assert.IsNotNull(contentResult.Content, "No content was returned");
            ValidateRestaurantResponse(expectedResponse, contentResult.Content);
        }