public void ScheduleSms()
        {
            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 scheduleTimeUtc = DateTime.UtcNow.AddMinutes(14);
            scheduleStatusHandlers.Handle(new ScheduleStatusChanged
                {
                    ScheduleId = trackingData.ScheduleId,
                    Status = MessageStatus.Scheduled,
                    ScheduleTimeUtc = scheduleTimeUtc
                });

            var updatedData = GetSchedule(trackingData.ScheduleId.ToString());
            Assert.That(updatedData.MessageStatus, Is.EqualTo(MessageStatus.Scheduled));
            Assert.That(updatedData.ScheduleTimeUtc, Is.EqualTo(scheduleTimeUtc));
        }
Esempio n. 2
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));
        }
Esempio n. 3
0
        public void PauseSchedule()
        {
            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.Scheduled,
            };

            StoreDocument(trackingData, trackingData.ScheduleId.ToString());

            var scheduleStatusHandlers = new ScheduleStatusHandlers {
                RavenDocStore = ravenDocStore
            };

            scheduleStatusHandlers.Handle(new ScheduleStatusChanged
            {
                ScheduleId = trackingData.ScheduleId,
                Status     = MessageStatus.Paused
            });

            var updatedData = GetSchedule(trackingData.ScheduleId.ToString());

            Assert.That(updatedData.MessageStatus, Is.EqualTo(MessageStatus.Paused));
        }
Esempio n. 4
0
        public void ScheduleSms()
        {
            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 scheduleTimeUtc = DateTime.UtcNow.AddMinutes(14);

            scheduleStatusHandlers.Handle(new ScheduleStatusChanged
            {
                ScheduleId      = trackingData.ScheduleId,
                Status          = MessageStatus.Scheduled,
                ScheduleTimeUtc = scheduleTimeUtc
            });

            var updatedData = GetSchedule(trackingData.ScheduleId.ToString());

            Assert.That(updatedData.MessageStatus, Is.EqualTo(MessageStatus.Scheduled));
            Assert.That(updatedData.ScheduleTimeUtc, Is.EqualTo(scheduleTimeUtc));
        }
Esempio n. 5
0
        public void SmsFailed()
        {
            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 scheduleFailed = new ScheduleFailed
            {
                ScheduleId = trackingData.ScheduleId,
                Message    = "fail",
                MoreInfo   = "link"
            };

            scheduleStatusHandlers.Handle(scheduleFailed);

            var updatedData = GetSchedule(trackingData.ScheduleId.ToString());

            Assert.That(updatedData.MessageStatus, Is.EqualTo(MessageStatus.Failed));
            Assert.That(updatedData.SmsFailureData.Message, Is.EqualTo(scheduleFailed.Message));
            Assert.That(updatedData.SmsFailureData.MoreInfo, Is.EqualTo(scheduleFailed.MoreInfo));
            Assert.That(updatedData.SmsFailureData.Status, Is.EqualTo(scheduleFailed.Status));
            Assert.That(updatedData.SmsFailureData.Code, Is.EqualTo(scheduleFailed.Code));
        }
        public void PauseSchedule()
        {
            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.Scheduled,
            };
            StoreDocument(trackingData, trackingData.ScheduleId.ToString());

            var scheduleStatusHandlers = new ScheduleStatusHandlers { RavenDocStore = ravenDocStore };
            scheduleStatusHandlers.Handle(new ScheduleStatusChanged
                {
                    ScheduleId = trackingData.ScheduleId,
                    Status = MessageStatus.Paused
                });

            var updatedData = GetSchedule(trackingData.ScheduleId.ToString());
            Assert.That(updatedData.MessageStatus, Is.EqualTo(MessageStatus.Paused));
        }
        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 SmsFailed()
        {
            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 scheduleFailed = new ScheduleFailed
                {
                    ScheduleId = trackingData.ScheduleId,
                    Message = "fail",
                    MoreInfo = "link"
                };
            scheduleStatusHandlers.Handle(scheduleFailed);

            var updatedData = GetSchedule(trackingData.ScheduleId.ToString());
            Assert.That(updatedData.MessageStatus, Is.EqualTo(MessageStatus.Failed));
            Assert.That(updatedData.SmsFailureData.Message, Is.EqualTo(scheduleFailed.Message));
            Assert.That(updatedData.SmsFailureData.MoreInfo, Is.EqualTo(scheduleFailed.MoreInfo));
            Assert.That(updatedData.SmsFailureData.Status, Is.EqualTo(scheduleFailed.Status));
            Assert.That(updatedData.SmsFailureData.Code, Is.EqualTo(scheduleFailed.Code));
        }