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); }
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(); }
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(); }
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); }