@@ -54,37 +54,68 @@ class ByteBufferBsonInputTest {
54
54
private static final List <Integer > ALL_CODE_POINTS_EXCLUDING_SURROGATES = Stream .concat (
55
55
range (1 , MIN_HIGH_SURROGATE ).boxed (),
56
56
rangeClosed (MAX_LOW_SURROGATE + 1 , MAX_CODE_POINT ).boxed ())
57
- .filter (i -> i < 128 || i % 10 == 0 ) // only subset of code points to speed up testing
57
+ .filter (i -> i < 128 || i % 30 == 0 ) // only subset of code points to speed up testing
58
58
.collect (toList ());
59
59
60
60
static Stream <BufferProvider > bufferProviders () {
61
61
return Stream .of (
62
- size -> new NettyByteBuf (PooledByteBufAllocator .DEFAULT .directBuffer (size )),
63
- size -> new NettyByteBuf (PooledByteBufAllocator .DEFAULT .heapBuffer (size )),
64
- new PowerOfTwoBufferPool (),
65
- size -> new ByteBufNIO (ByteBuffer .wrap (new byte [size + 5 ], 2 , size ).slice ()), //different array offsets
66
- size -> new ByteBufNIO (ByteBuffer .wrap (new byte [size + 4 ], 3 , size ).slice ()), //different array offsets
67
- size -> new ByteBufNIO (ByteBuffer .allocateDirect (size )),
68
- size -> new ByteBufNIO (ByteBuffer .allocate (size )) {
69
- @ Override
70
- public boolean isBackedByArray () {
71
- return false ;
72
- }
73
-
74
- @ Override
75
- public byte [] array () {
76
- return Assertions .fail ("array() is called, when isBackedByArray() returns false" );
77
- }
78
-
79
- @ Override
80
- public int arrayOffset () {
81
- return Assertions .fail ("arrayOffset() is called, when isBackedByArray() returns false" );
82
- }
83
- }
62
+ createBufferProvider (
63
+ "NettyByteBuf based on PooledByteBufAllocator.DEFAULT.directBuffer" ,
64
+ size -> new NettyByteBuf (PooledByteBufAllocator .DEFAULT .directBuffer (size ))
65
+ ),
66
+ createBufferProvider (
67
+ "NettyByteBuf based on PooledByteBufAllocator.DEFAULT.heapBuffer" ,
68
+ size -> new NettyByteBuf (PooledByteBufAllocator .DEFAULT .heapBuffer (size ))
69
+ ),
70
+ createBufferProvider (
71
+ "PowerOfTwoBufferPool" ,
72
+ new PowerOfTwoBufferPool ()
73
+ ),
74
+ createBufferProvider (
75
+ "ByteBufNIO based on ByteBuffer with arrayOffset() -> 2" ,
76
+ size -> new ByteBufNIO (ByteBuffer .wrap (new byte [size + 5 ], 2 , size ).slice ())
77
+ ),
78
+ createBufferProvider (
79
+ "ByteBufNIO based on ByteBuffer with arrayOffset() -> 3," ,
80
+ size -> new ByteBufNIO (ByteBuffer .wrap (new byte [size + 4 ], 3 , size ).slice ())
81
+ ),
82
+ createBufferProvider (
83
+ "ByteBufNIO emulating direct ByteBuffer" ,
84
+ size -> new ByteBufNIO (ByteBuffer .allocate (size )) {
85
+ @ Override
86
+ public boolean isBackedByArray () {
87
+ return false ;
88
+ }
89
+
90
+ @ Override
91
+ public byte [] array () {
92
+ return Assertions .fail ("array() is called, when isBackedByArray() returns false" );
93
+ }
94
+
95
+ @ Override
96
+ public int arrayOffset () {
97
+ return Assertions .fail ("arrayOffset() is called, when isBackedByArray() returns false" );
98
+ }
99
+ }
100
+ )
84
101
);
85
102
}
86
103
87
- @ ParameterizedTest
104
+ private static BufferProvider createBufferProvider (final String bufferDescription , final BufferProvider bufferProvider ) {
105
+ return new BufferProvider () {
106
+ @ Override
107
+ public ByteBuf getBuffer (final int size ) {
108
+ return bufferProvider .getBuffer (size );
109
+ }
110
+
111
+ @ Override
112
+ public String toString () {
113
+ return bufferDescription ;
114
+ }
115
+ };
116
+ }
117
+
118
+ @ ParameterizedTest (name = "should read empty string. BufferProvider={0}" )
88
119
@ MethodSource ("bufferProviders" )
89
120
void shouldReadEmptyString (final BufferProvider bufferProvider ) {
90
121
// given
@@ -101,7 +132,7 @@ void shouldReadEmptyString(final BufferProvider bufferProvider) {
101
132
}
102
133
}
103
134
104
- @ ParameterizedTest
135
+ @ ParameterizedTest ( name = "should read empty CString. BufferProvider={0}" )
105
136
@ MethodSource ("bufferProviders" )
106
137
void shouldReadEmptyCString (final BufferProvider bufferProvider ) {
107
138
// given
@@ -116,7 +147,7 @@ void shouldReadEmptyCString(final BufferProvider bufferProvider) {
116
147
}
117
148
}
118
149
119
- @ ParameterizedTest
150
+ @ ParameterizedTest ( name = "should read invalid one byte string. BufferProvider={0}" )
120
151
@ MethodSource ("bufferProviders" )
121
152
void shouldReadInvalidOneByteString (final BufferProvider bufferProvider ) {
122
153
ByteBuf buffer = allocateAndWriteToBuffer (bufferProvider , new byte []{2 , 0 , 0 , 0 , (byte ) 0xFF , 0 });
@@ -131,7 +162,7 @@ void shouldReadInvalidOneByteString(final BufferProvider bufferProvider) {
131
162
}
132
163
}
133
164
134
- @ ParameterizedTest
165
+ @ ParameterizedTest ( name = "should read invalid one byte CString. BufferProvider={0}" )
135
166
@ MethodSource ("bufferProviders" )
136
167
void shouldReadInvalidOneByteCString (final BufferProvider bufferProvider ) {
137
168
ByteBuf buffer = allocateAndWriteToBuffer (bufferProvider , new byte []{-0x01 , 0 });
@@ -147,7 +178,7 @@ void shouldReadInvalidOneByteCString(final BufferProvider bufferProvider) {
147
178
}
148
179
149
180
150
- @ ParameterizedTest
181
+ @ ParameterizedTest ( name = "should read string up to buffer limit. BufferProvider={0}" )
151
182
@ MethodSource ("bufferProviders" )
152
183
void shouldReadStringUptoBufferLimit (final BufferProvider bufferProvider ) {
153
184
// given
@@ -171,7 +202,7 @@ void shouldReadStringUptoBufferLimit(final BufferProvider bufferProvider) {
171
202
}
172
203
}
173
204
174
- @ ParameterizedTest
205
+ @ ParameterizedTest ( name = "should read string with more data in buffer. BufferProvider={0}" )
175
206
@ MethodSource ("bufferProviders" )
176
207
void shouldReadStringWithMoreDataInBuffer (final BufferProvider bufferProvider ) throws IOException {
177
208
// given
@@ -200,7 +231,7 @@ void shouldReadStringWithMoreDataInBuffer(final BufferProvider bufferProvider) t
200
231
}
201
232
}
202
233
203
- @ ParameterizedTest
234
+ @ ParameterizedTest ( name = "should read multiple strings within buffer. BufferProvider={0}" )
204
235
@ MethodSource ("bufferProviders" )
205
236
void shouldReadMultipleStringsWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
206
237
// given
@@ -252,7 +283,7 @@ void shouldReadMultipleStringsWithinBuffer(final BufferProvider bufferProvider)
252
283
}
253
284
}
254
285
255
- @ ParameterizedTest
286
+ @ ParameterizedTest ( name = "should read consecutive multiple strings within buffer. BufferProvider={0}" )
256
287
@ MethodSource ("bufferProviders" )
257
288
void shouldReadConsecutiveMultipleStringsWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
258
289
// given
@@ -302,7 +333,7 @@ void shouldReadConsecutiveMultipleStringsWithinBuffer(final BufferProvider buffe
302
333
}
303
334
}
304
335
305
- @ ParameterizedTest
336
+ @ ParameterizedTest ( name = "should read consecutive multiple CStrings within buffer. BufferProvider={0}" )
306
337
@ MethodSource ("bufferProviders" )
307
338
void shouldReadConsecutiveMultipleCStringsWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
308
339
// given
@@ -352,7 +383,7 @@ void shouldReadConsecutiveMultipleCStringsWithinBuffer(final BufferProvider buff
352
383
}
353
384
}
354
385
355
- @ ParameterizedTest
386
+ @ ParameterizedTest ( name = "should read multiple CStrings within buffer. BufferProvider={0}" )
356
387
@ MethodSource ("bufferProviders" )
357
388
void shouldReadMultipleCStringsWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
358
389
// given
@@ -409,7 +440,7 @@ void shouldReadMultipleCStringsWithinBuffer(final BufferProvider bufferProvider)
409
440
}
410
441
}
411
442
412
- @ ParameterizedTest
443
+ @ ParameterizedTest ( name = "should read string within buffer. BufferProvider={0}" )
413
444
@ MethodSource ("bufferProviders" )
414
445
void shouldReadStringWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
415
446
// given
@@ -441,7 +472,7 @@ void shouldReadStringWithinBuffer(final BufferProvider bufferProvider) throws IO
441
472
}
442
473
}
443
474
444
- @ ParameterizedTest
475
+ @ ParameterizedTest ( name = "should read CString up to buffer limit. BufferProvider={0}" )
445
476
@ MethodSource ("bufferProviders" )
446
477
void shouldReadCStringUptoBufferLimit (final BufferProvider bufferProvider ) {
447
478
// given
@@ -465,7 +496,7 @@ void shouldReadCStringUptoBufferLimit(final BufferProvider bufferProvider) {
465
496
}
466
497
}
467
498
468
- @ ParameterizedTest
499
+ @ ParameterizedTest ( name = "should read CString with more data in buffer. BufferProvider={0}" )
469
500
@ MethodSource ("bufferProviders" )
470
501
void shouldReadCStringWithMoreDataInBuffer (final BufferProvider bufferProvider ) throws IOException {
471
502
// given
@@ -494,7 +525,7 @@ void shouldReadCStringWithMoreDataInBuffer(final BufferProvider bufferProvider)
494
525
}
495
526
}
496
527
497
- @ ParameterizedTest
528
+ @ ParameterizedTest ( name = "should read CString within buffer. BufferProvider={0}" )
498
529
@ MethodSource ("bufferProviders" )
499
530
void shouldReadCStringWithingBuffer (final BufferProvider bufferProvider ) throws IOException {
500
531
// given
@@ -526,7 +557,7 @@ void shouldReadCStringWithingBuffer(final BufferProvider bufferProvider) throws
526
557
}
527
558
}
528
559
529
- @ ParameterizedTest
560
+ @ ParameterizedTest ( name = "should throw if CString is not null terminated skip. BufferProvider={0}" )
530
561
@ MethodSource ("bufferProviders" )
531
562
void shouldThrowIfCStringIsNotNullTerminatedSkip (final BufferProvider bufferProvider ) {
532
563
// given
@@ -553,7 +584,7 @@ public static Stream<Arguments> nonNullTerminatedStringsWithBuffers() {
553
584
return arguments .stream ();
554
585
}
555
586
556
- @ ParameterizedTest
587
+ @ ParameterizedTest ( name = "should throw if string is not null terminated. Parameters: nonNullTerminatedString={0}, bufferProvider={1}" )
557
588
@ MethodSource ("nonNullTerminatedStringsWithBuffers" )
558
589
void shouldThrowIfStringIsNotNullTerminated (final byte [] nonNullTerminatedString , final BufferProvider bufferProvider ) {
559
590
// given
@@ -579,7 +610,7 @@ public static Stream<Arguments> nonNullTerminatedCStringsWithBuffers() {
579
610
return arguments .stream ();
580
611
}
581
612
582
- @ ParameterizedTest
613
+ @ ParameterizedTest ( name = "should throw if CString is not null terminated. Parameters: nonNullTerminatedCString={0}, bufferProvider={1}" )
583
614
@ MethodSource ("nonNullTerminatedCStringsWithBuffers" )
584
615
void shouldThrowIfCStringIsNotNullTerminated (final byte [] nonNullTerminatedCString , final BufferProvider bufferProvider ) {
585
616
// given
@@ -592,7 +623,7 @@ void shouldThrowIfCStringIsNotNullTerminated(final byte[] nonNullTerminatedCStri
592
623
}
593
624
594
625
595
- @ ParameterizedTest
626
+ @ ParameterizedTest ( name = "should throw if one byte string is not null terminated. BufferProvider={0}" )
596
627
@ MethodSource ("bufferProviders" )
597
628
void shouldThrowIfOneByteStringIsNotNullTerminated (final BufferProvider bufferProvider ) {
598
629
// given
@@ -604,7 +635,7 @@ void shouldThrowIfOneByteStringIsNotNullTerminated(final BufferProvider bufferPr
604
635
}
605
636
}
606
637
607
- @ ParameterizedTest
638
+ @ ParameterizedTest ( name = "should throw if one byte CString is not null terminated. BufferProvider={0}" )
608
639
@ MethodSource ("bufferProviders" )
609
640
void shouldThrowIfOneByteCStringIsNotNullTerminated (final BufferProvider bufferProvider ) {
610
641
// given
@@ -616,7 +647,7 @@ void shouldThrowIfOneByteCStringIsNotNullTerminated(final BufferProvider bufferP
616
647
}
617
648
}
618
649
619
- @ ParameterizedTest
650
+ @ ParameterizedTest ( name = "should throw if length of bson string is not positive. BufferProvider={0}" )
620
651
@ MethodSource ("bufferProviders" )
621
652
void shouldThrowIfLengthOfBsonStringIsNotPositive (final BufferProvider bufferProvider ) {
622
653
// given
@@ -628,7 +659,7 @@ void shouldThrowIfLengthOfBsonStringIsNotPositive(final BufferProvider bufferPro
628
659
}
629
660
}
630
661
631
- public static Stream <Arguments > shouldSkipCStringWhenMultipleNullTerminationPresent () {
662
+ public static Stream <Arguments > shouldSkipCStringWhenMultipleNullTerminatorsPresent () {
632
663
List <Arguments > arguments = new ArrayList <>();
633
664
List <BufferProvider > collect = bufferProviders ().collect (toList ());
634
665
for (BufferProvider bufferProvider : collect ) {
@@ -644,9 +675,9 @@ public static Stream<Arguments> shouldSkipCStringWhenMultipleNullTerminationPres
644
675
return arguments .stream ();
645
676
}
646
677
647
- @ ParameterizedTest
648
- @ MethodSource ()
649
- void shouldSkipCStringWhenMultipleNullTerminationPresent (final byte [] cStringBytes , final BufferProvider bufferProvider ) {
678
+ @ ParameterizedTest ( name = "should skip CString when multiple null terminatiors present. Parameters: cStringBytes={0}, bufferProvider={1}" )
679
+ @ MethodSource
680
+ void shouldSkipCStringWhenMultipleNullTerminatorsPresent (final byte [] cStringBytes , final BufferProvider bufferProvider ) {
650
681
// given
651
682
ByteBuf buffer = allocateAndWriteToBuffer (bufferProvider , cStringBytes );
652
683
try (ByteBufferBsonInput bufferInput = new ByteBufferBsonInput (buffer )) {
@@ -660,9 +691,9 @@ void shouldSkipCStringWhenMultipleNullTerminationPresent(final byte[] cStringByt
660
691
}
661
692
}
662
693
663
- @ ParameterizedTest
694
+ @ ParameterizedTest ( name = "should read skip CString when multiple null terminators present within buffer. BufferProvider={0}" )
664
695
@ MethodSource ("bufferProviders" )
665
- void shouldReadSkipCStringWhenMultipleNullTerminationPresentWithinBuffer (final BufferProvider bufferProvider ) {
696
+ void shouldReadSkipCStringWhenMultipleNullTerminatorPresentWithinBuffer (final BufferProvider bufferProvider ) {
666
697
// given
667
698
byte [] input = {4 , 0 , 0 , 0 , 0x4a , 0x61 , 0x76 , 0x61 , 0 , 8 , 0 , 0 , 0 };
668
699
ByteBuf buffer = allocateAndWriteToBuffer (bufferProvider , input );
0 commit comments