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