View Javadoc

1   /*
2    * $Id: PreferredObjectSelectorTestCase.java 22377 2011-07-11 12:41:42Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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  }