package org.drools.decisiontable; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.Properties; import junit.framework.TestCase; import org.drools.RuleBase; import org.drools.agent.RuleAgent; public class SourcePackageProviderTest extends TestCase { public void testSourceProvider() throws Exception { new SourcePackageProvider(); File dir = getTempDirectory(); InputStream in = this.getClass().getResourceAsStream( "/data/ExamplePolicyPricing.xls" ); File target = new File( dir, "Something.xls" ); OutputStream out = new FileOutputStream( target ); byte[] buf = new byte[1024]; int len; while ( (len = in.read( buf )) > 0 ) { out.write( buf, 0, len ); } in.close(); out.close(); Properties config = new Properties(); config.setProperty( RuleAgent.FILES, target.getPath() ); RuleAgent ag = RuleAgent.newRuleAgent( config ); assertNotNull( ag ); RuleBase rb = ag.getRuleBase(); assertNotNull( rb ); } public static File getTempDirectory() { File f = tempDir(); if ( f.exists() ) { if ( f.isFile() ) { throw new IllegalStateException( "The temp directory exists as a file. Nuke it now !" ); } deleteDir( f ); f.mkdir(); } else { f.mkdir(); } return f; } private static File tempDir() { File tmp = new File( System.getProperty( "java.io.tmpdir" ) ); return new File( tmp, "__temp_test_drools_packages" ); } public static boolean deleteDir(File dir) { if ( dir.isDirectory() ) { String[] children = dir.list(); for ( int i = 0; i < children.length; i++ ) { boolean success = deleteDir( new File( dir, children[i] ) ); if ( !success ) { //throw new RuntimeException("Unable to delete !"); return false; } } } // The directory is now empty so delete it return dir.delete(); } }