ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/CollectionTest.java
(Generate patch)

Comparing jsr166/src/test/tck/CollectionTest.java (file contents):
Revision 1.1 by jsr166, Sun Jun 14 20:58:14 2015 UTC vs.
Revision 1.2 by jsr166, Mon Oct 17 00:57:45 2016 UTC

# Line 6 | Line 6
6   */
7  
8   import java.util.Collection;
9 + import java.util.Deque;
10 + import java.util.NoSuchElementException;
11 + import java.util.Queue;
12  
13   import junit.framework.Test;
14  
# Line 31 | Line 34 | public class CollectionTest extends JSR1
34                                          impl));
35      }
36  
37 <    /** A test of the CollectionImplementation implementation ! */
37 >    /** Checks properties of empty collections. */
38      public void testEmptyMeansEmpty() {
39 <        assertTrue(impl.emptyCollection().isEmpty());
40 <        assertEquals(0, impl.emptyCollection().size());
39 >        Collection c = impl.emptyCollection();
40 >        assertTrue(c.isEmpty());
41 >        assertEquals(0, c.size());
42 >        assertEquals("[]", c.toString());
43 >        assertEquals(0, c.toArray().length);
44 >        {
45 >            Object[] a = new Object[0];
46 >            assertSame(a, c.toArray(a));
47 >        }
48 >        c.forEach((e) -> { throw new AssertionError(); });
49 >        if (Queue.class.isAssignableFrom(impl.klazz())) {
50 >            Queue q = (Queue) c;
51 >            assertNull(q.peek());
52 >            assertNull(q.poll());
53 >        }
54 >        if (Deque.class.isAssignableFrom(impl.klazz())) {
55 >            Deque d = (Deque) c;
56 >            assertNull(d.peekFirst());
57 >            assertNull(d.peekLast());
58 >            assertNull(d.pollFirst());
59 >            assertNull(d.pollLast());
60 >        }
61 >    }
62 >
63 >    public void testNullPointerExceptions() {
64 >        Collection c = impl.emptyCollection();
65 >        assertThrows(
66 >            NullPointerException.class,
67 >            () -> c.addAll(null),
68 >            () -> c.containsAll(null),
69 >            () -> c.retainAll(null),
70 >            () -> c.removeAll(null),
71 >            () -> c.removeIf(null));
72 >
73 >        if (!impl.permitsNulls()) {
74 >            assertThrows(
75 >                NullPointerException.class,
76 >                () -> c.add(null));
77 >        }
78 >        if (!impl.permitsNulls()
79 >            && Queue.class.isAssignableFrom(impl.klazz())) {
80 >            Queue q = (Queue) c;
81 >            assertThrows(
82 >                NullPointerException.class,
83 >                () -> q.offer(null));
84 >        }
85 >        if (!impl.permitsNulls()
86 >            && Deque.class.isAssignableFrom(impl.klazz())) {
87 >            Deque d = (Deque) c;
88 >            assertThrows(
89 >                NullPointerException.class,
90 >                () -> d.addFirst(null),
91 >                () -> d.addLast(null),
92 >                () -> d.offerFirst(null),
93 >                () -> d.offerLast(null),
94 >                () -> d.push(null));
95 >        }
96 >    }
97 >
98 >    public void testNoSuchElementExceptions() {
99 >        Collection c = impl.emptyCollection();
100 >
101 >        if (Queue.class.isAssignableFrom(impl.klazz())) {
102 >            Queue q = (Queue) c;
103 >            assertThrows(
104 >                NoSuchElementException.class,
105 >                () -> q.element(),
106 >                () -> q.remove());
107 >        }
108 >        if (Deque.class.isAssignableFrom(impl.klazz())) {
109 >            Deque d = (Deque) c;
110 >            assertThrows(
111 >                NoSuchElementException.class,
112 >                () -> d.getFirst(),
113 >                () -> d.getLast(),
114 >                () -> d.removeFirst(),
115 >                () -> d.removeLast(),
116 >                () -> d.pop());
117 >        }
118      }
119  
120      // public void testCollectionDebugFail() { fail(); }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines