/// <summary> /// Initializes a new instance of the <see cref="SchedulerMethod"/> class. /// </summary> /// <param name="queue">The queue.</param> /// <param name="messageMethodHandling">The message method handling.</param> public SchedulerMethod(IConsumerQueueScheduler queue, IMessageMethodHandling messageMethodHandling) { Guard.NotNull(() => queue, queue); Guard.NotNull(() => messageMethodHandling, messageMethodHandling); _queue = queue; _messageMethodHandling = messageMethodHandling; }
private SchedulerMethod Create(int workerCount, IWorkGroup workGroup = null) { var fixture = new Fixture().Customize(new AutoNSubstituteCustomization()); var cancelWork = fixture.Create <IQueueCancelWork>(); var workerConfiguration = fixture.Create <IWorkerConfiguration>(); workerConfiguration.WorkerCount.Returns(workerCount); fixture.Inject(cancelWork); fixture.Inject(workerConfiguration); cancelWork.CancellationTokenSource.Returns(new CancellationTokenSource()); cancelWork.StopTokenSource.Returns(new CancellationTokenSource()); var stopWorker = fixture.Create <StopWorker>(); fixture.Inject(stopWorker); IConsumerQueueAsync queue = fixture.Create <ConsumerQueueAsync>(); var fixture2 = new Fixture().Customize(new AutoNSubstituteCustomization()); fixture2.Inject(queue); var factoryFactory = fixture2.Create <ITaskFactoryFactory>(); fixture2.Inject(factoryFactory); IConsumerQueueScheduler scheduler = fixture2.Create <Scheduler>(); fixture2.Inject(scheduler); ATaskScheduler schedule = new CreateContainerTest.TaskSchedulerNoOp(); schedule.Start(); fixture2.Inject(schedule); var taskFactory = fixture2.Create <ITaskFactory>(); taskFactory.Scheduler.Returns(schedule); fixture2.Inject(taskFactory); factoryFactory.Create().Returns(taskFactory); if (workGroup != null) { fixture2.Inject(workGroup); } var handler = fixture2.Create <SchedulerMessageHandler>(); fixture2.Inject(handler); return(fixture2.Create <SchedulerMethod>()); }