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 @Override
39 public String getCompatibilityVersion() {
40 return "4.1";
41 }
42
43 @Override
44 @SuppressWarnings("unchecked")
45 public NavigableSet<E> makeFullCollection() {
46 final NavigableSet<E> set = new TreeSet<>(Arrays.asList(getFullElements()));
47 return TransformedNavigableSet.transformingNavigableSet(set,
48 (Transformer<E, E>) TransformedCollectionTest.NOOP_TRANSFORMER);
49 }
50
51 @Override
52 @SuppressWarnings("unchecked")
53 public NavigableSet<E> makeObject() {
54 return TransformedNavigableSet.transformingNavigableSet(new TreeSet<>(),
55 (Transformer<E, E>) TransformedCollectionTest.NOOP_TRANSFORMER);
56 }
57
58 @Test
59 @SuppressWarnings("unchecked")
60 public void testTransformedSet() {
61 final NavigableSet<E> set = TransformedNavigableSet.transformingNavigableSet(new TreeSet<>(),
62 (Transformer<E, E>) TransformedCollectionTest.STRING_TO_INTEGER_TRANSFORMER);
63 assertEquals(0, set.size());
64 final E[] els = (E[]) new Object[] { "1", "3", "5", "7", "2", "4", "6" };
65 for (int i = 0; i < els.length; i++) {
66 set.add(els[i]);
67 assertEquals(i + 1, set.size());
68 assertTrue(set.contains(Integer.valueOf((String) els[i])));
69 }
70
71 assertTrue(set.remove(Integer.valueOf((String) els[0])));
72 }
73
74 @Test
75 public void testTransformedSet_decorateTransform() {
76 final Set<Object> originalSet = new TreeSet<>();
77 final Object[] els = {"1", "3", "5", "7", "2", "4", "6"};
78 Collections.addAll(originalSet, els);
79 final Set<?> set = TransformedSet.transformedSet(originalSet,
80 TransformedCollectionTest.STRING_TO_INTEGER_TRANSFORMER);
81 assertEquals(els.length, set.size());
82 for (final Object el : els) {
83 assertTrue(set.contains(Integer.valueOf((String) el)));
84 }
85
86 assertTrue(set.remove(Integer.valueOf((String) els[0])));
87 }
88
89
90
91
92
93
94
95
96 }