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);
        }
Пример #2
0
 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);
 }
Пример #3
0
        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));
        }
Пример #6
0
 public FutureSyncController(IWebClientProvider webClientProvider)
 {
     this.webClientProvider = webClientProvider;
 }
Пример #7
0
 public ApiAccessor(IWebClientProvider webClientProvider)
 {
     // prevent auto detecting of proxy settings to improve performance
     WebRequest.DefaultWebProxy = null;
     _webClientProvider = webClientProvider;
 }
		public PivotalTrackerClient(IWebClientProvider webClientProvider)
		{
			WebClientProvider = webClientProvider;
		}