1 package org.objectweb.celtix.bus.resource; 2 3 import java.io.ByteArrayInputStream ; 4 import java.io.InputStream ; 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 TEST_RESOURCE = "this is the found resource"; 22 private static final String 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 resourceStream = new ByteArrayInputStream (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 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 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 .class); 83 EasyMock.expectLastCall().andReturn(TEST_RESOURCE); 84 EasyMock.replay(resolver1); 85 EasyMock.replay(resolver2); 86 87 Object ret = mgr.resolveResource(TEST_RESOURCE_NAME, String .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 98 resolver1.resolve(TEST_RESOURCE_NAME, String .class); 99 EasyMock.expectLastCall().andReturn(null); 100 EasyMock.replay(resolver1); 101 resolver2.resolve(TEST_RESOURCE_NAME, String .class); 102 EasyMock.expectLastCall().andReturn(TEST_RESOURCE); 103 EasyMock.replay(resolver2); 104 105 ret = mgr.resolveResource(TEST_RESOURCE_NAME, String .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 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 { 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 [] args) { 175 TestRunner.main(new String [] {ResourceManagerImplTest.class.getName()}); 176 } 177 } 178 | Popular Tags |