1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections4.bag;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20
21 import java.util.Iterator;
22
23 import org.apache.commons.collections4.SortedBag;
24
25
26
27
28
29
30 public abstract class AbstractSortedBagTest<T> extends AbstractBagTest<T> {
31
32 public AbstractSortedBagTest(final String testName) {
33 super(testName);
34 }
35
36
37
38
39
40
41 @Override
42 public SortedBag<T> getCollection() {
43 return (SortedBag<T>) super.getCollection();
44 }
45
46
47
48
49 @Override
50 @SuppressWarnings("unchecked")
51 public T[] getFullNonNullElements() {
52 final Object[] elements = new Object[30];
53
54 for (int i = 0; i < 30; i++) {
55 elements[i] = Integer.valueOf(i + i + 1);
56 }
57 return (T[]) elements;
58 }
59
60
61
62
63 @Override
64 @SuppressWarnings("unchecked")
65 public T[] getOtherNonNullElements() {
66 final Object[] elements = new Object[30];
67 for (int i = 0; i < 30; i++) {
68 elements[i] = Integer.valueOf(i + i + 2);
69 }
70 return (T[]) elements;
71 }
72
73
74
75
76
77 @Override
78 public boolean isNullSupported() {
79 return false;
80 }
81
82
83
84
85
86
87 @Override
88 public SortedBag<T> makeConfirmedCollection() {
89 return new TreeBag<>();
90 }
91
92
93
94
95 @Override
96 public SortedBag<T> makeFullCollection() {
97 return (SortedBag<T>) super.makeFullCollection();
98 }
99
100
101
102
103 @Override
104 public abstract SortedBag<T> makeObject();
105
106 @Override
107 public void resetEmpty() {
108 this.setCollection(CollectionSortedBag.collectionSortedBag(makeObject()));
109 this.setConfirmed(makeConfirmedCollection());
110 }
111
112 @Override
113 public void resetFull() {
114 this.setCollection(CollectionSortedBag.collectionSortedBag(makeFullCollection()));
115 this.setConfirmed(makeConfirmedFullCollection());
116 }
117
118
119
120
121
122 @Override
123 public void verify() {
124 super.verify();
125
126
127
128 final Iterator<T> collIter = getCollection().iterator();
129 final Iterator<T> confIter = getConfirmed().iterator();
130 T first = null;
131 T last = null;
132 while (collIter.hasNext()) {
133 if (first == null) {
134 first = collIter.next();
135 last = first;
136 } else {
137 last = collIter.next();
138 }
139 assertEquals(last, confIter.next(), "Element appears to be out of order.");
140 }
141 if (!getCollection().isEmpty()) {
142 assertEquals(first, getCollection().first(),
143 "Incorrect element returned by first().");
144 assertEquals(last, getCollection().last(),
145 "Incorrect element returned by last().");
146 }
147 }
148
149
150 }