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);
        }
예제 #3
0
        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);
        }