AirTNG.Web.Tests.Controllers.ReservationsControllerTest.GivenAHandleAction_WhenThereAreAPendingReservation_AndTheUserRespondsYesOrNo_ThenRespondWithReservationStatus C# (CSharp) Method

GivenAHandleAction_WhenThereAreAPendingReservation_AndTheUserRespondsYesOrNo_ThenRespondWithReservationStatus() private method

private GivenAHandleAction_WhenThereAreAPendingReservation_AndTheUserRespondsYesOrNo_ThenRespondWithReservationStatus ( string smsRequestBody, string expectedMessage ) : void
smsRequestBody string
expectedMessage string
return void
        public void GivenAHandleAction_WhenThereAreAPendingReservation_AndTheUserRespondsYesOrNo_ThenRespondWithReservationStatus(
            string smsRequestBody, string expectedMessage)
        {
            var host = new ApplicationUser {Id = "user-id"};
            var stubVacationPropertiesRepository = Mock.Of<IVacationPropertiesRepository>();
            var mockUsersRepository = new Mock<IUsersRepository>();
            var mockReservationsRepository = new Mock<IReservationsRepository>();
            mockReservationsRepository
                .Setup(r => r.FindFirstPendingReservationByHostAsync(host.Id))
                .ReturnsAsync(new Reservation());
            mockUsersRepository
                .Setup(r => r.FindByPhoneNumberAsync(It.IsAny<string>()))
                .ReturnsAsync(host);
            var stubNotifier = Mock.Of<INotifier>();

            var controller = new ReservationsController(
                stubVacationPropertiesRepository,
                mockReservationsRepository.Object,
                mockUsersRepository.Object,
                stubNotifier);

            controller.WithCallTo(c => c.Handle("from-number", smsRequestBody))
                .ShouldReturnTwiMLResult(data =>
                {
                    StringAssert.Contains(expectedMessage, data.XPathSelectElement("Response/Message").Value);
                });
        }