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 import static org.junit.jupiter.api.Assertions.assertThrows;
21
22 import org.apache.commons.collections4.Bag;
23 import org.apache.commons.collections4.SortedBag;
24 import org.junit.jupiter.api.Test;
25
26
27
28
29
30 public class TreeBagTest<T> extends AbstractSortedBagTest<T> {
31
32 @Override
33 public String getCompatibilityVersion() {
34 return "4";
35 }
36
37 @Override
38 public SortedBag<T> makeObject() {
39 return new TreeBag<>();
40 }
41
42 @SuppressWarnings("unchecked")
43 public SortedBag<T> setupBag() {
44 final SortedBag<T> bag = makeObject();
45 bag.add((T) "C");
46 bag.add((T) "A");
47 bag.add((T) "B");
48 bag.add((T) "D");
49 return bag;
50 }
51
52 @Test
53 public void testCollections265() {
54 final Bag<Object> bag = new TreeBag<>();
55
56 assertThrows(IllegalArgumentException.class, () -> bag.add(new Object()));
57 }
58
59 @Test
60 public void testCollections555() {
61 final Bag<Object> bag = new TreeBag<>();
62
63 assertThrows(NullPointerException.class, () -> bag.add(null));
64
65 final Bag<String> bag2 = new TreeBag<>(String::compareTo);
66
67
68 bag2.add("a");
69
70 assertThrows(NullPointerException.class, () -> bag2.add(null));
71 }
72
73 @Test
74 public void testOrdering() {
75 final Bag<T> bag = setupBag();
76 assertEquals("A", bag.toArray()[0], "Should get elements in correct order");
77 assertEquals("B", bag.toArray()[1], "Should get elements in correct order");
78 assertEquals("C", bag.toArray()[2], "Should get elements in correct order");
79 assertEquals("A", ((SortedBag<T>) bag).first(), "Should get first key");
80 assertEquals("D", ((SortedBag<T>) bag).last(), "Should get last key");
81 }
82
83
84
85
86
87
88
89
90 }