Added new tests

This commit is contained in:
Eric Fontana
2014-09-11 08:18:53 -04:00
parent 0f51312081
commit 60fdea78e3
2 changed files with 109 additions and 5 deletions

View File

@@ -106,6 +106,108 @@ namespace TimberWinR.UnitTests
Assert.IsNull(json["LogFilename"]);
}
[Test]
public void TestDropConditions()
{
JObject json1 = new JObject
{
{"LogFilename", @"C:\\Logs1\\test1.log"},
{"EventType", 1},
{"Index", 7},
{"Text", null},
{
"tags", new JArray
{
"tag1",
"tag2"
}
},
{"type", "Win32-FileLog"},
{"ComputerName", "dev.vistaprint.net"}
};
JObject json2 = new JObject
{
{"LogFilename", @"C:\\Logs1\\test1.log"},
{"EventType", 2},
{"Index", 7},
{"Text", null},
{
"tags", new JArray
{
"tag1",
"tag2"
}
},
{"type", "Win32-FileLog"},
{"ComputerName", "dev.vistaprint.net"}
};
string grokJsonDropIf1 = @"{
""TimberWinR"":{
""Filters"":[
{
""grok"":{
""condition"": ""[EventType] == 1"",
""drop"": ""true"",
""match"":[
""Text"",
""""
],
""remove_tag"":[
""tag1""
]
}
}]
}
}";
string grokJsonDropIfNot1 = @"{
""TimberWinR"":{
""Filters"":[
{
""grok"":{
""condition"": ""[EventType] != 1"",
""drop"": ""true"",
""match"":[
""Text"",
""""
],
""remove_tag"":[
// ""tag1""
]
}
}]
}
}";
// Positive Tests
Configuration c = Configuration.FromString(grokJsonDropIf1);
Grok grok = c.Filters.First() as Grok;
Assert.IsFalse(grok.Apply(json1));
c = Configuration.FromString(grokJsonDropIf1);
grok = c.Filters.First() as Grok;
Assert.IsTrue(grok.Apply(json2));
// Negative Tests
c = Configuration.FromString(grokJsonDropIfNot1);
grok = c.Filters.First() as Grok;
Assert.IsFalse(grok.Apply(json2));
c = Configuration.FromString(grokJsonDropIfNot1);
grok = c.Filters.First() as Grok;
Assert.IsTrue(grok.Apply(json1));
}
[Test]
public void TestConditions()
{
@@ -191,7 +293,7 @@ namespace TimberWinR.UnitTests
// Negative Test
c = Configuration.FromString(grokJson3);
grok = c.Filters.First() as Grok;
Assert.IsFalse(grok.Apply(json));
Assert.IsTrue(grok.Apply(json));
}
[Test]

View File

@@ -32,6 +32,8 @@ namespace TimberWinR.Parser
public partial class Grok : LogstashFilter
{
// Returns: true - Filter does not apply or has been applied successfully
// Returns: false - Drop this object
public override bool Apply(JObject json)
{
if (!string.IsNullOrEmpty(Type))
@@ -52,7 +54,7 @@ namespace TimberWinR.Parser
return false; // drop this one
}
else
return false;
return true;
}
if (DropIfMatch)
@@ -62,9 +64,9 @@ namespace TimberWinR.Parser
AddTags(json);
RemoveFields(json);
RemoveTags(json);
return true;
}
return false;
return true;
}
private bool Matches(Newtonsoft.Json.Linq.JObject json)