public async Task CallGetHeroForEveryPickOrBan() { var matchDetailsDto = new MatchDetailsDto { PicksAndBans = new List <PickOrBanDto> { new PickOrBanDto { HeroId = "1" }, new PickOrBanDto { HeroId = "3" }, new PickOrBanDto { HeroId = "5" } }, Players = new List <MatchPlayerDto>() }; var httpClient = new Mock <IHttpClient>(); var jsonSerializer = new Mock <IJsonSerializer>(); var mapper = new Mock <IMapper>(); mapper.Setup(x => x.Map <MatchDetailsDto>(It.IsAny <object>())).Returns(() => matchDetailsDto); var heroesProvider = new Mock <IHeroesProvider>(); var itemsProvider = new Mock <IItemsProvider>(); var playerService = new PlayerService(httpClient.Object, jsonSerializer.Object, mapper.Object, heroesProvider.Object, itemsProvider.Object); await playerService.GetMatchDetailsAsync("id"); heroesProvider.Verify(x => x.GetHeroAsync("1"), Times.Once); heroesProvider.Verify(x => x.GetHeroAsync("3"), Times.Once); heroesProvider.Verify(x => x.GetHeroAsync("5"), Times.Once); }
public async Task CallGetAllItemsInOrderToSetPlayerItems() { var matchDetailsDto = new MatchDetailsDto { PicksAndBans = new List <PickOrBanDto>(), Players = new List <MatchPlayerDto> { new MatchPlayerDto { HeroId = "11", Items = new List <ItemDto>() }, new MatchPlayerDto { HeroId = "33", Items = new List <ItemDto>() }, new MatchPlayerDto { HeroId = "55", Items = new List <ItemDto>() } } }; var httpClient = new Mock <IHttpClient>(); var jsonSerializer = new Mock <IJsonSerializer>(); var mapper = new Mock <IMapper>(); mapper.Setup(x => x.Map <MatchDetailsDto>(It.IsAny <object>())).Returns(() => matchDetailsDto); var heroesProvider = new Mock <IHeroesProvider>(); var itemsProvider = new Mock <IItemsProvider>(); IEnumerable <ItemDto> items = new List <ItemDto>(); itemsProvider.Setup(x => x.GetAllItemsAsync()).Returns(Task.FromResult(items)); var playerService = new PlayerService(httpClient.Object, jsonSerializer.Object, mapper.Object, heroesProvider.Object, itemsProvider.Object); await playerService.GetMatchDetailsAsync("id"); itemsProvider.Verify(x => x.GetAllItemsAsync(), Times.Once); }
public static MatchResult MapFrom(MatchDetailsDto matchDetailsDto, string Key) { var participantId = matchDetailsDto.ParticipantIdentities.First(p => p.Player.AccountId == Key).ParticipantId; var playerMatchInfo = matchDetailsDto.Participants.First(p => p.ParticipantId == participantId); bool won = playerMatchInfo.Stats.Win; int championId = playerMatchInfo.ChampionId; return(new MatchResult { Win = playerMatchInfo.Stats.Win, Position = RiotApiUtils.GetPosition(playerMatchInfo.Timeline.Lane, playerMatchInfo.Timeline.Role), TotalGold = playerMatchInfo.Stats.GoldEarned, Kills = playerMatchInfo.Stats.Kills, Assists = playerMatchInfo.Stats.Assists, Deaths = playerMatchInfo.Stats.Deaths, ChampionId = playerMatchInfo.ChampionId, Timestamp = matchDetailsDto.GameCreation }); }
public async Task CallTheCorrectEndPointToGetTheData() { var matchDetailsDto = new MatchDetailsDto { PicksAndBans = new List <PickOrBanDto>(), Players = new List <MatchPlayerDto>() }; var httpClient = new Mock <IHttpClient>(); var jsonSerializer = new Mock <IJsonSerializer>(); var mapper = new Mock <IMapper>(); mapper.Setup(x => x.Map <MatchDetailsDto>(It.IsAny <object>())).Returns(() => matchDetailsDto); var heroesProvider = new Mock <IHeroesProvider>(); var itemsProvider = new Mock <IItemsProvider>(); var playerService = new PlayerService(httpClient.Object, jsonSerializer.Object, mapper.Object, heroesProvider.Object, itemsProvider.Object); await playerService.GetMatchDetailsAsync("id"); httpClient.Verify(x => x.GetAsync(string.Format(DotaApiEndpoints.MatchDetailsUrl, "id"), null), Times.Once); }
public async Task DeserializeTheJsonIntoTheCorrectType() { var matchDetailsDto = new MatchDetailsDto { PicksAndBans = new List <PickOrBanDto>(), Players = new List <MatchPlayerDto>() }; var httpClient = new Mock <IHttpClient>(); httpClient.Setup(x => x.GetAsync(It.IsAny <string>(), null)).Returns(Task.FromResult("response")); var jsonSerializer = new Mock <IJsonSerializer>(); var mapper = new Mock <IMapper>(); mapper.Setup(x => x.Map <MatchDetailsDto>(It.IsAny <object>())).Returns(() => matchDetailsDto); var heroesProvider = new Mock <IHeroesProvider>(); var itemsProvider = new Mock <IItemsProvider>(); var playerService = new PlayerService(httpClient.Object, jsonSerializer.Object, mapper.Object, heroesProvider.Object, itemsProvider.Object); await playerService.GetMatchDetailsAsync("id"); jsonSerializer.Verify(x => x.Deserialize <MatchDetailsJsonModel>("response")); }
public async Task MapTheMatchDetailsToTheCorrectType() { var matchDetailsDto = new MatchDetailsDto { PicksAndBans = new List <PickOrBanDto>(), Players = new List <MatchPlayerDto>() }; var httpClient = new Mock <IHttpClient>(); var jsonSerializer = new Mock <IJsonSerializer>(); var matchDetails = new MatchDetailsJsonModel(); jsonSerializer.Setup(x => x.Deserialize <MatchDetailsJsonModel>(It.IsAny <string>())).Returns(matchDetails); var mapper = new Mock <IMapper>(); mapper.Setup(x => x.Map <MatchDetailsDto>(It.IsAny <object>())).Returns(() => matchDetailsDto); var heroesProvider = new Mock <IHeroesProvider>(); var itemsProvider = new Mock <IItemsProvider>(); var playerService = new PlayerService(httpClient.Object, jsonSerializer.Object, mapper.Object, heroesProvider.Object, itemsProvider.Object); await playerService.GetMatchDetailsAsync("id"); mapper.Verify(x => x.Map <MatchDetailsDto>(matchDetails), Times.Once); }