-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMessagingExtensionsTests.cs
More file actions
118 lines (99 loc) · 3.32 KB
/
MessagingExtensionsTests.cs
File metadata and controls
118 lines (99 loc) · 3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
using FluentAssertions;
using MeAjudaAi.Shared.Messaging.RabbitMq;
using MeAjudaAi.Shared.Messaging.ServiceBus;
namespace MeAjudaAi.Shared.Tests.Unit.Messaging;
/// <summary>
/// Testes para Options de Messaging (ServiceBusOptions, RabbitMqOptions, MessageBusOptions)
/// </summary>
public class MessagingExtensionsTests
{
[Fact]
public void ServiceBusOptions_DefaultValues_ShouldBeCorrect()
{
// Arrange & Act
var options = new ServiceBusOptions();
// Assert
options.DefaultTopicName.Should().Be("MeAjudaAi-events");
options.ConnectionString.Should().BeEmpty();
options.DomainTopics.Should().ContainKey("Users");
options.DomainTopics["Users"].Should().Be("users-events");
}
[Fact]
public void ServiceBusOptions_GetTopicForDomain_ExistingDomain_ShouldReturnCorrectTopic()
{
// Arrange
var options = new ServiceBusOptions();
// Act
var topic = options.GetTopicForDomain("Users");
// Assert
topic.Should().Be("users-events");
}
[Fact]
public void ServiceBusOptions_GetTopicForDomain_UnknownDomain_ShouldReturnDefaultTopic()
{
// Arrange
var options = new ServiceBusOptions();
// Act
var topic = options.GetTopicForDomain("UnknownDomain");
// Assert
topic.Should().Be("MeAjudaAi-events");
}
[Fact]
public void RabbitMqOptions_BuildConnectionString_WithVirtualHost_ShouldConstructCorrectly()
{
// Arrange
var options = new RabbitMqOptions
{
Host = "customhost",
Port = 5673,
Username = "user",
Password = "pass",
VirtualHost = "/vhost"
};
// Act
var connectionString = options.BuildConnectionString();
// Assert
connectionString.Should().Be("amqp://user:pass@customhost:5673/vhost");
}
[Fact]
public void RabbitMqOptions_BuildConnectionString_WithoutVirtualHost_ShouldConstructCorrectly()
{
// Arrange
var options = new RabbitMqOptions
{
Host = "localhost",
Port = 5672,
Username = "guest",
Password = "guest"
};
// Act
var connectionString = options.BuildConnectionString();
// Assert
connectionString.Should().Be("amqp://guest:guest@localhost:5672/");
}
[Fact]
public void RabbitMqOptions_DefaultValues_ShouldBeCorrect()
{
// Arrange & Act
var options = new RabbitMqOptions();
// Assert
options.Host.Should().Be("localhost");
options.Port.Should().Be(5672);
options.Username.Should().Be("guest");
options.Password.Should().Be("guest");
options.DefaultQueueName.Should().Be("MeAjudaAi-events");
}
[Fact]
public void MessageBusOptions_DefaultValues_ShouldBeCorrect()
{
// Arrange & Act
var options = new MessageBusOptions();
// Assert
options.DefaultTimeToLive.Should().Be(TimeSpan.FromDays(1));
options.MaxConcurrentCalls.Should().Be(1);
options.MaxDeliveryCount.Should().Be(10);
options.LockDuration.Should().Be(TimeSpan.FromMinutes(5));
options.EnableAutoDiscovery.Should().BeTrue();
options.AssemblyPrefixes.Should().Contain("MeAjudaAi");
}
}