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(); }
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(); }
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(); }
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(); }
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); }
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(); }
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>()); }