1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections4.set;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertTrue;
21
22 import java.util.Arrays;
23 import java.util.Collections;
24 import java.util.NavigableSet;
25 import java.util.Set;
26 import java.util.TreeSet;
27
28 import org.apache.commons.collections4.Transformer;
29 import org.apache.commons.collections4.collection.TransformedCollectionTest;
30 import org.junit.jupiter.api.Test;
31
32
33
34
35
36 public class TransformedNavigableSetTest<E> extends AbstractNavigableSetTest<E> {
37
38 public TransformedNavigableSetTest() {
39 super(TransformedNavigableSetTest.class.getSimpleName());
40 }
41
42 @Override
43 public String getCompatibilityVersion() {
44 return "4.1";
45 }
46
47 @Override
48 @SuppressWarnings("unchecked")
49 public NavigableSet<E> makeFullCollection() {
50 final NavigableSet<E> set = new TreeSet<>(Arrays.asList(getFullElements()));
51 return TransformedNavigableSet.transformingNavigableSet(set,
52 (Transformer<E, E>) TransformedCollectionTest.NOOP_TRANSFORMER);
53 }
54
55 @Override
56 @SuppressWarnings("unchecked")
57 public NavigableSet<E> makeObject() {
58 return TransformedNavigableSet.transformingNavigableSet(new TreeSet<>(),
59 (Transformer<E, E>) TransformedCollectionTest.NOOP_TRANSFORMER);
60 }
61
62 @Test
63 @SuppressWarnings("unchecked")
64 public void testTransformedSet() {
65 final NavigableSet<E> set = TransformedNavigableSet.transformingNavigableSet(new TreeSet<>(),
66 (Transformer<E, E>) TransformedCollectionTest.STRING_TO_INTEGER_TRANSFORMER);
67 assertEquals(0, set.size());
68 final E[] els = (E[]) new Object[] { "1", "3", "5", "7", "2", "4", "6" };
69 for (int i = 0; i < els.length; i++) {
70 set.add(els[i]);
71 assertEquals(i + 1, set.size());
72 assertTrue(set.contains(Integer.valueOf((String) els[i])));
73 }
74
75 assertTrue(set.remove(Integer.valueOf((String) els[0])));
76 }
77
78 @Test
79 public void testTransformedSet_decorateTransform() {
80 final Set<Object> originalSet = new TreeSet<>();
81 final Object[] els = {"1", "3", "5", "7", "2", "4", "6"};
82 Collections.addAll(originalSet, els);
83 final Set<?> set = TransformedSet.transformedSet(originalSet,
84 TransformedCollectionTest.STRING_TO_INTEGER_TRANSFORMER);
85 assertEquals(els.length, set.size());
86 for (final Object el : els) {
87 assertTrue(set.contains(Integer.valueOf((String) el)));
88 }
89
90 assertTrue(set.remove(Integer.valueOf((String) els[0])));
91 }
92
93
94
95
96
97
98
99
100 }