public void SmsSent() { var ravenDocStore = MockRepository.GenerateMock <IRavenDocStore>(); var database = "database"; ravenDocStore.Expect(r => r.Database()).Return(database); ravenDocStore.Expect(r => r.GetStore().OpenSession(database)).Return(DocumentStore.OpenSession()); var trackingData = new ScheduleTrackingData { ScheduleId = Guid.NewGuid(), MessageStatus = MessageStatus.WaitingForScheduling, }; StoreDocument(trackingData, trackingData.ScheduleId.ToString()); var scheduleStatusHandlers = new ScheduleStatusHandlers { RavenDocStore = ravenDocStore }; var scheduleSucceeded = new ScheduleSucceeded { ConfirmationData = new SmsConfirmationData("r", DateTime.UtcNow, 33m), ScheduleId = trackingData.ScheduleId }; scheduleStatusHandlers.Handle(scheduleSucceeded); var updatedData = GetSchedule(trackingData.ScheduleId.ToString()); Assert.That(updatedData.MessageStatus, Is.EqualTo(MessageStatus.Sent)); Assert.That(updatedData.ConfirmationData.SentAtUtc, Is.EqualTo(scheduleSucceeded.ConfirmationData.SentAtUtc)); Assert.That(updatedData.ConfirmationData.Receipt, Is.EqualTo(scheduleSucceeded.ConfirmationData.Receipt)); Assert.That(updatedData.ConfirmationData.Price, Is.EqualTo(scheduleSucceeded.ConfirmationData.Price)); }
public void Handle(ScheduleSucceeded message) { using (var session = RavenDocStore.GetStore().OpenSession(RavenDocStore.Database())) { var scheduleTrackingData = session.Load <ScheduleTrackingData>(message.ScheduleId.ToString()); scheduleTrackingData.MessageStatus = MessageStatus.Sent; scheduleTrackingData.ConfirmationData = message.ConfirmationData; session.SaveChanges(); } }