public async Task SendSmsToTheCorrectPhoneNumbersWithTheCorrectMessage() { var notification = new RequestsAssignedToItinerary { ItineraryId = 1, RequestIds = new List <Guid> { Guid.NewGuid() } }; var requestorPhoneNumbers = new List <string> { "111-111-1111" }; var request = new Request { RequestId = notification.RequestIds.First(), Phone = requestorPhoneNumbers.First() }; var itinerary = new Itinerary { Id = notification.ItineraryId, Date = DateTime.UtcNow }; var message = $@"Your request has been scheduled by allReady for {itinerary.Date.Date}. Please respond with ""Y"" to confirm this request or ""N"" to cancel this request."; Context.Requests.Add(request); Context.Itineraries.Add(itinerary); Context.SaveChanges(); var smsSender = new Mock <ISmsSender>(); var sut = new RequestsAssignedToItineraryHandler(Context, smsSender.Object, Mock.Of <IMediator>()); await sut.Handle(notification); smsSender.Verify(x => x.SendSmsAsync(requestorPhoneNumbers, message)); }
public async Task PublishInitialRequestConfirmationsSentWithCorrectValues() { var notification = new RequestsAssignedToItinerary { ItineraryId = 1, RequestIds = new List <Guid> { Guid.NewGuid() } }; var request = new Request { RequestId = notification.RequestIds.First(), Phone = "111-111-1111" }; var itinerary = new Itinerary { Id = notification.ItineraryId, Date = DateTime.UtcNow }; Context.Requests.Add(request); Context.Itineraries.Add(itinerary); Context.SaveChanges(); var mediator = new Mock <IMediator>(); var sut = new RequestsAssignedToItineraryHandler(Context, Mock.Of <ISmsSender>(), mediator.Object); await sut.Handle(notification); mediator.Verify(x => x.PublishAsync(It.Is <InitialRequestConfirmationsSent>(y => y.RequestIds == notification.RequestIds && y.ItineraryId == itinerary.Id))); }
public async Task EnqueueARequestToGasaWithAStatusOfInProgressAndAcceptanceOfTrueForEveryRequestIdOnTheNotification() { const bool expectedAcceptance = true; var notification = new RequestsAssignedToItinerary { ItineraryId = 1, RequestIds = new List <Guid> { firstRequestId, secondRequestId } }; var sut = new SendInProgressStatusToGetASmokeAlarmHandler(Context, backgroundJobClient.Object); await sut.Handle(notification); backgroundJobClient.Verify(s => s.Create(It.Is <Job>(job => job.Method.Name == nameof(SendRequestStatusToGetASmokeAlarm.Send) && (string)job.Args[0] == firstProviderrequestid && (string)job.Args[1] == GasaStatus.InProgress && (bool)job.Args[2] == expectedAcceptance), It.IsAny <EnqueuedState>()), Times.Once); backgroundJobClient.Verify(s => s.Create(It.Is <Job>(job => job.Method.Name == nameof(SendRequestStatusToGetASmokeAlarm.Send) && (string)job.Args[0] == secondProviderrequestid && (string)job.Args[1] == GasaStatus.InProgress && (bool)job.Args[2] == expectedAcceptance), It.IsAny <EnqueuedState>()), Times.Once); }