public async Task <Restaurant> PostRestaurant([FromBody] Restaurant restaurant)
        {
            Restaurant savedRestaurant = null;

            using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(dbPath))
            {
                var _results = await uow.AddRestaurantAsync(restaurant);

                if (_results.Successful)
                {
                    savedRestaurant = _results.Results;
                }
                else
                {
                    // here we can add special handling in the case of failure
                }
            }

            return(savedRestaurant);
        }
Пример #2
0
        public async Task AddRestaurantAsyncTests()
        {
            RestaurantAddress address1 = new RestaurantAddress()
            {
                streetAddress = "100 Main St",
                addrLine2     = string.Empty,
                city          = "Pittsburgh",
                state         = "PA",
                zipcode       = "15108"
            };

            Restaurant restaurant1 = new Restaurant()
            {
                name                = "Restaurant 1",
                address             = address1,
                addressId           = address1.id,
                dateCreated         = DateTime.Now,
                dateModified        = DateTime.Now,
                phoneNumber         = "412-444-4444",
                acceptsReservations = false
            };

            // Test the 'Happy Path'
            repositoryMock.Setup(m => m.AddUpdateRestaurantAsync(It.IsAny <Restaurant>())).ReturnsAsync(restaurant1);
            using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object))
            {
                var _results = await uow.AddRestaurantAsync(restaurant1);

                Assert.IsNotNull(_results);
                Assert.IsTrue(_results.Successful);
                Assert.IsNotNull(_results.Results);
                Assert.IsInstanceOfType(_results.Results, typeof(Restaurant));
            }

            // Test NULL value for Restaurant
            Exception exNullReference = new NullReferenceException();

            repositoryMock.Setup(m => m.AddUpdateRestaurantAsync(It.IsAny <Restaurant>())).ThrowsAsync(exNullReference);
            using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object))
            {
                var _results = await uow.AddRestaurantAsync(null);

                Assert.IsNotNull(_results);
                Assert.IsNotNull(_results.Exception);
                Assert.IsNull(_results.Results);
                Assert.IsFalse(_results.Successful);
            }

            // Test Exception Handling
            Exception ex = new Exception("Any Exception");

            repositoryMock.Setup(m => m.AddUpdateRestaurantAsync(It.IsAny <Restaurant>())).ThrowsAsync(ex);
            using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object))
            {
                var _results = await uow.AddRestaurantAsync(restaurant1);

                Assert.IsNotNull(_results);
                Assert.IsNotNull(_results.Exception);
                Assert.IsNull(_results.Results);
                Assert.IsFalse(_results.Successful);
            }
        }