KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > loom > classman > test > AbstractLoaderTestCase


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.test;
9
10 import java.io.File JavaDoc;
11 import java.io.InputStream JavaDoc;
12 import javax.xml.parsers.DocumentBuilder JavaDoc;
13 import javax.xml.parsers.DocumentBuilderFactory JavaDoc;
14 import junit.framework.TestCase;
15
16 import org.codehaus.loom.classman.metadata.ClassLoaderSetMetaData;
17 import org.codehaus.loom.classman.reader.ClassLoaderSetReader;
18 import org.w3c.dom.Document JavaDoc;
19
20 /**
21  * An abstract base class for all the tests that performed on loaders.
22  *
23  * @author Peter Donald
24  * @version $Revision: 1.1 $ $Date: 2004/04/19 22:19:24 $
25  */

26 public abstract class AbstractLoaderTestCase
27     extends TestCase
28 {
29     protected ClassLoaderSetMetaData buildFromStream( final InputStream JavaDoc stream )
30         throws Exception JavaDoc
31     {
32         try
33         {
34             final ClassLoaderSetReader builder = new ClassLoaderSetReader();
35             final Document JavaDoc config = load( stream );
36             return builder.build( config.getDocumentElement() );
37         }
38         catch( final Exception JavaDoc e )
39         {
40             fail( "Error building ClassLoaderSet: " + e );
41             return null;
42         }
43     }
44
45     protected Document JavaDoc load( final InputStream JavaDoc stream )
46         throws Exception JavaDoc
47     {
48         final DocumentBuilderFactory JavaDoc factory = DocumentBuilderFactory.newInstance();
49         //factory.setValidating(true);
50
//factory.setNamespaceAware(true);
51
final DocumentBuilder JavaDoc builder = factory.newDocumentBuilder();
52         return builder.parse( stream );
53     }
54
55     protected ClassLoaderSetMetaData buildFromResource( final String JavaDoc resource )
56         throws Exception JavaDoc
57     {
58         final InputStream JavaDoc stream = getClass().getResourceAsStream( resource );
59         if( null == stream )
60         {
61             fail( "Missing resource " + resource );
62         }
63         return buildFromStream( stream );
64     }
65
66     protected File JavaDoc getBaseDirectory()
67     {
68         final String JavaDoc basedir = System.getProperty( "basedir", "." );
69         final File JavaDoc root = new File JavaDoc( basedir );
70         File JavaDoc baseDirectory = new File JavaDoc( root, "target/test-classes" );
71         if( !baseDirectory.exists() )
72         {
73             baseDirectory = new File JavaDoc( root, "target/classes" );
74         }
75
76         if( !baseDirectory.exists() )
77         {
78             fail( "Unable to locate base test directory" );
79         }
80         return baseDirectory;
81     }
82 }
83
Popular Tags