Esempio n. 1
0
        public async Task Given_A_BanlistInformationTask_If_Validation_Is_Succesful_Should_Invoke_BanlistProcessor_Process_Method_Twice()
        {
            // Arrange
            const int expected = 2;
            var       banlistInformationTask = new BanlistInformationTask {
                Category = "banlist", PageSize = 8
            };

            _validator.Validate(Arg.Any <BanlistInformationTask>()).Returns(new BanlistInformationTaskValidator().Validate(banlistInformationTask));

            // Act

            await _sut.Handle(banlistInformationTask, CancellationToken.None);

            // Assert
            await _banlistProcessor.Received(expected).Process(Arg.Any <BanlistType>());
        }
        public async Task Given_An_Article_Should_Invoke_Process_Once()
        {
            // Arrange
            var article = new Article {
                Id = 3242423, CorrelationId = Guid.NewGuid()
            };

            _banlistProcessor.Process(Arg.Any <Article>()).Returns(new ArticleProcessed()
            {
                Article = article, IsSuccessful = true
            });
            _banlistDataQueue.Publish(Arg.Any <ArticleProcessed>()).Returns(new YugiohBanlistCompletion {
                Article = article, IsSuccessful = true
            });

            // Act
            await _sut.ProcessDataFlow(article);

            // Assert
            await _banlistProcessor.Received(1).Process(Arg.Any <Article>());
        }