@@ -54,37 +54,68 @@ class ByteBufferBsonInputTest {
5454 private static final List <Integer > ALL_CODE_POINTS_EXCLUDING_SURROGATES = Stream .concat (
5555 range (1 , MIN_HIGH_SURROGATE ).boxed (),
5656 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
5858 .collect (toList ());
5959
6060 static Stream <BufferProvider > bufferProviders () {
6161 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+ )
84101 );
85102 }
86103
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}" )
88119 @ MethodSource ("bufferProviders" )
89120 void shouldReadEmptyString (final BufferProvider bufferProvider ) {
90121 // given
@@ -101,7 +132,7 @@ void shouldReadEmptyString(final BufferProvider bufferProvider) {
101132 }
102133 }
103134
104- @ ParameterizedTest
135+ @ ParameterizedTest ( name = "should read empty CString. BufferProvider={0}" )
105136 @ MethodSource ("bufferProviders" )
106137 void shouldReadEmptyCString (final BufferProvider bufferProvider ) {
107138 // given
@@ -116,7 +147,7 @@ void shouldReadEmptyCString(final BufferProvider bufferProvider) {
116147 }
117148 }
118149
119- @ ParameterizedTest
150+ @ ParameterizedTest ( name = "should read invalid one byte string. BufferProvider={0}" )
120151 @ MethodSource ("bufferProviders" )
121152 void shouldReadInvalidOneByteString (final BufferProvider bufferProvider ) {
122153 ByteBuf buffer = allocateAndWriteToBuffer (bufferProvider , new byte []{2 , 0 , 0 , 0 , (byte ) 0xFF , 0 });
@@ -131,7 +162,7 @@ void shouldReadInvalidOneByteString(final BufferProvider bufferProvider) {
131162 }
132163 }
133164
134- @ ParameterizedTest
165+ @ ParameterizedTest ( name = "should read invalid one byte CString. BufferProvider={0}" )
135166 @ MethodSource ("bufferProviders" )
136167 void shouldReadInvalidOneByteCString (final BufferProvider bufferProvider ) {
137168 ByteBuf buffer = allocateAndWriteToBuffer (bufferProvider , new byte []{-0x01 , 0 });
@@ -147,7 +178,7 @@ void shouldReadInvalidOneByteCString(final BufferProvider bufferProvider) {
147178 }
148179
149180
150- @ ParameterizedTest
181+ @ ParameterizedTest ( name = "should read string up to buffer limit. BufferProvider={0}" )
151182 @ MethodSource ("bufferProviders" )
152183 void shouldReadStringUptoBufferLimit (final BufferProvider bufferProvider ) {
153184 // given
@@ -171,7 +202,7 @@ void shouldReadStringUptoBufferLimit(final BufferProvider bufferProvider) {
171202 }
172203 }
173204
174- @ ParameterizedTest
205+ @ ParameterizedTest ( name = "should read string with more data in buffer. BufferProvider={0}" )
175206 @ MethodSource ("bufferProviders" )
176207 void shouldReadStringWithMoreDataInBuffer (final BufferProvider bufferProvider ) throws IOException {
177208 // given
@@ -200,7 +231,7 @@ void shouldReadStringWithMoreDataInBuffer(final BufferProvider bufferProvider) t
200231 }
201232 }
202233
203- @ ParameterizedTest
234+ @ ParameterizedTest ( name = "should read multiple strings within buffer. BufferProvider={0}" )
204235 @ MethodSource ("bufferProviders" )
205236 void shouldReadMultipleStringsWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
206237 // given
@@ -252,7 +283,7 @@ void shouldReadMultipleStringsWithinBuffer(final BufferProvider bufferProvider)
252283 }
253284 }
254285
255- @ ParameterizedTest
286+ @ ParameterizedTest ( name = "should read consecutive multiple strings within buffer. BufferProvider={0}" )
256287 @ MethodSource ("bufferProviders" )
257288 void shouldReadConsecutiveMultipleStringsWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
258289 // given
@@ -302,7 +333,7 @@ void shouldReadConsecutiveMultipleStringsWithinBuffer(final BufferProvider buffe
302333 }
303334 }
304335
305- @ ParameterizedTest
336+ @ ParameterizedTest ( name = "should read consecutive multiple CStrings within buffer. BufferProvider={0}" )
306337 @ MethodSource ("bufferProviders" )
307338 void shouldReadConsecutiveMultipleCStringsWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
308339 // given
@@ -352,7 +383,7 @@ void shouldReadConsecutiveMultipleCStringsWithinBuffer(final BufferProvider buff
352383 }
353384 }
354385
355- @ ParameterizedTest
386+ @ ParameterizedTest ( name = "should read multiple CStrings within buffer. BufferProvider={0}" )
356387 @ MethodSource ("bufferProviders" )
357388 void shouldReadMultipleCStringsWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
358389 // given
@@ -409,7 +440,7 @@ void shouldReadMultipleCStringsWithinBuffer(final BufferProvider bufferProvider)
409440 }
410441 }
411442
412- @ ParameterizedTest
443+ @ ParameterizedTest ( name = "should read string within buffer. BufferProvider={0}" )
413444 @ MethodSource ("bufferProviders" )
414445 void shouldReadStringWithinBuffer (final BufferProvider bufferProvider ) throws IOException {
415446 // given
@@ -441,7 +472,7 @@ void shouldReadStringWithinBuffer(final BufferProvider bufferProvider) throws IO
441472 }
442473 }
443474
444- @ ParameterizedTest
475+ @ ParameterizedTest ( name = "should read CString up to buffer limit. BufferProvider={0}" )
445476 @ MethodSource ("bufferProviders" )
446477 void shouldReadCStringUptoBufferLimit (final BufferProvider bufferProvider ) {
447478 // given
@@ -465,7 +496,7 @@ void shouldReadCStringUptoBufferLimit(final BufferProvider bufferProvider) {
465496 }
466497 }
467498
468- @ ParameterizedTest
499+ @ ParameterizedTest ( name = "should read CString with more data in buffer. BufferProvider={0}" )
469500 @ MethodSource ("bufferProviders" )
470501 void shouldReadCStringWithMoreDataInBuffer (final BufferProvider bufferProvider ) throws IOException {
471502 // given
@@ -494,7 +525,7 @@ void shouldReadCStringWithMoreDataInBuffer(final BufferProvider bufferProvider)
494525 }
495526 }
496527
497- @ ParameterizedTest
528+ @ ParameterizedTest ( name = "should read CString within buffer. BufferProvider={0}" )
498529 @ MethodSource ("bufferProviders" )
499530 void shouldReadCStringWithingBuffer (final BufferProvider bufferProvider ) throws IOException {
500531 // given
@@ -526,7 +557,7 @@ void shouldReadCStringWithingBuffer(final BufferProvider bufferProvider) throws
526557 }
527558 }
528559
529- @ ParameterizedTest
560+ @ ParameterizedTest ( name = "should throw if CString is not null terminated skip. BufferProvider={0}" )
530561 @ MethodSource ("bufferProviders" )
531562 void shouldThrowIfCStringIsNotNullTerminatedSkip (final BufferProvider bufferProvider ) {
532563 // given
@@ -553,7 +584,7 @@ public static Stream<Arguments> nonNullTerminatedStringsWithBuffers() {
553584 return arguments .stream ();
554585 }
555586
556- @ ParameterizedTest
587+ @ ParameterizedTest ( name = "should throw if string is not null terminated. Parameters: nonNullTerminatedString={0}, bufferProvider={1}" )
557588 @ MethodSource ("nonNullTerminatedStringsWithBuffers" )
558589 void shouldThrowIfStringIsNotNullTerminated (final byte [] nonNullTerminatedString , final BufferProvider bufferProvider ) {
559590 // given
@@ -579,7 +610,7 @@ public static Stream<Arguments> nonNullTerminatedCStringsWithBuffers() {
579610 return arguments .stream ();
580611 }
581612
582- @ ParameterizedTest
613+ @ ParameterizedTest ( name = "should throw if CString is not null terminated. Parameters: nonNullTerminatedCString={0}, bufferProvider={1}" )
583614 @ MethodSource ("nonNullTerminatedCStringsWithBuffers" )
584615 void shouldThrowIfCStringIsNotNullTerminated (final byte [] nonNullTerminatedCString , final BufferProvider bufferProvider ) {
585616 // given
@@ -592,7 +623,7 @@ void shouldThrowIfCStringIsNotNullTerminated(final byte[] nonNullTerminatedCStri
592623 }
593624
594625
595- @ ParameterizedTest
626+ @ ParameterizedTest ( name = "should throw if one byte string is not null terminated. BufferProvider={0}" )
596627 @ MethodSource ("bufferProviders" )
597628 void shouldThrowIfOneByteStringIsNotNullTerminated (final BufferProvider bufferProvider ) {
598629 // given
@@ -604,7 +635,7 @@ void shouldThrowIfOneByteStringIsNotNullTerminated(final BufferProvider bufferPr
604635 }
605636 }
606637
607- @ ParameterizedTest
638+ @ ParameterizedTest ( name = "should throw if one byte CString is not null terminated. BufferProvider={0}" )
608639 @ MethodSource ("bufferProviders" )
609640 void shouldThrowIfOneByteCStringIsNotNullTerminated (final BufferProvider bufferProvider ) {
610641 // given
@@ -616,7 +647,7 @@ void shouldThrowIfOneByteCStringIsNotNullTerminated(final BufferProvider bufferP
616647 }
617648 }
618649
619- @ ParameterizedTest
650+ @ ParameterizedTest ( name = "should throw if length of bson string is not positive. BufferProvider={0}" )
620651 @ MethodSource ("bufferProviders" )
621652 void shouldThrowIfLengthOfBsonStringIsNotPositive (final BufferProvider bufferProvider ) {
622653 // given
@@ -628,7 +659,7 @@ void shouldThrowIfLengthOfBsonStringIsNotPositive(final BufferProvider bufferPro
628659 }
629660 }
630661
631- public static Stream <Arguments > shouldSkipCStringWhenMultipleNullTerminationPresent () {
662+ public static Stream <Arguments > shouldSkipCStringWhenMultipleNullTerminatorsPresent () {
632663 List <Arguments > arguments = new ArrayList <>();
633664 List <BufferProvider > collect = bufferProviders ().collect (toList ());
634665 for (BufferProvider bufferProvider : collect ) {
@@ -644,9 +675,9 @@ public static Stream<Arguments> shouldSkipCStringWhenMultipleNullTerminationPres
644675 return arguments .stream ();
645676 }
646677
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 ) {
650681 // given
651682 ByteBuf buffer = allocateAndWriteToBuffer (bufferProvider , cStringBytes );
652683 try (ByteBufferBsonInput bufferInput = new ByteBufferBsonInput (buffer )) {
@@ -660,9 +691,9 @@ void shouldSkipCStringWhenMultipleNullTerminationPresent(final byte[] cStringByt
660691 }
661692 }
662693
663- @ ParameterizedTest
694+ @ ParameterizedTest ( name = "should read skip CString when multiple null terminators present within buffer. BufferProvider={0}" )
664695 @ MethodSource ("bufferProviders" )
665- void shouldReadSkipCStringWhenMultipleNullTerminationPresentWithinBuffer (final BufferProvider bufferProvider ) {
696+ void shouldReadSkipCStringWhenMultipleNullTerminatorPresentWithinBuffer (final BufferProvider bufferProvider ) {
666697 // given
667698 byte [] input = {4 , 0 , 0 , 0 , 0x4a , 0x61 , 0x76 , 0x61 , 0 , 8 , 0 , 0 , 0 };
668699 ByteBuf buffer = allocateAndWriteToBuffer (bufferProvider , input );
0 commit comments