public void Processor_sleeps_for_one_minute_if_theres_no_message() { var queue = new Mock<IQueue>(); CloudQueueMessage message = null; queue.Setup(q => q.GetMessage()).Returns(message); var sleepService = new Mock<ISleepService>(); var traceService = new Mock<ITraceService>(); var parser = new Mock<IQueueMessageParser>(); var processor = new QueueMessageProcessor(sleepService.Object, queue.Object, traceService.Object, parser.Object); processor.Run(message); queue.Verify(q => q.GetMessage(), Times.Once()); sleepService.Verify(s => s.Sleep(60000), Times.Once()); }
public void Processor_traces_thrown_error_and_sleeps_for_one_minute() { var queue = new Mock<IQueue>(); var message = new CloudQueueMessage("job;type"); queue.Setup(q => q.GetMessage()).Returns(message); var sleepService = new Mock<ISleepService>(); var traceService = new Mock<ITraceService>(); var parser = new Mock<IQueueMessageParser>(); parser.Setup(p => p.Parse(message)).Throws<NotImplementedException>(); var processor = new QueueMessageProcessor(sleepService.Object, queue.Object, traceService.Object, parser.Object); processor.Run(message); traceService.Verify(t => t.TraceError(It.IsAny<string>()), Times.Once()); sleepService.Verify(s => s.Sleep(60000), Times.Once()); }
public override bool OnStart() { // For information on handling configuration changes // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. ServicePointManager.DefaultConnectionLimit = Environment.ProcessorCount; ConfigureDiagnostics(); var storageAccount = Microsoft.WindowsAzure.Storage.CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString")); var jobs = JobFactory.Create(); _messageProcessor = new QueueMessageProcessor( new SleepService(), new JobQueue(storageAccount), new TraceService(), new QueueMessageParser(jobs)); return base.OnStart(); }
public void Processor_gets_message_from_queue() { // arrange var message = new CloudQueueMessage("email;test"); var queue = new Mock<IQueue>(); queue.Setup(q => q.GetMessage()).Returns(message); var sleepService = new Mock<ISleepService>(); var traceService = new Mock<ITraceService>(); var parser = new Mock<IQueueMessageParser>(); var processor = new QueueMessageProcessor(sleepService.Object, queue.Object, traceService.Object, parser.Object); // act processor.Run(message); // assert queue.Verify(q => q.GetMessage(), Times.Once()); parser.Verify(p => p.Parse(message), Times.Once()); queue.Verify(q => q.DeleteMessage(message), Times.Once()); }