-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
285 additions
and
0 deletions.
There are no files selected for viewing
133 changes: 133 additions & 0 deletions
133
ASureBus.Tests/ASureBus/Core/Messaging/MessagingContextInternalTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
using ASureBus.Abstractions; | ||
using ASureBus.Abstractions.Options.Messaging; | ||
using ASureBus.Core.Messaging; | ||
using Moq; | ||
|
||
namespace ASureBus.Tests.ASureBus.Core.Messaging; | ||
|
||
public class MessagingContextInternalTests | ||
{ | ||
[Test] | ||
public async Task Send_ShouldEnqueueMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmACommand>(); | ||
var messagingContext = new MessagingContextInternal(); | ||
|
||
// Act | ||
await messagingContext.Send(message.Object); | ||
|
||
// Assert | ||
Assert.That(messagingContext.Messages, Has.Count.EqualTo(1)); | ||
} | ||
|
||
[Test] | ||
public async Task Send_WithOptions_ShouldEnqueueMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmACommand>(); | ||
var options = new SendOptions(); | ||
var messagingContext = new MessagingContextInternal(); | ||
|
||
// Act | ||
await messagingContext.Send(message.Object, options); | ||
|
||
// Assert | ||
Assert.That(messagingContext.Messages, Has.Count.EqualTo(1)); | ||
} | ||
|
||
[Test] | ||
public async Task Send_WithOptions_ShouldEnqueueScheduledMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmACommand>(); | ||
var options = new SendOptions | ||
{ | ||
ScheduledTime = DateTimeOffset.UtcNow.AddSeconds(10) | ||
}; | ||
var messagingContext = new MessagingContextInternal(); | ||
|
||
// Act | ||
await messagingContext.Send(message.Object, options); | ||
|
||
// Assert | ||
Assert.That(messagingContext.Messages, Has.Count.EqualTo(1)); | ||
} | ||
|
||
[Test] | ||
public async Task SendAfter_ShouldEnqueueScheduledMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmACommand>(); | ||
var delay = TimeSpan.FromMinutes(10); | ||
var messagingContext = new MessagingContextInternal(); | ||
|
||
// Act | ||
await messagingContext.SendAfter(message.Object, delay); | ||
|
||
// Assert | ||
Assert.That(messagingContext.Messages, Has.Count.EqualTo(1)); | ||
} | ||
|
||
[Test] | ||
public async Task Publish_ShouldEnqueueMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmAnEvent>(); | ||
var messagingContext = new MessagingContextInternal(); | ||
|
||
// Act | ||
await messagingContext.Publish(message.Object); | ||
|
||
// Assert | ||
Assert.That(messagingContext.Messages, Has.Count.EqualTo(1)); | ||
} | ||
|
||
[Test] | ||
public async Task Publish_WithOptions_ShouldEnqueueMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmAnEvent>(); | ||
var options = new PublishOptions(); | ||
var messagingContext = new MessagingContextInternal(); | ||
|
||
// Act | ||
await messagingContext.Publish(message.Object, options); | ||
|
||
// Assert | ||
Assert.That(messagingContext.Messages, Has.Count.EqualTo(1)); | ||
} | ||
|
||
[Test] | ||
public async Task Publish_WithOptions_ShouldEnqueueScheduledMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmAnEvent>(); | ||
var options = new PublishOptions | ||
{ | ||
ScheduledTime = DateTimeOffset.UtcNow.AddSeconds(10) | ||
}; | ||
var messagingContext = new MessagingContextInternal(); | ||
|
||
// Act | ||
await messagingContext.Publish(message.Object, options); | ||
|
||
// Assert | ||
Assert.That(messagingContext.Messages, Has.Count.EqualTo(1)); | ||
} | ||
|
||
[Test] | ||
public async Task PublishAfter_ShouldEnqueueScheduledMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmAnEvent>(); | ||
var delay = TimeSpan.FromMinutes(10); | ||
var messagingContext = new MessagingContextInternal(); | ||
|
||
// Act | ||
await messagingContext.PublishAfter(message.Object, delay); | ||
|
||
// Assert | ||
Assert.That(messagingContext.Messages, Has.Count.EqualTo(1)); | ||
} | ||
} |
152 changes: 152 additions & 0 deletions
152
ASureBus.Tests/ASureBus/Core/Messaging/MessagingContextTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
using ASureBus.Abstractions; | ||
using ASureBus.Abstractions.Options.Messaging; | ||
using ASureBus.Core.Messaging; | ||
using Moq; | ||
|
||
namespace ASureBus.Tests.ASureBus.Core.Messaging; | ||
|
||
[TestFixture] | ||
public class MessagingContextTests | ||
{ | ||
private Mock<IMessageEmitter> _mockEmitter; | ||
private MessagingContext _messagingContext; | ||
|
||
[SetUp] | ||
public void SetUp() | ||
{ | ||
_mockEmitter = new Mock<IMessageEmitter>(); | ||
_messagingContext = new MessagingContext(_mockEmitter.Object); | ||
} | ||
|
||
[Test] | ||
public async Task Send_ShouldEnqueueAndFlushMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmACommand>(); | ||
|
||
// Act | ||
await _messagingContext.Send(message.Object); | ||
|
||
// Assert | ||
_mockEmitter.Verify( | ||
e => e.FlushAll(It.IsAny<ICollectMessage>(), It.IsAny<CancellationToken>()), | ||
Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task Send_WithOptions_ShouldEnqueueAndFlushMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmACommand>(); | ||
var options = new SendOptions(); | ||
|
||
// Act | ||
await _messagingContext.Send(message.Object, options); | ||
|
||
// Assert | ||
_mockEmitter.Verify( | ||
e => e.FlushAll(It.IsAny<ICollectMessage>(), It.IsAny<CancellationToken>()), | ||
Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task Send_WithOptions_ShouldEnqueueAndFlushScheduledMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmACommand>(); | ||
var options = new SendOptions | ||
{ | ||
ScheduledTime = DateTimeOffset.UtcNow.AddSeconds(10) | ||
}; | ||
|
||
// Act | ||
await _messagingContext.Send(message.Object, options); | ||
|
||
// Assert | ||
_mockEmitter.Verify( | ||
e => e.FlushAll(It.IsAny<ICollectMessage>(), It.IsAny<CancellationToken>()), | ||
Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task SendAfter_ShouldEnqueueAndFlushScheduledMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmACommand>(); | ||
var delay = TimeSpan.FromMinutes(10); | ||
|
||
// Act | ||
await _messagingContext.SendAfter(message.Object, delay); | ||
|
||
// Assert | ||
_mockEmitter.Verify( | ||
e => e.FlushAll(It.IsAny<ICollectMessage>(), It.IsAny<CancellationToken>()), | ||
Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task Publish_ShouldEnqueueAndFlushMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmAnEvent>(); | ||
|
||
// Act | ||
await _messagingContext.Publish(message.Object); | ||
|
||
// Assert | ||
_mockEmitter.Verify( | ||
e => e.FlushAll(It.IsAny<ICollectMessage>(), It.IsAny<CancellationToken>()), | ||
Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task Publish_WithOptions_ShouldEnqueueAndFlushMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmAnEvent>(); | ||
var options = new PublishOptions(); | ||
|
||
// Act | ||
await _messagingContext.Publish(message.Object, options); | ||
|
||
// Assert | ||
_mockEmitter.Verify( | ||
e => e.FlushAll(It.IsAny<ICollectMessage>(), It.IsAny<CancellationToken>()), | ||
Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task Publish_WithOptions_ShouldEnqueueAndFlushScheduledMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmAnEvent>(); | ||
var options = new PublishOptions | ||
{ | ||
ScheduledTime = DateTimeOffset.UtcNow.AddSeconds(10) | ||
}; | ||
|
||
// Act | ||
await _messagingContext.Publish(message.Object, options); | ||
|
||
// Assert | ||
_mockEmitter.Verify( | ||
e => e.FlushAll(It.IsAny<ICollectMessage>(), It.IsAny<CancellationToken>()), | ||
Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task PublishAfter_ShouldEnqueueAndFlushScheduledMessage() | ||
{ | ||
// Arrange | ||
var message = new Mock<IAmAnEvent>(); | ||
var delay = TimeSpan.FromMinutes(10); | ||
|
||
// Act | ||
await _messagingContext.PublishAfter(message.Object, delay); | ||
|
||
// Assert | ||
_mockEmitter.Verify( | ||
e => e.FlushAll(It.IsAny<ICollectMessage>(), It.IsAny<CancellationToken>()), | ||
Times.Once); | ||
} | ||
} |