Skip to content

Commit 7a8b81a

Browse files
committed
Add a (relatively) simple stub test of the parsing
1 parent fa0bdd7 commit 7a8b81a

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

modules/ingest-common/src/main/java/org/elasticsearch/ingest/common/CefParser.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,8 @@ CefEvent process(String cefString) {
320320
return event;
321321
}
322322

323-
private static List<String> parseHeaders(String cefString) {
323+
// visible for testing
324+
static List<String> parseHeaders(String cefString) {
324325
List<String> headers = new ArrayList<>();
325326
int extensionStart = -1;
326327
final StringBuilder buffer = new StringBuilder();
@@ -388,7 +389,8 @@ private static void processHeaders(List<String> headers, CefEvent event) {
388389
}
389390
}
390391

391-
private static Map<String, String> parseExtensions(String extensionString) {
392+
// visible for testing
393+
static Map<String, String> parseExtensions(String extensionString) {
392394
Map<String, String> extensions = new HashMap<>();
393395
Matcher matcher = EXTENSION_NEXT_KEY_VALUE_PATTERN.matcher(extensionString);
394396
int lastEnd = 0;

modules/ingest-common/src/test/java/org/elasticsearch/ingest/common/CefProcessorTests.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,41 @@
2020
import java.util.Map;
2121

2222
import static java.util.Map.entry;
23+
import static org.hamcrest.Matchers.aMapWithSize;
2324
import static org.hamcrest.Matchers.containsInAnyOrder;
2425
import static org.hamcrest.Matchers.equalTo;
2526

2627
public class CefProcessorTests extends ESTestCase {
2728

2829
private IngestDocument document;
2930

31+
public void testParse() {
32+
String message;
33+
List<String> headers;
34+
Map<String, String> extensions;
35+
{
36+
message = "CEF:0|vendor|product|version|class|name|severity|";
37+
headers = CefParser.parseHeaders(message);
38+
extensions = CefParser.parseExtensions(headers.removeLast());
39+
assertThat(headers, equalTo(List.of("CEF:0", "vendor", "product", "version", "class", "name", "severity")));
40+
assertThat(extensions, aMapWithSize(0));
41+
}
42+
{
43+
message = "CEF:1|vendor|product|version|class|name|severity|someExtension=someValue";
44+
headers = CefParser.parseHeaders(message);
45+
extensions = CefParser.parseExtensions(headers.removeLast());
46+
assertThat(headers, equalTo(List.of("CEF:1", "vendor", "product", "version", "class", "name", "severity")));
47+
assertThat(extensions, equalTo(Map.of("someExtension", "someValue")));
48+
}
49+
{
50+
message = "CEF:1|vendor|product\\|pipe|version space|class\\\\slash|name|severity|ext1=some value ext2=pipe|value ";
51+
headers = CefParser.parseHeaders(message);
52+
extensions = CefParser.parseExtensions(headers.removeLast());
53+
assertThat(headers, equalTo(List.of("CEF:1", "vendor", "product|pipe", "version space", "class\\slash", "name", "severity")));
54+
assertMapsEqual(extensions, Map.ofEntries(entry("ext1", "some value "), entry("ext2", "pipe|value")));
55+
}
56+
}
57+
3058
public void testExecute() {
3159
Map<String, Object> source = new HashMap<>();
3260
String message = "CEF:0|Elastic|Vaporware|1.0.0-alpha|18|Web request|low|eventId=3457 requestMethod=POST "

0 commit comments

Comments
 (0)