public void GivenUserBookReview_WhenCreateBookReviewCalled_RedirectWithCorrectDetails() { // Arrange var fakeBookReview = A.Fake <UserBookReview>(); fakeBookReview.BookId = 12; fakeBookReview.UserId = 10; A.CallTo(() => _fakeBookService.AddBookReview(fakeBookReview)).Returns(true); // Act var result = _bookController.CreateBookReview(fakeBookReview) as RedirectToRouteResult; // Assert Assert.IsNotNull(result); var values = result.RouteValues.Values; var bookId = values.ElementAt(0); var userId = values.ElementAt(1); Assert.AreEqual(bookId, fakeBookReview.BookId); Assert.IsTrue(values.Contains(controllerName)); Assert.IsTrue(values.Contains(actionCalledBookProfile)); A.CallTo(() => _fakeBookService.AddBookReview(fakeBookReview)).MustHaveHappened(Repeated.Exactly.Once); }
public void GivenValidBookReviewDetails_WhenDeleteReviewCalled_ReturnToBookProfile() { using (var scope = Container.BeginLifetimeScope()) { // Arrange _bookController = scope.Resolve <BooksController>(); BookService bookService = scope.Resolve <BookService>(); UserBookReview userBookReview = new UserBookReview(); userBookReview.UserId = 289; userBookReview.BookId = 11; userBookReview.Rating = 5; userBookReview.Description = "Great book!"; _bookController.CreateBookReview(userBookReview); // Act var result = _bookController.DeleteBookReview(userBookReview) as RedirectToRouteResult; // Assert Assert.IsNotNull(result); var values = result.RouteValues.Values; Assert.IsTrue(values.Contains(11)); Assert.IsTrue(values.Contains(controllerName)); Assert.IsTrue(values.Contains("BookProfile")); Assert.IsNull(bookService.GetABookReview(289, 11)); // cleanup, assert it's been successful } }