1 8 package org.codehaus.loom.classman.test; 9 10 import java.io.File ; 11 import java.io.InputStream ; 12 import javax.xml.parsers.DocumentBuilder ; 13 import javax.xml.parsers.DocumentBuilderFactory ; 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 ; 19 20 26 public abstract class AbstractLoaderTestCase 27 extends TestCase 28 { 29 protected ClassLoaderSetMetaData buildFromStream( final InputStream stream ) 30 throws Exception 31 { 32 try 33 { 34 final ClassLoaderSetReader builder = new ClassLoaderSetReader(); 35 final Document config = load( stream ); 36 return builder.build( config.getDocumentElement() ); 37 } 38 catch( final Exception e ) 39 { 40 fail( "Error building ClassLoaderSet: " + e ); 41 return null; 42 } 43 } 44 45 protected Document load( final InputStream stream ) 46 throws Exception 47 { 48 final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 49 final DocumentBuilder builder = factory.newDocumentBuilder(); 52 return builder.parse( stream ); 53 } 54 55 protected ClassLoaderSetMetaData buildFromResource( final String resource ) 56 throws Exception 57 { 58 final InputStream stream = getClass().getResourceAsStream( resource ); 59 if( null == stream ) 60 { 61 fail( "Missing resource " + resource ); 62 } 63 return buildFromStream( stream ); 64 } 65 66 protected File getBaseDirectory() 67 { 68 final String basedir = System.getProperty( "basedir", "." ); 69 final File root = new File ( basedir ); 70 File baseDirectory = new File ( root, "target/test-classes" ); 71 if( !baseDirectory.exists() ) 72 { 73 baseDirectory = new File ( 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 |