public async Task <CardInformationConsumerResult> Handle(CardInformationConsumer request, CancellationToken cancellationToken) { var cardInformationResult = new CardInformationConsumerResult(); var validationResults = _validator.Validate(request); if (validationResults.IsValid) { var cardSectionData = JsonConvert.DeserializeObject <CardSectionMessage>(request.Message); _logger.LogInformation("Processing category {@Category} '{@Name}'", request.Category, cardSectionData.Name); var results = await _cardSectionProcessor.Process(request.Category, cardSectionData); _logger.LogInformation("Finished processing category {@Category} '{@Name}'", request.Category, cardSectionData.Name); if (!results.IsSuccessful) { cardInformationResult.Errors.AddRange(results.Errors); } } else { cardInformationResult.Errors = validationResults.Errors.Select(err => err.ErrorMessage).ToList(); } return(cardInformationResult); }
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(); }