447
448 a = new Integer[0];
449 assertSame(a, q.toArray(a));
450
451 a = new Integer[3];
452 Arrays.fill(a, 42);
453 assertSame(a, q.toArray(a));
454 assertNull(a[0]);
455 for (int i = 1; i < a.length; i++)
456 assertEquals(42, (int) a[i]);
457 }
458
459 /**
460 * toArray(null) throws NPE
461 */
462 public void testToArray_null() { testToArray_null(false); }
463 public void testToArray_null_fair() { testToArray_null(true); }
464 public void testToArray_null(boolean fair) {
465 final SynchronousQueue q = new SynchronousQueue(fair);
466 try {
467 Object[] o = q.toArray(null);
468 shouldThrow();
469 } catch (NullPointerException success) {}
470 }
471
472 /**
473 * iterator does not traverse any elements
474 */
475 public void testIterator() { testIterator(false); }
476 public void testIterator_fair() { testIterator(true); }
477 public void testIterator(boolean fair) {
478 assertIteratorExhausted(new SynchronousQueue(fair).iterator());
479 }
480
481 /**
482 * iterator remove throws IllegalStateException
483 */
484 public void testIteratorRemove() { testIteratorRemove(false); }
485 public void testIteratorRemove_fair() { testIteratorRemove(true); }
486 public void testIteratorRemove(boolean fair) {
487 final SynchronousQueue q = new SynchronousQueue(fair);
|
447
448 a = new Integer[0];
449 assertSame(a, q.toArray(a));
450
451 a = new Integer[3];
452 Arrays.fill(a, 42);
453 assertSame(a, q.toArray(a));
454 assertNull(a[0]);
455 for (int i = 1; i < a.length; i++)
456 assertEquals(42, (int) a[i]);
457 }
458
459 /**
460 * toArray(null) throws NPE
461 */
462 public void testToArray_null() { testToArray_null(false); }
463 public void testToArray_null_fair() { testToArray_null(true); }
464 public void testToArray_null(boolean fair) {
465 final SynchronousQueue q = new SynchronousQueue(fair);
466 try {
467 Object[] o = q.toArray((Object[])null);
468 shouldThrow();
469 } catch (NullPointerException success) {}
470 }
471
472 /**
473 * iterator does not traverse any elements
474 */
475 public void testIterator() { testIterator(false); }
476 public void testIterator_fair() { testIterator(true); }
477 public void testIterator(boolean fair) {
478 assertIteratorExhausted(new SynchronousQueue(fair).iterator());
479 }
480
481 /**
482 * iterator remove throws IllegalStateException
483 */
484 public void testIteratorRemove() { testIteratorRemove(false); }
485 public void testIteratorRemove_fair() { testIteratorRemove(true); }
486 public void testIteratorRemove(boolean fair) {
487 final SynchronousQueue q = new SynchronousQueue(fair);
|