KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > resource > ResourceManagerImplTest


1 package org.objectweb.celtix.bus.resource;
2
3 import java.io.ByteArrayInputStream JavaDoc;
4 import java.io.InputStream JavaDoc;
5 import junit.framework.Test;
6 import junit.framework.TestCase;
7 import junit.framework.TestSuite;
8 import junit.textui.TestRunner;
9 import org.easymock.classextension.EasyMock;
10 import org.objectweb.celtix.Bus;
11 import org.objectweb.celtix.configuration.Configuration;
12 import org.objectweb.celtix.configuration.types.StringListType;
13 import org.objectweb.celtix.resource.ClassLoaderResolver;
14 import org.objectweb.celtix.resource.ClasspathResolver;
15 import org.objectweb.celtix.resource.ResourceManager;
16 import org.objectweb.celtix.resource.ResourceResolver;
17
18
19 public class ResourceManagerImplTest extends TestCase {
20
21     private static final String JavaDoc TEST_RESOURCE = "this is the found resource";
22     private static final String JavaDoc TEST_RESOURCE_NAME = "testResource";
23     private static final int DEFAULT_RESOLVER_COUNT = 2;
24
25     private ResourceManager mgr = new ResourceManagerImpl();
26     private final ResourceResolver resolver1 = EasyMock.createMock(ResourceResolver.class);
27     private final ResourceResolver resolver2 = EasyMock.createMock(ResourceResolver.class);
28     
29     public void setUp() {
30         mgr.addResourceResolver(resolver2);
31         mgr.addResourceResolver(resolver1);
32     }
33
34
35     public void testDefaultResolvers() {
36
37         mgr = new ResourceManagerImpl();
38         assertNotNull(mgr.getResourceResolvers());
39         assertEquals(DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
40         assertEquals(ClassLoaderResolver.class, mgr.getResourceResolvers().get(0).getClass());
41         assertEquals(ClasspathResolver.class, mgr.getResourceResolvers().get(1).getClass());
42     }
43
44     public void testGetResourceAsStream() {
45
46         ByteArrayInputStream JavaDoc resourceStream = new ByteArrayInputStream JavaDoc(TEST_RESOURCE.getBytes());
47
48         resolver1.getAsStream(TEST_RESOURCE_NAME);
49         EasyMock.expectLastCall().andReturn(resourceStream);
50         EasyMock.replay(resolver1);
51         EasyMock.replay(resolver2);
52
53         InputStream JavaDoc ret = mgr.getResourceAsStream(TEST_RESOURCE_NAME);
54         assertSame(resourceStream, ret);
55         
56         EasyMock.verify(resolver1);
57         EasyMock.verify(resolver2);
58
59         EasyMock.reset(resolver1);
60         EasyMock.reset(resolver2);
61
62         // do it again but let the second resolver handler it
63

64         resolver1.getAsStream(TEST_RESOURCE_NAME);
65         EasyMock.expectLastCall().andReturn(null);
66         resolver2.getAsStream(TEST_RESOURCE_NAME);
67         EasyMock.expectLastCall().andReturn(resourceStream);
68
69         EasyMock.replay(resolver1);
70         EasyMock.replay(resolver2);
71
72         ret = mgr.getResourceAsStream(TEST_RESOURCE_NAME);
73         assertSame(resourceStream, ret);
74         
75         EasyMock.verify(resolver1);
76         EasyMock.verify(resolver2);
77     }
78
79
80     public void testResolveResource() {
81
82         resolver1.resolve(TEST_RESOURCE_NAME, String JavaDoc.class);
83         EasyMock.expectLastCall().andReturn(TEST_RESOURCE);
84         EasyMock.replay(resolver1);
85         EasyMock.replay(resolver2);
86
87         Object JavaDoc ret = mgr.resolveResource(TEST_RESOURCE_NAME, String JavaDoc.class);
88         assertEquals(TEST_RESOURCE, ret);
89         
90         EasyMock.verify(resolver1);
91         EasyMock.verify(resolver2);
92
93         EasyMock.reset(resolver1);
94         EasyMock.reset(resolver2);
95
96         // do it again but let the second resolver handler it
97

98         resolver1.resolve(TEST_RESOURCE_NAME, String JavaDoc.class);
99         EasyMock.expectLastCall().andReturn(null);
100         EasyMock.replay(resolver1);
101         resolver2.resolve(TEST_RESOURCE_NAME, String JavaDoc.class);
102         EasyMock.expectLastCall().andReturn(TEST_RESOURCE);
103         EasyMock.replay(resolver2);
104
105         ret = mgr.resolveResource(TEST_RESOURCE_NAME, String JavaDoc.class);
106         assertEquals(TEST_RESOURCE, ret);
107         
108         EasyMock.verify(resolver1);
109         EasyMock.verify(resolver2);
110     }
111     
112
113
114     public void testAddRemoveResourceResolver() {
115         
116         // use a clean one for this test
117
mgr = new ResourceManagerImpl();
118         assertEquals(DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
119         mgr.addResourceResolver(resolver1);
120         assertEquals(1 + DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
121         mgr.addResourceResolver(resolver1);
122         assertEquals(1 + DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
123
124         mgr.removeResourceResolver(resolver1);
125         assertEquals(DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
126         
127         mgr.addResourceResolver(resolver1);
128         mgr.addResourceResolver(resolver2);
129         assertEquals(2 + DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
130         mgr.removeResourceResolver(resolver1);
131         assertEquals(1 + DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
132         mgr.removeResourceResolver(resolver2);
133         assertEquals(DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
134
135         mgr.removeResourceResolver(resolver1);
136         assertEquals(DEFAULT_RESOLVER_COUNT, mgr.getResourceResolvers().size());
137     }
138
139
140     public void testCtorWithBus() throws Exception JavaDoc {
141         
142         Bus bus = EasyMock.createMock(Bus.class);
143         Configuration conf = EasyMock.createMock(Configuration.class);
144         
145         StringListType resolverList = new StringListType();
146         resolverList.getItem().add(ClassLoaderResolver.class.getName());
147         resolverList.getItem().add(ClasspathResolver.class.getName());
148
149         new ClassLoaderResolver();
150
151         bus.getConfiguration();
152         EasyMock.expectLastCall().andReturn(conf);
153         conf.getObject("resourceResolvers");
154         EasyMock.expectLastCall().andReturn(resolverList);
155
156         EasyMock.replay(bus);
157         EasyMock.replay(conf);
158
159         ResourceManagerImpl rmi = new ResourceManagerImpl(bus);
160
161         assertNotNull(rmi.getResourceResolvers());
162         assertEquals(2, rmi.getResourceResolvers().size());
163         assertEquals(ClassLoaderResolver.class, rmi.getResourceResolvers().get(0).getClass());
164         assertEquals(ClasspathResolver.class, rmi.getResourceResolvers().get(1).getClass());
165
166         EasyMock.verify(bus);
167         EasyMock.verify(conf);
168     }
169
170     public static Test suite() {
171         return new TestSuite(ResourceManagerImplTest.class);
172     }
173     
174     public static void main(String JavaDoc[] args) {
175         TestRunner.main(new String JavaDoc[] {ResourceManagerImplTest.class.getName()});
176     }
177 }
178
Popular Tags