コード例 #1
0
        protected override void ProcessRecord()
        {
            WriteVerbose("Getting wallpaper...");

            var wallheavenClient = new WallhavenClient(new WebClientFactory());
            List <WallpaperInfo> wallpaperInfos = new List <WallpaperInfo>();

            if (Latest.IsPresent)
            {
                wallpaperInfos = wallheavenClient.GetLatest(PageNumber);
            }
            else if (Random.IsPresent)
            {
                wallpaperInfos = wallheavenClient.GetRandom(PageNumber);
            }
            else if (Search.IsPresent)
            {
                var searchParams = new SearchParameter
                {
                    Page        = PageNumber,
                    Categories  = GetCategory(),
                    Sorting     = SearchSorting,
                    Order       = SearchOrder,
                    Query       = SearchQuery,
                    Purity      = GetPurity(),
                    Ratios      = Ratios,
                    Resolutions = Resolutions
                };

                wallpaperInfos = wallheavenClient.Search(searchParams);
            }

            WriteVerbose($"Got {wallpaperInfos.Count} wallpaper");
            wallpaperInfos.ForEach(WriteObject);
        }
コード例 #2
0
        public void Search_SearchParamsWithIllegalPageNumber_CallsSearchUrlWithPageNumberOne(int?pageNumber)
        {
            var searchParam = new SearchParameter
            {
                Page = pageNumber
            };

            var webClientMock    = CreateWebClientMock(new Uri("https://alpha.wallhaven.cc/search?page=1"));
            var webClientFactory = CreateWebClientFactory(webClientMock.Object);
            var wallhavenClient  = new WallhavenClient(webClientFactory);

            wallhavenClient.Search(searchParam);

            webClientMock.VerifyAll();
        }
コード例 #3
0
        public void Search_SearchParams_CallsSearchUrlWithQueryParameter()
        {
            var searchParam = new SearchParameter
            {
                Page    = 2,
                Sorting = Sorting.Views
            };
            var uri              = new Uri($"https://alpha.wallhaven.cc/search?page={searchParam.Page}&sorting={searchParam.Sorting}");
            var webClientMock    = CreateWebClientMock(uri);
            var webClientFactory = CreateWebClientFactory(webClientMock.Object);
            var wallhavenClient  = new WallhavenClient(webClientFactory);

            wallhavenClient.Search(searchParam);

            webClientMock.VerifyAll();
        }
コード例 #4
0
        public void Search_SearchParams_ReturnsWallpaperInfos()
        {
            var webClientMock    = CreateWebClientMock(includeDetailPageData: true);
            var webClientFactory = CreateWebClientFactory(webClientMock.Object);
            var wallhavenClient  = new WallhavenClient(webClientFactory);
            var searchParam      = new SearchParameter
            {
                Sorting    = Sorting.Views,
                Order      = Order.Descending,
                Categories = new Category(CategoryValue.General)
            };

            List <WallpaperInfo> wallpaperInfos = wallhavenClient.Search(searchParam);

            Assert.That(wallpaperInfos, Is.Not.Empty);
            Assert.That(wallpaperInfos.All(IsValidWallpaperInfo), Is.True);
        }