Consistent detection of Order annotation in superclasses and interfaces

Issue: SPR-10514
(cherry picked from commit 814d24e)
This commit is contained in:
Juergen Hoeller
2013-05-16 18:05:56 +02:00
parent 86b4b2ef23
commit 6b89af824d
6 changed files with 42 additions and 20 deletions

View File

@@ -45,6 +45,16 @@ public class AnnotationAwareOrderComparatorTests {
assertTrue(list.get(1) instanceof B);
}
@Test
public void sortInstancesWithSubclass() {
List<Object> list = new ArrayList<>();
list.add(new B());
list.add(new C());
AnnotationAwareOrderComparator.sort(list);
assertTrue(list.get(0) instanceof C);
assertTrue(list.get(1) instanceof B);
}
@Test
public void sortClasses() {
List<Object> list = new ArrayList<>();
@@ -55,6 +65,16 @@ public class AnnotationAwareOrderComparatorTests {
assertEquals(B.class, list.get(1));
}
@Test
public void sortClassesWithSubclass() {
List<Object> list = new ArrayList<>();
list.add(B.class);
list.add(C.class);
AnnotationAwareOrderComparator.sort(list);
assertEquals(C.class, list.get(0));
assertEquals(B.class, list.get(1));
}
@Order(1)
private static class A {
@@ -64,4 +84,7 @@ public class AnnotationAwareOrderComparatorTests {
private static class B {
}
private static class C extends A {
}
}