7 |
|
* Pat Fisher, Mike Judd. |
8 |
|
*/ |
9 |
|
|
10 |
< |
import junit.framework.*; |
10 |
> |
import static java.util.concurrent.TimeUnit.MILLISECONDS; |
11 |
> |
|
12 |
|
import java.util.ArrayList; |
13 |
|
import java.util.Arrays; |
14 |
|
import java.util.Collection; |
15 |
|
import java.util.Queue; |
16 |
|
import java.util.concurrent.BlockingQueue; |
17 |
|
import java.util.concurrent.CountDownLatch; |
18 |
< |
import static java.util.concurrent.TimeUnit.MILLISECONDS; |
18 |
> |
|
19 |
> |
import junit.framework.Test; |
20 |
> |
import junit.framework.TestSuite; |
21 |
|
|
22 |
|
/** |
23 |
|
* Contains "contract" tests applicable to all BlockingQueue implementations. |
330 |
|
awaitTermination(t); |
331 |
|
} |
332 |
|
|
333 |
+ |
/** |
334 |
+ |
* remove(x) removes x and returns true if present |
335 |
+ |
* TODO: move to superclass CollectionTest.java |
336 |
+ |
*/ |
337 |
+ |
public void testRemoveElement() { |
338 |
+ |
final BlockingQueue q = emptyCollection(); |
339 |
+ |
final int size = Math.min(q.remainingCapacity(), SIZE); |
340 |
+ |
final Object[] elts = new Object[size]; |
341 |
+ |
assertFalse(q.contains(makeElement(99))); |
342 |
+ |
assertFalse(q.remove(makeElement(99))); |
343 |
+ |
checkEmpty(q); |
344 |
+ |
for (int i = 0; i < size; i++) |
345 |
+ |
q.add(elts[i] = makeElement(i)); |
346 |
+ |
for (int i = 1; i < size; i += 2) { |
347 |
+ |
for (int pass = 0; pass < 2; pass++) { |
348 |
+ |
assertEquals((pass == 0), q.contains(elts[i])); |
349 |
+ |
assertEquals((pass == 0), q.remove(elts[i])); |
350 |
+ |
assertFalse(q.contains(elts[i])); |
351 |
+ |
assertTrue(q.contains(elts[i-1])); |
352 |
+ |
if (i < size - 1) |
353 |
+ |
assertTrue(q.contains(elts[i+1])); |
354 |
+ |
} |
355 |
+ |
} |
356 |
+ |
if (size > 0) |
357 |
+ |
assertTrue(q.contains(elts[0])); |
358 |
+ |
for (int i = size-2; i >= 0; i -= 2) { |
359 |
+ |
assertTrue(q.contains(elts[i])); |
360 |
+ |
assertFalse(q.contains(elts[i+1])); |
361 |
+ |
assertTrue(q.remove(elts[i])); |
362 |
+ |
assertFalse(q.contains(elts[i])); |
363 |
+ |
assertFalse(q.remove(elts[i+1])); |
364 |
+ |
assertFalse(q.contains(elts[i+1])); |
365 |
+ |
} |
366 |
+ |
checkEmpty(q); |
367 |
+ |
} |
368 |
+ |
|
369 |
|
/** For debugging. */ |
370 |
|
public void XXXXtestFails() { |
371 |
|
fail(emptyCollection().getClass().toString()); |