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