public void SetUp()
        {
            _wikiArticle      = Substitute.For <IWikiArticle>();
            _banlistDataQueue = Substitute.For <IBanlistDataQueue>();

            _sut = new BanlistProcessor(_wikiArticle, _banlistDataQueue, Substitute.For <ILogger <BanlistProcessor> >());
        }
Пример #2
0
        public ArticleDataFlow(IBanlistProcessor banlistProcessor, IBanlistDataQueue banlistDataQueue)
        {
            _jobs = new ConcurrentDictionary <Guid, TaskCompletionSource <ArticleCompletion> >();

            // Data flow options
            var maxDegreeOfParallelism = Environment.ProcessorCount;
            var nonGreedy = new ExecutionDataflowBlockOptions {
                BoundedCapacity = maxDegreeOfParallelism, MaxDegreeOfParallelism = maxDegreeOfParallelism
            };

            // Pipeline members
            _articleBufferBlock = new BufferBlock <Article>();

            var banlistProcessorTransformBlock = new TransformBlock <Article, ArticleProcessed>(article => banlistProcessor.Process(article), nonGreedy);
            var publishBanlistTransformBlock   = new TransformBlock <ArticleProcessed, YugiohBanlistCompletion>(articleProcessed => banlistDataQueue.Publish(articleProcessed), nonGreedy);
            var publishToQueueActionBlock      = new ActionBlock <YugiohBanlistCompletion>(yugiohCardCompletion => FinishedProcessing(yugiohCardCompletion));

            // Form the pipeline
            _articleBufferBlock.LinkTo(banlistProcessorTransformBlock);
            banlistProcessorTransformBlock.LinkTo(publishBanlistTransformBlock);
            publishBanlistTransformBlock.LinkTo(publishToQueueActionBlock);
        }
 public void SetUp()
 {
     _banlistProcessor = Substitute.For <IBanlistProcessor>();
     _banlistDataQueue = Substitute.For <IBanlistDataQueue>();
     _sut = new ArticleDataFlow(_banlistProcessor, _banlistDataQueue);
 }
Пример #4
0
 public BanlistProcessor(IWikiArticle wikiArticle, IBanlistDataQueue banlistDataQueue, ILogger <BanlistProcessor> logger)
 {
     _wikiArticle      = wikiArticle;
     _banlistDataQueue = banlistDataQueue;
     _logger           = logger;
 }