public void Ignores_Comments_Starting_With_Hash() { const string testInput = "#Test1 [a-z]\nTest2 [0-9]"; var stream = new MemoryStream(); var writer = new StreamWriter(stream); writer.Write(testInput); writer.Flush(); stream.Seek(0, SeekOrigin.Begin); var results = BasicAliasConfigReader.ParseStream(stream); Assert.IsNotNull(results, "Returned alias enumerable was null"); var array = results.ToArray(); Assert.IsNotEmpty(array, "Returned alias array is emtpy"); Assert.AreEqual(1, array.Length, "Returned alias array has an incorrect number of elements"); Assert.AreEqual("Test2", array[0].Name, "Second alias had an incorrect name"); Assert.AreEqual("[0-9]", array[0].RegexPattern, "Second alais had an incorrect pattern"); }
public List <object> Process(JObject setting, List <DynamicEntity> input) { List <object> list = new List <object>(); var grok = setting["grok"].Value <string>(); var resolver = new RegexAliasResolver(BasicAliasConfigReader.Parse(Path.Combine(AppContext.BaseDirectory, "grok.patterns"))); var regex = resolver.ResolveToRegex(grok); foreach (dynamic data in input) { Dictionary <string, object> dict = new Dictionary <string, object>(); foreach (Match match in regex.Matches(data.message)) { foreach (var item in match.Groups.Skip(1).Where(m => m.Success)) { dict.Add(item.Name, item.Value); } } list.Add(new DynamicEntity(dict)); } return(list); }