public ExtractorExecutor( ILogger <ExtractorExecutor> logger, IApisClient apisClient, IApiExtractor apiExtractor, IApiVersionSetExtractor apiVersionSetExtractor, IAuthorizationServerExtractor authorizationServerExtractor, IBackendExtractor backendExtractor, ILoggerExtractor loggerExtractor, IMasterTemplateExtractor masterTemplateExtractor, IPolicyExtractor policyExtractor, IProductApisExtractor productApisExtractor, IProductExtractor productExtractor, IPropertyExtractor propertyExtractor, ITagApiExtractor apiTagExtractor, ITagExtractor tagExtractor, IGroupExtractor groupExtractor, IApiRevisionExtractor apiRevisionExtractor) { this.logger = logger; this.apisClient = apisClient; this.apiExtractor = apiExtractor; this.apiVersionSetExtractor = apiVersionSetExtractor; this.authorizationServerExtractor = authorizationServerExtractor; this.backendExtractor = backendExtractor; this.loggerExtractor = loggerExtractor; this.masterTemplateExtractor = masterTemplateExtractor; this.policyExtractor = policyExtractor; this.productApisExtractor = productApisExtractor; this.propertyExtractor = propertyExtractor; this.productExtractor = productExtractor; this.apiTagExtractor = apiTagExtractor; this.tagExtractor = tagExtractor; this.groupExtractor = groupExtractor; this.apiRevisionExtractor = apiRevisionExtractor; }
/// <summary> /// Allows to build ExtractorExecutor with only desired speficic extractors passed /// </summary> /// <returns>new ExtractorExecutor instance</returns> public static ExtractorExecutor BuildExtractorExecutor( ILogger <ExtractorExecutor> logger, IApisClient apisClient = null, IApiExtractor apiExtractor = null, IApiVersionSetExtractor apiVersionSetExtractor = null, IAuthorizationServerExtractor authorizationServerExtractor = null, IBackendExtractor backendExtractor = null, ILoggerExtractor loggerExtractor = null, IMasterTemplateExtractor masterTemplateExtractor = null, IPolicyExtractor policyExtractor = null, IProductApisExtractor productApisExtractor = null, IProductExtractor productExtractor = null, IPropertyExtractor propertyExtractor = null, ITagApiExtractor apiTagExtractor = null, ITagExtractor tagExtractor = null, IGroupExtractor groupExtractor = null, IApiRevisionExtractor apiRevisionExtractor = null) => new ExtractorExecutor( logger, apisClient, apiExtractor, apiVersionSetExtractor, authorizationServerExtractor, backendExtractor, loggerExtractor, masterTemplateExtractor, policyExtractor, productApisExtractor, productExtractor, propertyExtractor, apiTagExtractor, tagExtractor, groupExtractor, apiRevisionExtractor);
protected Filter( string elementName, ISet <TProperty> properties, IPropertyExtractor <TExtractedProperty> extractor) { ElementName = elementName; Properties = properties; Extractor = extractor; }
public void TestWheelHasDotFeature() { wheelToTest.DotNumber = 2010; extractor = new PrestoshopWheelPropertyExtractor(wheelToTest, 2, ""); testValue = extractor.GetArticleFeatures(); Assert.IsTrue(testValue.Contains("DOT:2010:8:")); }
public void TestSummerCategory() { wheelToTest.IsMudSnow = false; wheelToTest.IsWinter = false; extractor = new PrestoshopWheelPropertyExtractor(wheelToTest, 2, ""); testValue = extractor.GetCategory(); Check(CSVConstants.SummerWheelCategoryName); }
public void TestAllYearWheelCategory() { wheelToTest.IsMudSnow = true; wheelToTest.IsWinter = false; extractor = new PrestoshopWheelPropertyExtractor(wheelToTest, 2, ""); testValue = extractor.GetCategory(); Check(CSVConstants.AllYearWheelCategoryName); }
public void TestIdOfArticleWithNullValues() { testArticle.Description2 = null; extractor = new PrestoshopPropertyExtractor(testArticle, 2); var testValue = extractor.GetArticleId(); Assert.AreEqual(testArticle.Description, testValue); }
private static IEnumerable <MustBeFilter <T> > LearnMustBeRule <T>( string elementName, IPropertyExtractor <T> extractor, IEnumerable <XElement> accepted) { var acceptedProperties = accepted.Select(extractor.ExtractProperty).ToHashSet(); if (!acceptedProperties.IsEmpty()) { yield return(new MustBeFilter <T>(elementName, acceptedProperties, extractor)); } }
private static IEnumerable <MustHaveFilter <T> > LearnMustNotBeRule <T>( string elementName, IPropertyExtractor <IEnumerable <T> > extractor, IEnumerable <XElement> accepted) { var acceptedProperties = accepted.Select(extractor.ExtractProperty) .Aggregate((acc, values) => acc.Intersect(values)) .ToHashSet(); if (!acceptedProperties.IsEmpty()) { yield return(new MustHaveFilter <T>(elementName, acceptedProperties, extractor)); } }
private static IEnumerable <MustNotHaveFilter <T> > LearnMustNotHaveRule <T>( string elementName, IPropertyExtractor <IEnumerable <T> > extractor, IEnumerable <XElement> accepted, IEnumerable <XElement> denied) { var acceptedProperties = accepted.SelectMany(extractor.ExtractProperty).ToHashSet(); var deniedProperties = denied.SelectMany(extractor.ExtractProperty).ToHashSet(); deniedProperties.ExceptWith(acceptedProperties); if (!deniedProperties.IsEmpty()) { yield return(new MustNotHaveFilter <T>(elementName, deniedProperties, extractor)); } }
public void SetupWheelPropertyExtractor() { testValue = ""; wheelToTest = GetWheelToTest(); extractor = new PrestoshopWheelPropertyExtractor(wheelToTest, 2, Placeholder.WheelPlaceholder.WheelCrossSectionPlaceholder); }
public MustHaveFilter( string elementName, ISet <T> properties, IPropertyExtractor <IEnumerable <T> > extractor) : base(elementName, properties, extractor) { }
private void InitExtractor() { extractor = new PrestoshopPropertyExtractor(testArticle, 2); }
public MustBeFilter(string elementName, ISet <T> properties, IPropertyExtractor <T> extractor) : base(elementName, properties, extractor) { }
public PrestashopCSVLine(IPropertyExtractor propertyExtractor) { this.propertyExtractor = propertyExtractor; }
public PagePropertyObject(string value) { Extractor = PropertyExtractorFactory.GetPropertyExtractor(value, out var selector); Selector = selector; }