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