public async Task Given_A_BanlistFormat_If_Format_Is_Not_Found_Format_Should_Be_Null() { // Arrange _banlistService.LatestBanlistByFormatAcronym(Arg.Any <string>()).Returns(new BanlistCardSearchResult { Cards = new List <BanlistCardSearch>() }); // Act var result = await _sut.Handle(new LatestBanlistQuery(), CancellationToken.None); // Assert result.Format.Should().BeNull(); }
public async Task <LatestBanlistOutputModel> Handle(LatestBanlistQuery request, CancellationToken cancellationToken) { var response = new LatestBanlistOutputModel(); var banlistCardSearchResult = await _banlistService.LatestBanlistByFormatAcronym(request.Format.ToString()); if (banlistCardSearchResult.Cards.Any()) { var groupedCards = banlistCardSearchResult .Cards .GroupBy(c => c.Limit) .Select(nc => nc) .ToList(); var forbiddenCards = groupedCards.SingleOrDefault(grp => grp.Key == LimitConstants.Forbidden); var limnitCards = groupedCards.SingleOrDefault(grp => grp.Key == LimitConstants.Limited); var semiLimitedCards = groupedCards.SingleOrDefault(grp => grp.Key == LimitConstants.SemiLimited); var unlimitedCards = groupedCards.SingleOrDefault(grp => grp.Key == LimitConstants.Unlimited); response.Format = request.Format.ToString().ToUpper(); response.ReleaseDate = banlistCardSearchResult.ReleaseDate.ToString(BanlistConstants.ReleaseDateFormat); if (forbiddenCards != null) { response.Forbidden = forbiddenCards.Select(card => CardSearchMapperHelper.MapToCardOutputModel(_mapper, card)).ToList(); } if (limnitCards != null) { response.Limited = limnitCards.Select(card => CardSearchMapperHelper.MapToCardOutputModel(_mapper, card)).ToList(); } if (semiLimitedCards != null) { response.SemiLimited = semiLimitedCards.Select(card => CardSearchMapperHelper.MapToCardOutputModel(_mapper, card)).ToList(); } if (unlimitedCards != null) { response.Unlimited = unlimitedCards.Select(card => CardSearchMapperHelper.MapToCardOutputModel(_mapper, card)).ToList(); } } return(response); }