181 |
|
} |
182 |
|
|
183 |
|
/** |
184 |
< |
* drainTo(c, -n) returns 0 |
184 |
> |
* drainTo(c, n) returns 0 and does nothing when n <= 0 |
185 |
|
*/ |
186 |
< |
public void testDrainToNegativeMaxElements() { |
186 |
> |
public void testDrainToNonPositiveMaxElements() { |
187 |
|
final BlockingQueue q = emptyCollection(); |
188 |
< |
assertEquals(0, q.drainTo(new ArrayList(), -42)); |
189 |
< |
} |
190 |
< |
|
191 |
< |
/** |
192 |
< |
* drainTo(c, 0) returns 0 and does nothing |
193 |
< |
*/ |
194 |
< |
public void testDrainToZeroMaxElements() { |
195 |
< |
final BlockingQueue q = emptyCollection(); |
196 |
< |
if (q.remainingCapacity() == 0) { |
197 |
< |
// SynchronousQueue, for example |
198 |
< |
assertEquals(0, q.drainTo(new ArrayList(), 0)); |
199 |
< |
} else { |
188 |
> |
final int[] ns = { 0, -1, -42, Integer.MIN_VALUE }; |
189 |
> |
for (int n : ns) |
190 |
> |
assertEquals(0, q.drainTo(new ArrayList(), n)); |
191 |
> |
if (q.remainingCapacity() > 0) { |
192 |
> |
// Not SynchronousQueue, that is |
193 |
|
Object one = makeElement(1); |
194 |
|
q.add(one); |
195 |
|
ArrayList c = new ArrayList(); |
196 |
< |
assertEquals(0, q.drainTo(c, 0)); |
196 |
> |
for (int n : ns) |
197 |
> |
assertEquals(0, q.drainTo(new ArrayList(), n)); |
198 |
|
assertEquals(1, q.size()); |
199 |
|
assertSame(one, q.poll()); |
200 |
|
assertTrue(c.isEmpty()); |