Esempio n. 1
0
 /// <summary>
 /// 创建 HtmlParserResult 对象
 /// </summary>
 /// <param name="parser">得到此解析结果的解析器</param>
 /// <param name="domProvider">HTML DOM 提供程序</param>
 /// <param name="provider">解析器提供程序</param>
 /// <param name="virtualPath">文档的虚拟路径</param>
 public HtmlParserResult( IHtmlParser parser, IHtmlDomProvider domProvider, IHtmlParserProvider provider, string virtualPath )
 {
     Parser = parser;
       DomProvider = domProvider;
       Provider = provider;
       VirtualPath = virtualPath;
 }
 public NflPlayerService(IHtmlParserProvider htmlParserProvider, IEspnHtmlTrimService espnHtmlTrimService, IUrlConfigurationProvider urlConfigurationProvider)
 {
     _cache = new Dictionary <int, string>();
     _htmlParserProvider       = htmlParserProvider;
     _espnHtmlTrimService      = espnHtmlTrimService;
     _urlConfigurationProvider = urlConfigurationProvider;
 }
Esempio n. 3
0
 /// <summary>
 /// 创建 HtmlParserResult 对象
 /// </summary>
 /// <param name="parser">得到此解析结果的解析器</param>
 /// <param name="domProvider">HTML DOM 提供程序</param>
 /// <param name="provider">解析器提供程序</param>
 /// <param name="virtualPath">文档的虚拟路径</param>
 public HtmlParserResult(IHtmlParser parser, IHtmlDomProvider domProvider, IHtmlParserProvider provider, string virtualPath)
 {
     Parser      = parser;
     DomProvider = domProvider;
     Provider    = provider;
     VirtualPath = virtualPath;
 }
Esempio n. 4
0
 public LotService(
     IUnitOfWork unitOfWork,
     IHtmlParserProvider htmlParserProvider,
     ILotModelFactory lotModelFactory,
     IFilterModelFactory filterModelFactory) : base(unitOfWork)
 {
     this.htmlParserProvider = htmlParserProvider ?? throw new ArgumentNullException(nameof(htmlParserProvider));;
     this.lotModelFactory    = lotModelFactory ?? throw new ArgumentNullException(nameof(lotModelFactory));;
     this.filterModelFactory = filterModelFactory ?? throw new ArgumentNullException(nameof(filterModelFactory));;
 }
Esempio n. 5
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 async Task Should_GetPlayerNameForId_ForStandardInput()
        {
            //arrange
            int    playerId = 55555;
            string url      = "http://www.espn.com/nfl/player/_/id/55555";
            string xPath    = "//head/title";
            IHtmlParserProvider htmlParserProvider = A.Fake <IHtmlParserProvider>();

            A.CallTo(() => htmlParserProvider.getInnerTextForFirstXPathMatch(url, xPath)).Returns("Emmanuel Sanders Stats, News, Bio | ESPN");
            IEspnHtmlTrimService espnHtmlTrimService = A.Fake <IEspnHtmlTrimService>();

            A.CallTo(() => espnHtmlTrimService.TrimNameFromTitleTag("Emmanuel Sanders Stats, News, Bio | ESPN")).Returns("Emmanuel Sanders");
            IUrlConfigurationProvider urlConfigurationProvider = A.Fake <IUrlConfigurationProvider>();

            A.CallTo(() => urlConfigurationProvider.GetNflPlayerEndpoint(playerId)).Returns(url);
            NflPlayerService nflPlayerService = new NflPlayerService(htmlParserProvider, espnHtmlTrimService, urlConfigurationProvider);

            //act
            string playerName = await nflPlayerService.GetPlayerNameForId(55555);

            //assert
            playerName.Should().BeEquivalentTo("Emmanuel Sanders");
        }
        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));
        }