Skip to content
43 changes: 32 additions & 11 deletions src/Grok.Net.Tests/UnitTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using Xunit;
using GrokNet;

Expand Down Expand Up @@ -27,10 +28,11 @@ public void PatternCountTest()
Grok act = new Grok(grokPattern);
string logs = @"06-21-19 21:00:13:589241;15;INFO;main;DECODED: 775233900043 DECODED BY: 18500738 DISTANCE: 1.5165
06-21-19 21:00:13:589265;156;WARN;main;DECODED: 775233900043 EMPTY DISTANCE: --------";
const int elements = 16;

GrokResult grokResult = act.Parse(logs);

Assert.Equal(16, grokResult.Count);
Assert.Equal(elements, grokResult.Count);
}

[Fact]
Expand All @@ -39,21 +41,24 @@ public void MonthDayPatternTest()
Grok act = new Grok("%{MONTHDAY:month}-%{MONTHDAY:day}-%{MONTHDAY:year} %{TIME:timestamp};%{WORD:id};%{LOGLEVEL:loglevel};%{WORD:func};%{GREEDYDATA:msg}");
string logs = @"06-21-19 21:00:13:589241;15;INFO;main;DECODED: 775233900043 DECODED BY: 18500738 DISTANCE: 1.5165
06-21-19 21:00:13:589265;156;WARN;main;DECODED: 775233900043 EMPTY DISTANCE: --------";
const string month = "06";
const string day = "21";
const string year = "19";

GrokResult grokResult = act.Parse(logs);

Assert.Equal("month", grokResult[0].Key);
Assert.Equal("06", grokResult[0].Value);
Assert.Equal(month, grokResult[0].Value);
Assert.Equal("day", grokResult[1].Key);
Assert.Equal("21", grokResult[1].Value);
Assert.Equal(day, grokResult[1].Value);
Assert.Equal("year", grokResult[2].Key);
Assert.Equal("19", grokResult[2].Value);
Assert.Equal(year, grokResult[2].Value);
Assert.Equal("month", grokResult[8].Key);
Assert.Equal("06", grokResult[8].Value);
Assert.Equal(month, grokResult[8].Value);
Assert.Equal("day", grokResult[9].Key);
Assert.Equal("21", grokResult[9].Value);
Assert.Equal(day, grokResult[9].Value);
Assert.Equal("year", grokResult[10].Key);
Assert.Equal("19", grokResult[10].Value);
Assert.Equal(year, grokResult[10].Value);
}

[Fact]
Expand All @@ -73,15 +78,31 @@ public void TimePatternTest()
public void EmailPatternTest()
{
Grok act = new Grok("%{EMAILADDRESS:email}:%{GREEDYDATA:comment}");
string logs = @"[email protected]:Free as in Free Beer";
const string emailAddress ="[email protected]";
const string comment = "Free as in Free Beer";
string logs = emailAddress + ":" + comment;

GrokResult grokResult = act.Parse(logs);

Assert.Equal("[email protected]", grokResult[0].Value);
Assert.Equal("Free as in Free Beer", grokResult[1].Value);
Assert.Equal(emailAddress, grokResult[0].Value);
Assert.Equal(comment, grokResult[1].Value);
Assert.Equal("email", grokResult[0].Key);
Assert.Equal("comment", grokResult[1].Key);

}

[Fact]
public void IPv4PatternTest()
{
const string ipAddress = "172.26.34.32";
const string comment = "Free as in Free Beer";
string logs = $"{ipAddress}:{comment}";
string grokPattern = "%{IPV4:IP}:%{GREEDYDATA:comment}";
Grok act = new Grok(grokPattern);

GrokResult grokResult = act.Parse(logs);

Assert.Equal(ipAddress, grokResult[0].Value);
Assert.Equal(comment, grokResult[1].Value);
}
}
}