Author: mar...@jb... Date: 2006-03-27 16:20:12 -0500 (Mon, 27 Mar 2006) New Revision: 3275 Added: trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_ConsequenceException.drl trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_EvalException.drl trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_FunctionException.drl trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_PredicateException.drl trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueException.drl Modified: trunk/labs/jbossrules/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java trunk/labs/jbossrules/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java Log: JBRULES-128 Integration Tests for Exceptions -Added exception tests for each generated and compiled rule component Modified: trunk/labs/jbossrules/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java =================================================================== --- trunk/labs/jbossrules/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java 2006-03-27 19:50:16 UTC (rev 3274) +++ trunk/labs/jbossrules/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java 2006-03-27 21:20:12 UTC (rev 3275) @@ -473,7 +473,7 @@ st.setAttribute( "methodName", classMethodName ); st.setAttribute( "text", - returnValueDescr.getText() ); + functionFixer.fix( returnValueDescr.getText() ) ); this.methods.add( st.toString() ); @@ -493,7 +493,7 @@ returnValueDescr.getText() ); st.setAttribute( "text", - functionFixer.fix( returnValueDescr.getText() ) ); + returnValueDescr.getText() ); String invokerClassName = pkg.getName() + "." + ruleDescr.getClassName() + ucFirst( classMethodName ) + "Invoker"; this.invokers.put( invokerClassName, Modified: trunk/labs/jbossrules/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java =================================================================== --- trunk/labs/jbossrules/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-03-27 19:50:16 UTC (rev 3274) +++ trunk/labs/jbossrules/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-03-27 21:20:12 UTC (rev 3275) @@ -579,4 +579,100 @@ } + public void testConsequenceException() throws Exception { + PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ConsequenceException.drl" ) ) ); + Package pkg = builder.getPackage(); + + RuleBase ruleBase = getRuleBase(); + ruleBase.addPackage( pkg ); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + + Cheese brie = new Cheese( "brie", 12 ); + workingMemory.assertObject( brie ); + + try { + workingMemory.fireAllRules(); + fail( "Should throw an Exception from the Consequence" ); + } catch ( Exception e ) { + assertEquals( "this should throw an exception", e.getCause().getMessage() ); + } + } + + public void testFunctionException() throws Exception { + PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FunctionException.drl" ) ) ); + Package pkg = builder.getPackage(); + + RuleBase ruleBase = getRuleBase(); + ruleBase.addPackage( pkg ); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + + Cheese brie = new Cheese( "brie", 12 ); + workingMemory.assertObject( brie ); + + try { + workingMemory.fireAllRules(); + fail( "Should throw an Exception from the Function" ); + } catch ( Exception e ) { + assertEquals( "this should throw an exception", e.getCause().getMessage() ); + } + } + + public void testEvalException() throws Exception { + PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EvalException.drl" ) ) ); + Package pkg = builder.getPackage(); + + RuleBase ruleBase = getRuleBase(); + ruleBase.addPackage( pkg ); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + + Cheese brie = new Cheese( "brie", 12 ); + + try { + workingMemory.assertObject( brie ); + fail( "Should throw an Exception from the Eval" ); + } catch ( Exception e ) { + assertEquals( "this should throw an exception", e.getCause().getMessage() ); + } + } + + public void testPredicateException() throws Exception { + PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_PredicateException.drl" ) ) ); + Package pkg = builder.getPackage(); + + RuleBase ruleBase = getRuleBase(); + ruleBase.addPackage( pkg ); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + + Cheese brie = new Cheese( "brie", 12 ); + + try { + workingMemory.assertObject( brie ); + fail( "Should throw an Exception from the Predicate" ); + } catch ( Exception e ) { + assertEquals( "this should throw an exception", e.getCause().getMessage() ); + } + } + + public void testReturnValueException() throws Exception { + PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ReturnValueException.drl" ) ) ); + Package pkg = builder.getPackage(); + + RuleBase ruleBase = getRuleBase(); + ruleBase.addPackage( pkg ); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + + Cheese brie = new Cheese( "brie", 12 ); + + try { + workingMemory.assertObject( brie ); + fail( "Should throw an Exception from the ReturnValue" ); + } catch ( Exception e ) { + assertEquals( "this should throw an exception", e.getCause().getMessage() ); + } + } } Added: trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_ConsequenceException.drl =================================================================== --- trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_ConsequenceException.drl 2006-03-27 19:50:16 UTC (rev 3274) +++ trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_ConsequenceException.drl 2006-03-27 21:20:12 UTC (rev 3275) @@ -0,0 +1,10 @@ +package org.drools.test; + +import org.drools.Cheese; + +rule "Throw Consequence Exception" + when + cheese : Cheese( ) + then + throw new Exception( "this should throw an exception" ); +end \ No newline at end of file Added: trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_EvalException.drl =================================================================== --- trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_EvalException.drl 2006-03-27 19:50:16 UTC (rev 3274) +++ trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_EvalException.drl 2006-03-27 21:20:12 UTC (rev 3275) @@ -0,0 +1,15 @@ +package org.drools.test; + +import org.drools.Cheese; + +function boolean throwException(Object object) { + throw new Exception( "this should throw an exception" ); +} + +rule "Throw Eval Exception" + when + cheese : Cheese( ) + eval( throwException( cheese ) ) + then + +end \ No newline at end of file Added: trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_FunctionException.drl =================================================================== --- trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_FunctionException.drl 2006-03-27 19:50:16 UTC (rev 3274) +++ trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_FunctionException.drl 2006-03-27 21:20:12 UTC (rev 3275) @@ -0,0 +1,14 @@ +package org.drools.test; + +import org.drools.Cheese; + +function void throwException() { + throw new Exception( "this should throw an exception" ); +} + +rule "Throw Function Exception" + when + cheese : Cheese( ) + then + throwException(); +end \ No newline at end of file Added: trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_PredicateException.drl =================================================================== --- trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_PredicateException.drl 2006-03-27 19:50:16 UTC (rev 3274) +++ trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_PredicateException.drl 2006-03-27 21:20:12 UTC (rev 3275) @@ -0,0 +1,14 @@ +package org.drools.test; + +import org.drools.Cheese; + +function boolean throwException(Object object) { + throw new Exception( "this should throw an exception" ); +} + +rule "Throw Predicate Exception" + when + Cheese( type1:type -> ( throwException( type1 ) ) ) + then + +end \ No newline at end of file Added: trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueException.drl =================================================================== --- trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueException.drl 2006-03-27 19:50:16 UTC (rev 3274) +++ trunk/labs/jbossrules/drools-compiler/src/test/resources/org/drools/integrationtests/test_ReturnValueException.drl 2006-03-27 21:20:12 UTC (rev 3275) @@ -0,0 +1,14 @@ +package org.drools.test; + +import org.drools.Cheese; + +function String throwException( ) { + throw new Exception( "this should throw an exception" ); +} + +rule "Throw ReturnValue Exception" + when + Cheese( type == ( throwException( ) ) ) + then + +end \ No newline at end of file |