|
22 | 22 |
|
23 | 23 | import io.netty.buffer.ByteBuf;
|
24 | 24 | import io.netty.buffer.ByteBufAllocator;
|
25 |
| -import io.netty.buffer.CompositeByteBuf; |
26 | 25 | import io.netty.buffer.Unpooled;
|
27 | 26 | import io.rsocket.DuplexConnection;
|
28 | 27 | import io.rsocket.frame.*;
|
29 |
| -import io.rsocket.util.DefaultPayload; |
30 |
| -import java.util.Arrays; |
31 |
| -import java.util.List; |
32 | 28 | import java.util.concurrent.ThreadLocalRandom;
|
33 | 29 | import org.junit.Assert;
|
34 | 30 | import org.junit.jupiter.api.DisplayName;
|
@@ -91,216 +87,6 @@ void constructorNullDelegate() {
|
91 | 87 | .withMessage("delegate must not be null");
|
92 | 88 | }
|
93 | 89 |
|
94 |
| - @DisplayName("reassembles data") |
95 |
| - @Test |
96 |
| - void reassembleData() { |
97 |
| - List<ByteBuf> byteBufs = |
98 |
| - Arrays.asList( |
99 |
| - RequestResponseFrameFlyweight.encode(allocator, 1, true, DefaultPayload.create(data)), |
100 |
| - PayloadFrameFlyweight.encode( |
101 |
| - allocator, 1, true, false, true, DefaultPayload.create(data)), |
102 |
| - PayloadFrameFlyweight.encode( |
103 |
| - allocator, 1, true, false, true, DefaultPayload.create(data)), |
104 |
| - PayloadFrameFlyweight.encode( |
105 |
| - allocator, 1, true, false, true, DefaultPayload.create(data)), |
106 |
| - PayloadFrameFlyweight.encode( |
107 |
| - allocator, 1, false, false, true, DefaultPayload.create(data))); |
108 |
| - |
109 |
| - CompositeByteBuf data = |
110 |
| - allocator |
111 |
| - .compositeDirectBuffer() |
112 |
| - .addComponents( |
113 |
| - true, |
114 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.data), |
115 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.data), |
116 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.data), |
117 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.data), |
118 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.data)); |
119 |
| - |
120 |
| - when(delegate.receive()).thenReturn(Flux.fromIterable(byteBufs)); |
121 |
| - when(delegate.onClose()).thenReturn(Mono.never()); |
122 |
| - |
123 |
| - new FragmentationDuplexConnection(delegate, allocator, 1030, false, "") |
124 |
| - .receive() |
125 |
| - .as(StepVerifier::create) |
126 |
| - .assertNext( |
127 |
| - byteBuf -> { |
128 |
| - Assert.assertEquals(data, RequestResponseFrameFlyweight.data(byteBuf)); |
129 |
| - }) |
130 |
| - .verifyComplete(); |
131 |
| - } |
132 |
| - |
133 |
| - @DisplayName("reassembles metadata") |
134 |
| - @Test |
135 |
| - void reassembleMetadata() { |
136 |
| - List<ByteBuf> byteBufs = |
137 |
| - Arrays.asList( |
138 |
| - RequestResponseFrameFlyweight.encode( |
139 |
| - allocator, |
140 |
| - 1, |
141 |
| - true, |
142 |
| - DefaultPayload.create(Unpooled.EMPTY_BUFFER, Unpooled.wrappedBuffer(metadata))), |
143 |
| - PayloadFrameFlyweight.encode( |
144 |
| - allocator, |
145 |
| - 1, |
146 |
| - true, |
147 |
| - false, |
148 |
| - true, |
149 |
| - DefaultPayload.create(Unpooled.EMPTY_BUFFER, Unpooled.wrappedBuffer(metadata))), |
150 |
| - PayloadFrameFlyweight.encode( |
151 |
| - allocator, |
152 |
| - 1, |
153 |
| - true, |
154 |
| - false, |
155 |
| - true, |
156 |
| - DefaultPayload.create(Unpooled.EMPTY_BUFFER, Unpooled.wrappedBuffer(metadata))), |
157 |
| - PayloadFrameFlyweight.encode( |
158 |
| - allocator, |
159 |
| - 1, |
160 |
| - true, |
161 |
| - false, |
162 |
| - true, |
163 |
| - DefaultPayload.create(Unpooled.EMPTY_BUFFER, Unpooled.wrappedBuffer(metadata))), |
164 |
| - PayloadFrameFlyweight.encode( |
165 |
| - allocator, |
166 |
| - 1, |
167 |
| - false, |
168 |
| - false, |
169 |
| - true, |
170 |
| - DefaultPayload.create(Unpooled.EMPTY_BUFFER, Unpooled.wrappedBuffer(metadata)))); |
171 |
| - |
172 |
| - CompositeByteBuf metadata = |
173 |
| - allocator |
174 |
| - .compositeDirectBuffer() |
175 |
| - .addComponents( |
176 |
| - true, |
177 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata), |
178 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata), |
179 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata), |
180 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata), |
181 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata)); |
182 |
| - |
183 |
| - when(delegate.receive()).thenReturn(Flux.fromIterable(byteBufs)); |
184 |
| - when(delegate.onClose()).thenReturn(Mono.never()); |
185 |
| - |
186 |
| - new FragmentationDuplexConnection(delegate, allocator, 1030, false, "") |
187 |
| - .receive() |
188 |
| - .as(StepVerifier::create) |
189 |
| - .assertNext( |
190 |
| - byteBuf -> { |
191 |
| - System.out.println(byteBuf.readableBytes()); |
192 |
| - ByteBuf m = RequestResponseFrameFlyweight.metadata(byteBuf); |
193 |
| - Assert.assertEquals(metadata, m); |
194 |
| - }) |
195 |
| - .verifyComplete(); |
196 |
| - } |
197 |
| - |
198 |
| - @DisplayName("reassembles metadata and data") |
199 |
| - @Test |
200 |
| - void reassembleMetadataAndData() { |
201 |
| - List<ByteBuf> byteBufs = |
202 |
| - Arrays.asList( |
203 |
| - RequestResponseFrameFlyweight.encode( |
204 |
| - allocator, |
205 |
| - 1, |
206 |
| - true, |
207 |
| - DefaultPayload.create(Unpooled.EMPTY_BUFFER, Unpooled.wrappedBuffer(metadata))), |
208 |
| - PayloadFrameFlyweight.encode( |
209 |
| - allocator, |
210 |
| - 1, |
211 |
| - true, |
212 |
| - false, |
213 |
| - true, |
214 |
| - DefaultPayload.create(Unpooled.EMPTY_BUFFER, Unpooled.wrappedBuffer(metadata))), |
215 |
| - PayloadFrameFlyweight.encode( |
216 |
| - allocator, |
217 |
| - 1, |
218 |
| - true, |
219 |
| - false, |
220 |
| - true, |
221 |
| - DefaultPayload.create(Unpooled.EMPTY_BUFFER, Unpooled.wrappedBuffer(metadata))), |
222 |
| - PayloadFrameFlyweight.encode( |
223 |
| - allocator, |
224 |
| - 1, |
225 |
| - true, |
226 |
| - false, |
227 |
| - true, |
228 |
| - DefaultPayload.create( |
229 |
| - Unpooled.wrappedBuffer(data), Unpooled.wrappedBuffer(metadata))), |
230 |
| - PayloadFrameFlyweight.encode( |
231 |
| - allocator, 1, false, false, true, DefaultPayload.create(data))); |
232 |
| - |
233 |
| - CompositeByteBuf data = |
234 |
| - allocator |
235 |
| - .compositeDirectBuffer() |
236 |
| - .addComponents( |
237 |
| - true, |
238 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.data), |
239 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.data)); |
240 |
| - |
241 |
| - CompositeByteBuf metadata = |
242 |
| - allocator |
243 |
| - .compositeDirectBuffer() |
244 |
| - .addComponents( |
245 |
| - true, |
246 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata), |
247 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata), |
248 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata), |
249 |
| - Unpooled.wrappedBuffer(FragmentationDuplexConnectionTest.metadata)); |
250 |
| - |
251 |
| - when(delegate.receive()).thenReturn(Flux.fromIterable(byteBufs)); |
252 |
| - when(delegate.onClose()).thenReturn(Mono.never()); |
253 |
| - |
254 |
| - new FragmentationDuplexConnection(delegate, allocator, 1030, false, "") |
255 |
| - .receive() |
256 |
| - .as(StepVerifier::create) |
257 |
| - .assertNext( |
258 |
| - byteBuf -> { |
259 |
| - Assert.assertEquals(data, RequestResponseFrameFlyweight.data(byteBuf)); |
260 |
| - Assert.assertEquals(metadata, RequestResponseFrameFlyweight.metadata(byteBuf)); |
261 |
| - }) |
262 |
| - .verifyComplete(); |
263 |
| - } |
264 |
| - |
265 |
| - @DisplayName("does not reassemble a non-fragment frame") |
266 |
| - @Test |
267 |
| - void reassembleNonFragment() { |
268 |
| - ByteBuf encode = |
269 |
| - RequestResponseFrameFlyweight.encode( |
270 |
| - allocator, 1, false, DefaultPayload.create(Unpooled.wrappedBuffer(data))); |
271 |
| - |
272 |
| - when(delegate.receive()).thenReturn(Flux.just(encode)); |
273 |
| - when(delegate.onClose()).thenReturn(Mono.never()); |
274 |
| - |
275 |
| - new FragmentationDuplexConnection(delegate, allocator, 1030, false, "") |
276 |
| - .receive() |
277 |
| - .as(StepVerifier::create) |
278 |
| - .assertNext( |
279 |
| - byteBuf -> { |
280 |
| - Assert.assertEquals( |
281 |
| - Unpooled.wrappedBuffer(data), RequestResponseFrameFlyweight.data(byteBuf)); |
282 |
| - }) |
283 |
| - .verifyComplete(); |
284 |
| - } |
285 |
| - |
286 |
| - @DisplayName("does not reassemble non fragmentable frame") |
287 |
| - @Test |
288 |
| - void reassembleNonFragmentableFrame() { |
289 |
| - ByteBuf encode = CancelFrameFlyweight.encode(allocator, 2); |
290 |
| - |
291 |
| - when(delegate.receive()).thenReturn(Flux.just(encode)); |
292 |
| - when(delegate.onClose()).thenReturn(Mono.never()); |
293 |
| - |
294 |
| - new FragmentationDuplexConnection(delegate, allocator, 1030, false, "") |
295 |
| - .receive() |
296 |
| - .as(StepVerifier::create) |
297 |
| - .assertNext( |
298 |
| - byteBuf -> { |
299 |
| - Assert.assertEquals(FrameType.CANCEL, FrameHeaderFlyweight.frameType(byteBuf)); |
300 |
| - }) |
301 |
| - .verifyComplete(); |
302 |
| - } |
303 |
| - |
304 | 90 | @DisplayName("fragments data")
|
305 | 91 | @Test
|
306 | 92 | void sendData() {
|
|
0 commit comments