1
2
3
4
5
6
7
8
9
10 package org.mule.util.scan;
11
12 import org.mule.tck.AbstractMuleTestCase;
13 import org.mule.tck.testmodels.fruit.Apple;
14 import org.mule.tck.testmodels.fruit.BloodOrange;
15 import org.mule.tck.testmodels.fruit.Fruit;
16 import org.mule.tck.testmodels.fruit.Orange;
17 import org.mule.tck.testmodels.fruit.OrangeInterface;
18 import org.mule.tck.testmodels.fruit.RedApple;
19 import org.mule.util.scan.annotations.Marker;
20 import org.mule.util.scan.annotations.Meta;
21 import org.mule.util.scan.annotations.NonMeta;
22 import org.mule.util.scan.annotations.SampleBeanWithAnnotations;
23 import org.mule.util.scan.annotations.SampleClassWithAnnotations;
24
25 import java.util.Set;
26
27 public class ClasspathScannerTestCase extends AbstractMuleTestCase
28 {
29
30
31
32 public void testSearchInterfaceScanClasspathAndJars() throws Exception
33 {
34 ClasspathScanner s = new ClasspathScanner("org");
35 Set<Class> set = s.scanFor(Fruit.class);
36
37 assertTrue(set.contains(Apple.class));
38 assertTrue(set.contains(RedApple.class));
39 assertTrue(set.contains(BloodOrange.class));
40 assertFalse(set.contains(OrangeInterface.class));
41 assertTrue(set.contains(Orange.class));
42 assertTrue(set.contains(Grape.class));
43 assertTrue(set.contains(SeedlessGrape.class));
44 }
45
46 public void testSearchInterfaceScanClasspathAndJarsWithInterfaceFlag() throws Exception
47 {
48 ClasspathScanner s = new ClasspathScanner("org/mule");
49 Set<Class> set = s.scanFor(Fruit.class, ClasspathScanner.INCLUDE_INTERFACE);
50
51 assertTrue(set.contains(Apple.class));
52 assertTrue(set.contains(RedApple.class));
53 assertTrue(set.contains(BloodOrange.class));
54 assertTrue(set.contains(OrangeInterface.class));
55 assertTrue(set.contains(Orange.class));
56 assertTrue(set.contains(Grape.class));
57 assertTrue(set.contains(SeedlessGrape.class));
58 }
59
60
61 public void testInterfaceScanClasspathAndJarsMultipleBasePaths() throws Exception
62 {
63 ClasspathScanner s = new ClasspathScanner("org/mule");
64 Set<Class> set = s.scanFor(Fruit.class);
65
66 assertTrue(set.contains(Apple.class));
67 assertTrue(set.contains(RedApple.class));
68 assertTrue(set.contains(BloodOrange.class));
69 assertFalse(set.contains(OrangeInterface.class));
70 assertTrue(set.contains(Orange.class));
71 assertTrue(set.contains(Grape.class));
72 assertTrue(set.contains(SeedlessGrape.class));
73 assertTrue(set.contains(MadridOrange.class));
74 }
75
76
77 public void testImplementationScanClasspathAndJarsMultipleBasePaths() throws Exception
78 {
79 ClasspathScanner s = new ClasspathScanner("org/mule");
80 Set<Class> set = s.scanFor(Orange.class);
81
82 assertFalse(set.contains(Apple.class));
83 assertTrue(set.contains(BloodOrange.class));
84 assertFalse(set.contains(OrangeInterface.class));
85 assertFalse(set.contains(Orange.class));
86 assertFalse(set.contains(Grape.class));
87 assertTrue(set.contains(MadridOrange.class));
88 }
89
90 public void testAnnotationMetaScanClasspathAndJarsMultipleBasePaths() throws Exception
91 {
92 ClasspathScanner s = new ClasspathScanner("org/mule/util");
93 Set<Class> set = s.scanFor(Meta.class);
94
95 assertEquals(3, set.size());
96 assertTrue(set.contains(SampleClassWithAnnotations.class));
97 assertTrue(set.contains(SampleBeanWithAnnotations.class));
98 assertTrue(set.contains(SubscribeBean.class));
99 }
100
101 public void testAnnotationScanClasspathAndJarsMultipleBasePaths() throws Exception
102 {
103 ClasspathScanner s = new ClasspathScanner("org/mule");
104 Set<Class> set = s.scanFor(Marker.class);
105
106 assertTrue(set.contains(SampleBeanWithAnnotations.class));
107 assertTrue(set.contains(SubscribeBean.class));
108
109 set = s.scanFor(NonMeta.class);
110
111 assertTrue(set.contains(SampleBeanWithAnnotations.class));
112
113 }
114 }