public void ThrowsArgumentNullExceptionForNullAttributeScrapingService() { Assert.Throws <ArgumentNullException>(() => { AttributeScrapers.AllWithScrapingServices(null, string.Empty); }); }
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); }
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."); }
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)); }