Dreamine.FullKit.Tests
1.0.0.0
Dreamine.FullKit.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
OutboundQueueTests.cs
이 파일의 문서화 페이지로 가기
1
using
Dreamine.Communication.Abstractions.Models;
2
using
Dreamine.Communication.Abstractions.Options;
3
using
Dreamine.Communication.Core.Queues;
4
5
namespace
Dreamine.FullKit.Tests.Communication
;
6
15
public
sealed
class
OutboundQueueTests
16
{
33
[Fact]
34
public
async Task
Queue_DropsOldestWhenFullAddingToBack
()
35
{
36
var queue =
new
InMemoryOutboundMessageQueue(
new
OutboundQueueOptions
37
{
38
MaxQueueSize = 2,
39
DropOldestWhenFull =
true
40
});
41
42
await queue.EnqueueAsync(
Create
(
"one"
));
43
await queue.EnqueueAsync(
Create
(
"two"
));
44
await queue.EnqueueAsync(
Create
(
"three"
));
45
46
Assert.Equal(
"two"
, (await queue.TryDequeueAsync())!.Message.Name);
47
Assert.Equal(
"three"
, (await queue.TryDequeueAsync())!.Message.Name);
48
Assert.Null(await queue.TryDequeueAsync());
49
}
50
67
[Fact]
68
public
async Task
Queue_DropsNewestWhenFullAddingToFront
()
69
{
70
var queue =
new
InMemoryOutboundMessageQueue(
new
OutboundQueueOptions
71
{
72
MaxQueueSize = 2,
73
DropOldestWhenFull =
true
74
});
75
76
await queue.EnqueueAsync(
Create
(
"one"
));
77
await queue.EnqueueAsync(
Create
(
"two"
));
78
await queue.EnqueueFrontAsync(
Create
(
"zero"
));
79
80
Assert.Equal(
"zero"
, (await queue.TryDequeueAsync())!.Message.Name);
81
Assert.Equal(
"one"
, (await queue.TryDequeueAsync())!.Message.Name);
82
}
83
100
[Fact]
101
public
async Task
Queue_ThrowsWhenFullAndDroppingDisabled
()
102
{
103
var queue =
new
InMemoryOutboundMessageQueue(
new
OutboundQueueOptions
104
{
105
MaxQueueSize = 1,
106
DropOldestWhenFull =
false
107
});
108
109
await queue.EnqueueAsync(
Create
(
"one"
));
110
111
await Assert.ThrowsAsync<InvalidOperationException>(
112
async () => await queue.EnqueueAsync(
Create
(
"two"
)));
113
}
114
123
[Fact]
124
public
void
QueuedOutboundMessage_TracksExpirationAndFailure
()
125
{
126
var queued =
new
QueuedOutboundMessage(
127
new
MessageEnvelope { Name =
"Job"
},
128
new
DateTimeOffset(2026, 6, 7, 0, 0, 0, TimeSpan.Zero),
129
attemptCount: 2,
130
lastError:
null
);
131
132
var failed = queued.WithFailure(
new
InvalidOperationException(
"bad"
));
133
134
Assert.False(queued.IsExpired(
null
, queued.EnqueuedAt.AddDays(1)));
135
Assert.True(queued.IsExpired(TimeSpan.FromSeconds(1), queued.EnqueuedAt.AddSeconds(2)));
136
Assert.Equal(3, failed.AttemptCount);
137
Assert.Equal(
"bad"
, failed.LastError);
138
Assert.Same(queued.Message, failed.Message);
139
}
140
165
private
static
QueuedOutboundMessage
Create
(
string
name)
166
{
167
return
new
QueuedOutboundMessage(
new
MessageEnvelope { Name = name });
168
}
169
}
Dreamine.FullKit.Tests.Communication
Definition
CommunicationAbstractionsTests.cs:5
Dreamine.FullKit.Tests.Communication.OutboundQueueTests
Definition
OutboundQueueTests.cs:16
Dreamine.FullKit.Tests.Communication.OutboundQueueTests.QueuedOutboundMessage_TracksExpirationAndFailure
void QueuedOutboundMessage_TracksExpirationAndFailure()
Definition
OutboundQueueTests.cs:124
Dreamine.FullKit.Tests.Communication.OutboundQueueTests.Queue_DropsNewestWhenFullAddingToFront
async Task Queue_DropsNewestWhenFullAddingToFront()
Definition
OutboundQueueTests.cs:68
Dreamine.FullKit.Tests.Communication.OutboundQueueTests.Create
static QueuedOutboundMessage Create(string name)
Definition
OutboundQueueTests.cs:165
Dreamine.FullKit.Tests.Communication.OutboundQueueTests.Queue_ThrowsWhenFullAndDroppingDisabled
async Task Queue_ThrowsWhenFullAndDroppingDisabled()
Definition
OutboundQueueTests.cs:101
Dreamine.FullKit.Tests.Communication.OutboundQueueTests.Queue_DropsOldestWhenFullAddingToBack
async Task Queue_DropsOldestWhenFullAddingToBack()
Definition
OutboundQueueTests.cs:34
Communication
OutboundQueueTests.cs
다음에 의해 생성됨 :
1.17.0