View Javadoc

1   package com.atlassian.plugin.osgi.util;
2   
3   import junit.framework.TestCase;
4   import static org.mockito.Mockito.mock;
5   import static org.mockito.Mockito.when;
6   import org.osgi.framework.Bundle;
7   import org.apache.commons.io.IOUtils;
8   
9   import java.io.IOException;
10  import java.io.InputStream;
11  import java.io.ByteArrayOutputStream;
12  import java.net.URL;
13  import java.util.Enumeration;
14  
15  public class TestBundleClassLoaderAccessor extends TestCase
16  {
17      public void testGetResource() throws IOException
18      {
19          Bundle bundle = mock(Bundle.class);
20          when(bundle.getResource("foo.txt")).thenReturn(getClass().getClassLoader().getResource("foo.txt"));
21  
22          URL url = BundleClassLoaderAccessor.getClassLoader(bundle, null).getResource("foo.txt");
23          assertNotNull(url);
24      }
25  
26      public void testGetResourceAsStream() throws IOException
27      {
28          Bundle bundle = mock(Bundle.class);
29          when(bundle.getResource("foo.txt")).thenReturn(getClass().getClassLoader().getResource("foo.txt"));
30  
31          InputStream in = BundleClassLoaderAccessor.getClassLoader(bundle, null).getResourceAsStream("foo.txt");
32          ByteArrayOutputStream out = new ByteArrayOutputStream();
33          IOUtils.copy(in, out);
34          assertTrue(out.toByteArray().length > 0);
35      }
36  
37      public void testGetResources() throws IOException
38      {
39          Bundle bundle = mock(Bundle.class);
40          when(bundle.getResources("foo.txt")).thenReturn(getClass().getClassLoader().getResources("foo.txt"));
41  
42          Enumeration<URL> e = BundleClassLoaderAccessor.getClassLoader(bundle, null).getResources("foo.txt");
43          assertNotNull(e);
44          assertTrue(e.hasMoreElements());
45      }
46  
47      public void testGetResourcesIfNull() throws IOException
48      {
49          Bundle bundle = mock(Bundle.class);
50          when(bundle.getResources("foo.txt")).thenReturn(null);
51  
52          Enumeration<URL> e = BundleClassLoaderAccessor.getClassLoader(bundle, null).getResources("foo.txt");
53          assertNotNull(e);
54          assertFalse(e.hasMoreElements());
55      }
56  }