/// <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;
        }
        /// <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;
        }
示例#3
0
        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>());
        }