public string DownloadPageSource(Uri requestedPageSourceUri, IWebClientProvider webClientProvider) { Guard.VerifyObjectNotNull(webClientProvider, nameof(webClientProvider)); if (!requestedPageSourceUri.IsWellFormedOriginalString()) { throw new ArgumentException($"'{requestedPageSourceUri}' is not well-formed. Additional escaping may be required"); } string pageSource; try { using (var client = webClientProvider.Create()) { pageSource = client.DownloadString(requestedPageSourceUri); } } catch (WebException ex) when(((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.NotFound) { throw new PageNotFoundException(ex.Message, ex); } return(pageSource); }
public void Init() { webClient = Substitute.For <IWebClient>(); webClientProvider = Substitute.For <IWebClientProvider>(); webClient.DownloadString(Arg.Any <string>()).Returns(File.ReadAllText("sample.json")); webClientProvider.WebClient().Returns(webClient); futureSyncController = new FutureSyncController(webClientProvider); }
public DefaultWebServices(IHtmlParserProvider htmlParserProvider, IWebClientProvider webClientProvider, IPageDownloader pageDownloader) { Guard.VerifyObjectNotNull(htmlParserProvider, nameof(htmlParserProvider)); Guard.VerifyObjectNotNull(webClientProvider, nameof(webClientProvider)); Guard.VerifyObjectNotNull(pageDownloader, nameof(pageDownloader)); _htmlParserProvider = htmlParserProvider; _webClientProvider = webClientProvider; _pageDownloader = pageDownloader; _cachedUrls = new Dictionary <string, CacheableUrlResponse>(); }
public void SetUp() { var instanceIdGenerator = new InstanceIdGenerator(); _htmlParserProvider = new DefaultHtmlParserProvider(); _movementProvider = new DefaultMovementProvider(instanceIdGenerator); _moveProvider = new DefaultMoveProvider(instanceIdGenerator); _pageDownloader = new DefaultPageDownloader(); _webClientProvider = new DefaultWebClientProvider(); _attributeProvider = new DefaultAttributeProvider(instanceIdGenerator); _imageScrapingProvider = new DefaultImageScrapingProvider(); _imageScrapingService = new DefaultImageScrapingService(_imageScrapingProvider); _uniqueDataProvider = new DefaultUniqueDataProvider(instanceIdGenerator); _webServices = new DefaultWebServices(_htmlParserProvider, _webClientProvider, _pageDownloader); _attributeScrapingServices = new DefaultAttributeScrapingServices(_attributeProvider, _webServices); _moveScrapingServices = new DefaultMoveScrapingServices(_moveProvider, _webServices); _movementScrapingServices = new DefaultMovementScrapingServices(_movementProvider, _webServices); _uniqueDataScrapingServices = new DefaultUniqueDataScrapingServices(_uniqueDataProvider, _webServices); _groundMoveScraper = new GroundMoveScraper(_moveScrapingServices); _aerialMoveScraper = new AerialMoveScraper(_moveScrapingServices); _specialMoveScraper = new SpecialMoveScraper(_moveScrapingServices); _throwMovesScraper = new ThrowMoveScraper(_moveScrapingServices); _characterMoveScraper = new DefaultCharacterMoveScraper(new List <IMoveScraper> { _groundMoveScraper, _aerialMoveScraper, _specialMoveScraper, _throwMovesScraper }); var attributeScrapers = new List <IAttributeScraper> { new AirSpeedScraper(_attributeScrapingServices), new AirDodgeScraper(_attributeScrapingServices) }; _movementScraper = new DefaultMovementScraper(_movementScrapingServices); _characterDataScrapingServices = new DefaultCharacterDataScrapingServices(_imageScrapingService, _movementScraper, attributeScrapers, _characterMoveScraper, _uniqueDataScrapingServices, _webServices, instanceIdGenerator); _characterDataScraper = new DefaultCharacterDataScraper(_characterDataScrapingServices); }
public DefaultCharacterDataScraper MakeCharacterDataScraper() { var instanceIdGenerator = new InstanceIdGenerator(); _htmlParserProvider = new DefaultHtmlParserProvider(); _movementProvider = new DefaultMovementProvider(instanceIdGenerator); _moveProvider = new DefaultMoveProvider(instanceIdGenerator); _pageDownloader = new DefaultPageDownloader(); _webClientProvider = new DefaultWebClientProvider(); _attributeProvider = new DefaultAttributeProvider(instanceIdGenerator); _imageScrapingProvider = new DefaultImageScrapingProvider(); _imageScrapingService = new DefaultColorScrapingService(_characterCss); //_imageScrapingProvider); _uniqueDataProvider = new DefaultUniqueDataProvider(instanceIdGenerator); _webServices = new DefaultWebServices(_htmlParserProvider, _webClientProvider, _pageDownloader); _attributeScrapingServices = new DefaultAttributeScrapingServices(_attributeProvider, _webServices); _moveScrapingServices = new DefaultMoveScrapingServices(_moveProvider, _webServices); _movementScrapingServices = new DefaultMovementScrapingServices(_movementProvider, _webServices); _uniqueDataScrapingServices = new DefaultUniqueDataScrapingServices(_uniqueDataProvider, _webServices); _groundMoveScraper = new GroundMoveScraper(_moveScrapingServices); _aerialMoveScraper = new AerialMoveScraper(_moveScrapingServices); _specialMoveScraper = new SpecialMoveScraper(_moveScrapingServices); _throwMoveScraper = new ThrowMoveScraper(_moveScrapingServices); _characterMoveScraper = new DefaultCharacterMoveScraper(new List <IMoveScraper> { _groundMoveScraper, _aerialMoveScraper, _specialMoveScraper, _throwMoveScraper }); var attributeScrapers = AttributeScrapers.AllWithScrapingServices(_attributeScrapingServices, _urlUnderTest); _movementScraper = new DefaultMovementScraper(_movementScrapingServices); _characterDataScrapingServices = new DefaultCharacterDataScrapingServices(_imageScrapingService, _movementScraper, attributeScrapers, _characterMoveScraper, _uniqueDataScrapingServices, _webServices, instanceIdGenerator); return(new DefaultCharacterDataScraper(_characterDataScrapingServices)); }
public FutureSyncController(IWebClientProvider webClientProvider) { this.webClientProvider = webClientProvider; }
public ApiAccessor(IWebClientProvider webClientProvider) { // prevent auto detecting of proxy settings to improve performance WebRequest.DefaultWebProxy = null; _webClientProvider = webClientProvider; }
public PivotalTrackerClient(IWebClientProvider webClientProvider) { WebClientProvider = webClientProvider; }