1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.collections4.comparators;
18
19 import static org.junit.jupiter.api.Assertions.assertTrue;
20
21 import java.util.Comparator;
22 import java.util.LinkedList;
23 import java.util.List;
24
25 import org.apache.commons.collections4.ComparatorUtils;
26 import org.apache.commons.collections4.Transformer;
27 import org.apache.commons.collections4.TransformerUtils;
28 import org.junit.jupiter.api.Test;
29
30
31
32
33 public class TransformingComparatorTest extends AbstractComparatorTest<Integer> {
34
35
36
37
38
39 public TransformingComparatorTest() {
40 super(TransformingComparatorTest.class.getSimpleName());
41 }
42
43
44
45
46
47 @Override
48 @SuppressWarnings("boxing")
49 public List<Integer> getComparableObjectsOrdered() {
50 final List<Integer> list = new LinkedList<>();
51 list.add(1);
52 list.add(2);
53 list.add(3);
54 list.add(4);
55 list.add(5);
56 return list;
57 }
58
59 @Override
60 public String getCompatibilityVersion() {
61 return "4";
62 }
63
64 @Override
65 public Comparator<Integer> makeObject() {
66 final Comparator<String> decorated = new ComparableComparator<>();
67 return ComparatorUtils.transformedComparator(decorated, TransformerUtils.<Integer>stringValueTransformer());
68 }
69
70 @Test
71 public void testEquals() {
72 final Transformer<String, String> t1 = TransformerUtils.nopTransformer();
73 final TransformingComparator<String, String> comp1 = new TransformingComparator<>(t1);
74 final TransformingComparator<String, String> comp2 = new TransformingComparator<>(t1, comp1);
75
76
77 assertTrue(comp1.equals(comp2) ? comp1.hashCode() == comp2.hashCode() : true,
78 "Contract failed: equals-hashCode");
79
80
81 assertTrue(comp2.equals(comp1) ? comp2.hashCode() == comp1.hashCode() : true,
82 "Contract failed: equals-hashCode");
83 }
84
85
86
87
88
89
90
91
92
93 }