Esempio n. 1
0
        public void Given_An_Invalid_Message_Validation_Should_Fail(string message)
        {
            // Arrange
            var inputModel = new CardInformationConsumer {
                Message = message
            };

            // Act
            Action act = () => _sut.ShouldHaveValidationErrorFor(ci => ci.Message, inputModel);

            // Assert
            act.Invoke();
        }
Esempio n. 2
0
        public void Given_An_Invalid_Category_Validation_Should_Fail(string category)
        {
            // Arrange
            var inputModel = new CardInformationConsumer {
                Category = category
            };

            // Act
            Action act = () => _sut.ShouldHaveValidationErrorFor(ci => ci.Category, inputModel);

            // Assert
            act.Invoke();
        }
Esempio n. 3
0
        public async Task Given_An_Invalid_CardInformationConsumer_IsSuccessful_Should_Be_False()
        {
            // Arrange
            var cardInformationConsumer = new CardInformationConsumer();

            _validator.Validate(Arg.Any <CardInformationConsumer>())
            .Returns(new CardInformationConsumerValidator().Validate(cardInformationConsumer));

            // Act
            var result = await _sut.Handle(cardInformationConsumer, CancellationToken.None);

            // Assert
            result.IsSuccessful.Should().BeFalse();
        }
Esempio n. 4
0
        public async Task Given_An_Invalid_CardInformationConsumer_Errors_List_Should_Not_Be_Null_Or_Empty()
        {
            // Arrange
            var cardTipInformationConsumer = new CardInformationConsumer();

            _validator.Validate(Arg.Any <CardInformationConsumer>())
            .Returns(new CardInformationConsumerValidator().Validate(cardTipInformationConsumer));

            // Act
            var result = await _sut.Handle(cardTipInformationConsumer, CancellationToken.None);

            // Assert
            result.Errors.Should().NotBeNullOrEmpty();
        }
        public async Task Given_Card_Json_If_Json_Is_Processed_Successfully_Is_The_IsSuccessful_Should_Be_True()
        {
            // Arrange
            var cardInformationConsumer = new CardInformationConsumer
                                          (
                "{\"Name\":\"Amazoness Archer\",\"Types\":\"Warrior / Effect\",\"CardType\":\"Monster\",\"Attribute\":\"Earth\",\"Level\":4,\"Rank\":null,\"PendulumScale\":null,\"AtkDef\":\"1400 / 1000\",\"AtkLink\":null,\"CardNumber\":\"91869203\",\"Materials\":null,\"CardEffectTypes\":\"Ignition\",\"Property\":null,\"Description\":\"You can Tribute 2 monsters; inflict 1200 damage to your opponent.\",\"ImageUrl\":\"https://vignette.wikia.nocookie.net/yugioh/images/0/02/AmazonessArcher-LEDU-EN-C-1E.png\",\"LinkArrows\":null,\"MonsterSubCategoriesAndTypes\":[\"Warrior\",\"Effect\"],\"MonsterLinkArrows\":null}"
                                          );

            // Act
            var result = await _sut.Handle(cardInformationConsumer, CancellationToken.None);

            // Assert
            result.IsSuccessful.Should().BeTrue();
        }
        public async Task Given_An_Invalid_CardInformationConsumer_ArticleConsumerResult_Should_Be_Null()
        {
            // Arrange
            var cardInformationConsumer = new CardInformationConsumer();

            _validator
            .Validate(Arg.Is(cardInformationConsumer))
            .Returns(new CardInformationConsumerValidator().Validate(cardInformationConsumer));

            // Act
            var result = await _sut.Handle(cardInformationConsumer, CancellationToken.None);

            // Assert
            result.ArticleConsumerResult.Should().BeNull();
        }
Esempio n. 7
0
        public async Task <CardTriviaInformationConsumerResult> Handle(CardTriviaInformationConsumer request, CancellationToken cancellationToken)
        {
            var cardTriviaInformationConsumerResult = new CardTriviaInformationConsumerResult();

            var cardInformation = new CardInformationConsumer {
                Category = ArticleCategory.CardTrivia, Message = request.Message
            };

            var result = await _mediator.Send(cardInformation, cancellationToken);

            if (!result.IsSuccessful)
            {
                cardTriviaInformationConsumerResult.Errors = result.Errors;
            }

            return(cardTriviaInformationConsumerResult);
        }
Esempio n. 8
0
        public async Task Given_A_Valid_CardInformationConsumer_Should_Execute_Process_Method_Once()
        {
            // Arrange
            var cardInformationConsumer = new CardInformationConsumer
            {
                Category = "category",
                Message  = "{\"Id\":703544,\"CorrelationId\":\"3e2bf3ca-d903-440c-8cd5-be61c95ae1fc\",\"Title\":\"Tenyi\",\"Url\":\"https://yugioh.fandom.com/wiki/Card_Tips:Tenyi\"}"
            };

            _validator.Validate(Arg.Any <CardInformationConsumer>())
            .Returns(new CardInformationConsumerValidator().Validate(cardInformationConsumer));
            _articleProcessor.Process(Arg.Any <string>(), Arg.Any <Article>()).Returns(new ArticleTaskResult());

            // Act
            await _sut.Handle(cardInformationConsumer, CancellationToken.None);

            // Assert
            await _articleProcessor.Received(1).Process(Arg.Any <string>(), Arg.Any <Article>());
        }
        public async Task Given_A_Valid_CardInformationConsumer_IsSuccessful_Should_Be_True()
        {
            // Arrange
            var cardInformationConsumer = new CardInformationConsumer
            {
                Category = "category",
                Message  = "{\"Id\":703544,\"CorrelationId\":\"3e2bf3ca-d903-440c-8cd5-be61c95ae1fc\",\"Title\":\"Tenyi\",\"Url\":\"https://yugioh.fandom.com/wiki/Card_Tips:Tenyi\"}"
            };

            _validator.Validate(Arg.Any <CardInformationConsumer>())
            .Returns(new CardInformationConsumerValidator().Validate(cardInformationConsumer));
            _cardSectionProcessor.Process(Arg.Any <string>(), Arg.Any <CardSectionMessage>()).Returns(new CardSectionDataTaskResult <CardSectionMessage>());

            // Act
            var result = await _sut.Handle(cardInformationConsumer, CancellationToken.None);

            // Assert
            result.IsSuccessful.Should().BeTrue();
        }
Esempio n. 10
0
        public async Task Given_A_Valid_CardInformationConsumer_If_Not_Processed_Successfully_Errors_Should_Not_Be_Null_Or_Empty()
        {
            // Arrange
            var cardInformationConsumer = new CardInformationConsumer
            {
                Message = "{\"Id\":703544,\"CorrelationId\":\"3e2bf3ca-d903-440c-8cd5-be61c95ae1fc\",\"Title\":\"Tenyi\",\"Url\":\"https://yugioh.fandom.com/wiki/Card_Tips:Tenyi\"}"
            };

            _validator.Validate(Arg.Any <CardInformationConsumer>())
            .Returns(new CardInformationConsumerValidator().Validate(cardInformationConsumer));
            _articleProcessor.Process(Arg.Any <string>(), Arg.Any <Article>()).Returns(new ArticleTaskResult {
                Errors = new List <string> {
                    "Something went horribly wrong"
                }
            });

            // Act
            var result = await _sut.Handle(cardInformationConsumer, CancellationToken.None);

            // Assert
            result.Errors.Should().NotBeNullOrEmpty();
        }
        public async Task Given_An_Valid_CardInformationConsumer_Should_Invoke_ArticleProcessor_Process_Once()
        {
            // Arrange
            var cardInformationConsumer = new CardInformationConsumer
            {
                Message = "{\"Id\":10917,\"Title\":\"Amazoness Archer\",\"Url\":\"https://yugioh.fandom.com/wiki/Amazoness_Archer\"}"
            };

            _validator
            .Validate(Arg.Is(cardInformationConsumer))
            .Returns(new CardInformationConsumerValidator().Validate(cardInformationConsumer));

            _articleProcessor.Process(Arg.Any <Article>())
            .Returns(new ArticleConsumerResult {
                IsSuccessfullyProcessed = true
            });

            // Act
            await _sut.Handle(cardInformationConsumer, CancellationToken.None);

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