| 
52 | 52 | import org.glassfish.jersey.model.internal.ManagedObjectsFinalizer;  | 
53 | 53 | import org.glassfish.jersey.model.internal.RankedComparator;  | 
54 | 54 | 
 
  | 
 | 55 | +import org.junit.Assert;  | 
55 | 56 | import org.junit.Assume;  | 
56 | 57 | import org.junit.Before;  | 
57 | 58 | import org.junit.Ignore;  | 
@@ -1066,4 +1067,40 @@ private PriorityFeature3() {  | 
1066 | 1067 |         }  | 
1067 | 1068 |     }  | 
1068 | 1069 | 
 
  | 
 | 1070 | +    // Binder ordering -------------------------------------------------------------------------  | 
 | 1071 | + | 
 | 1072 | +    @Test  | 
 | 1073 | +    public void testBinderOrderingInGetClasses() {  | 
 | 1074 | +        config.register(ContractBinderOne.class).register(ContractBinderTwo.class).register(ContractBinder.class);  | 
 | 1075 | + | 
 | 1076 | +        InjectionManager injectionManager = Injections.createInjectionManager();  | 
 | 1077 | +        ManagedObjectsFinalizer finalizer = new ManagedObjectsFinalizer(injectionManager);  | 
 | 1078 | +        config.configureMetaProviders(injectionManager, finalizer);  | 
 | 1079 | + | 
 | 1080 | +        Object[] classes = config.getComponentBag().getClasses(contractProvider -> true).toArray();  | 
 | 1081 | +        Assert.assertEquals(classes[0], ContractBinderOne.class);  | 
 | 1082 | +        Assert.assertEquals(classes[1], ContractBinderTwo.class);  | 
 | 1083 | +        Assert.assertEquals(classes[2], ContractBinder.class);  | 
 | 1084 | +    }  | 
 | 1085 | + | 
 | 1086 | +    @Test  | 
 | 1087 | +    public void testBinderOrderingInGetInstances() {  | 
 | 1088 | +        ContractBinder[] binders = {new ContractBinderOne(), new ContractBinderTwo(), new ContractBinder()};  | 
 | 1089 | +        config.register(binders[2]).register(binders[1]).register(binders[0]);  | 
 | 1090 | + | 
 | 1091 | +        InjectionManager injectionManager = Injections.createInjectionManager();  | 
 | 1092 | +        ManagedObjectsFinalizer finalizer = new ManagedObjectsFinalizer(injectionManager);  | 
 | 1093 | +        config.configureMetaProviders(injectionManager, finalizer);  | 
 | 1094 | + | 
 | 1095 | +        Object[] instances = config.getComponentBag().getInstances(contractProvider -> true).toArray();  | 
 | 1096 | +        Assert.assertEquals(instances[0], binders[2]);  | 
 | 1097 | +        Assert.assertEquals(instances[1], binders[1]);  | 
 | 1098 | +        Assert.assertEquals(instances[2], binders[0]);  | 
 | 1099 | +    }  | 
 | 1100 | + | 
 | 1101 | +    public static class ContractBinderOne extends ContractBinder {  | 
 | 1102 | +    }  | 
 | 1103 | + | 
 | 1104 | +    public static class ContractBinderTwo extends ContractBinder {  | 
 | 1105 | +    }  | 
1069 | 1106 | }  | 
0 commit comments