@@ -37,12 +37,7 @@ public void testReadByte() throws IOException {
3737 assertEquals (b1 .readByte (), b2 .readByte ());
3838 }
3939
40- try {
41- b2 .readByte ();
42- assertTrue (false );
43- } catch (EOFException eof ) {
44- assertTrue (true );
45- }
40+ assertEndOfBuffer (b2 );
4641 }
4742
4843 @ Test
@@ -81,12 +76,7 @@ public void testFeedByteArrayCopy() throws IOException {
8176 assertEquals (b1 .readByte (), b2 .readByte ());
8277 }
8378
84- try {
85- b2 .readByte ();
86- assertTrue (false );
87- } catch (EOFException eof ) {
88- assertTrue (true );
89- }
79+ assertEndOfBuffer (b2 );
9080 }
9181
9282 @ Test
@@ -125,12 +115,7 @@ public void testFeedByteArrayNoCopy() throws IOException {
125115 assertEquals (b1 .readByte (), b2 .readByte ());
126116 }
127117
128- try {
129- b2 .readByte ();
130- assertTrue (false );
131- } catch (EOFException eof ) {
132- assertTrue (true );
133- }
118+ assertEndOfBuffer (b2 );
134119 }
135120
136121 @ Test
@@ -180,7 +165,7 @@ public void testFeedByteArrayCopyNoCopy() throws IOException {
180165 try {
181166 b2 .readByte ();
182167 assertTrue (false );
183- } catch (EOFException eof ) {
168+ } catch (EndOfBufferException eof ) {
184169 assertTrue (true );
185170 }
186171 }
@@ -238,25 +223,74 @@ public void testGetPrimitivesChunks() throws IOException {
238223 LinkedBufferInput b = new LinkedBufferInput (1024 );
239224
240225 for (int i =0 ; i < 2 ; i ++) {
241- for (int j =0 ; j < src .length ; j ++) {
242- b .feed (src , j , 1 , true );
243- }
226+ int p = 0 ;
244227
228+ b .feed (src , p ++, 1 , true );
245229 assertEquals ((byte )2 , b .getByte ());
246230 assertEquals ((byte )2 , b .getByte ());
247231 b .advance ();
232+
233+ for (int j =0 ; j < 2 ; j ++) {
234+ try {
235+ b .getShort ();
236+ assertTrue (false );
237+ } catch (EndOfBufferException eof ) {
238+ assertTrue (true );
239+ }
240+ b .feed (src , p ++, 1 , true );
241+ }
248242 assertEquals ((short )2 , b .getShort ());
249243 assertEquals ((short )2 , b .getShort ());
250244 b .advance ();
245+
246+ for (int j =0 ; j < 4 ; j ++) {
247+ try {
248+ b .getInt ();
249+ assertTrue (false );
250+ } catch (EndOfBufferException eof ) {
251+ assertTrue (true );
252+ }
253+ b .feed (src , p ++, 1 , true );
254+ }
251255 assertEquals (2 , b .getInt ());
252256 assertEquals (2 , b .getInt ());
253257 b .advance ();
258+
259+ for (int j =0 ; j < 8 ; j ++) {
260+ try {
261+ b .getLong ();
262+ assertTrue (false );
263+ } catch (EndOfBufferException eof ) {
264+ assertTrue (true );
265+ }
266+ b .feed (src , p ++, 1 , true );
267+ }
254268 assertEquals (2L , b .getLong ());
255269 assertEquals (2L , b .getLong ());
256270 b .advance ();
271+
272+ for (int j =0 ; j < 4 ; j ++) {
273+ try {
274+ b .getFloat ();
275+ assertTrue (false );
276+ } catch (EndOfBufferException eof ) {
277+ assertTrue (true );
278+ }
279+ b .feed (src , p ++, 1 , true );
280+ }
257281 assertEquals (1.1f , b .getFloat ());
258282 assertEquals (1.1f , b .getFloat ());
259283 b .advance ();
284+
285+ for (int j =0 ; j < 8 ; j ++) {
286+ try {
287+ b .getDouble ();
288+ assertTrue (false );
289+ } catch (EndOfBufferException eof ) {
290+ assertTrue (true );
291+ }
292+ b .feed (src , p ++, 1 , true );
293+ }
260294 assertEquals (1.1 , b .getDouble ());
261295 assertEquals (1.1 , b .getDouble ());
262296 b .advance ();
@@ -300,12 +334,7 @@ public void testFeedByteBufferCopy() throws IOException {
300334 assertEquals (b1 .readByte (), b2 .readByte ());
301335 }
302336
303- try {
304- b2 .readByte ();
305- assertTrue (false );
306- } catch (EOFException eof ) {
307- assertTrue (true );
308- }
337+ assertEndOfBuffer (b2 );
309338 }
310339
311340 @ Test
@@ -344,12 +373,7 @@ public void testFeedByteBufferNoCopy() throws IOException {
344373 assertEquals (b1 .readByte (), b2 .readByte ());
345374 }
346375
347- try {
348- b2 .readByte ();
349- assertTrue (false );
350- } catch (EOFException eof ) {
351- assertTrue (true );
352- }
376+ assertEndOfBuffer (b2 );
353377 }
354378
355379 @ Test
@@ -396,13 +420,47 @@ public void testFeedByteBufferCopyNoCopy() throws IOException {
396420 assertEquals (b1 .readByte (), b2 .readByte ());
397421 }
398422
423+ assertEndOfBuffer (b2 );
424+ }
425+
426+ @ Test
427+ public void testClear () throws IOException {
428+ byte [] src = new byte [8 ];
429+
430+ LinkedBufferInput b = new LinkedBufferInput (11 );
431+
432+ for (int i =0 ; i < 2 ; i ++) {
433+ try {
434+ b .readByte ();
435+ assertTrue (false );
436+ } catch (EndOfBufferException eof ) {
437+ assertTrue (true );
438+ }
439+
440+ b .feed (src );
441+
442+ b .clear ();
443+
444+ assertEndOfBuffer (b );
445+
446+ b .feed (src );
447+
448+ for (int j =0 ; j < src .length ; j ++) {
449+ b .readByte ();
450+ }
451+
452+ b .clear ();
453+ }
454+ }
455+
456+ @ Test
457+ private void assertEndOfBuffer (LinkedBufferInput b ) throws IOException {
399458 try {
400- b2 .readByte ();
459+ b .readByte ();
401460 assertTrue (false );
402- } catch (EOFException eof ) {
461+ } catch (EndOfBufferException eof ) {
403462 assertTrue (true );
404463 }
405464 }
406-
407465}
408466
0 commit comments