Skip to content

Commit f6b4418

Browse files
committed
Add a thread listener list
1 parent f4679fa commit f6b4418

File tree

4 files changed

+41
-4
lines changed

4 files changed

+41
-4
lines changed

IntegrationEngine.Tests/IntegrationEngine.Tests.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@
114114
<Compile Include="Api\TriggerControllerBaseTest.cs" />
115115
<Compile Include="Api\TriggerStub.cs" />
116116
<Compile Include="EngineHostCompositionRootTest.cs" />
117+
<Compile Include="JobProcessor\ThreadedListenerManagerTest.cs" />
117118
</ItemGroup>
118119
<ItemGroup>
119120
<None Include="..\configuration\IntegrationEngine.json">
@@ -163,4 +164,7 @@
163164
</Target>
164165
-->
165166
<ItemGroup />
167+
<ItemGroup>
168+
<Folder Include="JobProcessor\" />
169+
</ItemGroup>
166170
</Project>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using BeekmanLabs.UnitTesting;
2+
using Common.Logging;
3+
using IntegrationEngine.JobProcessor;
4+
using Moq;
5+
using NUnit.Framework;
6+
using System;
7+
using System.Threading;
8+
9+
namespace IntegrationEngine.Tests.JobProcessor
10+
{
11+
public class ThreadedListenerManagerTest : TestBase<ThreadedListenerManager>
12+
{
13+
[Test]
14+
public void ShouldSpawnAThread()
15+
{
16+
var cancellationTokenSource = new CancellationTokenSource();
17+
Subject.CancellationTokenSource = cancellationTokenSource;
18+
var mockMessageQueueListener = new Mock<IMessageQueueListener>();
19+
Subject.MessageQueueListener = mockMessageQueueListener.Object;
20+
mockMessageQueueListener.Setup(x => x.Listen(cancellationTokenSource.Token));
21+
var mockLog = new Mock<ILog>();
22+
Subject.Log = mockLog.Object;
23+
var listenerStartMessage = "Message queue listener started.";
24+
mockLog.Setup(x => x.Info(listenerStartMessage));
25+
26+
Subject.StartListener();
27+
28+
mockMessageQueueListener.Verify(x => x.Listen(cancellationTokenSource.Token), Times.Once);
29+
mockLog.Verify(x => x.Info(listenerStartMessage), Times.Once);
30+
}
31+
}
32+
}
33+

IntegrationEngine/IntegrationEngine.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,11 @@
171171
<Compile Include="Api\Controllers\LogEventController.cs" />
172172
<Compile Include="EngineHostCompositionRoot.cs" />
173173
<Compile Include="JobProcessor\IThreadedListenerManager.cs" />
174-
<Compile Include="JobProcessor\ThreadedListenerManager.cs" />
175174
<Compile Include="JobProcessor\IMessageQueueListener.cs" />
176175
<Compile Include="JobProcessor\MsmqListener.cs" />
177176
<Compile Include="JobProcessor\RabbitMQListener.cs" />
178177
<Compile Include="EngineConfiguration.cs" />
178+
<Compile Include="JobProcessor\ThreadedListenerManager.cs" />
179179
</ItemGroup>
180180
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
181181
<ItemGroup>

IntegrationEngine/JobProcessor/ThreadedListenerManager.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,18 @@ public void Dispose()
3737
listenerThread.Join();
3838
}
3939

40-
void listen()
40+
void Listen()
4141
{
4242
MessageQueueListener.Listen(CancellationTokenSource.Token);
4343
}
4444

4545
public void StartListener()
4646
{
4747
if (listenerThread == null)
48-
listenerThread = new Thread(listen);
48+
listenerThread = new Thread(Listen);
4949
if (listenerThread.ThreadState == ThreadState.Running)
5050
{
51-
Log.Info("Message queue listener already running.");
51+
Log.Warn("Message queue listener already running.");
5252
return;
5353
}
5454

0 commit comments

Comments
 (0)