public async Task Add_WhenModelIsValid_ShouldRedirectToConfirm() { var input = new ReservationViewModel(); var reservation = new Reservation { ReservationId = 1 }; reservationServiceMock.Setup(s => s.AddAsync(input.Reservation)) .ReturnsAsync(reservation); var controllerContext = ControllerContextProvider.GetDefault(); var controller = new ReservationsController(reservationServiceMock.Object, roomServiceMock.Object) { ControllerContext = controllerContext }; var result = await controller.Add(input); var redirectResult = Assert.IsType <RedirectToActionResult>(result); int resultReservationId = (int)redirectResult.RouteValues[nameof(reservation.ReservationId)]; Assert.Null(redirectResult.ControllerName); Assert.Equal(nameof(controller.Confirm), redirectResult.ActionName); Assert.Equal(reservation.ReservationId, resultReservationId); reservationServiceMock.Verify(s => s.AddAsync(input.Reservation), Times.Once); }
public async Task Add_WhenModelIsInvalid_ShouldReturnView() { var input = new ReservationViewModel(); var controller = new ReservationsController(reservationServiceMock.Object, roomServiceMock.Object); controller.ModelState.AddModelError("GuestNames", "Required"); var result = await controller.Add(input); Assert.IsType <ViewResult>(result); }