1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.util;
21
22 import org.apache.myfaces.test.el.MockValueExpression;
23 import org.apache.myfaces.tobago.internal.config.AbstractTobagoTestBase;
24 import org.apache.myfaces.tobago.internal.util.Fruit;
25 import org.junit.jupiter.api.Assertions;
26 import org.junit.jupiter.api.Test;
27
28 import java.util.ArrayList;
29 import java.util.List;
30
31 public class ValueExpressionComparatorUnitTest extends AbstractTobagoTestBase {
32
33 @Test
34 public void testComparingInstancesOfDifferentClasses() {
35
36 final List<Fruit> original = Fruit.getFreshFruits();
37
38 final ValueExpressionComparator ascendingComparator = new ValueExpressionComparator(
39 facesContext, "var", new MockValueExpression("#{var.name}", String.class), false, null);
40 final List<Fruit> ascending = new ArrayList<>(original);
41 ascending.sort(ascendingComparator);
42
43 Assertions.assertEquals(original.get(0), ascending.get(0), "#0");
44 Assertions.assertEquals(original.get(3), ascending.get(1), "#1");
45 Assertions.assertEquals(original.get(1), ascending.get(2), "#2");
46 Assertions.assertEquals(original.get(2), ascending.get(3), "#3");
47
48 final ValueExpressionComparator descendingComparator = new ValueExpressionComparator(
49 facesContext, "var", new MockValueExpression("#{var.name}", String.class), true, null);
50
51 final List<Fruit> descending = new ArrayList<>(original);
52 descending.sort(descendingComparator);
53
54 Assertions.assertEquals(original.get(2), descending.get(0), "#0");
55 Assertions.assertEquals(original.get(1), descending.get(1), "#1");
56 Assertions.assertEquals(original.get(3), descending.get(2), "#2");
57 Assertions.assertEquals(original.get(0), descending.get(3), "#3");
58 }
59 }