8 |
|
*/ |
9 |
|
|
10 |
|
import junit.framework.*; |
11 |
+ |
import java.util.ArrayList; |
12 |
|
import java.util.Arrays; |
13 |
|
import java.util.Collection; |
14 |
|
import java.util.Queue; |
181 |
|
} |
182 |
|
|
183 |
|
/** |
184 |
+ |
* drainTo(c, -n) returns 0 |
185 |
+ |
*/ |
186 |
+ |
public void testDrainToNegativeMaxElements() { |
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 { |
200 |
+ |
Object one = makeElement(1); |
201 |
+ |
q.add(one); |
202 |
+ |
ArrayList c = new ArrayList(); |
203 |
+ |
assertEquals(0, q.drainTo(c, 0)); |
204 |
+ |
assertEquals(1, q.size()); |
205 |
+ |
assertSame(one, q.poll()); |
206 |
+ |
assertTrue(c.isEmpty()); |
207 |
+ |
} |
208 |
+ |
} |
209 |
+ |
|
210 |
+ |
/** |
211 |
|
* timed poll before a delayed offer times out; after offer succeeds; |
212 |
|
* on interruption throws |
213 |
|
*/ |