public async Task CallGetHeroForEveryGuideFound()
        {
            var dotaHelperData = new Mock <IDotaHelperData>();
            var guides         = new Mock <IGuideData>();

            guides.Setup(x => x.CountAsync()).Returns(Task.FromResult(50));
            dotaHelperData.Setup(x => x.Guides).Returns(guides.Object);
            var heroesProvider = new Mock <IHeroesProvider>();

            heroesProvider.Setup(x => x.GetHeroAsync(It.IsAny <string>())).Returns(Task.FromResult(new HeroDto {
                ImageUrl = ""
            }));
            var itemsProvider = new Mock <IItemsProvider>();
            var mapper        = new Mock <IMapper>();
            var guidesList    = new List <GuideListDto> {
                new GuideListDto {
                    HeroId = "1", ItemIds = new List <string>()
                }, new GuideListDto {
                    HeroId = "2", ItemIds = new List <string>()
                }, new GuideListDto {
                    HeroId = "3", ItemIds = new List <string>()
                }
            };

            mapper.Setup(x => x.Map <IEnumerable <GuideListDto> >(It.IsAny <object>())).Returns(guidesList);

            var guideService = new GuidesService(dotaHelperData.Object, heroesProvider.Object, itemsProvider.Object, mapper.Object);

            await guideService.GetGuidesAsync();

            heroesProvider.Verify(x => x.GetHeroAsync("1"), Times.Once);
            heroesProvider.Verify(x => x.GetHeroAsync("2"), Times.Once);
            heroesProvider.Verify(x => x.GetHeroAsync("3"), Times.Once);
        }
        public async Task CorrectlySkipAndTakeWhenPageIsNegativeOr0(int page)
        {
            var dotaHelperData = new Mock <IDotaHelperData>();
            var guides         = new Mock <IGuideData>();

            guides.Setup(x => x.CountAsync()).Returns(Task.FromResult(50));
            dotaHelperData.Setup(x => x.Guides).Returns(guides.Object);
            var heroesProvider = new Mock <IHeroesProvider>();
            var itemsProvider  = new Mock <IItemsProvider>();
            var mapper         = new Mock <IMapper>();

            var guideService = new GuidesService(dotaHelperData.Object, heroesProvider.Object, itemsProvider.Object, mapper.Object);

            await guideService.GetGuidesAsync(page);

            var skip = 0;
            var take = 5;

            guides.Verify(x => x.GetPagedGuidesAsync(skip, take));
        }