private List <ICard> MapCardsList(RootCardListDto cardListDto) { if (cardListDto == null) { throw new ArgumentNullException(nameof(cardListDto)); } if (cardListDto.Cards == null) { return(new List <ICard>()); } return(cardListDto.Cards .Select(x => ModelMapper.MapCard(x)) .ToList()); }
/// <summary> /// Maps a collection of card DTO objects to the card model. /// </summary> /// <param name="cardListDto">The list of cards DTO objects.</param> /// <returns>A list of card models.</returns> public static List <Card> MapCardsList(RootCardListDto cardListDto) { if (cardListDto == null) { throw new ArgumentNullException("cardListDto"); } if (cardListDto.Cards == null) { return(null); } return(cardListDto.Cards .Select(x => new Card(x)) .ToList()); }
public async Task AllAsync_Success() { // arrange const string CARD_NAME = "cardname1"; _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); _mockHeaderManager.Setup(x => x.Update(It.IsAny <IReadOnlyNameValueList <string> >())); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.TotalCount)).Returns(2000); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.PageSize)).Returns(1000); var cardDto = new CardDto() { Name = CARD_NAME }; var rootCardList = new RootCardListDto() { Cards = new List <CardDto> { cardDto }, }; _mockModelMapper.Setup(x => x.MapCard(It.IsAny <CardDto>())).Returns(new Card() { Name = CARD_NAME }); using var httpTest = new HttpTest(); httpTest.RespondWithJson(rootCardList); var service = new CardService( _mockHeaderManager.Object, _mockModelMapper.Object, ApiVersion.V1, _mockRateLimit.Object); // act var result = await service.AllAsync(); // assert Assert.True(result.IsSuccess); _mockRepository.VerifyAll(); }
public async Task Reset_Success() { const string CARD_NAME = "cardname1"; _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); _mockHeaderManager.Setup(x => x.Update(It.IsAny <IReadOnlyNameValueList <string> >())); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.TotalCount)).Returns(2000); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.PageSize)).Returns(1000); var cardDto = new CardDto() { Name = CARD_NAME }; var rootCardList = new RootCardListDto() { Cards = new List <CardDto> { cardDto }, }; using var httpTest = new HttpTest(); httpTest.RespondWithJson(rootCardList); _mockModelMapper.Setup(x => x.MapCard(It.IsAny <CardDto>())).Returns(new Card()); var service = new CardService( _mockHeaderManager.Object, _mockModelMapper.Object, ApiVersion.V1, _mockRateLimit.Object); service.Where(x => x.Name, "test"); // act service.Reset(); // assert await service.AllAsync(); httpTest.ShouldHaveCalled("https://api.magicthegathering.io/v1/cards"); }
public async Task Where_AddsIdParameter_Success() { const string MULTIPLE_IDS = "896a92b1-ed29-5daf-bf89-2502224f8f11|516dd7a4-fad8-5eed-bcdb-c05088762303"; const string ID_PARAM = "id"; _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); _mockHeaderManager.Setup(x => x.Update(It.IsAny <IReadOnlyNameValueList <string> >())); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.TotalCount)).Returns(2000); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.PageSize)).Returns(1000); var rootCardList = new RootCardListDto() { Cards = new List <CardDto> { new CardDto() }, }; using var httpTest = new HttpTest(); httpTest.RespondWithJson(rootCardList); _mockModelMapper.Setup(x => x.MapCard(It.IsAny <CardDto>())).Returns(new Card()); var service = new CardService( _mockHeaderManager.Object, _mockModelMapper.Object, ApiVersion.V1, _mockRateLimit.Object); // act await service .Where(x => x.Id, MULTIPLE_IDS) .AllAsync(); // assert httpTest .ShouldHaveCalled("https://api.magicthegathering.io/v1/cards*") .WithQueryParams(ID_PARAM); }
public async Task Where_AddsQueryParameters_Success() { const string NAME = "name1"; const string LANGUAGE = "English"; _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); _mockHeaderManager.Setup(x => x.Update(It.IsAny <IReadOnlyNameValueList <string> >())); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.TotalCount)).Returns(2000); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.PageSize)).Returns(1000); var rootCardList = new RootCardListDto() { Cards = new List <CardDto> { new CardDto() }, }; using var httpTest = new HttpTest(); httpTest.RespondWithJson(rootCardList); _mockModelMapper.Setup(x => x.MapCard(It.IsAny <CardDto>())).Returns(new Card()); var service = new CardService( _mockHeaderManager.Object, _mockModelMapper.Object, ApiVersion.V1, _mockRateLimit.Object); // act service .Where(x => x.Name, NAME) .Where(x => x.Language, LANGUAGE); // assert await service.AllAsync(); httpTest .ShouldHaveCalled("https://api.magicthegathering.io/v1/cards*") .WithQueryParams("name", "language"); }
public async Task Where_AddMultiverseIdParameter_Success() { const string MULTIPLE_MULTIS = "3|4"; const string MULTI_PARAM = "multiverseid"; _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); _mockHeaderManager.Setup(x => x.Update(It.IsAny <IReadOnlyNameValueList <string> >())); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.TotalCount)).Returns(2000); _mockHeaderManager.Setup(x => x.Get <int>(ResponseHeader.PageSize)).Returns(1000); var rootCardList = new RootCardListDto() { Cards = new List <CardDto> { new CardDto() }, }; using var httpTest = new HttpTest(); httpTest.RespondWithJson(rootCardList); _mockModelMapper.Setup(x => x.MapCard(It.IsAny <CardDto>())).Returns(new Card()); var service = new CardService( _mockHeaderManager.Object, _mockModelMapper.Object, ApiVersion.V1, _mockRateLimit.Object); // act await service .Where(x => x.MultiverseId, MULTIPLE_MULTIS) .AllAsync(); // assert httpTest .ShouldHaveCalled("https://api.magicthegathering.io/v1/cards*") .WithQueryParams(MULTI_PARAM); }
public async Task GenerateBoosterAsync_Exception_ReturnsFailure() { // arrange const string CARD_NAME = "cardname1"; _mockRateLimit.Setup(x => x.IsTurnedOn).Returns(false); _mockHeaderManager.Setup(x => x.Update(It.IsAny <IReadOnlyNameValueList <string> >())); var cardDto = new CardDto() { Name = CARD_NAME }; var rootCardList = new RootCardListDto() { Cards = new List <CardDto> { cardDto }, }; _mockModelMapper.Setup(x => x.MapCard(It.IsAny <CardDto>())).Throws(new Exception()); using var httpTest = new HttpTest(); httpTest.RespondWithJson(rootCardList); var service = new SetService( _mockHeaderManager.Object, _mockModelMapper.Object, ApiVersion.V1, _mockRateLimit.Object); // act var result = await service.GenerateBoosterAsync("12345"); // assert Assert.False(result.IsSuccess); _mockRepository.VerifyAll(); }