public async Task <IActionResult> DeleteReview(Guid reviewId) { using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(dbPath)) { var _results = await uow.DeleteRestaurantReviewAsync(reviewId); if (_results.Successful) { return(Ok()); } else { return(NotFound()); } } }
public async Task <ICollection <RestaurantReview> > GetReviewsByUser(string username) { ICollection <RestaurantReview> foundReviews = null; using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(dbPath)) { var _results = await uow.GetReviewsByUserAsync(username); if (_results.Successful) { foundReviews = _results.Results; } else { // here we can add special handling in the case of failure } } return(foundReviews); }
public async Task <ICollection <Restaurant> > GetRestaurantsByCityState(string city, string state) { ICollection <Restaurant> foundRestaurants = null; using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(dbPath)) { var _results = await uow.FindRestaurantsByCityStateAsync(city, state); if (_results.Successful) { foundRestaurants = _results.Results; } else { // here we can add special handling in the case of failure } } return(foundRestaurants); }
public async Task <RestaurantReview> PostReview([FromBody] RestaurantReview review) { RestaurantReview savedReview = null; using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(dbPath)) { var _results = await uow.AddRestaurantReviewAsync(review); if (_results.Successful) { savedReview = _results.Results; } else { // here we can add special handling in the case of failure } } return(savedReview); }
public async Task GetListOfRestaurantsByCityStateTests() { 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 }; RestaurantAddress address2 = new RestaurantAddress() { streetAddress = "100 Main St", addrLine2 = string.Empty, city = "Pittsburgh", state = "PA", zipcode = "15108" }; Restaurant restaurant2 = new Restaurant() { name = "Restaurant 2", address = address2, addressId = address2.id, dateCreated = DateTime.Now, dateModified = DateTime.Now, phoneNumber = "412-555-5555", acceptsReservations = false }; List <Restaurant> restaurants = new List <Restaurant>(); restaurants.Add(restaurant1); restaurants.Add(restaurant2); // Test the 'Happy Path' repositoryMock.Setup(m => m.FindRestaurantsByCityStateAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(restaurants); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.FindRestaurantsByCityStateAsync("pittsburgh", "pa"); Assert.IsNotNull(_results); Assert.IsInstanceOfType(_results.Results, typeof(ICollection <Restaurant>)); Assert.IsTrue(_results.Results.Count == 2); } // Test No restaurants found restaurants.Clear(); repositoryMock.Setup(m => m.FindRestaurantsByCityStateAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(restaurants); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.FindRestaurantsByCityStateAsync("boston", "ma"); Assert.IsNotNull(_results); Assert.IsInstanceOfType(_results.Results, typeof(ICollection <Restaurant>)); Assert.IsTrue(_results.Results.Count == 0); Assert.AreEqual(_results.Message, "Unable to locate any Restaurants in the city/state provided"); } // Test empty city/state Handling using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.FindRestaurantsByCityStateAsync(string.Empty, string.Empty); Assert.IsNotNull(_results); Assert.IsNotNull(_results.Exception); Assert.AreEqual(_results.Exception.Message, "City and State are both required"); Assert.IsNull(_results.Results); } // Test Exception Handling Exception ex = new Exception("Any Exception"); repositoryMock.Setup(m => m.FindRestaurantsByCityStateAsync(It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(ex); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.FindRestaurantsByCityStateAsync("pittsburgh", "pa"); Assert.IsNotNull(_results); Assert.IsNotNull(_results.Exception); Assert.IsNull(_results.Results); } }
public async Task GetReviewsByUserAsyncTests() { RestaurantAddress address = new RestaurantAddress() { streetAddress = "100 Main St", addrLine2 = string.Empty, city = "Pittsburgh", state = "PA", zipcode = "15108", dateCreated = DateTime.Now, dateModified = DateTime.Now }; Restaurant restaurant = new Restaurant() { name = "Restaurant 1", address = address, addressId = address.id, dateCreated = DateTime.Now, dateModified = DateTime.Now, phoneNumber = "412-444-4444", acceptsReservations = false }; RestaurantReview review1 = new RestaurantReview() { restaurant = restaurant, restaurantId = restaurant.id, reviewDate = DateTime.Now, reviewText = "This restaurant served us quickly and the food was great!", userRating = 5, dateCreated = DateTime.Now, dateModified = DateTime.Now, username = "******" }; RestaurantReview review2 = new RestaurantReview() { restaurant = restaurant, restaurantId = restaurant.id, reviewDate = DateTime.Now, reviewText = "This restaurant served us quickly but the food was only ok.", userRating = 3, dateCreated = DateTime.Now, dateModified = DateTime.Now, username = "******" }; List <RestaurantReview> reviews = new List <RestaurantReview>() { review1, review2 }; // Test the 'Happy Path' repositoryMock.Setup(m => m.GetReviewsByUserAsync(It.IsAny <string>())).ReturnsAsync(reviews); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.GetReviewsByUserAsync("*****@*****.**"); Assert.IsNotNull(_results); Assert.IsNotNull(_results.Results); Assert.AreEqual(_results.Results.Count, 2); Assert.IsTrue(_results.Successful); } // Test Exception Handling Exception ex = new Exception("Any Exception"); repositoryMock.Setup(m => m.GetReviewsByUserAsync(It.IsAny <string>())).ThrowsAsync(ex); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.GetReviewsByUserAsync("*****@*****.**"); Assert.IsNotNull(_results); Assert.IsNotNull(_results.Exception); Assert.IsNull(_results.Results); Assert.IsFalse(_results.Successful); } }
public async Task DeleteRestaurantReviewAsyncTests() { 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 }; RestaurantReview review1 = new RestaurantReview() { restaurant = restaurant1, restaurantId = restaurant1.id, reviewDate = DateTime.Now, reviewText = "This restaurant served us quickly and the food was great!", userRating = 5, dateCreated = DateTime.Now, dateModified = DateTime.Now, username = "******" }; // Test the 'Happy Path' bool isDeleted = true; repositoryMock.Setup(m => m.DeleteReviewAsync(It.IsAny <Guid>())).ReturnsAsync(isDeleted); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.DeleteRestaurantReviewAsync(review1.id); Assert.IsNotNull(_results); Assert.IsTrue(_results.Results); Assert.IsNull(_results.Exception); } // Test Review NOT FOUND scenario isDeleted = false; repositoryMock.Setup(m => m.DeleteReviewAsync(It.IsAny <Guid>())).ReturnsAsync(isDeleted); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.DeleteRestaurantReviewAsync(review1.id); Assert.IsNotNull(_results); Assert.IsFalse(_results.Results); Assert.IsNull(_results.Exception); Assert.AreEqual(_results.Message, "No matching review found"); } // Test Exception Handling Exception ex = new Exception("Any Exception"); repositoryMock.Setup(m => m.DeleteReviewAsync(It.IsAny <Guid>())).ThrowsAsync(ex); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.DeleteRestaurantReviewAsync(review1.id); Assert.IsNotNull(_results); Assert.IsNotNull(_results.Exception); Assert.IsFalse(_results.Successful); } }
public async Task AddRestaurantReviewAsyncTests() { RestaurantAddress address = new RestaurantAddress() { streetAddress = "100 Main St", addrLine2 = string.Empty, city = "Pittsburgh", state = "PA", zipcode = "15108", dateCreated = DateTime.Now, dateModified = DateTime.Now }; Restaurant restaurant = new Restaurant() { name = "Restaurant 1", address = address, addressId = address.id, dateCreated = DateTime.Now, dateModified = DateTime.Now, phoneNumber = "412-444-4444", acceptsReservations = false }; RestaurantReview review1 = new RestaurantReview() { restaurant = restaurant, restaurantId = restaurant.id, reviewDate = DateTime.Now, reviewText = "This restaurant served us quickly and the food was great!", userRating = 5, dateCreated = DateTime.Now, dateModified = DateTime.Now, username = "******" }; // Test the 'Happy Path' repositoryMock.Setup(m => m.AddUpdateReviewAsync(It.IsAny <RestaurantReview>())).ReturnsAsync(review1); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.AddRestaurantReviewAsync(review1); Assert.IsNotNull(_results); Assert.IsNotNull(_results.Results); Assert.IsInstanceOfType(_results.Results, typeof(RestaurantReview)); Assert.AreEqual(_results.Results.id, review1.id); } // Test NULL review Exception exNullReference = new NullReferenceException(); repositoryMock.Setup(m => m.AddUpdateReviewAsync(It.IsAny <RestaurantReview>())).ThrowsAsync(exNullReference); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.AddRestaurantReviewAsync(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.AddUpdateReviewAsync(It.IsAny <RestaurantReview>())).ThrowsAsync(ex); using (RestaurantReviewsUnitOfWork uow = new RestaurantReviewsUnitOfWork(repositoryMock.Object)) { var _results = await uow.AddRestaurantReviewAsync(review1); Assert.IsNotNull(_results); Assert.IsNotNull(_results.Exception); Assert.IsNull(_results.Results); Assert.IsFalse(_results.Successful); } }
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); } }