Skip to content

Package: ConcurrentLinkedSetQueue_Test

ConcurrentLinkedSetQueue_Test

nameinstructionbranchcomplexitylinemethod
ConcurrentLinkedSetQueue_Test()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
addAll_RepeatedValues()
M: 0 C: 52
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
addAll_itself()
M: 5 C: 4
44%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 1
33%
M: 0 C: 1
100%
clear()
M: 0 C: 42
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
iterator_next_empty()
M: 5 C: 4
44%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 1
33%
M: 0 C: 1
100%
iterator_remove_withoutNext()
M: 3 C: 28
90%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 3
60%
M: 0 C: 1
100%
offerPollAndOfferAgain()
M: 0 C: 60
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 15
100%
M: 0 C: 1
100%
offer_NoRepeat()
M: 0 C: 25
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
offer_Null()
M: 5 C: 4
44%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 1
33%
M: 0 C: 1
100%
offer_Repeat()
M: 0 C: 25
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
removeAll()
M: 0 C: 59
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
removeObject_andAddAgain()
M: 0 C: 55
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
removeObject_emptyNull()
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
remove_andAddAgain()
M: 0 C: 56
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
retainAll()
M: 0 C: 64
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * nicole.behlen - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.validation.test;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertFalse;
18: import static org.junit.Assert.assertNull;
19: import static org.junit.Assert.assertTrue;
20:
21: import java.util.Arrays;
22: import java.util.Iterator;
23: import java.util.NoSuchElementException;
24:
25: import org.eclipse.emf.ecp.view.internal.validation.ConcurrentLinkedSetQueue;
26: import org.junit.Test;
27:
28: /**
29: * JUnit to test the uniqueness functionality of {@link ConcurrentLinkedSetQueue}.
30: *
31: * @author nicole.behlen
32: */
33: public class ConcurrentLinkedSetQueue_Test {
34:
35:         @Test(expected = NullPointerException.class)
36:         public void offer_Null() {
37:                 /* setup */
38:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
39:                 /* act */
40:                 queue.offer(null);
41:                 /* assert */
42:                 // null pointer exception
43:         }
44:
45:         @Test
46:         public void offer_NoRepeat() {
47:                 /* setup */
48:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
49:                 /* act */
50:                 queue.offer(1);
51:                 queue.offer(2);
52:                 queue.offer(3);
53:                 /* assert */
54:                 assertEquals(3, queue.size());
55:         }
56:
57:         @Test
58:         public void offer_Repeat() {
59:                 /* setup */
60:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
61:                 /* act */
62:                 queue.offer(1);
63:                 queue.offer(2);
64:                 queue.offer(2);
65:                 /* assert */
66:                 assertEquals(2, queue.size());
67:         }
68:
69:         @Test
70:         public void offerPollAndOfferAgain() {
71:                 /* setup */
72:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
73:                 /* act */
74:                 queue.offer(1);
75:                 queue.offer(2);
76:                 queue.offer(2);
77:                 final Integer firstPoll = queue.poll();
78:                 queue.offer(1);
79:                 final Integer secondPoll = queue.poll();
80:                 final Integer thirdPoll = queue.poll();
81:                 final Integer fourthPoll = queue.poll();
82:                 /* assert */
83:                 assertEquals((Integer) 1, firstPoll);
84:                 assertEquals((Integer) 2, secondPoll);
85:                 assertEquals((Integer) 1, thirdPoll);
86:                 assertNull(fourthPoll);
87:
88:                 assertEquals(0, queue.size());
89:         }
90:
91:         @Test
92:         public void addAll_RepeatedValues() {
93:                 /* setup */
94:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
95:                 /* act */
96:                 queue.addAll(Arrays.asList(1, 2, 3));
97:                 queue.addAll(Arrays.asList(2, 3, 4));
98:                 /* assert */
99:                 assertEquals(4, queue.size());
100:         }
101:
102:         @Test(expected = IllegalArgumentException.class)
103:         public void addAll_itself() {
104:                 /* setup */
105:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
106:                 /* act */
107:                 queue.addAll(queue);
108:                 /* assert */
109:                 // illegal argument exception
110:         }
111:
112:         @Test
113:         public void removeObject_emptyNull() {
114:                 /* setup */
115:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
116:                 /* act */
117:                 final boolean result = queue.remove(null);
118:                 /* assert */
119:                 assertFalse(result);
120:         }
121:
122:         @Test
123:         public void removeObject_andAddAgain() {
124:                 /* setup */
125:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
126:                 queue.addAll(Arrays.asList(1, 2));
127:                 /* act */
128:                 final boolean result = queue.remove(1);
129:                 // to ensure that the value is added again
130:                 queue.add(1);
131:                 final Integer firstPoll = queue.poll(); // 2
132:                 final Integer secondPoll = queue.poll(); // 1
133:                 final Integer thirdPoll = queue.poll(); // null
134:
135:                 /* assert */
136:                 assertTrue(result);
137:                 assertEquals((Integer) 2, firstPoll);
138:                 assertEquals((Integer) 1, secondPoll);
139:                 assertNull(thirdPoll);
140:         }
141:
142:         @Test
143:         public void remove_andAddAgain() {
144:                 /* setup */
145:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
146:                 queue.addAll(Arrays.asList(1, 2));
147:                 /* act */
148:                 final Integer remove = queue.remove();
149:                 // to ensure that the value is added again
150:                 queue.add(1);
151:                 final Integer firstPoll = queue.poll(); // 2
152:                 final Integer secondPoll = queue.poll(); // 1
153:                 final Integer thirdPoll = queue.poll(); // null
154:
155:                 /* assert */
156:                 assertEquals((Integer) 1, remove);
157:                 assertEquals((Integer) 2, firstPoll);
158:                 assertEquals((Integer) 1, secondPoll);
159:                 assertNull(thirdPoll);
160:         }
161:
162:         @Test
163:         public void clear() {
164:                 /* setup */
165:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
166:                 queue.addAll(Arrays.asList(1, 2));
167:                 /* act */
168:                 queue.clear();
169:                 // to ensure that the value is added again
170:                 queue.add(1);
171:                 final Integer firstPoll = queue.poll(); // 1
172:                 final Integer secondPoll = queue.poll(); // null
173:                 /* assert */
174:                 assertEquals((Integer) 1, firstPoll);
175:                 assertNull(secondPoll);
176:         }
177:
178:         @Test
179:         public void removeAll() {
180:                 /* setup */
181:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
182:                 queue.addAll(Arrays.asList(1, 2));
183:                 /* act */
184:                 queue.removeAll(Arrays.asList(1));
185:                 // to ensure that the value is added again
186:                 queue.add(1);
187:                 final Integer firstPoll = queue.poll(); // 2
188:                 final Integer secondPoll = queue.poll(); // 1
189:                 final Integer thirdPoll = queue.poll(); // null
190:                 /* assert */
191:                 assertEquals((Integer) 2, firstPoll);
192:                 assertEquals((Integer) 1, secondPoll);
193:                 assertNull(thirdPoll);
194:         }
195:
196:         @Test
197:         public void retainAll() {
198:                 /* setup */
199:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
200:                 queue.addAll(Arrays.asList(1, 2));
201:                 /* act */
202:                 queue.retainAll(Arrays.asList(2));
203:                 // to ensure that the value is not added again
204:                 queue.add(2);
205:                 // to ensure that the value is added again
206:                 queue.add(1);
207:                 final Integer firstPoll = queue.poll(); // 2
208:                 final Integer secondPoll = queue.poll(); // 1
209:                 final Integer thirdPoll = queue.poll(); // null
210:                 /* assert */
211:                 assertEquals((Integer) 2, firstPoll);
212:                 assertEquals((Integer) 1, secondPoll);
213:                 assertNull(thirdPoll);
214:         }
215:
216:         @Test(expected = IllegalStateException.class)
217:         public void iterator_remove_withoutNext() {
218:                 /* setup */
219:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
220:                 queue.addAll(Arrays.asList(1, 2, 3));
221:                 /* act */
222:                 final Iterator<Integer> iter = queue.iterator();
223:                 iter.remove();
224:                 /* assert */
225:                 // illegal state exception
226:         }
227:
228:         @Test(expected = NoSuchElementException.class)
229:         public void iterator_next_empty() {
230:                 /* setup */
231:                 final ConcurrentLinkedSetQueue<Integer> queue = new ConcurrentLinkedSetQueue<>();
232:                 /* act */
233:                 queue.iterator().next();
234:         }
235:
236: }