Added Multiline codec closed issue #23
This commit is contained in:
13
TimberWinR.UnitTests/Multiline1.txt
Normal file
13
TimberWinR.UnitTests/Multiline1.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
multiline1 \
|
||||
ml1_1 \
|
||||
ml1_2 \
|
||||
ml1_2
|
||||
singleline1
|
||||
singleline2
|
||||
multiline2 \
|
||||
ml2_1 \
|
||||
ml2_2
|
||||
multiline3 \
|
||||
ml3_1 \
|
||||
ml3_2
|
||||
singleline3
|
||||
19
TimberWinR.UnitTests/Multiline2.txt
Normal file
19
TimberWinR.UnitTests/Multiline2.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
2015-01-07 13:14:26,572 TEST DEBUG [THREAD : 25] - Sending message to TServer - tcp://10.1111.11.111:1111
|
||||
'RequestAttachUserData' ('30')
|
||||
message attributes:
|
||||
AttributeConnID [long] = 00890
|
||||
AttributeReferenceID [int] = 88
|
||||
AttributeThisDN [str] = "2214"
|
||||
AttributeUserData [bstr] = KVList:
|
||||
'ActivityID' [str] = "1-XXXXXX"
|
||||
2015-01-07 13:14:26,574 TEST DEBUG [THREAD : 25] - Writing message RequestAttachUserData in 'proxy1' via '.StatePrimary proxy: proxy1'
|
||||
2015-01-07 13:14:26,575 TEST DEBUG [THREAD : 25] - sending RequestAttachUserData to Test.Platform.Commons.Connection.CommonConnection
|
||||
2015-01-07 13:20:31,665 TEST DEBUG [THREAD : SelectorThread] - Proxy got message 'EventOnHook' ('87')
|
||||
message attributes:
|
||||
AttributeEventSequenceNumber [long] = 4899493
|
||||
Time = ComplexClass(TimeStamp):
|
||||
AttributeTimeinuSecs [int] = 573000
|
||||
AttributeTimeinSecs [int] = 1420644031
|
||||
AttributeThisDN [str] = "2214"
|
||||
. Processing with state .StatePrimary proxy: proxy1
|
||||
2015-01-07 14:14:26,666 TEST DEBUG [THREAD : 25] - sending RequestAttachUserData to Test.Platform.Commons.Connection.CommonConnection
|
||||
119
TimberWinR.UnitTests/MultilineTests.cs
Normal file
119
TimberWinR.UnitTests/MultilineTests.cs
Normal file
@@ -0,0 +1,119 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json;
|
||||
using NUnit.Framework;
|
||||
using TimberWinR.Inputs;
|
||||
using TimberWinR.Parser;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace TimberWinR.UnitTests
|
||||
{
|
||||
[TestFixture]
|
||||
public class MultilineTests
|
||||
{
|
||||
[Test(Description = "Test using next")]
|
||||
public void TestMultiline1()
|
||||
{
|
||||
using (StreamReader sr = new StreamReader("Multiline1.txt"))
|
||||
{
|
||||
List<JObject> events = new List<JObject>();
|
||||
|
||||
Console.SetIn(sr);
|
||||
|
||||
Stdin sin = new Stdin();
|
||||
|
||||
sin.Codec = new Codec();
|
||||
sin.Codec.Pattern = "\\\\$";
|
||||
sin.Codec.What = Codec.WhatType.next;
|
||||
sin.Codec.Type = Codec.CodecType.multiline;
|
||||
|
||||
var cancelTokenSource = new CancellationTokenSource();
|
||||
|
||||
using (var syncHandle = new ManualResetEventSlim())
|
||||
{
|
||||
try
|
||||
{
|
||||
StdinListener sl = new StdinListener(sin, cancelTokenSource.Token);
|
||||
|
||||
sl.OnMessageRecieved += o =>
|
||||
{
|
||||
events.Add(o);
|
||||
if (events.Count >= 6)
|
||||
cancelTokenSource.Cancel();
|
||||
};
|
||||
|
||||
if (!cancelTokenSource.Token.IsCancellationRequested)
|
||||
syncHandle.Wait(TimeSpan.FromSeconds(10000), cancelTokenSource.Token);
|
||||
}
|
||||
catch (OperationCanceledException oex)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
Assert.AreEqual(events.Count, 6);
|
||||
Assert.AreEqual(events[0]["message"].ToString(), "multiline1 \\\nml1_1 \\\nml1_2 \\\nml1_2 ");
|
||||
Assert.AreEqual(events[1]["message"].ToString(), "singleline1");
|
||||
Assert.AreEqual(events[2]["message"].ToString(), "singleline2");
|
||||
Assert.AreEqual(events[3]["message"].ToString(), "multiline2 \\\nml2_1 \\\nml2_2");
|
||||
Assert.AreEqual(events[4]["message"].ToString(), "multiline3 \\\nml3_1 \\\nml3_2");
|
||||
Assert.AreEqual(events[5]["message"].ToString(), "singleline3");
|
||||
}
|
||||
}
|
||||
|
||||
[Test(Description = "Test using previous")]
|
||||
public void TestMultiline2()
|
||||
{
|
||||
using (StreamReader sr = new StreamReader("Multiline2.txt"))
|
||||
{
|
||||
List<JObject> events = new List<JObject>();
|
||||
|
||||
Console.SetIn(sr);
|
||||
|
||||
Stdin sin = new Stdin();
|
||||
|
||||
sin.Codec = new Codec();
|
||||
sin.Codec.Pattern = "^(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2},\\d{3})(.*)$";
|
||||
sin.Codec.What = Codec.WhatType.previous;
|
||||
sin.Codec.Type = Codec.CodecType.multiline;
|
||||
sin.Codec.Negate = true;
|
||||
|
||||
var cancelTokenSource = new CancellationTokenSource();
|
||||
|
||||
using (var syncHandle = new ManualResetEventSlim())
|
||||
{
|
||||
try
|
||||
{
|
||||
StdinListener sl = new StdinListener(sin, cancelTokenSource.Token);
|
||||
|
||||
sl.OnMessageRecieved += o =>
|
||||
{
|
||||
events.Add(o);
|
||||
if (events.Count >= 4)
|
||||
cancelTokenSource.Cancel();
|
||||
};
|
||||
|
||||
if (!cancelTokenSource.Token.IsCancellationRequested)
|
||||
syncHandle.Wait(TimeSpan.FromSeconds(10000), cancelTokenSource.Token);
|
||||
}
|
||||
catch (OperationCanceledException oex)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
Assert.AreEqual(events.Count, 4);
|
||||
Assert.AreEqual(events[0]["message"].ToString(), "2015-01-07 13:14:26,572 TEST DEBUG [THREAD : 25] - Sending message to TServer - tcp://10.1111.11.111:1111\n'RequestAttachUserData' ('30')\nmessage attributes:\nAttributeConnID [long] = 00890\nAttributeReferenceID [int] = 88\nAttributeThisDN [str] = \"2214\"\nAttributeUserData [bstr] = KVList: \n\t\t'ActivityID' [str] = \"1-XXXXXX\"");
|
||||
Assert.AreEqual(events[1]["message"].ToString(), "2015-01-07 13:14:26,574 TEST DEBUG [THREAD : 25] - Writing message RequestAttachUserData in 'proxy1' via '.StatePrimary proxy: proxy1'");
|
||||
Assert.AreEqual(events[2]["message"].ToString(), "2015-01-07 13:14:26,575 TEST DEBUG [THREAD : 25] - sending RequestAttachUserData to Test.Platform.Commons.Connection.CommonConnection");
|
||||
Assert.AreEqual(events[3]["message"].ToString(), "2015-01-07 13:20:31,665 TEST DEBUG [THREAD : SelectorThread] - Proxy got message 'EventOnHook' ('87')\nmessage attributes:\nAttributeEventSequenceNumber [long] = 4899493\nTime = ComplexClass(TimeStamp):\n\tAttributeTimeinuSecs [int] = 573000\n\tAttributeTimeinSecs [int] = 1420644031\nAttributeThisDN [str] = \"2214\"\n. Processing with state .StatePrimary proxy: proxy1");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -64,6 +64,7 @@
|
||||
<Compile Include="Inputs\IisW3CRowReaderTests.cs" />
|
||||
<Compile Include="JsonFilterTests.cs" />
|
||||
<Compile Include="GrokFilterTests.cs" />
|
||||
<Compile Include="MultilineTests.cs" />
|
||||
<Compile Include="Parser\ElasticsearchOutputTests.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="TestBase.cs" />
|
||||
@@ -82,6 +83,14 @@
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Multiline2.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Multiline1.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
||||
Reference in New Issue
Block a user