1
2
3
4
5
6
7 package org.mule.config;
8
9 import org.mule.tck.junit4.AbstractMuleTestCase;
10
11 import java.util.ArrayList;
12 import java.util.List;
13
14 import org.junit.Test;
15
16 import static org.junit.Assert.assertNotNull;
17
18 public class PreferredObjectSelectorTestCase extends AbstractMuleTestCase
19 {
20
21 @Test
22 public void testSelectNoRegularClassIfThereIsNoPreferred()
23 {
24 List<Object> classes = new ArrayList<Object>();
25 classes.add(new NonPreferred());
26
27 PreferredObjectSelector selector = new PreferredObjectSelector();
28 Object object = selector.select(classes.iterator());
29 assertNotNull("Selector selected a wrong object", object instanceof NonPreferred);
30 }
31
32 @Test
33 public void testSelectDefaultPreferredClassOverNoPreferredOne()
34 {
35 List<Object> classes = new ArrayList<Object>();
36 classes.add(new NonPreferred());
37 classes.add(new PreferredWithDefaultWeight());
38
39 PreferredObjectSelector selector = new PreferredObjectSelector();
40 Object object = selector.select(classes.iterator());
41 assertNotNull("Selector selected a wrong object", object instanceof PreferredWithDefaultWeight);
42 }
43
44 @Test
45 public void testSelectPreferredClassWithHighestWeight()
46 {
47 List<Object> classes = new ArrayList<Object>();
48 classes.add(new NonPreferred());
49 classes.add(new PreferredWithDefaultWeight());
50 classes.add(new PreferredWithHighestWeight());
51
52 PreferredObjectSelector selector = new PreferredObjectSelector();
53 Object object = selector.select(classes.iterator());
54 assertNotNull("Selector selected a wrong object", object instanceof PreferredWithHighestWeight);
55 }
56
57 public class NonPreferred
58 {
59
60 }
61
62 @Preferred
63 public class PreferredWithDefaultWeight
64 {
65
66 }
67
68 @Preferred(weight = 10)
69 public class PreferredWithHighestWeight
70 {
71
72 }
73 }