Skip to content

Commit d739f92

Browse files
committed
Merge branch 'develop' of github.com:ethanhann/IntegrationEngine into develop
2 parents d3dd22e + 2b935eb commit d739f92

File tree

7 files changed

+75
-15
lines changed

7 files changed

+75
-15
lines changed

IntegrationEngine.Tests/EngineHostConfigurationTest.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ public void ShouldSetupEngineScheduler()
126126
{
127127
Subject.IntegrationJobTypes = new List<Type>();
128128
Subject.LoadConfiguration();
129-
var mockMailClient = new Mock<IMailClient>();
130129
var mockElasticsearchRespository= new Mock<IElasticsearchRepository>();
131130
var mockMessageQueueClient = new Mock<IMessageQueueClient>();
132131

IntegrationEngine.Tests/IntegrationEngine.Tests.csproj

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@
3939
<Reference Include="BeekmanLabs.UnitTesting">
4040
<HintPath>..\packages\BeekmanLabs.UnitTesting.0.0.0\lib\net45\BeekmanLabs.UnitTesting.dll</HintPath>
4141
</Reference>
42-
<Reference Include="Common.Logging.NLog31, Version=3.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
43-
<SpecificVersion>False</SpecificVersion>
44-
<HintPath>..\packages\Common.Logging.NLog31.3.0.0\lib\net40\Common.Logging.NLog31.dll</HintPath>
45-
</Reference>
4642
<Reference Include="Microsoft.Practices.Unity.Configuration">
4743
<HintPath>..\packages\Unity.3.5.1404.0\lib\net45\Microsoft.Practices.Unity.Configuration.dll</HintPath>
4844
</Reference>
@@ -103,6 +99,12 @@
10399
<Reference Include="Nest">
104100
<HintPath>..\packages\NEST.1.4.0\lib\net45\Nest.dll</HintPath>
105101
</Reference>
102+
<Reference Include="Common.Logging.NLog31">
103+
<HintPath>..\packages\Common.Logging.NLog31.3.0.0\lib\net40\Common.Logging.NLog31.dll</HintPath>
104+
</Reference>
105+
<Reference Include="RabbitMQ.Client">
106+
<HintPath>..\packages\RabbitMQ.Client.3.4.3\lib\net35\RabbitMQ.Client.dll</HintPath>
107+
</Reference>
106108
</ItemGroup>
107109
<ItemGroup>
108110
<Compile Include="EngineHostConfigurationTest.cs" />
@@ -112,6 +114,7 @@
112114
<Compile Include="IntegrationJobStub.cs" />
113115
<Compile Include="Api\TriggerControllerBaseTest.cs" />
114116
<Compile Include="Api\TriggerStub.cs" />
117+
<Compile Include="MessageQueue\RabbitMQClientTest.cs" />
115118
</ItemGroup>
116119
<ItemGroup>
117120
<None Include="..\configuration\IntegrationEngine.json">
@@ -160,4 +163,7 @@
160163
<Target Name="AfterBuild">
161164
</Target>
162165
-->
166+
<ItemGroup>
167+
<Folder Include="MessageQueue\" />
168+
</ItemGroup>
163169
</Project>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using BeekmanLabs.UnitTesting;
2+
using Common.Logging;
3+
using IntegrationEngine.Configuration;
4+
using IntegrationEngine.MessageQueue;
5+
using Moq;
6+
using NUnit.Framework;
7+
using System;
8+
using RabbitMQ.Client;
9+
using System.Text;
10+
11+
namespace IntegrationEngine.Tests.MessageQueue
12+
{
13+
public class RabbitMQClientTest : TestBase<RabbitMQClient>
14+
{
15+
[Test]
16+
public void ShouldPublishDispatchMessage()
17+
{
18+
var config = new MessageQueueConfiguration() {
19+
QueueName = "MyQueue",
20+
ExchangeName = "MyExchange",
21+
};
22+
Subject.MessageQueueConfiguration = config;
23+
var expected = new IntegrationJobStub();
24+
var mockLog = new Mock<ILog>();
25+
Subject.Log = mockLog.Object;
26+
var mockMessageQueueConnection = new Mock<IMessageQueueConnection>();
27+
Subject.MessageQueueConnection = mockMessageQueueConnection.Object;
28+
var mockConnection = new Mock<IConnection>();
29+
mockMessageQueueConnection.Setup(x => x.GetConnection()).Returns(mockConnection.Object);
30+
var mockModel = new Mock<IModel>();
31+
mockConnection.Setup(x => x.CreateModel()).Returns(mockModel.Object);
32+
mockModel.Setup(x => x.QueueBind(config.QueueName, config.ExchangeName, ""));
33+
mockModel.Setup(x => x.BasicPublish(config.ExchangeName, "", null, It.IsAny<byte[]>()));
34+
35+
Subject.Publish(expected, null);
36+
37+
mockMessageQueueConnection.Verify(x => x.GetConnection(), Times.Once);
38+
mockConnection.Verify(x => x.CreateModel(), Times.Once);
39+
mockModel.Verify(x => x.QueueBind(config.QueueName, config.ExchangeName, ""), Times.Once);
40+
mockModel.Verify(x => x.BasicPublish(config.ExchangeName, "", null, It.IsAny<byte[]>()), Times.Once);
41+
}
42+
}
43+
}

IntegrationEngine.Tests/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@
1515
<package id="NLog" version="3.1.0.0" targetFramework="net45" />
1616
<package id="NUnit" version="2.6.4" targetFramework="net45" />
1717
<package id="Quartz" version="2.3.1" targetFramework="net45" />
18+
<package id="RabbitMQ.Client" version="3.4.3" targetFramework="net45" />
1819
<package id="Unity" version="3.5.1404.0" targetFramework="net45" />
1920
</packages>

IntegrationEngine.userprefs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,32 @@
11
<Properties StartupItem="IntegrationEngine.ConsoleHost/IntegrationEngine.ConsoleHost.csproj">
22
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
3-
<MonoDevelop.Ide.Workbench ActiveDocument="IntegrationEngine.ConsoleClient/Options.cs">
3+
<MonoDevelop.Ide.Workbench ActiveDocument="IntegrationEngine.Tests/MessageQueue/RabbitMQClientTest.cs">
44
<Files>
5-
<File FileName="IntegrationEngine.ConsoleClient/Program.cs" Line="41" Column="41" />
6-
<File FileName="IntegrationEngine.ConsoleClient/Options.cs" Line="25" Column="25" />
7-
<File FileName="IntegrationEngine.ConsoleClient/PingSubOptions.cs" Line="6" Column="6" />
5+
<File FileName="IntegrationEngine/MessageQueue/RabbitMQClient.cs" Line="64" Column="64" />
6+
<File FileName="IntegrationEngine.Tests/MessageQueue/RabbitMQClientTest.cs" Line="10" Column="10" />
7+
<File FileName="IntegrationEngine/MessageQueue/IntegrationJobDispatcherJob.cs" Line="87" Column="87" />
8+
<File FileName="IntegrationEngine/MessageQueue/IMessageQueueConnection.cs" Line="16" Column="16" />
9+
<File FileName="IntegrationEngine.Tests/EngineHostConfigurationTest.cs" Line="41" Column="41" />
810
</Files>
911
<Pads>
1012
<Pad Id="MonoDevelop.NUnit.TestPad">
11-
<State />
13+
<State expanded="True">
14+
<Node name="IntegrationEngine.Tests" expanded="True" selected="True">
15+
<Node name="IntegrationEngine" expanded="True">
16+
<Node name="Tests" expanded="True">
17+
<Node name="MessageQueue" expanded="True">
18+
<Node name="RabbitMQClientTest" expanded="True" />
19+
</Node>
20+
</Node>
21+
</Node>
22+
</Node>
23+
</State>
1224
</Pad>
1325
</Pads>
1426
</MonoDevelop.Ide.Workbench>
1527
<MonoDevelop.Ide.DebuggingService.Breakpoints>
1628
<BreakpointStore>
17-
<Breakpoint file="/Users/ethanhann/Projects/IntegrationEngine/IntegrationEngine.Core/Storage/ElasticsearchRepository.cs" line="34" column="1" />
18-
<Breakpoint file="/Users/ethanhann/Projects/IntegrationEngine/IntegrationEngine.ConsoleClient/Options.cs" line="31" column="1" />
19-
<Breakpoint file="/Users/ethanhann/Projects/IntegrationEngine/IntegrationEngine.ConsoleClient/Options.cs" line="39" column="1" />
29+
<Breakpoint file="/Users/ethanhann/Projects/IntegrationEngine/IntegrationEngine/MessageQueue/RabbitMQListener.cs" line="104" column="1" />
2030
</BreakpointStore>
2131
</MonoDevelop.Ide.DebuggingService.Breakpoints>
2232
<MonoDevelop.Ide.DebuggingService.PinnedWatches />

IntegrationEngine/MessageQueue/IMessageQueueConnection.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public interface IMessageQueueConnection
77
{
88
MessageQueueConfiguration MessageQueueConfiguration { get; set; }
99
ConnectionFactory GetConnectionFactory();
10+
IConnection GetConnection();
1011
}
1112
}
1213

IntegrationEngine/MessageQueue/RabbitMQClient.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace IntegrationEngine.MessageQueue
1313
public class RabbitMQClient : IMessageQueueClient
1414
{
1515
public MessageQueueConfiguration MessageQueueConfiguration { get; set; }
16-
public MessageQueueConnection MessageQueueConnection { get; set; }
16+
public IMessageQueueConnection MessageQueueConnection { get; set; }
1717
public ILog Log { get; set; }
1818

1919
public RabbitMQClient()
@@ -40,6 +40,7 @@ public void Publish<T>(T value, IDictionary<string, string> parameters)
4040
channel.BasicPublish(MessageQueueConfiguration.ExchangeName, "", null, body);
4141
Log.Debug(x => x("Sent message: {0}", message));
4242
}
43+
4344
}
4445
catch (Exception exception)
4546
{
@@ -61,4 +62,3 @@ public bool IsServerAvailable()
6162
}
6263
}
6364
}
64-

0 commit comments

Comments
 (0)