Skip to content
This repository was archived by the owner on Apr 29, 2022. It is now read-only.

Commit 1985af8

Browse files
author
Anton Vorontsov
committed
Made a first integration test
1 parent c09c505 commit 1985af8

13 files changed

+87
-26
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
using System.Collections.Generic;
2+
using System.Threading.Tasks;
3+
using Microsoft.Extensions.DependencyInjection;
4+
using Moq;
5+
using RabbitMQ.Client.Core.DependencyInjection.Configuration;
6+
using RabbitMQ.Client.Core.DependencyInjection.Services;
7+
using RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs;
8+
using Xunit;
9+
10+
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.IntegrationTests
11+
{
12+
public class QueueServiceTests
13+
{
14+
[Fact]
15+
public async Task ShouldProperlyPublishAndConsumeMessages()
16+
{
17+
var clientOptions = new RabbitMqClientOptions
18+
{
19+
HostName = "localhost",
20+
Port = 5672,
21+
UserName = "guest",
22+
Password = "guest",
23+
VirtualHost = "/"
24+
};
25+
26+
var exchangeOptions = new RabbitMqExchangeOptions
27+
{
28+
Type = "direct",
29+
DeadLetterExchange = "exchange.dlx",
30+
Queues = new List<RabbitMqQueueOptions>
31+
{
32+
new RabbitMqQueueOptions
33+
{
34+
Name = "test.queue",
35+
RoutingKeys = new HashSet<string> { "routing.key" }
36+
}
37+
}
38+
};
39+
var serviceCollection = new ServiceCollection();
40+
41+
var callerMock = new Mock<IStubCaller>();
42+
serviceCollection.AddRabbitMqClient(clientOptions)
43+
.AddConsumptionExchange("exchange.name", exchangeOptions)
44+
.AddMessageHandlerTransient<StubMessageHandler>("routing.key")
45+
.AddSingleton(callerMock.Object);
46+
47+
var serviceProvider = serviceCollection.BuildServiceProvider();
48+
49+
var queueService = serviceProvider.GetRequiredService<IQueueService>();
50+
queueService.StartConsuming();
51+
52+
await queueService.SendAsync("message", "exchange.name", "routing.key");
53+
}
54+
}
55+
}

tests/RabbitMQ.Client.Core.DependencyInjection.Tests/UnitTests/Stubs/IStubCaller.cs renamed to tests/RabbitMQ.Client.Core.DependencyInjection.Tests/Stubs/IStubCaller.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System;
22

3-
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests.Stubs
3+
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs
44
{
55
public interface IStubCaller
66
{

tests/RabbitMQ.Client.Core.DependencyInjection.Tests/UnitTests/Stubs/StubAsyncMessageHandler.cs renamed to tests/RabbitMQ.Client.Core.DependencyInjection.Tests/Stubs/StubAsyncMessageHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
using System.Threading.Tasks;
33
using RabbitMQ.Client.Core.DependencyInjection.MessageHandlers;
44

5-
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests.Stubs
5+
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs
66
{
7-
internal class StubAsyncMessageHandler : IAsyncMessageHandler
7+
public class StubAsyncMessageHandler : IAsyncMessageHandler
88
{
99
public Task Handle(string message, string routingKey)
1010
{

tests/RabbitMQ.Client.Core.DependencyInjection.Tests/UnitTests/Stubs/StubAsyncNonCyclicMessageHandler.cs renamed to tests/RabbitMQ.Client.Core.DependencyInjection.Tests/Stubs/StubAsyncNonCyclicMessageHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
using RabbitMQ.Client.Core.DependencyInjection.MessageHandlers;
44
using RabbitMQ.Client.Core.DependencyInjection.Services;
55

6-
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests.Stubs
6+
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs
77
{
8-
internal class StubAsyncNonCyclicMessageHandler : IAsyncNonCyclicMessageHandler
8+
public class StubAsyncNonCyclicMessageHandler : IAsyncNonCyclicMessageHandler
99
{
1010
public Task Handle(string message, string routingKey, IQueueService queueService)
1111
{

tests/RabbitMQ.Client.Core.DependencyInjection.Tests/UnitTests/Stubs/StubBaseBatchMessageHandler.cs renamed to tests/RabbitMQ.Client.Core.DependencyInjection.Tests/Stubs/StubBaseBatchMessageHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
using RabbitMQ.Client.Core.DependencyInjection.Models;
88
using RabbitMQ.Client.Core.DependencyInjection.Services;
99

10-
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests.Stubs
10+
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs
1111
{
1212
public class StubBaseBatchMessageHandler : BaseBatchMessageHandler
1313
{

tests/RabbitMQ.Client.Core.DependencyInjection.Tests/UnitTests/Stubs/StubBatchMessageHandler.cs renamed to tests/RabbitMQ.Client.Core.DependencyInjection.Tests/Stubs/StubBatchMessageHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using RabbitMQ.Client.Core.DependencyInjection.Models;
77
using RabbitMQ.Client.Core.DependencyInjection.Services;
88

9-
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests.Stubs
9+
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs
1010
{
1111
public class StubBatchMessageHandler : BatchMessageHandler
1212
{
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using RabbitMQ.Client.Core.DependencyInjection.MessageHandlers;
2+
3+
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs
4+
{
5+
public class StubMessageHandler : IMessageHandler
6+
{
7+
readonly IStubCaller _caller;
8+
9+
public StubMessageHandler(IStubCaller caller)
10+
{
11+
_caller = caller;
12+
}
13+
14+
public void Handle(string message, string routingKey)
15+
{
16+
_caller.Call($"{message}:{routingKey}");
17+
}
18+
}
19+
}

tests/RabbitMQ.Client.Core.DependencyInjection.Tests/UnitTests/Stubs/StubNonCyclicMessageHandler.cs renamed to tests/RabbitMQ.Client.Core.DependencyInjection.Tests/Stubs/StubNonCyclicMessageHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
using RabbitMQ.Client.Core.DependencyInjection.MessageHandlers;
33
using RabbitMQ.Client.Core.DependencyInjection.Services;
44

5-
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests.Stubs
5+
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs
66
{
7-
internal class StubNonCyclicMessageHandler : INonCyclicMessageHandler
7+
public class StubNonCyclicMessageHandler : INonCyclicMessageHandler
88
{
99
public void Handle(string message, string routingKey, IQueueService queueService)
1010
{

tests/RabbitMQ.Client.Core.DependencyInjection.Tests/UnitTests/BaseBatchMessageHandlerTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
using RabbitMQ.Client.Core.DependencyInjection.Configuration;
99
using RabbitMQ.Client.Core.DependencyInjection.Models;
1010
using RabbitMQ.Client.Core.DependencyInjection.Services;
11-
using RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests.Stubs;
11+
using RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs;
1212
using RabbitMQ.Client.Events;
1313
using Xunit;
1414

tests/RabbitMQ.Client.Core.DependencyInjection.Tests/UnitTests/BatchMessageHandlerDependencyInjectionExtensionsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using Moq;
55
using RabbitMQ.Client.Core.DependencyInjection.Configuration;
66
using RabbitMQ.Client.Core.DependencyInjection.Exceptions;
7-
using RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests.Stubs;
7+
using RabbitMQ.Client.Core.DependencyInjection.Tests.Stubs;
88
using Xunit;
99

1010
namespace RabbitMQ.Client.Core.DependencyInjection.Tests.UnitTests

0 commit comments

Comments
 (0)