public IHttpActionResult Post(int id, [FromBody] ViewModels.Review reviewRequest) { try { AddReviewTransaction tran = Factory.CreateAddReviewsForRestaurantTransaction(id, reviewRequest); tran.Execute(); if (tran.Response.WasSucessfull) { reviewRequest.ReviewNumber = tran.Response.ReviewNumber; return(CreatedAtRoute("NewReviewForRestaurant", new { id = id }, reviewRequest)); } else { return(BadRequest()); } } catch (UserNotFoundException) { return(BadRequest()); } catch (RestaurantNotFoundException) { return(NotFound()); } catch (Exception ex) { Logger.ErrorLog($"Web API failed getting restaurant id {id}", ex); return(InternalServerError()); } }
public void AddReview_validReviewRatingOne_succeed() { #region Add one review Reviews.Add(new Review { Comment = "Comment 1", CreatedBy = 1, PostedDateTime = DateTime.Now.AddDays(-1), Rating = 3, ReviewNumber = 1, //ReviewRestaurant = Restaurants[0], ReviewUser = Users[0], UpdatedBy = 1 }); #endregion //Assign var expectedRating = 1; var expectedPostedDateTime = DateTime.Now; var expectedComment = "rating comment 2"; var expectedRestId = 2; var expectedCreatedById = 2; var expectedUpdatedById = expectedCreatedById; var expectedReviewNumber = 2; var expectedSucessStatus = true; var reqData = new AddReviewRequestModel() { Rating = expectedRating, DateTimePosted = expectedPostedDateTime, Comment = expectedComment, UserId = expectedCreatedById, RestaurantId = expectedRestId }; var expectedResponse = new AddReviewResponseModel() { WasSucessfull = expectedSucessStatus, ReviewNumber = expectedReviewNumber }; //act var sut = new AddReviewTransaction(Repo, Log, reqData); sut.Execute(); var actualResponse = sut.Response; //assert Assert.AreEqual(expectedSucessStatus, actualResponse.WasSucessfull, "Invalid execution status"); Assert.AreEqual(expectedResponse, actualResponse, "Invalid response"); ValidateResponse(expectedResponse, expectedRating, expectedPostedDateTime, expectedComment, expectedCreatedById, expectedUpdatedById, expectedReviewNumber); }
public void AddReview_RaitingTooHigh_Fail() { AddTwoReviews(); //Assign var expectedRating = 9; var expectedPostedDateTime = DateTime.Now; var expectedComment = "rating comment 9"; var expectedRestId = 2; var expectedCreatedById = 3; var expectedReviewNumber = 0; var expectedSucessStatus = false; var reqData = new AddReviewRequestModel() { Rating = expectedRating, DateTimePosted = expectedPostedDateTime, Comment = expectedComment, UserId = expectedCreatedById, RestaurantId = expectedRestId }; var expectedResponse = new AddReviewResponseModel() { WasSucessfull = expectedSucessStatus, ReviewNumber = expectedReviewNumber }; //act var sut = new AddReviewTransaction(Repo, Log, reqData); sut.Execute(); var actualResponse = sut.Response; //assert Assert.AreEqual(expectedSucessStatus, actualResponse.WasSucessfull, "Invalid execution status"); Assert.AreEqual(expectedResponse, actualResponse, "Invalid response"); var noneAddreReview = Reviews.Find(r => r.ReviewNumber == expectedReviewNumber); Assert.IsNull(noneAddreReview); }
public void AddReview_vlaidReviewRatingFive_succeed() { AddTwoReviews(); //Assign var expectedRating = 5; var expectedPostedDateTime = DateTime.Now; var expectedComment = "rating comment 5"; var expectedRestId = 2; var expectedCreatedById = 3; var expectedUpdatedById = expectedCreatedById; var expectedReviewNumber = 3; var expectedSucessStatus = true; var reqData = new AddReviewRequestModel() { Rating = expectedRating, DateTimePosted = expectedPostedDateTime, Comment = expectedComment, UserId = expectedCreatedById, RestaurantId = expectedRestId }; var expectedResponse = new AddReviewResponseModel() { WasSucessfull = expectedSucessStatus, ReviewNumber = expectedReviewNumber }; //act var sut = new AddReviewTransaction(Repo, Log, reqData); sut.Execute(); var actualResponse = sut.Response; //assert Assert.AreEqual(expectedSucessStatus, actualResponse.WasSucessfull, "Invalid execution status"); Assert.AreEqual(expectedResponse, actualResponse, "Invalid response"); ValidateResponse(expectedResponse, expectedRating, expectedPostedDateTime, expectedComment, expectedCreatedById, expectedUpdatedById, expectedReviewNumber); }