1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections4;
18
19 import static org.junit.jupiter.api.Assertions.assertSame;
20 import static org.junit.jupiter.api.Assertions.assertThrows;
21 import static org.junit.jupiter.api.Assertions.assertTrue;
22
23 import java.util.LinkedList;
24 import java.util.Queue;
25
26 import org.apache.commons.collections4.functors.TruePredicate;
27 import org.apache.commons.collections4.queue.PredicatedQueue;
28 import org.apache.commons.collections4.queue.SynchronizedQueue;
29 import org.apache.commons.collections4.queue.TransformedQueue;
30 import org.apache.commons.collections4.queue.UnmodifiableQueue;
31 import org.junit.jupiter.api.Test;
32
33
34
35
36 public class QueueUtilsTest {
37
38 protected Predicate<Object> truePredicate = TruePredicate.truePredicate();
39 protected Transformer<Object, Object> nopTransformer = TransformerUtils.nopTransformer();
40
41 @Test
42 public void testEmptyQueue() {
43 final Queue<Object> queue = QueueUtils.emptyQueue();
44 assertTrue(queue instanceof UnmodifiableQueue, "Returned object should be an UnmodifiableQueue.");
45 assertTrue(queue.isEmpty(), "Returned queue is not empty.");
46
47 assertThrows(UnsupportedOperationException.class, () -> queue.add(new Object()),
48 "Expecting UnsupportedOperationException for empty queue.");
49 }
50
51 @Test
52 public void testPredicatedQueue() {
53 final Queue<Object> queue = QueueUtils.predicatedQueue(new LinkedList<>(), truePredicate);
54 assertTrue(queue instanceof PredicatedQueue, "Returned object should be a PredicatedQueue.");
55
56 assertThrows(NullPointerException.class, () -> QueueUtils.predicatedQueue(null, truePredicate),
57 "Expecting NullPointerException for null queue.");
58
59 assertThrows(NullPointerException.class, () -> QueueUtils.predicatedQueue(new LinkedList<>(), null),
60 "Expecting NullPointerException for null predicate.");
61 }
62
63 @Test
64 public void testSynchronizedQueue() {
65 final Queue<Object> queue = QueueUtils.synchronizedQueue(new LinkedList<>());
66 assertTrue(queue instanceof SynchronizedQueue, "Returned object should be a SynchronizedQueue.");
67
68 assertThrows(NullPointerException.class, () -> QueueUtils.synchronizedQueue(null),
69 "Expecting NullPointerException for null queue.");
70 }
71
72 @Test
73 public void testTransformedQueue() {
74 final Queue<Object> queue = QueueUtils.transformingQueue(new LinkedList<>(), nopTransformer);
75 assertTrue(queue instanceof TransformedQueue, "Returned object should be an TransformedQueue.");
76
77 assertThrows(NullPointerException.class, () -> QueueUtils.transformingQueue(null, nopTransformer),
78 "Expecting NullPointerException for null queue.");
79
80 assertThrows(NullPointerException.class, () -> QueueUtils.transformingQueue(new LinkedList<>(), null),
81 "Expecting NullPointerException for null transformer.");
82 }
83
84 @Test
85 public void testUnmodifiableQueue() {
86 final Queue<Object> queue = QueueUtils.unmodifiableQueue(new LinkedList<>());
87 assertTrue(queue instanceof UnmodifiableQueue, "Returned object should be an UnmodifiableQueue.");
88
89 assertThrows(NullPointerException.class, () -> QueueUtils.unmodifiableQueue(null),
90 "Expecting NullPointerException for null queue.");
91
92 assertSame(queue, QueueUtils.unmodifiableQueue(queue), "UnmodifiableQueue shall not be decorated");
93 }
94
95 }