コード例 #1
0
 public void ThrowsArgumentNullExceptionForNullAttributeScrapingService()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         AttributeScrapers.AllWithScrapingServices(null, string.Empty);
     });
 }
コード例 #2
0
        public static IServiceCollection AddScrapingSupport(this IServiceCollection services)
        {
            services.AddTransient <IInstanceIdGenerator, InstanceIdGenerator>();
            services.AddTransient <IHtmlParserProvider, DefaultHtmlParserProvider>();
            services.AddTransient <IMovementProvider, DefaultMovementProvider>();
            services.AddTransient <IMoveProvider, DefaultMoveProvider>();
            services.AddTransient <IPageDownloader, DefaultPageDownloader>();
            services.AddTransient <IWebClientProvider, DefaultWebClientProvider>();
            services.AddTransient <IAttributeProvider, DefaultAttributeProvider>();
            services.AddSingleton <IColorScrapingService, DefaultColorScrapingService>(sp =>
            {
                string css = sp.GetService <IPageDownloader>()
                             .DownloadPageSource(new Uri("http://kuroganehammer.com/css/character.css"),
                                                 sp.GetService <IWebClientProvider>());
                return(new DefaultColorScrapingService(css));
            });
            services.AddTransient <IAttributeScrapingServices, DefaultAttributeScrapingServices>();
            services.AddTransient <IMoveScrapingServices, DefaultMoveScrapingServices>();
            services.AddTransient <IMovementScrapingServices, DefaultMovementScrapingServices>();
            services.AddTransient <IUniqueDataProvider, DefaultUniqueDataProvider>();
            services.AddTransient <GroundMoveScraper>();
            services.AddTransient <AerialMoveScraper>();
            services.AddTransient <SpecialMoveScraper>();
            services.AddTransient <ThrowMoveScraper>();

            services.AddTransient <ICharacterMoveScraper, DefaultCharacterMoveScraper>(sp =>
            {
                var scrapers = new List <IMoveScraper>
                {
                    sp.GetService <GroundMoveScraper>(),
                    sp.GetService <AerialMoveScraper>(),
                    sp.GetService <SpecialMoveScraper>(),
                    sp.GetService <ThrowMoveScraper>()
                };

                return(new DefaultCharacterMoveScraper(scrapers));
            });

            services.AddTransient <IMovementScraper, DefaultMovementScraper>();
            services.AddTransient <ICharacterDataScrapingServices, DefaultCharacterDataScrapingServices>(sp =>
            {
                var scrapers = AttributeScrapers.AllWithScrapingServices(sp.GetService <IAttributeScrapingServices>());
                return(new DefaultCharacterDataScrapingServices(
                           sp.GetService <IColorScrapingService>(),
                           sp.GetService <IMovementScraper>(),
                           scrapers,
                           sp.GetService <ICharacterMoveScraper>(),
                           sp.GetService <IUniqueDataScrapingServices>(),
                           sp.GetService <IWebServices>(),
                           sp.GetService <IInstanceIdGenerator>()));
            });
            services.AddTransient <ICharacterDataScraper, DefaultCharacterDataScraper>();
            services.AddTransient <IUniqueDataScrapingServices, DefaultUniqueDataScrapingServices>();

            services.AddSingleton <IWebServices, DefaultWebServices>();


            return(services);
        }
コード例 #3
0
        public void AllWithScrapingServicesContainsNoDuplicateScrapers()
        {
            var attributeScrapingServiceMock = new Mock <IAttributeScrapingServices>();

            var actual = AttributeScrapers.AllWithScrapingServices(attributeScrapingServiceMock.Object, string.Empty).ToList();

            Assert.That(actual.Count, Is.EqualTo(actual.Distinct().Count()), "There are duplicate scrapers in the returned enumerable.");
        }
コード例 #4
0
        private static IEnumerable <AttributeScraper> ScrapersUltimate()
        {
            var ultimateScrapers = AttributeScrapers.AllWithScrapingServices(_scrapingServices, $"{Keys.KHSiteBaseUrl}{Keys.UltimateUrl}").ToList();

            foreach (var scraper in ultimateScrapers)
            {
                yield return(scraper);
            }
        }
        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));
        }