public void SaveLearnedData(string configDir) { var valueStore = new ValueStore(); var stepDefStore = new StepDefStore(valueStore); foreach (var stepDefRegex in _stepDefRegexes) { var paramNames = stepDefRegex.Key.GetValidNames(); for (int paramNumber = 0; paramNumber < paramNames.Count; paramNumber++) { var group = new ValueStoreGroup(paramNames[paramNumber]); var tmpItems = new HashSet <ValueStoreItem>(ValueStoreItem.RuValueComparer); foreach (var gherkinStep in stepDefRegex.Value) { var item = ValueStoreItem.FromMacros(gherkinStep.Text, paramNumber); if (item == default(ValueStoreItem)) { continue; } if (!tmpItems.Contains(item)) { tmpItems.Add(item); } } group.Items.AddRange(tmpItems.ToList()); valueStore.AddGroup(group); stepDefStore.AddStepDef(stepDefRegex.Key); } } valueStore.Save(ValueStoreConfigsDir, "learned"); stepDefStore.Save(StepDefStoreConfigsDir, "learned"); }
public StepDefStore(string stepDefsDir, ValueStore valueStore) : this(valueStore) { if (!Directory.Exists(stepDefsDir)) { return; } var files = Directory.EnumerateFiles(stepDefsDir, "*.xml"); foreach (var file in files) { var stepDefs = ParseStepDef(file); _stepDefs.AddRange(stepDefs); } }
public FeatureLocalizer(string configFolder) { ConfigFolder = configFolder; if (!Directory.Exists(ValueStoreConfigsDir)) { Directory.CreateDirectory(ValueStoreConfigsDir); } if (!Directory.Exists(StepDefStoreConfigsDir)) { Directory.CreateDirectory(StepDefStoreConfigsDir); } ValueStore = new ValueStore(ValueStoreConfigsDir); StepDefStore = new StepDefStore(StepDefStoreConfigsDir, ValueStore); }
private static List <StepDefParameter> GetStepDefParameters(Regex regex, ValueStore valueStore) { var res = new List <StepDefParameter>(); var names = regex.GetValidNames(); foreach (var name in names) { if (valueStore.StoreGroups.ContainsKey(name)) { var group = valueStore.StoreGroups[name]; var param = new StepDefParameter(group, 0); res.Add(param); } } return(res); }
public static StepDefParameter Load(UInt16 index, XElement node, ValueStore valueStore) { if (node == null || !node.HasAttributes) { return(null); } var vsGroupAttr = node.Attribute(ValueStoreGroupAttributename); if (vsGroupAttr == null || string.IsNullOrWhiteSpace(vsGroupAttr.Value)) { return(null); } var vsGroupName = vsGroupAttr.Value; if (!valueStore.StoreGroups.ContainsKey(vsGroupName)) { return(null); } var vsGroup = valueStore.StoreGroups[vsGroupName]; var res = new StepDefParameter(vsGroup, index); return(res); }
public static StepDef Load(XElement node, ValueStore valueStore) { var re = node.Descendants(ReNodeName).FirstOrDefault(); if (re == null) { return(null); } var reStr = GetRexpFromReNode(re.Value); if (string.IsNullOrEmpty(re.Value)) { return(null); } var sd = new StepDef(reStr); UInt16 i = 0; var sdParams = node.Descendants(ParamNodeName) .Select(n => StepDefParameter.Load(i++, n, valueStore)) .ToList(); sd.Params.AddRange(sdParams); return(sd); }
public StepDefStore(ValueStore valueStore) { _stepDefs = new List <StepDef>(); _valueStore = valueStore; }
public StepDef(Regex exp, ValueStore valueStore) { Exp = exp; Params = GetStepDefParameters(exp, valueStore); }