@@ -3,8 +3,14 @@ import XCTest
3
3
@testable import SignalRClient
4
4
5
5
class MessageBufferTest : XCTestCase {
6
+ func getTestMessageBuffer( bufferSize: Int ) -> MessageBuffer {
7
+ return MessageBuffer ( bufferSize: bufferSize,
8
+ hubProtocol: JsonHubProtocol ( ) ,
9
+ connection: MockConnection ( ) )
10
+ }
11
+
6
12
func testSendWithinBufferSize( ) async throws {
7
- let buffer = MessageBuffer ( bufferSize: 100 )
13
+ let buffer = getTestMessageBuffer ( bufferSize: 100 )
8
14
let expectation = XCTestExpectation ( description: " Should enqueue " )
9
15
Task {
10
16
try await buffer. enqueue ( content: . string( " data " ) )
@@ -14,7 +20,7 @@ class MessageBufferTest: XCTestCase {
14
20
}
15
21
16
22
func testSendTriggersBackpressure( ) async throws {
17
- let buffer = MessageBuffer ( bufferSize: 5 )
23
+ let buffer = getTestMessageBuffer ( bufferSize: 5 )
18
24
let expectation1 = XCTestExpectation ( description: " Should not enqueue " )
19
25
expectation1. isInverted = true
20
26
let expectation2 = XCTestExpectation ( description: " Should enqueue " )
@@ -33,7 +39,7 @@ class MessageBufferTest: XCTestCase {
33
39
}
34
40
35
41
func testBackPressureAndRelease( ) async throws {
36
- let buffer = MessageBuffer ( bufferSize: 10 )
42
+ let buffer = getTestMessageBuffer ( bufferSize: 10 )
37
43
try await buffer. enqueue ( content: . string( " 1234567890 " ) )
38
44
async let eq1 = buffer. enqueue ( content: . string( " 1 " ) )
39
45
async let eq2 = buffer. enqueue ( content: . string( " 2 " ) )
@@ -51,7 +57,7 @@ class MessageBufferTest: XCTestCase {
51
57
}
52
58
53
59
func testBackPressureAndRelease2( ) async throws {
54
- let buffer = MessageBuffer ( bufferSize: 10 )
60
+ let buffer = getTestMessageBuffer ( bufferSize: 10 )
55
61
let expect1 = XCTestExpectation ( description: " Should not release 1 " )
56
62
expect1. isInverted = true
57
63
let expect2 = XCTestExpectation ( description: " Should not release 2 " )
@@ -93,7 +99,7 @@ class MessageBufferTest: XCTestCase {
93
99
}
94
100
95
101
func testAckInvalidSequenceIdIgnored( ) async throws {
96
- let buffer = MessageBuffer ( bufferSize: 100 )
102
+ let buffer = getTestMessageBuffer ( bufferSize: 100 )
97
103
let rst = try await buffer. ack ( sequenceId: 1 ) // without any send
98
104
XCTAssertEqual ( false , rst)
99
105
@@ -104,7 +110,7 @@ class MessageBufferTest: XCTestCase {
104
110
}
105
111
106
112
func testWaitToDequeueReturnsImmediatelyIfAvailable( ) async throws {
107
- let buffer = MessageBuffer ( bufferSize: 100 )
113
+ let buffer = getTestMessageBuffer ( bufferSize: 100 )
108
114
_ = try await buffer. enqueue ( content: . string( " msg " ) )
109
115
let result = try await buffer. WaitToDequeue ( )
110
116
XCTAssertTrue ( result)
@@ -113,7 +119,7 @@ class MessageBufferTest: XCTestCase {
113
119
}
114
120
115
121
func testWaitToDequeueFirst( ) async throws {
116
- let buffer = MessageBuffer ( bufferSize: 100 )
122
+ let buffer = getTestMessageBuffer ( bufferSize: 100 )
117
123
async let dqueue : Bool = try await buffer. WaitToDequeue ( )
118
124
try await Task . sleep ( for: . milliseconds( 10 ) )
119
125
@@ -127,7 +133,7 @@ class MessageBufferTest: XCTestCase {
127
133
}
128
134
129
135
func testMultipleDequeueWait( ) async throws {
130
- let buffer = MessageBuffer ( bufferSize: 100 )
136
+ let buffer = getTestMessageBuffer ( bufferSize: 100 )
131
137
async let dqueue1 : Bool = try await buffer. WaitToDequeue ( )
132
138
async let dqueue2 : Bool = try await buffer. WaitToDequeue ( )
133
139
try await Task . sleep ( for: . milliseconds( 10 ) )
@@ -143,13 +149,13 @@ class MessageBufferTest: XCTestCase {
143
149
}
144
150
145
151
func testTryDequeueReturnsNilIfEmpty( ) async throws {
146
- let buffer = MessageBuffer ( bufferSize: 100 )
152
+ let buffer = getTestMessageBuffer ( bufferSize: 100 )
147
153
let result = try await buffer. TryDequeue ( )
148
154
XCTAssertNil ( result)
149
155
}
150
156
151
157
func testResetDequeueResetsCorrectly( ) async throws {
152
- let buffer = MessageBuffer ( bufferSize: 100 )
158
+ let buffer = getTestMessageBuffer ( bufferSize: 100 )
153
159
try await buffer. enqueue ( content: . string( " test1 " ) )
154
160
try await buffer. enqueue ( content: . string( " test2 " ) )
155
161
let t1 = try await buffer. TryDequeue ( )
@@ -172,7 +178,7 @@ class MessageBufferTest: XCTestCase {
172
178
}
173
179
174
180
func testContinuousBackPressure( ) async throws {
175
- let buffer = MessageBuffer ( bufferSize: 5 )
181
+ let buffer = getTestMessageBuffer ( bufferSize: 5 )
176
182
var tasks : [ Task < Void , any Error > ] = [ ]
177
183
for i in 0 ..< 100 {
178
184
let task = Task {
0 commit comments