Skip to content

Commit 14292ad

Browse files
committed
Add RabbitMqTopologyServiceTests
Signed-off-by: governor <maxnaumovs@gmail.com>
1 parent 7749ade commit 14292ad

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
namespace SlimMessageBus.Host.RabbitMQ.Test;
2+
3+
using System.Collections.Generic;
4+
5+
using AwesomeAssertions;
6+
7+
using global::RabbitMQ.Client;
8+
9+
using Microsoft.Extensions.Logging;
10+
11+
using Moq;
12+
13+
using SlimMessageBus.Host;
14+
using SlimMessageBus.Host.RabbitMQ;
15+
16+
using Xunit;
17+
18+
public class RabbitMqTopologyServiceTests
19+
{
20+
private readonly ILoggerFactory _loggerFactory;
21+
private readonly Mock<IModel> _channelMock;
22+
private readonly RabbitMqMessageBusSettings _providerSettings;
23+
24+
public RabbitMqTopologyServiceTests()
25+
{
26+
_loggerFactory = NullLoggerFactory.Instance;
27+
_channelMock = new Mock<IModel>();
28+
_providerSettings = new RabbitMqMessageBusSettings();
29+
}
30+
31+
[Fact]
32+
public void ProvisionTopology_WithEmptyExchangeName_LogsSkippingExchange()
33+
{
34+
// Arrange
35+
var producer = new ProducerSettings { DefaultPath = "" };
36+
var settings = new MessageBusSettings();
37+
settings.Producers.Add(producer);
38+
settings.Consumers.Add(new ConsumerSettings
39+
{
40+
Path = "some-queue",
41+
MessageType = typeof(string),
42+
ConsumerType = typeof(object)
43+
});
44+
45+
46+
var service = new RabbitMqTopologyService(_loggerFactory, _channelMock.Object, settings, _providerSettings);
47+
48+
// Act
49+
var result = service.ProvisionTopology();
50+
51+
// Assert
52+
result.Should().BeTrue();
53+
_channelMock.Verify(x => x.ExchangeDeclare(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<IDictionary<string, object>>()), Times.Never);
54+
}
55+
56+
[Fact]
57+
public void ProvisionTopology_WithNonEmptyExchangeName_DeclaresExchange()
58+
{
59+
// Arrange
60+
var producer = new ProducerSettings { DefaultPath = "my-exchange" };
61+
var settings = new MessageBusSettings();
62+
settings.Producers.Add(producer);
63+
settings.Consumers.Add(new ConsumerSettings
64+
{
65+
Path = "some-queue",
66+
MessageType = typeof(string),
67+
ConsumerType = typeof(object)
68+
});
69+
70+
var service = new RabbitMqTopologyService(_loggerFactory, _channelMock.Object, settings, _providerSettings);
71+
72+
// Act
73+
var result = service.ProvisionTopology();
74+
75+
// Assert
76+
result.Should().BeTrue();
77+
_channelMock.Verify(x => x.ExchangeDeclare("my-exchange", It.IsAny<string>(), It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<IDictionary<string, object>>()), Times.Once);
78+
}
79+
}

0 commit comments

Comments
 (0)