KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > loom > classman > builder > test > LoaderBuilderTestCase


1 /*
2  * Copyright (C) The Spice Group. All rights reserved.
3  *
4  * This software is published under the terms of the Spice
5  * Software License version 1.1, a copy of which has been included
6  * with this distribution in the LICENSE.txt file.
7  */

8 package org.codehaus.loom.classman.builder.test;
9
10 import java.io.File JavaDoc;
11 import java.util.HashMap JavaDoc;
12
13 import org.codehaus.loom.classman.builder.LoaderBuilder;
14 import org.codehaus.loom.classman.builder.SimpleLoaderResolver;
15 import org.codehaus.loom.classman.metadata.ClassLoaderMetaData;
16 import org.codehaus.loom.classman.metadata.ClassLoaderSetMetaData;
17 import org.codehaus.loom.classman.metadata.FileSetMetaData;
18 import org.codehaus.loom.classman.metadata.JoinMetaData;
19 import org.codehaus.loom.classman.test.AbstractLoaderTestCase;
20 import org.codehaus.loom.classman.test.DataConstants;
21 import org.codehaus.loom.extension.Extension;
22
23 /**
24  * Unit test for join classloader.
25  *
26  * @author Peter Donald
27  * @version $Revision: 1.1 $ $Date: 2004/04/19 22:19:25 $
28  */

29 public class LoaderBuilderTestCase
30     extends AbstractLoaderTestCase
31 {
32     public void testMissingClassLoader()
33         throws Exception JavaDoc
34     {
35         final LoaderBuilder builder = new LoaderBuilder();
36         final ClassLoaderMetaData classLoader =
37             new ClassLoaderMetaData( "blah",
38                                      "bad-parent",
39                                      new String JavaDoc[ 0 ],
40                                      new Extension[ 0 ],
41                                      new FileSetMetaData[ 0 ] );
42         final ClassLoaderSetMetaData metadata =
43             new ClassLoaderSetMetaData( "blah",
44                                         new String JavaDoc[ 0 ],
45                                         new ClassLoaderMetaData[]{classLoader},
46                                         new JoinMetaData[ 0 ] );
47         final SimpleLoaderResolver resolver = new SimpleLoaderResolver( null );
48         final HashMap JavaDoc predefined = new HashMap JavaDoc();
49         try
50         {
51             builder.buildClassLoaders( metadata, resolver, predefined );
52             fail( "Expected to fail as unable to find classloader 'bad-parent'" );
53         }
54         catch( Exception JavaDoc e )
55         {
56             assertTrue( "Exception message", -1 != e.getMessage().indexOf( "bad-parent" ) );
57             return;
58         }
59     }
60
61     public void testMissingPredefined()
62         throws Exception JavaDoc
63     {
64         final LoaderBuilder builder = new LoaderBuilder();
65         final ClassLoaderSetMetaData metadata =
66             new ClassLoaderSetMetaData( "*system*",
67                                         new String JavaDoc[]{"*system*"},
68                                         new ClassLoaderMetaData[ 0 ],
69                                         new JoinMetaData[ 0 ] );
70         final SimpleLoaderResolver resolver = new SimpleLoaderResolver( null );
71         final HashMap JavaDoc predefined = new HashMap JavaDoc();
72         try
73         {
74             builder.buildClassLoaders( metadata, resolver, predefined );
75             fail( "Expected to fail as predefined list did " +
76                   "not container predefined specified in metadata" );
77         }
78         catch( Exception JavaDoc e )
79         {
80             assertTrue( "Exception message", -1 != e.getMessage().indexOf( "*system*" ) );
81             return;
82         }
83     }
84
85     public void testExtensions()
86         throws Exception JavaDoc
87     {
88         final LoaderBuilder builder = new LoaderBuilder();
89         final ClassLoaderMetaData classLoader =
90             new ClassLoaderMetaData( "ext",
91                                      "*system*",
92                                      new String JavaDoc[ 0 ],
93                                      new Extension[]{DataConstants.EXTENSION},
94                                      new FileSetMetaData[ 0 ] );
95         final ClassLoaderSetMetaData metadata =
96             new ClassLoaderSetMetaData( "ext",
97                                         new String JavaDoc[]{"*system*"},
98                                         new ClassLoaderMetaData[]{classLoader},
99                                         new JoinMetaData[ 0 ] );
100         final SimpleLoaderResolver resolver = new TestLoaderResolver( new File JavaDoc( "." ) );
101         final HashMap JavaDoc predefined = new HashMap JavaDoc();
102         predefined.put( "*system*", ClassLoader.getSystemClassLoader() );
103         try
104         {
105             builder.buildClassLoaders( metadata, resolver, predefined );
106         }
107         catch( Exception JavaDoc e )
108         {
109             fail( "Unexpected failure to build classloaders with extension: " + e );
110         }
111     }
112 }
113
Popular Tags