public void PostNewReviewForeRestaurant_ValidInput_OkWithUrl() { //arrange var restaurantID = 10; var postedDate = new DateTime(2016, 10, 1); var createdUser = 1; int postedRating = 3; int expectedReviewNumber = 1; string postedComment = "Review comment 1"; User postingUser = new User { Id = createdUser, UserName = "******" }; var expectedResponse = new API.ViewModels.Review { Comment = postedComment, PostedDateTime = postedDate, Rating = postedRating, ReviewNumber = expectedReviewNumber, UserName = postingUser.UserName, }; var requestReview = new API.ViewModels.Review { Comment = postedComment, PostedDateTime = postedDate, Rating = postedRating, UserName = postingUser.UserName, //no review Number }; var transactionRequest = new AddReviewRequestModel { Comment = postedComment, DateTimePosted = postedDate, Rating = postedRating, RestaurantId = restaurantID, UserId = createdUser }; MockRepository.Setup(m => m.AddReviewGetNewId(transactionRequest)).Returns(expectedReviewNumber); MockRepository.Setup(m => m.DoseRestaurentIdExist(restaurantID)).Returns(true); MockRepository.Setup(m => m.DoseUserIdAlreadyExist(postingUser.Id)).Returns(true); MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(createdUser); var ctrl = new ReviewsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object); //act var actionResult = ctrl.Post(restaurantID, requestReview); var createdResult = actionResult as CreatedAtRouteNegotiatedContentResult <API.ViewModels.Review>; //assert Assert.IsNotNull(createdResult, "created-201 status was not returned"); Assert.AreEqual("NewReviewForRestaurant", createdResult.RouteName); Assert.AreEqual(restaurantID, createdResult.RouteValues["id"]); //validate response ValidateReviewResponse(createdResult.Content, expectedResponse); }
public void PostNewReviewForeRestaurant_ServerException_InternalError() { //arrange var restaurantID = 10; var postedDate = new DateTime(2016, 10, 1); var createdUser = 10; int postedRating = 10; string postedComment = "Review comment 1"; User postingUser = new User { Id = createdUser, UserName = "******" }; var requestReview = new API.ViewModels.Review { Comment = postedComment, PostedDateTime = postedDate, Rating = postedRating, UserName = postingUser.UserName, //no review Number }; MockRepository.Setup(m => m.AddReviewGetNewId(It.IsAny <AddReviewRequestModel>())) .Throws(new Exception()); MockRepository.Setup(m => m.DoseRestaurentIdExist(restaurantID)).Returns(true); MockRepository.Setup(m => m.DoseUserIdAlreadyExist(postingUser.Id)).Returns(true); MockIdentity.Setup(m => m.GetRequestingUserId()).Throws(new Exception()); var ctrl = new ReviewsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object); //act var actionResult = ctrl.Post(restaurantID, requestReview); //assert Assert.IsInstanceOfType(actionResult, typeof(InternalServerErrorResult)); }