1 package org.objectweb.celtix.resource; 2 3 import java.io.BufferedReader ; 4 import java.io.File ; 5 import java.io.FileWriter ; 6 import java.io.IOException ; 7 import java.io.InputStream ; 8 import java.io.InputStreamReader ; 9 import java.net.URL ; 10 import java.net.URLClassLoader ; 11 import junit.framework.Test; 12 import junit.framework.TestCase; 13 import junit.framework.TestSuite; 14 import junit.textui.TestRunner; 15 16 17 public class ClassLoaderResolverTest extends TestCase { 18 private static final String RESOURCE_DATA = "this is the resource data"; 19 20 private String resourceName; 21 private ClassLoaderResolver clr; 22 23 public void setUp() throws IOException { 24 File resource = File.createTempFile("test", "resource"); 25 resource.deleteOnExit(); 26 resourceName = resource.getName(); 27 28 FileWriter writer = new FileWriter (resource); 29 writer.write(RESOURCE_DATA); 30 writer.write("\n"); 31 writer.close(); 32 33 URL [] urls = {resource.getParentFile().toURL()}; 34 ClassLoader loader = new URLClassLoader (urls); 35 assertNotNull(loader.getResourceAsStream(resourceName)); 36 assertNull(ClassLoader.getSystemResourceAsStream(resourceName)); 37 clr = new ClassLoaderResolver(loader); 38 } 39 40 public void tearDown() { 41 clr = null; 42 resourceName = null; 43 } 44 45 public void testResolve() { 46 assertNull(clr.resolve(resourceName, null)); 47 assertNotNull(clr.resolve(resourceName, URL .class)); 48 } 49 50 public void testGetAsStream() throws IOException { 51 InputStream in = clr.getAsStream(resourceName); 52 assertNotNull(in); 53 54 BufferedReader reader = new BufferedReader (new InputStreamReader (in)); 55 String content = reader.readLine(); 56 57 assertEquals("resource content incorrect", RESOURCE_DATA, content); 58 } 59 60 public static Test suite() { 61 return new TestSuite(ClassLoaderResolverTest.class); 62 } 63 64 public static void main(String [] args) { 65 TestRunner.main(new String [] {ClassLoaderResolverTest.class.getName()}); 66 } 67 } 68 | Popular Tags |