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.assertTrue;
21
22 import org.apache.commons.collections4.SortedBag;
23 import org.apache.commons.collections4.Transformer;
24 import org.apache.commons.collections4.collection.TransformedCollectionTest;
25 import org.junit.jupiter.api.Test;
26
27
28
29
30
31 public class TransformedSortedBagTest<T> extends AbstractSortedBagTest<T> {
32
33 public TransformedSortedBagTest() {
34 super(TransformedSortedBagTest.class.getSimpleName());
35 }
36
37 @Override
38 public String getCompatibilityVersion() {
39 return "4";
40 }
41
42 @Override
43 @SuppressWarnings("unchecked")
44 public SortedBag<T> makeObject() {
45 return TransformedSortedBag.transformingSortedBag(new TreeBag<>(), (Transformer<T, T>) TransformedCollectionTest.NOOP_TRANSFORMER);
46 }
47
48 @Test
49 @SuppressWarnings("unchecked")
50 public void testTransformedBag() {
51 final SortedBag<T> bag = TransformedSortedBag.transformingSortedBag(new TreeBag<>(), (Transformer<T, T>) TransformedCollectionTest.STRING_TO_INTEGER_TRANSFORMER);
52 assertEquals(0, bag.size());
53 final Object[] els = {"1", "3", "5", "7", "2", "4", "6"};
54 for (int i = 0; i < els.length; i++) {
55 bag.add((T) els[i]);
56 assertEquals(i + 1, bag.size());
57 assertTrue(bag.contains(Integer.valueOf((String) els[i])));
58 }
59
60 assertTrue(bag.remove(Integer.valueOf((String) els[0])));
61
62 }
63
64 @Test
65 public void testTransformedBag_decorateTransform() {
66 final TreeBag<T> originalBag = new TreeBag<>();
67 final Object[] els = {"1", "3", "5", "7", "2", "4", "6"};
68 for (final Object el : els) {
69 originalBag.add((T) el);
70 }
71 final SortedBag<T> bag = TransformedSortedBag.transformedSortedBag(originalBag, (Transformer<T, T>) TransformedCollectionTest.STRING_TO_INTEGER_TRANSFORMER);
72 assertEquals(els.length, bag.size());
73 for (final Object el : els) {
74 assertTrue(bag.contains(Integer.valueOf((String) el)));
75 }
76
77 assertTrue(bag.remove(Integer.valueOf((String) els[0])));
78 }
79
80
81
82
83
84
85
86
87 }