From: <jbo...@li...> - 2006-06-02 07:10:07
|
Author: bagerman Date: 2006-06-02 01:35:54 -0400 (Fri, 02 Jun 2006) New Revision: 4555 Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LeapsTest.java Log: adjusting leaps to work with common truth maintenance in abstract working memory Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LeapsTest.java =================================================================== --- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LeapsTest.java 2006-06-02 00:39:56 UTC (rev 4554) +++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/LeapsTest.java 2006-06-02 05:35:54 UTC (rev 4555) @@ -21,6 +21,8 @@ import java.util.List; import org.drools.Cheese; +import org.drools.Person; +import org.drools.PersonInterface; import org.drools.QueryResults; import org.drools.RuleBase; import org.drools.WorkingMemory; @@ -167,23 +169,66 @@ list.contains( "rule2" ) ); } + /** + * this test is replicated here due to the fact that leaps + * does not create activations before fireAll. + * + * so the only difference is in presence of fireAll () statement + */ public void testDynamicRuleRemovals() throws Exception { - // TODO FIXME - } - public void testDynamicRuleRemovalsUnusedWorkingMemory() throws Exception { - // TODO FIXME - } + final PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic1.drl" ) ) ); + builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Dynamic2.drl" ) ) ); + builder.addPackageFromDrl( new InputStreamReader( getClass( ).getResourceAsStream( "test_Dynamic3.drl" ) ) ); + builder.addPackageFromDrl( new InputStreamReader( getClass( ).getResourceAsStream( "test_Dynamic4.drl" ) ) ); + final Package pkg = builder.getPackage( ); - public void testLogicalAssertionsSelfreferencing() throws Exception { - // TODO FIXME - } + org.drools.leaps.LeapsRuleBase leapsRuleBase = null; + final RuleBase ruleBase = getRuleBase( ); + leapsRuleBase = (org.drools.leaps.LeapsRuleBase) ruleBase; + ruleBase.addPackage( pkg ); - public void testLogicalAssertionsDynamicRule() throws Exception { - // TODO FIXME - } + final WorkingMemory workingMemory = ruleBase.newWorkingMemory( ); - public void testLogicalAssertionsModifyEqual() throws Exception { - // TODO FIXME + final List list = new ArrayList( ); + workingMemory.setGlobal( "list", list ); + + final PersonInterface bob = new Person( "bob", "stilton" ); + bob.setStatus( "Not evaluated" ); + workingMemory.assertObject( bob ); + + final Cheese stilton1 = new Cheese( "stilton", 5 ); + workingMemory.assertObject( stilton1 ); + + final Cheese stilton2 = new Cheese( "stilton", 3 ); + workingMemory.assertObject( stilton2 ); + + final Cheese stilton3 = new Cheese( "stilton", 1 ); + workingMemory.assertObject( stilton3 ); + + final Cheese cheddar = new Cheese( "cheddar", 5 ); + workingMemory.assertObject( cheddar ); + // + // workingMemory.get + // + workingMemory.fireAllRules( ); + + assertEquals( 11, workingMemory.getAgenda( ).getActivations( ).length ); + + leapsRuleBase.removeRule( "org.drools.test", "Who likes Stilton" ); + assertEquals( 8, workingMemory.getAgenda( ).getActivations( ).length ); + + leapsRuleBase.removeRule( "org.drools.test", "like cheese" ); + + final Cheese muzzarela = new Cheese( "muzzarela", 5 ); + workingMemory.assertObject( muzzarela ); + + assertEquals( 4, workingMemory.getAgenda( ).getActivations( ).length ); + + leapsRuleBase.removePackage( "org.drools.test" ); + + assertEquals( 0, workingMemory.getAgenda( ).getActivations( ).length ); + } } |