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.assertEquals;
20
21 import java.io.ByteArrayInputStream;
22 import java.io.ByteArrayOutputStream;
23 import java.io.ObjectInputStream;
24 import java.io.ObjectOutputStream;
25 import java.util.Collections;
26 import java.util.Comparator;
27 import java.util.LinkedList;
28 import java.util.List;
29
30 import org.junit.jupiter.api.Test;
31
32
33
34
35 public class ReverseComparatorTest extends AbstractComparatorTest<Integer> {
36
37 public ReverseComparatorTest() {
38 super(ReverseComparatorTest.class.getSimpleName());
39 }
40
41 @Override
42 public List<Integer> getComparableObjectsOrdered() {
43 final List<Integer> list = new LinkedList<>();
44 list.add(Integer.valueOf(1));
45 list.add(Integer.valueOf(2));
46 list.add(Integer.valueOf(3));
47 list.add(Integer.valueOf(4));
48 list.add(Integer.valueOf(5));
49 return list;
50 }
51
52 @Override
53 public String getCompatibilityVersion() {
54 return "4";
55 }
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 @Override
72 public Comparator<Integer> makeObject() {
73 return new ReverseComparator<>(Collections.<Integer>reverseOrder());
74 }
75
76
77
78
79
80
81 @Test
82 @Override
83 public void testSerializeDeserializeThenCompare() throws Exception {
84 final Comparator<?> comp = new ReverseComparator<>(new ComparableComparator<>());
85
86 final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
87 final ObjectOutputStream out = new ObjectOutputStream(buffer);
88 out.writeObject(comp);
89 out.close();
90
91 final ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
92 final Object dest = in.readObject();
93 in.close();
94 assertEquals(comp, dest, "obj != deserialize(serialize(obj))");
95 }
96
97 }