Example #1
0
        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));
        }
Example #2
0
 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();
     }
 }