|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2016 the original author or authors. |
|
|
|
* Copyright 2002-2017 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -16,16 +16,14 @@ |
|
|
|
|
|
|
|
|
|
|
|
package org.springframework.beans.support; |
|
|
|
package org.springframework.beans.support; |
|
|
|
|
|
|
|
|
|
|
|
import org.junit.Test; |
|
|
|
import java.util.Comparator; |
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.util.comparator.CompoundComparator; |
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
|
|
|
|
import static org.junit.Assert.*; |
|
|
|
import static org.junit.Assert.*; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Unit tests for {@link PropertyComparator} |
|
|
|
* Unit tests for {@link PropertyComparator}. |
|
|
|
* |
|
|
|
|
|
|
|
* @see org.springframework.util.comparator.ComparatorTests |
|
|
|
|
|
|
|
* |
|
|
|
* |
|
|
|
* @author Keith Donald |
|
|
|
* @author Keith Donald |
|
|
|
* @author Chris Beams |
|
|
|
* @author Chris Beams |
|
|
|
@ -40,7 +38,7 @@ public class PropertyComparatorTests { |
|
|
|
Dog dog2 = new Dog(); |
|
|
|
Dog dog2 = new Dog(); |
|
|
|
dog2.setNickName("biscy"); |
|
|
|
dog2.setNickName("biscy"); |
|
|
|
|
|
|
|
|
|
|
|
PropertyComparator c = new PropertyComparator("nickName", false, true); |
|
|
|
PropertyComparator<Dog> c = new PropertyComparator<>("nickName", false, true); |
|
|
|
assertTrue(c.compare(dog, dog2) > 0); |
|
|
|
assertTrue(c.compare(dog, dog2) > 0); |
|
|
|
assertTrue(c.compare(dog, dog) == 0); |
|
|
|
assertTrue(c.compare(dog, dog) == 0); |
|
|
|
assertTrue(c.compare(dog2, dog) < 0); |
|
|
|
assertTrue(c.compare(dog2, dog) < 0); |
|
|
|
@ -50,15 +48,13 @@ public class PropertyComparatorTests { |
|
|
|
public void testPropertyComparatorNulls() { |
|
|
|
public void testPropertyComparatorNulls() { |
|
|
|
Dog dog = new Dog(); |
|
|
|
Dog dog = new Dog(); |
|
|
|
Dog dog2 = new Dog(); |
|
|
|
Dog dog2 = new Dog(); |
|
|
|
PropertyComparator c = new PropertyComparator("nickName", false, true); |
|
|
|
PropertyComparator<Dog> c = new PropertyComparator<>("nickName", false, true); |
|
|
|
assertTrue(c.compare(dog, dog2) == 0); |
|
|
|
assertTrue(c.compare(dog, dog2) == 0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void testCompoundComparator() { |
|
|
|
public void testCompoundComparator() { |
|
|
|
CompoundComparator<Dog> c = new CompoundComparator<>(); |
|
|
|
Comparator<Dog> c = new PropertyComparator<>("lastName", false, true); |
|
|
|
c.addComparator(new PropertyComparator("lastName", false, true)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dog dog1 = new Dog(); |
|
|
|
Dog dog1 = new Dog(); |
|
|
|
dog1.setFirstName("macy"); |
|
|
|
dog1.setFirstName("macy"); |
|
|
|
@ -70,19 +66,17 @@ public class PropertyComparatorTests { |
|
|
|
|
|
|
|
|
|
|
|
assertTrue(c.compare(dog1, dog2) == 0); |
|
|
|
assertTrue(c.compare(dog1, dog2) == 0); |
|
|
|
|
|
|
|
|
|
|
|
c.addComparator(new PropertyComparator("firstName", false, true)); |
|
|
|
c = c.thenComparing(new PropertyComparator<>("firstName", false, true)); |
|
|
|
assertTrue(c.compare(dog1, dog2) > 0); |
|
|
|
assertTrue(c.compare(dog1, dog2) > 0); |
|
|
|
|
|
|
|
|
|
|
|
dog2.setLastName("konikk dog"); |
|
|
|
dog2.setLastName("konikk dog"); |
|
|
|
assertTrue(c.compare(dog2, dog1) > 0); |
|
|
|
assertTrue(c.compare(dog2, dog1) > 0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void testCompoundComparatorInvert() { |
|
|
|
public void testCompoundComparatorInvert() { |
|
|
|
CompoundComparator<Dog> c = new CompoundComparator<>(); |
|
|
|
Comparator<Dog> c = (new PropertyComparator<Dog>("lastName", false, true)). |
|
|
|
c.addComparator(new PropertyComparator("lastName", false, true)); |
|
|
|
thenComparing(new PropertyComparator<>("firstName", false, true)); |
|
|
|
c.addComparator(new PropertyComparator("firstName", false, true)); |
|
|
|
|
|
|
|
Dog dog1 = new Dog(); |
|
|
|
Dog dog1 = new Dog(); |
|
|
|
dog1.setFirstName("macy"); |
|
|
|
dog1.setFirstName("macy"); |
|
|
|
dog1.setLastName("grayspots"); |
|
|
|
dog1.setLastName("grayspots"); |
|
|
|
@ -92,7 +86,7 @@ public class PropertyComparatorTests { |
|
|
|
dog2.setLastName("grayspots"); |
|
|
|
dog2.setLastName("grayspots"); |
|
|
|
|
|
|
|
|
|
|
|
assertTrue(c.compare(dog1, dog2) > 0); |
|
|
|
assertTrue(c.compare(dog1, dog2) > 0); |
|
|
|
c.invertOrder(); |
|
|
|
c = c.reversed(); |
|
|
|
assertTrue(c.compare(dog1, dog2) < 0); |
|
|
|
assertTrue(c.compare(dog1, dog2) < 0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -106,11 +100,6 @@ public class PropertyComparatorTests { |
|
|
|
|
|
|
|
|
|
|
|
private String lastName; |
|
|
|
private String lastName; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public int compareTo(Object o) { |
|
|
|
|
|
|
|
return nickName.compareTo(((Dog)o).nickName); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getNickName() { |
|
|
|
public String getNickName() { |
|
|
|
return nickName; |
|
|
|
return nickName; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -134,6 +123,11 @@ public class PropertyComparatorTests { |
|
|
|
public void setLastName(String lastName) { |
|
|
|
public void setLastName(String lastName) { |
|
|
|
this.lastName = lastName; |
|
|
|
this.lastName = lastName; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public int compareTo(Object o) { |
|
|
|
|
|
|
|
return this.nickName.compareTo(((Dog) o).nickName); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|