using Dpz.Core.MessageQueue.Models;
using Dpz.Core.MessageQueue.RabbitMQ;
namespace Dpz.Core.MessageQueue.Test.RabbitMQ;
public class NullMessageOutboxStoreTests
{
[Fact]
public void Instance_ShouldReturnSingleton()
{
var a = NullMessageOutboxStore.Instance.Value;
var b = NullMessageOutboxStore.Instance.Value;
Assert.Same(a, b);
}
[Fact]
public async Task AllOperations_ShouldCompleteSuccessfullyWithoutSideEffects()
{
var store = NullMessageOutboxStore.Instance.Value;
await store.CreateAsync("m-1", "T", "ex", "rk", "{}", "src");
await store.MarkSentAsync("m-1");
await store.MarkPublishFailedAsync("m-1", "boom");
await store.MarkConsumedAsync("m-1");
await store.MarkConsumeFailedAsync("m-1", "boom");
}
[Fact]
public async Task GetPendingPublishRetryAsync_ShouldReturnEmptyList()
{
var result = await NullMessageOutboxStore.Instance.Value.GetPendingPublishRetryAsync(50);
Assert.NotNull(result);
Assert.Empty(result);
Assert.IsAssignableFrom<IReadOnlyList<MessageOutboxEntry>>(result);
}
[Fact]
public async Task GetPendingConsumeRetryAsync_ShouldReturnEmptyList()
{
var result = await NullMessageOutboxStore.Instance.Value.GetPendingConsumeRetryAsync(50);
Assert.NotNull(result);
Assert.Empty(result);
}
}
评论加载中...