|
@@ -205,6 +205,39 @@ public class GrokTests extends ESTestCase {
|
|
|
assertEquals(expected, actual);
|
|
|
}
|
|
|
|
|
|
+ public void testBooleanCaptures() {
|
|
|
+ Map<String, String> bank = new HashMap<>();
|
|
|
+
|
|
|
+ String pattern = "%{WORD:name}=%{WORD:status:boolean}";
|
|
|
+ Grok g = new Grok(basePatterns, pattern);
|
|
|
+
|
|
|
+ String text = "active=true";
|
|
|
+ Map<String, Object> expected = new HashMap<>();
|
|
|
+ expected.put("name", "active");
|
|
|
+ expected.put("status", true);
|
|
|
+ Map<String, Object> actual = g.captures(text);
|
|
|
+
|
|
|
+ assertEquals(expected, actual);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testNumericCaptures() {
|
|
|
+ Map<String, String> bank = new HashMap<>();
|
|
|
+ bank.put("BASE10NUM", "(?<![0-9.+-])(?>[+-]?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)))");
|
|
|
+ bank.put("NUMBER", "(?:%{BASE10NUM})");
|
|
|
+
|
|
|
+ String pattern = "%{NUMBER:bytes:float} %{NUMBER:id:long} %{NUMBER:rating:double}";
|
|
|
+ Grok g = new Grok(bank, pattern);
|
|
|
+
|
|
|
+ String text = "12009.34 20000000000 4820.092";
|
|
|
+ Map<String, Object> expected = new HashMap<>();
|
|
|
+ expected.put("bytes", 12009.34f);
|
|
|
+ expected.put("id", 20000000000L);
|
|
|
+ expected.put("rating", 4820.092);
|
|
|
+ Map<String, Object> actual = g.captures(text);
|
|
|
+
|
|
|
+ assertEquals(expected, actual);
|
|
|
+ }
|
|
|
+
|
|
|
public void testNumericCapturesCoercion() {
|
|
|
Map<String, String> bank = new HashMap<>();
|
|
|
bank.put("BASE10NUM", "(?<![0-9.+-])(?>[+-]?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)))");
|