[jboss-svn-commits] JBL Code SVN: r19062 - labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 18 16:14:08 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-18 16:14:08 -0400 (Tue, 18 Mar 2008)
New Revision: 19062
Modified:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
-formatted
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-18 20:04:42 UTC (rev 19061)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-18 20:14:08 UTC (rev 19062)
@@ -124,538 +124,599 @@
/** Run all the tests with the ReteOO engine implementation */
public class MiscTest extends TestCase {
- protected RuleBase getRuleBase() throws Exception {
+ protected RuleBase getRuleBase() throws Exception {
- return RuleBaseFactory.newRuleBase(RuleBase.RETEOO, null);
- }
+ return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+ null );
+ }
- protected RuleBase getRuleBase(final RuleBaseConfiguration config)
- throws Exception {
+ protected RuleBase getRuleBase(final RuleBaseConfiguration config) throws Exception {
- return RuleBaseFactory.newRuleBase(RuleBase.RETEOO, config);
- }
+ return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+ config );
+ }
- public void testGlobals() throws Exception {
+ public void testGlobals() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("globals_rule_test.drl")));
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "globals_rule_test.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- workingMemory.setGlobal("string", "stilton");
+ workingMemory.setGlobal( "string",
+ "stilton" );
- final Cheese stilton = new Cheese("stilton", 5);
- workingMemory.insert(stilton);
+ final Cheese stilton = new Cheese( "stilton",
+ 5 );
+ workingMemory.insert( stilton );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(new Integer(5), list.get(0));
- }
+ assertEquals( new Integer( 5 ),
+ list.get( 0 ) );
+ }
- public void testGlobals2() throws Exception {
+ public void testGlobals2() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_globalsAsConstraints.drl")));
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_globalsAsConstraints.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- final List cheeseTypes = new ArrayList();
- workingMemory.setGlobal("cheeseTypes", cheeseTypes);
- cheeseTypes.add("stilton");
- cheeseTypes.add("muzzarela");
+ final List cheeseTypes = new ArrayList();
+ workingMemory.setGlobal( "cheeseTypes",
+ cheeseTypes );
+ cheeseTypes.add( "stilton" );
+ cheeseTypes.add( "muzzarela" );
- final Cheese stilton = new Cheese("stilton", 5);
- workingMemory.insert(stilton);
+ final Cheese stilton = new Cheese( "stilton",
+ 5 );
+ workingMemory.insert( stilton );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, results.size());
- assertEquals("memberOf", results.get(0));
+ assertEquals( 1,
+ results.size() );
+ assertEquals( "memberOf",
+ results.get( 0 ) );
- final Cheese brie = new Cheese("brie", 5);
- workingMemory.insert(brie);
+ final Cheese brie = new Cheese( "brie",
+ 5 );
+ workingMemory.insert( brie );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(2, results.size());
- assertEquals("not memberOf", results.get(1));
- }
+ assertEquals( 2,
+ results.size() );
+ assertEquals( "not memberOf",
+ results.get( 1 ) );
+ }
- public void testCustomGlobalResolver() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_globalCustomResolver.drl")));
- final Package pkg = builder.getPackage();
+ public void testCustomGlobalResolver() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_globalCustomResolver.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Map map = new HashMap();
- List list = new ArrayList();
- String string = "stilton";
+ final Map map = new HashMap();
+ List list = new ArrayList();
+ String string = "stilton";
- map.put("list", list);
- map.put("string", string);
+ map.put( "list",
+ list );
+ map.put( "string",
+ string );
- workingMemory.setGlobalResolver(new GlobalResolver() {
- public Object resolveGlobal(String identifier) {
- return map.get(identifier);
- }
+ workingMemory.setGlobalResolver( new GlobalResolver() {
+ public Object resolveGlobal(String identifier) {
+ return map.get( identifier );
+ }
- public void setGlobal(String identifier, Object value) {
- map.put(identifier, value);
- }
+ public void setGlobal(String identifier,
+ Object value) {
+ map.put( identifier,
+ value );
+ }
- });
+ } );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- assertEquals(new Integer(5), list.get(0));
- }
+ assertEquals( new Integer( 5 ),
+ list.get( 0 ) );
+ }
- public void testCustomGlobalResolverWithWorkingMemoryObject()
- throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_globalCustomResolver.drl")));
- final Package pkg = builder.getPackage();
+ public void testCustomGlobalResolverWithWorkingMemoryObject() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_globalCustomResolver.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Map map = new HashMap();
- List list = new ArrayList();
- String string = "stilton";
+ final Map map = new HashMap();
+ List list = new ArrayList();
+ String string = "stilton";
- map.put("list", list);
- map.put("string", string);
+ map.put( "list",
+ list );
+ map.put( "string",
+ string );
- workingMemory.setGlobalResolver(new GlobalResolver() {
- public Object resolveGlobal(String identifier) {
- return map.get(identifier);
- }
+ workingMemory.setGlobalResolver( new GlobalResolver() {
+ public Object resolveGlobal(String identifier) {
+ return map.get( identifier );
+ }
- public void setGlobal(String identifier, Object value) {
- map.put(identifier, value);
- }
+ public void setGlobal(String identifier,
+ Object value) {
+ map.put( identifier,
+ value );
+ }
- });
+ } );
- Cheese bree = new Cheese();
- bree.setPrice(100);
+ Cheese bree = new Cheese();
+ bree.setPrice( 100 );
- workingMemory.insert(bree);
+ workingMemory.insert( bree );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(2, list.size());
+ assertEquals( 2,
+ list.size() );
- assertEquals(new Integer(5), list.get(0));
+ assertEquals( new Integer( 5 ),
+ list.get( 0 ) );
- assertEquals(new Integer(6), list.get(1));
- }
+ assertEquals( new Integer( 6 ),
+ list.get( 1 ) );
+ }
- public void testFieldBiningsAndEvalSharing() throws Exception {
- final String drl = "test_FieldBindingsAndEvalSharing.drl";
- evalSharingTest(drl);
- }
+ public void testFieldBiningsAndEvalSharing() throws Exception {
+ final String drl = "test_FieldBindingsAndEvalSharing.drl";
+ evalSharingTest( drl );
+ }
- public void testFieldBiningsAndPredicateSharing() throws Exception {
- final String drl = "test_FieldBindingsAndPredicateSharing.drl";
- evalSharingTest(drl);
- }
+ public void testFieldBiningsAndPredicateSharing() throws Exception {
+ final String drl = "test_FieldBindingsAndPredicateSharing.drl";
+ evalSharingTest( drl );
+ }
- private void evalSharingTest(final String drl)
- throws DroolsParserException, IOException, Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream(drl)));
- final Package pkg = builder.getPackage();
+ private void evalSharingTest(final String drl) throws DroolsParserException,
+ IOException,
+ Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( drl ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- wm.setGlobal("list", list);
+ final List list = new ArrayList();
+ wm.setGlobal( "list",
+ list );
- final TestParam tp1 = new TestParam();
- tp1.setValue2("boo");
- wm.insert(tp1);
+ final TestParam tp1 = new TestParam();
+ tp1.setValue2( "boo" );
+ wm.insert( tp1 );
- wm.fireAllRules();
+ wm.fireAllRules();
- assertEquals(1, list.size());
- }
+ assertEquals( 1,
+ list.size() );
+ }
- public void testFactBindings() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FactBindings.drl")));
- final Package pkg = builder.getPackage();
+ public void testFactBindings() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FactBindings.drl" ) ) );
+ final Package pkg = builder.getPackage();
- // add the package to a rulebase
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ // add the package to a rulebase
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List events = new ArrayList();
- final WorkingMemoryEventListener listener = new DefaultWorkingMemoryEventListener() {
- public void objectUpdated(ObjectUpdatedEvent event) {
- events.add(event);
- }
- };
+ final List events = new ArrayList();
+ final WorkingMemoryEventListener listener = new DefaultWorkingMemoryEventListener() {
+ public void objectUpdated(ObjectUpdatedEvent event) {
+ events.add( event );
+ }
+ };
- workingMemory.addEventListener(listener);
+ workingMemory.addEventListener( listener );
- final Person bigCheese = new Person("big cheese");
- final Cheese cheddar = new Cheese("cheddar", 15);
- bigCheese.setCheese(cheddar);
+ final Person bigCheese = new Person( "big cheese" );
+ final Cheese cheddar = new Cheese( "cheddar",
+ 15 );
+ bigCheese.setCheese( cheddar );
- final FactHandle bigCheeseHandle = workingMemory.insert(bigCheese);
- final FactHandle cheddarHandle = workingMemory.insert(cheddar);
- workingMemory.fireAllRules();
+ final FactHandle bigCheeseHandle = workingMemory.insert( bigCheese );
+ final FactHandle cheddarHandle = workingMemory.insert( cheddar );
+ workingMemory.fireAllRules();
- ObjectUpdatedEvent event = (ObjectUpdatedEvent) events.get(0);
- assertSame(cheddarHandle, event.getFactHandle());
- assertSame(cheddar, event.getOldObject());
- assertSame(cheddar, event.getObject());
+ ObjectUpdatedEvent event = (ObjectUpdatedEvent) events.get( 0 );
+ assertSame( cheddarHandle,
+ event.getFactHandle() );
+ assertSame( cheddar,
+ event.getOldObject() );
+ assertSame( cheddar,
+ event.getObject() );
- event = (ObjectUpdatedEvent) events.get(1);
- assertSame(bigCheeseHandle, event.getFactHandle());
- assertSame(bigCheese, event.getOldObject());
- assertSame(bigCheese, event.getObject());
- }
+ event = (ObjectUpdatedEvent) events.get( 1 );
+ assertSame( bigCheeseHandle,
+ event.getFactHandle() );
+ assertSame( bigCheese,
+ event.getOldObject() );
+ assertSame( bigCheese,
+ event.getObject() );
+ }
- public void testNullHandling() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NullHandling.drl")));
- final Package pkg = builder.getPackage();
+ public void testNullHandling() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NullHandling.drl" ) ) );
+ final Package pkg = builder.getPackage();
- // add the package to a rulebase
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ // add the package to a rulebase
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
- final Cheese nullCheese = new Cheese(null, 2);
- workingMemory.insert(nullCheese);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
+ final Cheese nullCheese = new Cheese( null,
+ 2 );
+ workingMemory.insert( nullCheese );
- final Person notNullPerson = new Person("shoes butt back");
- notNullPerson.setBigDecimal(new BigDecimal("42.42"));
+ final Person notNullPerson = new Person( "shoes butt back" );
+ notNullPerson.setBigDecimal( new BigDecimal( "42.42" ) );
- workingMemory.insert(notNullPerson);
+ workingMemory.insert( notNullPerson );
- final Person nullPerson = new Person("whee");
- nullPerson.setBigDecimal(null);
+ final Person nullPerson = new Person( "whee" );
+ nullPerson.setBigDecimal( null );
- workingMemory.insert(nullPerson);
+ workingMemory.insert( nullPerson );
- workingMemory.fireAllRules();
- System.out.println(list.get(0));
- assertEquals(3, list.size());
+ workingMemory.fireAllRules();
+ System.out.println( list.get( 0 ) );
+ assertEquals( 3,
+ list.size() );
- }
+ }
- public void NullFieldOnCompositeSink() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NullFieldOnCompositeSink.drl")));
- final Package pkg = builder.getPackage();
+ public void NullFieldOnCompositeSink() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NullFieldOnCompositeSink.drl" ) ) );
+ final Package pkg = builder.getPackage();
- // add the package to a rulebase
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ // add the package to a rulebase
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- WorkingMemory workingMemory = ruleBase.newStatefulSession();
- List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- workingMemory.insert(new Attribute());
- workingMemory.insert(new Message());
- workingMemory.fireAllRules();
+ workingMemory.insert( new Attribute() );
+ workingMemory.insert( new Message() );
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
- assertEquals("X", list.get(0));
+ assertEquals( 1,
+ list.size() );
+ assertEquals( "X",
+ list.get( 0 ) );
- }
+ }
- public void testEmptyPattern() throws Exception {
- // pre build the package
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_EmptyPattern.drl")));
- final Package pkg = builder.getPackage();
+ public void testEmptyPattern() throws Exception {
+ // pre build the package
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EmptyPattern.drl" ) ) );
+ final Package pkg = builder.getPackage();
- // add the package to a rulebase
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ // add the package to a rulebase
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final Cheese stilton = new Cheese("stilton", 5);
- workingMemory.insert(stilton);
+ final Cheese stilton = new Cheese( "stilton",
+ 5 );
+ workingMemory.insert( stilton );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(new Integer(5), list.get(0));
- }
+ assertEquals( new Integer( 5 ),
+ list.get( 0 ) );
+ }
- private RuleBase loadRuleBase(final Reader reader) throws IOException,
- DroolsParserException, Exception {
- final DrlParser parser = new DrlParser();
- final PackageDescr packageDescr = parser.parse(reader);
- if (parser.hasErrors()) {
- System.err.println(parser.getErrors());
- Assert
- .fail("Error messages in parser, need to sort this our (or else collect error messages)");
- }
- // pre build the package
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackage(packageDescr);
- final Package pkg = builder.getPackage();
+ private RuleBase loadRuleBase(final Reader reader) throws IOException,
+ DroolsParserException,
+ Exception {
+ final DrlParser parser = new DrlParser();
+ final PackageDescr packageDescr = parser.parse( reader );
+ if ( parser.hasErrors() ) {
+ System.err.println( parser.getErrors() );
+ Assert.fail( "Error messages in parser, need to sort this our (or else collect error messages)" );
+ }
+ // pre build the package
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackage( packageDescr );
+ final Package pkg = builder.getPackage();
- // add the package to a rulebase
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- // load up the rulebase
- return ruleBase;
- }
+ // add the package to a rulebase
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ // load up the rulebase
+ return ruleBase;
+ }
- public void testExplicitAnd() throws Exception {
- final Reader reader = new InputStreamReader(getClass()
- .getResourceAsStream("test_ExplicitAnd.drl"));
- final RuleBase ruleBase = loadRuleBase(reader);
+ public void testExplicitAnd() throws Exception {
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_ExplicitAnd.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
- workingMemory.insert(new Message("hola"));
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
+ workingMemory.insert( new Message( "hola" ) );
- workingMemory.fireAllRules();
- assertEquals(0, list.size());
+ workingMemory.fireAllRules();
+ assertEquals( 0,
+ list.size() );
- workingMemory.insert(new Cheese("brie", 33));
+ workingMemory.insert( new Cheese( "brie",
+ 33 ) );
- workingMemory.fireAllRules();
- assertEquals(1, list.size());
- }
+ workingMemory.fireAllRules();
+ assertEquals( 1,
+ list.size() );
+ }
- public void testHelloWorld() throws Exception {
+ public void testHelloWorld() throws Exception {
- // read in the source
- final Reader reader = new InputStreamReader(getClass()
- .getResourceAsStream("HelloWorld.drl"));
- final RuleBase ruleBase = loadRuleBase(reader);
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "HelloWorld.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- // go !
- final Message message = new Message("hola");
- message.addToList("hello");
- message.setNumber(42);
+ // go !
+ final Message message = new Message( "hola" );
+ message.addToList( "hello" );
+ message.setNumber( 42 );
- workingMemory.insert(message);
- workingMemory.insert("boo");
- workingMemory.fireAllRules();
- assertTrue(message.isFired());
- assertEquals(message, list.get(0));
+ workingMemory.insert( message );
+ workingMemory.insert( "boo" );
+ workingMemory.fireAllRules();
+ assertTrue( message.isFired() );
+ assertEquals( message,
+ list.get( 0 ) );
- }
+ }
- public void testMVELSoundex() throws Exception {
+ public void testMVELSoundex() throws Exception {
- // read in the source
- final Reader reader = new InputStreamReader(getClass()
- .getResourceAsStream("MVEL_soundex.drl"));
- final RuleBase ruleBase = loadRuleBase(reader);
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "MVEL_soundex.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- Cheese c = new Cheese("fubar", 2);
+ Cheese c = new Cheese( "fubar",
+ 2 );
- workingMemory.insert(c);
- workingMemory.fireAllRules();
- assertEquals(42, c.getPrice());
- }
+ workingMemory.insert( c );
+ workingMemory.fireAllRules();
+ assertEquals( 42,
+ c.getPrice() );
+ }
- public void testLiteral() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("literal_rule_test.drl")));
- final Package pkg = builder.getPackage();
+ public void testLiteral() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "literal_rule_test.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final Cheese stilton = new Cheese("stilton", 5);
- workingMemory.insert(stilton);
+ final Cheese stilton = new Cheese( "stilton",
+ 5 );
+ workingMemory.insert( stilton );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals("stilton", list.get(0));
- }
+ assertEquals( "stilton",
+ list.get( 0 ) );
+ }
- public void testLiteralWithBoolean() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("literal_with_boolean.drl")));
- final Package pkg = builder.getPackage();
+ public void testLiteralWithBoolean() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "literal_with_boolean.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final PersonInterface bill = new Person("bill", null, 12);
- bill.setAlive(true);
- workingMemory.insert(bill);
- workingMemory.fireAllRules();
+ final PersonInterface bill = new Person( "bill",
+ null,
+ 12 );
+ bill.setAlive( true );
+ workingMemory.insert( bill );
+ workingMemory.fireAllRules();
- assertEquals(bill, list.get(0));
- }
+ assertEquals( bill,
+ list.get( 0 ) );
+ }
- public void testFactTemplate() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FactTemplate.drl")));
- final Package pkg = builder.getPackage();
+ public void testFactTemplate() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FactTemplate.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final FactTemplate cheese = pkg.getFactTemplate("Cheese");
- final Fact stilton = cheese.createFact(0);
- stilton.setFieldValue("name", "stilton");
- stilton.setFieldValue("price", new Integer(100));
- workingMemory.insert(stilton);
- workingMemory.fireAllRules();
+ final FactTemplate cheese = pkg.getFactTemplate( "Cheese" );
+ final Fact stilton = cheese.createFact( 0 );
+ stilton.setFieldValue( "name",
+ "stilton" );
+ stilton.setFieldValue( "price",
+ new Integer( 100 ) );
+ workingMemory.insert( stilton );
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
- assertEquals(stilton, list.get(0));
- final Fact fact = (Fact) list.get(0);
- assertSame(stilton, fact);
- assertEquals(new Integer(200), fact.getFieldValue("price"));
+ assertEquals( 1,
+ list.size() );
+ assertEquals( stilton,
+ list.get( 0 ) );
+ final Fact fact = (Fact) list.get( 0 );
+ assertSame( stilton,
+ fact );
+ assertEquals( new Integer( 200 ),
+ fact.getFieldValue( "price" ) );
- }
+ }
- public void testPropertyChangeSupport() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_PropertyChange.drl")));
- final Package pkg = builder.getPackage();
+ public void testPropertyChangeSupport() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_PropertyChange.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final State state = new State("initial");
- workingMemory.insert(state, true);
- workingMemory.fireAllRules();
+ final State state = new State( "initial" );
+ workingMemory.insert( state,
+ true );
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- state.setFlag(true);
- assertEquals(1, list.size());
+ state.setFlag( true );
+ assertEquals( 1,
+ list.size() );
- workingMemory.fireAllRules();
- assertEquals(2, list.size());
+ workingMemory.fireAllRules();
+ assertEquals( 2,
+ list.size() );
- state.setState("finished");
- workingMemory.fireAllRules();
- assertEquals(3, list.size());
+ state.setState( "finished" );
+ workingMemory.fireAllRules();
+ assertEquals( 3,
+ list.size() );
- }
+ }
- public void testBigDecimal() throws Exception {
+ public void testBigDecimal() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("big_decimal_and_comparable.drl")));
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "big_decimal_and_comparable.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final PersonInterface bill = new Person("bill", null, 12);
- bill.setBigDecimal(new BigDecimal("42"));
+ final PersonInterface bill = new Person( "bill",
+ null,
+ 12 );
+ bill.setBigDecimal( new BigDecimal( "42" ) );
- final PersonInterface ben = new Person("ben", null, 13);
- ben.setBigDecimal(new BigDecimal("43"));
+ final PersonInterface ben = new Person( "ben",
+ null,
+ 13 );
+ ben.setBigDecimal( new BigDecimal( "43" ) );
- workingMemory.insert(bill);
- workingMemory.insert(ben);
- workingMemory.fireAllRules();
+ workingMemory.insert( bill );
+ workingMemory.insert( ben );
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
- }
+ assertEquals( 1,
+ list.size() );
+ }
- // @FIXME
- public void FIXME_testBigDecimalWithFromAndEval() throws Exception {
- String rule = "package org.test;\n";
- rule += "rule \"Test Rule\"\n";
- rule += "when\n";
- rule += " $dec : java.math.BigDecimal() from java.math.BigDecimal.TEN;\n";
- rule += " eval( $dec.compareTo(java.math.BigDecimal.ONE) > 0 )\n";
- rule += "then\n";
- rule += " System.out.println(\"OK!\");\n";
- rule += "end";
+ // @FIXME
+ public void FIXME_testBigDecimalWithFromAndEval() throws Exception {
+ String rule = "package org.test;\n";
+ rule += "rule \"Test Rule\"\n";
+ rule += "when\n";
+ rule += " $dec : java.math.BigDecimal() from java.math.BigDecimal.TEN;\n";
+ rule += " eval( $dec.compareTo(java.math.BigDecimal.ONE) > 0 )\n";
+ rule += "then\n";
+ rule += " System.out.println(\"OK!\");\n";
+ rule += "end";
final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new StringReader( rule ));
+ builder.addPackageFromDrl( new StringReader( rule ) );
final Package pkg = builder.getPackage();
final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ ruleBase.addPackage( pkg );
final StatefulSession session = ruleBase.newStatefulSession();
session.fireAllRules();
- }
+ }
public void testMVELConsequenceWithMapsAndArrays() throws Exception {
String rule = "package org.test;\n";
@@ -675,26 +736,29 @@
rule += "end";
final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new StringReader( rule ));
+ builder.addPackageFromDrl( new StringReader( rule ) );
final Package pkg = builder.getPackage();
final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ ruleBase.addPackage( pkg );
final StatefulSession session = ruleBase.newStatefulSession();
List list = new ArrayList();
- session.setGlobal( "list", list );
+ session.setGlobal( "list",
+ list );
session.fireAllRules();
- assertEquals( 1, list.size() );
- assertEquals( "first", list.get( 0 ) );
+ assertEquals( 1,
+ list.size() );
+ assertEquals( "first",
+ list.get( 0 ) );
}
-
- /* @see JBRULES-1484 */
+
+ /* @see JBRULES-1484 */
public void testMVELDynamicImports() throws Exception {
- String rule = "package org.xxx;\n";
-
+ String rule = "package org.xxx;\n";
+
rule += "import org.drools.*\n";
-
+
rule += "global java.util.List list\n";
rule += "rule \"Test Rule\"\n";
rule += " dialect \"mvel\"";
@@ -704,2214 +768,2449 @@
rule += " c = new Cheese( \"y\" );";
rule += " list.add( p );\n";
rule += "end";
-
+
final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new StringReader( rule ));
+ builder.addPackageFromDrl( new StringReader( rule ) );
final Package pkg = builder.getPackage();
final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ ruleBase.addPackage( pkg );
final StatefulSession session = ruleBase.newStatefulSession();
List list = new ArrayList();
- session.setGlobal( "list", list );
+ session.setGlobal( "list",
+ list );
session.fireAllRules();
-
- assertEquals( 1, list.size() );
-
- Person p = new Person( "diablo", new Cheese( "cheddar" ) );
-
- assertEquals( p, list.get( 0 ) );
- }
- public void testBigDecimalIntegerLiteral() throws Exception {
+ assertEquals( 1,
+ list.size() );
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("big_decimal_and_literal.drl")));
- final Package pkg = builder.getPackage();
+ Person p = new Person( "diablo",
+ new Cheese( "cheddar" ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ assertEquals( p,
+ list.get( 0 ) );
+ }
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ public void testBigDecimalIntegerLiteral() throws Exception {
- final PersonInterface bill = new Person("bill", null, 12);
- bill.setBigDecimal(new BigDecimal("42"));
- bill.setBigInteger(new BigInteger("42"));
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "big_decimal_and_literal.drl" ) ) );
+ final Package pkg = builder.getPackage();
- workingMemory.insert(bill);
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(6, list.size());
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- public void testCell() throws Exception {
- final Cell cell1 = new Cell(9);
- final Cell cell = new Cell(0);
+ final PersonInterface bill = new Person( "bill",
+ null,
+ 12 );
+ bill.setBigDecimal( new BigDecimal( "42" ) );
+ bill.setBigInteger( new BigInteger( "42" ) );
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("evalmodify.drl")));
+ workingMemory.insert( bill );
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ assertEquals( 6,
+ list.size() );
+ }
- final WorkingMemory memory = ruleBase.newStatefulSession();
- memory.insert(cell1);
- memory.insert(cell);
- memory.fireAllRules();
- assertEquals(9, cell.getValue());
- }
+ public void testCell() throws Exception {
+ final Cell cell1 = new Cell( 9 );
+ final Cell cell = new Cell( 0 );
- public void testNesting() throws Exception {
- Person p = new Person();
- p.setName("Michael");
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "evalmodify.drl" ) ) );
- Address add1 = new Address();
- add1.setStreet("High");
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- Address add2 = new Address();
- add2.setStreet("Low");
+ final WorkingMemory memory = ruleBase.newStatefulSession();
+ memory.insert( cell1 );
+ memory.insert( cell );
+ memory.fireAllRules();
+ assertEquals( 9,
+ cell.getValue() );
+ }
- List l = new ArrayList();
- l.add(add1);
- l.add(add2);
+ public void testNesting() throws Exception {
+ Person p = new Person();
+ p.setName( "Michael" );
- p.setAddresses(l);
+ Address add1 = new Address();
+ add1.setStreet( "High" );
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("nested_fields.drl")));
+ Address add2 = new Address();
+ add2.setStreet( "Low" );
- assertFalse(builder.getErrors().toString(), builder.hasErrors());
+ List l = new ArrayList();
+ l.add( add1 );
+ l.add( add2 );
- DrlParser parser = new DrlParser();
- PackageDescr desc = parser.parse(new InputStreamReader(getClass()
- .getResourceAsStream("nested_fields.drl")));
- List packageAttrs = desc.getAttributes();
- assertEquals(1, desc.getRules().size());
- assertEquals(1, packageAttrs.size());
+ p.setAddresses( l );
- RuleDescr rule = (RuleDescr) desc.getRules().get(0);
- List ruleAttrs = rule.getAttributes();
- assertEquals(1, ruleAttrs.size());
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "nested_fields.drl" ) ) );
- assertEquals("mvel", ((AttributeDescr) ruleAttrs.get(0)).getValue());
- assertEquals("dialect", ((AttributeDescr) ruleAttrs.get(0)).getName());
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ assertFalse( builder.getErrors().toString(),
+ builder.hasErrors() );
- final WorkingMemory memory = ruleBase.newStatefulSession();
+ DrlParser parser = new DrlParser();
+ PackageDescr desc = parser.parse( new InputStreamReader( getClass().getResourceAsStream( "nested_fields.drl" ) ) );
+ List packageAttrs = desc.getAttributes();
+ assertEquals( 1,
+ desc.getRules().size() );
+ assertEquals( 1,
+ packageAttrs.size() );
- memory.insert(p);
- memory.fireAllRules();
+ RuleDescr rule = (RuleDescr) desc.getRules().get( 0 );
+ List ruleAttrs = rule.getAttributes();
+ assertEquals( 1,
+ ruleAttrs.size() );
- }
+ assertEquals( "mvel",
+ ((AttributeDescr) ruleAttrs.get( 0 )).getValue() );
+ assertEquals( "dialect",
+ ((AttributeDescr) ruleAttrs.get( 0 )).getName() );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- public void testOr() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("or_test.drl")));
- final Package pkg = builder.getPackage();
+ final WorkingMemory memory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ memory.insert( p );
+ memory.fireAllRules();
- final Cheese cheddar = new Cheese("cheddar", 5);
- final FactHandle h = workingMemory.insert(cheddar);
+ }
- workingMemory.fireAllRules();
+ public void testOr() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "or_test.drl" ) ) );
+ final Package pkg = builder.getPackage();
- // just one added
- assertEquals("got cheese", list.get(0));
- assertEquals(1, list.size());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- workingMemory.retract(h);
- workingMemory.fireAllRules();
+ final Cheese cheddar = new Cheese( "cheddar",
+ 5 );
+ final FactHandle h = workingMemory.insert( cheddar );
- // still just one
- assertEquals(1, list.size());
+ workingMemory.fireAllRules();
- workingMemory.insert(new Cheese("stilton", 5));
- workingMemory.fireAllRules();
+ // just one added
+ assertEquals( "got cheese",
+ list.get( 0 ) );
+ assertEquals( 1,
+ list.size() );
- // now have one more
- assertEquals(2, list.size());
+ workingMemory.retract( h );
+ workingMemory.fireAllRules();
- }
+ // still just one
+ assertEquals( 1,
+ list.size() );
- public void testQuery() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("simple_query_test.drl")));
- final Package pkg = builder.getPackage();
+ workingMemory.insert( new Cheese( "stilton",
+ 5 ) );
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ // now have one more
+ assertEquals( 2,
+ list.size() );
- final Cheese stilton = new Cheese("stinky", 5);
- workingMemory.insert(stilton);
- final QueryResults results = workingMemory
- .getQueryResults("simple query");
- assertEquals(1, results.size());
- }
+ }
- public void testEval() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("eval_rule_test.drl")));
- final Package pkg = builder.getPackage();
+ public void testQuery() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "simple_query_test.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.setGlobal("five", new Integer(5));
+ final Cheese stilton = new Cheese( "stinky",
+ 5 );
+ workingMemory.insert( stilton );
+ final QueryResults results = workingMemory.getQueryResults( "simple query" );
+ assertEquals( 1,
+ results.size() );
+ }
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ public void testEval() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "eval_rule_test.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final Cheese stilton = new Cheese("stilton", 5);
- workingMemory.insert(stilton);
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(stilton, list.get(0));
- }
+ workingMemory.setGlobal( "five",
+ new Integer( 5 ) );
- public void testJaninoEval() throws Exception {
- final PackageBuilderConfiguration config = new PackageBuilderConfiguration();
- JavaDialectConfiguration javaConf = (JavaDialectConfiguration) config
- .getDialectConfiguration("java");
- javaConf.setCompiler(JavaDialectConfiguration.JANINO);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final PackageBuilder builder = new PackageBuilder(config);
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("eval_rule_test.drl")));
- final Package pkg = builder.getPackage();
+ final Cheese stilton = new Cheese( "stilton",
+ 5 );
+ workingMemory.insert( stilton );
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ assertEquals( stilton,
+ list.get( 0 ) );
+ }
- workingMemory.setGlobal("five", new Integer(5));
+ public void testJaninoEval() throws Exception {
+ final PackageBuilderConfiguration config = new PackageBuilderConfiguration();
+ JavaDialectConfiguration javaConf = (JavaDialectConfiguration) config.getDialectConfiguration( "java" );
+ javaConf.setCompiler( JavaDialectConfiguration.JANINO );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final PackageBuilder builder = new PackageBuilder( config );
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "eval_rule_test.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final Cheese stilton = new Cheese("stilton", 5);
- workingMemory.insert(stilton);
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(stilton, list.get(0));
- }
+ workingMemory.setGlobal( "five",
+ new Integer( 5 ) );
- public void testEvalMore() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("eval_rule_test_more.drl")));
- final Package pkg = builder.getPackage();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Cheese stilton = new Cheese( "stilton",
+ 5 );
+ workingMemory.insert( stilton );
+ workingMemory.fireAllRules();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ assertEquals( stilton,
+ list.get( 0 ) );
+ }
- final Person foo = new Person("foo");
- workingMemory.insert(foo);
- workingMemory.fireAllRules();
+ public void testEvalMore() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "eval_rule_test_more.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals(foo, list.get(0));
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- public void testReturnValue() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("returnvalue_rule_test.drl")));
- final Package pkg = builder.getPackage();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Person foo = new Person( "foo" );
+ workingMemory.insert( foo );
+ workingMemory.fireAllRules();
- workingMemory.setGlobal("two", new Integer(2));
+ assertEquals( foo,
+ list.get( 0 ) );
+ }
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ public void testReturnValue() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "returnvalue_rule_test.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final PersonInterface peter = new Person("peter", null, 12);
- workingMemory.insert(peter);
- final PersonInterface jane = new Person("jane", null, 10);
- workingMemory.insert(jane);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.fireAllRules();
+ workingMemory.setGlobal( "two",
+ new Integer( 2 ) );
- assertEquals(jane, list.get(0));
- assertEquals(peter, list.get(1));
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- public void testPredicate() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("predicate_rule_test.drl")));
- final Package pkg = builder.getPackage();
+ final PersonInterface peter = new Person( "peter",
+ null,
+ 12 );
+ workingMemory.insert( peter );
+ final PersonInterface jane = new Person( "jane",
+ null,
+ 10 );
+ workingMemory.insert( jane );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- workingMemory.setGlobal("two", new Integer(2));
+ assertEquals( jane,
+ list.get( 0 ) );
+ assertEquals( peter,
+ list.get( 1 ) );
+ }
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ public void testPredicate() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "predicate_rule_test.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final PersonInterface peter = new Person("peter", null, 12);
- workingMemory.insert(peter);
- final PersonInterface jane = new Person("jane", null, 10);
- workingMemory.insert(jane);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.fireAllRules();
+ workingMemory.setGlobal( "two",
+ new Integer( 2 ) );
- assertEquals(jane, list.get(0));
- assertEquals(peter, list.get(1));
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- public void testNullBehaviour() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("null_behaviour.drl")));
- final Package pkg = builder.getPackage();
+ final PersonInterface peter = new Person( "peter",
+ null,
+ 12 );
+ workingMemory.insert( peter );
+ final PersonInterface jane = new Person( "jane",
+ null,
+ 10 );
+ workingMemory.insert( jane );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final PersonInterface p1 = new Person("michael", "food", 40);
- final PersonInterface p2 = new Person(null, "drink", 30);
- workingMemory.insert(p1);
- workingMemory.insert(p2);
+ assertEquals( jane,
+ list.get( 0 ) );
+ assertEquals( peter,
+ list.get( 1 ) );
+ }
- workingMemory.fireAllRules();
+ public void testNullBehaviour() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "null_behaviour.drl" ) ) );
+ final Package pkg = builder.getPackage();
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- public void testNullConstraint() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("null_constraint.drl")));
- final Package pkg = builder.getPackage();
+ final PersonInterface p1 = new Person( "michael",
+ "food",
+ 40 );
+ final PersonInterface p2 = new Person( null,
+ "drink",
+ 30 );
+ workingMemory.insert( p1 );
+ workingMemory.insert( p2 );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List foo = new ArrayList();
- workingMemory.setGlobal("messages", foo);
+ workingMemory.fireAllRules();
- final PersonInterface p1 = new Person(null, "food", 40);
- final Primitives p2 = new Primitives();
- p2.setArrayAttribute(null);
+ }
- workingMemory.insert(p1);
- workingMemory.insert(p2);
+ public void testNullConstraint() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "null_constraint.drl" ) ) );
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
- assertEquals(2, foo.size());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List foo = new ArrayList();
+ workingMemory.setGlobal( "messages",
+ foo );
- }
+ final PersonInterface p1 = new Person( null,
+ "food",
+ 40 );
+ final Primitives p2 = new Primitives();
+ p2.setArrayAttribute( null );
- public void testImportFunctions() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ImportFunctions.drl")));
- final Package pkg = builder.getPackage();
+ workingMemory.insert( p1 );
+ workingMemory.insert( p2 );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Cheese cheese = new Cheese("stilton", 15);
- workingMemory.insert(cheese);
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
+ assertEquals( 2,
+ foo.size() );
- assertEquals(4, list.size());
+ }
- assertEquals("rule1", list.get(0));
- assertEquals("rule2", list.get(1));
- assertEquals("rule3", list.get(2));
- assertEquals("rule4", list.get(3));
- }
+ public void testImportFunctions() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ImportFunctions.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testBasicFrom() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_From.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Cheese cheese = new Cheese( "stilton",
+ 15 );
+ workingMemory.insert( cheese );
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ assertEquals( 4,
+ list.size() );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list1 = new ArrayList();
- workingMemory.setGlobal("list1", list1);
- final List list2 = new ArrayList();
- workingMemory.setGlobal("list2", list2);
- final List list3 = new ArrayList();
- workingMemory.setGlobal("list3", list3);
+ assertEquals( "rule1",
+ list.get( 0 ) );
+ assertEquals( "rule2",
+ list.get( 1 ) );
+ assertEquals( "rule3",
+ list.get( 2 ) );
+ assertEquals( "rule4",
+ list.get( 3 ) );
+ }
- final Cheesery cheesery = new Cheesery();
- final Cheese stilton = new Cheese("stilton", 12);
- final Cheese cheddar = new Cheese("cheddar", 15);
- cheesery.addCheese(stilton);
- cheesery.addCheese(cheddar);
- workingMemory.setGlobal("cheesery", cheesery);
- workingMemory.insert(cheesery);
+ public void testBasicFrom() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_From.drl" ) ) );
+ final Package pkg = builder.getPackage();
- Person p = new Person("stilton");
- workingMemory.insert(p);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- workingMemory.fireAllRules();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list1 = new ArrayList();
+ workingMemory.setGlobal( "list1",
+ list1 );
+ final List list2 = new ArrayList();
+ workingMemory.setGlobal( "list2",
+ list2 );
+ final List list3 = new ArrayList();
+ workingMemory.setGlobal( "list3",
+ list3 );
- // from using a global
- assertEquals(2, list1.size());
- assertEquals(cheddar, list1.get(0));
- assertEquals(stilton, list1.get(1));
+ final Cheesery cheesery = new Cheesery();
+ final Cheese stilton = new Cheese( "stilton",
+ 12 );
+ final Cheese cheddar = new Cheese( "cheddar",
+ 15 );
+ cheesery.addCheese( stilton );
+ cheesery.addCheese( cheddar );
+ workingMemory.setGlobal( "cheesery",
+ cheesery );
+ workingMemory.insert( cheesery );
- // from using a declaration
- assertEquals(2, list2.size());
- assertEquals(cheddar, list2.get(0));
- assertEquals(stilton, list2.get(1));
+ Person p = new Person( "stilton" );
+ workingMemory.insert( p );
- // from using a declaration
- assertEquals(1, list3.size());
- assertEquals(stilton, list3.get(0));
- }
+ workingMemory.fireAllRules();
- public void testFromWithParams() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FromWithParams.drl")));
- final Package pkg = builder.getPackage();
+ // from using a global
+ assertEquals( 2,
+ list1.size() );
+ assertEquals( cheddar,
+ list1.get( 0 ) );
+ assertEquals( stilton,
+ list1.get( 1 ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ // from using a declaration
+ assertEquals( 2,
+ list2.size() );
+ assertEquals( cheddar,
+ list2.get( 0 ) );
+ assertEquals( stilton,
+ list2.get( 1 ) );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- final Object globalObject = new Object();
- workingMemory.setGlobal("list", list);
- workingMemory.setGlobal("testObject", new FromTestClass());
- workingMemory.setGlobal("globalObject", globalObject);
+ // from using a declaration
+ assertEquals( 1,
+ list3.size() );
+ assertEquals( stilton,
+ list3.get( 0 ) );
+ }
- final Person bob = new Person("bob");
- workingMemory.insert(bob);
+ public void testFromWithParams() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FromWithParams.drl" ) ) );
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- assertEquals(6, list.size());
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ final Object globalObject = new Object();
+ workingMemory.setGlobal( "list",
+ list );
+ workingMemory.setGlobal( "testObject",
+ new FromTestClass() );
+ workingMemory.setGlobal( "globalObject",
+ globalObject );
- final List array = (List) list.get(0);
- assertEquals(3, array.size());
- final Person p = (Person) array.get(0);
- assertSame(p, bob);
+ final Person bob = new Person( "bob" );
+ workingMemory.insert( bob );
- assertEquals(new Integer(42), array.get(1));
+ workingMemory.fireAllRules();
- final List nested = (List) array.get(2);
- assertEquals("x", nested.get(0));
- assertEquals("y", nested.get(1));
+ assertEquals( 6,
+ list.size() );
- final Map map = (Map) list.get(1);
- assertEquals(2, map.keySet().size());
+ final List array = (List) list.get( 0 );
+ assertEquals( 3,
+ array.size() );
+ final Person p = (Person) array.get( 0 );
+ assertSame( p,
+ bob );
- assertTrue(map.keySet().contains(bob));
- assertSame(globalObject, map.get(bob));
+ assertEquals( new Integer( 42 ),
+ array.get( 1 ) );
- assertTrue(map.keySet().contains("key1"));
- final Map nestedMap = (Map) map.get("key1");
- assertEquals(1, nestedMap.keySet().size());
- assertTrue(nestedMap.keySet().contains("key2"));
- assertEquals("value2", nestedMap.get("key2"));
+ final List nested = (List) array.get( 2 );
+ assertEquals( "x",
+ nested.get( 0 ) );
+ assertEquals( "y",
+ nested.get( 1 ) );
- assertEquals(new Integer(42), list.get(2));
- assertEquals("literal", list.get(3));
- assertSame(bob, list.get(4));
- assertSame(globalObject, list.get(5));
- }
+ final Map map = (Map) list.get( 1 );
+ assertEquals( 2,
+ map.keySet().size() );
- public void testFromWithNewConstructor() throws Exception {
- DrlParser parser = new DrlParser();
- PackageDescr descr = parser.parse(new InputStreamReader(getClass()
- .getResourceAsStream("test_FromWithNewConstructor.drl")));
- PackageBuilder builder = new PackageBuilder();
- builder.addPackage(descr);
- Package pkg = builder.getPackage();
- pkg.checkValidity();
- }
-
+ assertTrue( map.keySet().contains( bob ) );
+ assertSame( globalObject,
+ map.get( bob ) );
+
+ assertTrue( map.keySet().contains( "key1" ) );
+ final Map nestedMap = (Map) map.get( "key1" );
+ assertEquals( 1,
+ nestedMap.keySet().size() );
+ assertTrue( nestedMap.keySet().contains( "key2" ) );
+ assertEquals( "value2",
+ nestedMap.get( "key2" ) );
+
+ assertEquals( new Integer( 42 ),
+ list.get( 2 ) );
+ assertEquals( "literal",
+ list.get( 3 ) );
+ assertSame( bob,
+ list.get( 4 ) );
+ assertSame( globalObject,
+ list.get( 5 ) );
+ }
+
+ public void testFromWithNewConstructor() throws Exception {
+ DrlParser parser = new DrlParser();
+ PackageDescr descr = parser.parse( new InputStreamReader( getClass().getResourceAsStream( "test_FromWithNewConstructor.drl" ) ) );
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackage( descr );
+ Package pkg = builder.getPackage();
+ pkg.checkValidity();
+ }
+
/**
* @see JBRULES-1415 Certain uses of from causes NullPointerException in WorkingMemoryLogger
- */
- public void testFromDeclarationWithWorkingMemoryLogger() throws Exception {
- String rule = "package org.test;\n";
- rule += "import org.drools.Cheesery\n";
- rule += "import org.drools.Cheese\n";
- rule += "global java.util.List list\n";
- rule += "rule \"Test Rule\"\n";
- rule += "when\n";
- rule += " $cheesery : Cheesery()\n";
- rule += " Cheese( $type : type) from $cheesery.cheeses\n";
- rule += "then\n";
- rule += " list.add( $type );\n";
- rule += "end";
+ */
+ public void testFromDeclarationWithWorkingMemoryLogger() throws Exception {
+ String rule = "package org.test;\n";
+ rule += "import org.drools.Cheesery\n";
+ rule += "import org.drools.Cheese\n";
+ rule += "global java.util.List list\n";
+ rule += "rule \"Test Rule\"\n";
+ rule += "when\n";
+ rule += " $cheesery : Cheesery()\n";
+ rule += " Cheese( $type : type) from $cheesery.cheeses\n";
+ rule += "then\n";
+ rule += " list.add( $type );\n";
+ rule += "end";
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new StringReader( rule ));
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new StringReader( rule ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final StatefulSession session = ruleBase.newStatefulSession();
-
- WorkingMemoryInMemoryLogger logger = new WorkingMemoryInMemoryLogger( session );
- List list = new ArrayList();
- session.setGlobal( "list", list );
-
- Cheesery cheesery = new Cheesery();
- cheesery.addCheese( new Cheese("stilton", 22) );
-
- session.insert( cheesery );
-
- session.fireAllRules();
-
- assertEquals( 1, list.size());
- assertEquals( "stilton", list.get(0));
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final StatefulSession session = ruleBase.newStatefulSession();
- public void testWithInvalidRule() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("invalid_rule.drl")));
- final Package pkg = builder.getPackage();
- // Mark: please check if the conseqeuence/should/shouldn't be built
- // Rule badBoy = pkg.getRules()[0];
- // assertFalse(badBoy.isValid());
+ WorkingMemoryInMemoryLogger logger = new WorkingMemoryInMemoryLogger( session );
+ List list = new ArrayList();
+ session.setGlobal( "list",
+ list );
- RuntimeException runtime = null;
- // this should ralph all over the place.
- final RuleBase ruleBase = getRuleBase();
- try {
- ruleBase.addPackage(pkg);
- fail("Should have thrown an exception as the rule is NOT VALID.");
- } catch (final RuntimeException e) {
- assertNotNull(e.getMessage());
- runtime = e;
- }
- assertTrue(builder.getErrors().getErrors().length > 0);
+ Cheesery cheesery = new Cheesery();
+ cheesery.addCheese( new Cheese( "stilton",
+ 22 ) );
- final String pretty = builder.getErrors().toString();
- assertFalse(pretty.equals(""));
- assertEquals(pretty, runtime.getMessage());
+ session.insert( cheesery );
- }
+ session.fireAllRules();
- public void testErrorLineNumbers() throws Exception {
- // this test aims to test semantic errors
- // parser errors are another test case
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("errors_in_rule.drl")));
- final Package pkg = builder.getPackage();
+ assertEquals( 1,
+ list.size() );
+ assertEquals( "stilton",
+ list.get( 0 ) );
+ }
- final DroolsError err = builder.getErrors().getErrors()[0];
- final RuleError ruleErr = (RuleError) err;
- assertNotNull(ruleErr.getDescr());
- assertTrue(ruleErr.getLine() != -1);
+ public void testWithInvalidRule() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "invalid_rule.drl" ) ) );
+ final Package pkg = builder.getPackage();
+ // Mark: please check if the conseqeuence/should/shouldn't be built
+ // Rule badBoy = pkg.getRules()[0];
+ // assertFalse(badBoy.isValid());
- final DroolsError errs[] = builder.getErrors().getErrors();
+ RuntimeException runtime = null;
+ // this should ralph all over the place.
+ final RuleBase ruleBase = getRuleBase();
+ try {
+ ruleBase.addPackage( pkg );
+ fail( "Should have thrown an exception as the rule is NOT VALID." );
+ } catch ( final RuntimeException e ) {
+ assertNotNull( e.getMessage() );
+ runtime = e;
+ }
+ assertTrue( builder.getErrors().getErrors().length > 0 );
- assertEquals(3, builder.getErrors().getErrors().length);
+ final String pretty = builder.getErrors().toString();
+ assertFalse( pretty.equals( "" ) );
+ assertEquals( pretty,
+ runtime.getMessage() );
- // check that its getting it from the ruleDescr
- assertEquals(ruleErr.getLine(), ruleErr.getDescr().getLine());
- // check the absolute error line number (there are more).
- assertEquals(11, ruleErr.getLine());
+ }
- // now check the RHS, not being too specific yet, as long as it has the
- // rules line number, not zero
- final RuleError rhs = (RuleError) builder.getErrors().getErrors()[2];
- assertTrue(rhs.getLine() > 7); // not being too specific - may need to
- // change this when we rework the error
- // reporting
+ public void testErrorLineNumbers() throws Exception {
+ // this test aims to test semantic errors
+ // parser errors are another test case
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "errors_in_rule.drl" ) ) );
+ final Package pkg = builder.getPackage();
- }
+ final DroolsError err = builder.getErrors().getErrors()[0];
+ final RuleError ruleErr = (RuleError) err;
+ assertNotNull( ruleErr.getDescr() );
+ assertTrue( ruleErr.getLine() != -1 );
- public void testErrorsParser() throws Exception {
- final DrlParser parser = new DrlParser();
- assertEquals(0, parser.getErrors().size());
- parser.parse(new InputStreamReader(getClass().getResourceAsStream(
- "errors_parser_multiple.drl")));
- assertTrue(parser.hasErrors());
- assertTrue(parser.getErrors().size() > 0);
- assertTrue(parser.getErrors().get(0) instanceof ParserError);
- final ParserError first = ((ParserError) parser.getErrors().get(0));
- assertTrue(first.getMessage() != null);
- assertFalse(first.getMessage().equals(""));
- }
+ final DroolsError errs[] = builder.getErrors().getErrors();
- public void testFunction() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FunctionInConsequence.drl")));
- final Package pkg = builder.getPackage();
+ assertEquals( 3,
+ builder.getErrors().getErrors().length );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ // check that its getting it from the ruleDescr
+ assertEquals( ruleErr.getLine(),
+ ruleErr.getDescr().getLine() );
+ // check the absolute error line number (there are more).
+ assertEquals( 11,
+ ruleErr.getLine() );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ // now check the RHS, not being too specific yet, as long as it has the
+ // rules line number, not zero
+ final RuleError rhs = (RuleError) builder.getErrors().getErrors()[2];
+ assertTrue( rhs.getLine() > 7 ); // not being too specific - may need to
+ // change this when we rework the error
+ // reporting
- final Cheese stilton = new Cheese("stilton", 5);
- workingMemory.insert(stilton);
+ }
- workingMemory.fireAllRules();
+ public void testErrorsParser() throws Exception {
+ final DrlParser parser = new DrlParser();
+ assertEquals( 0,
+ parser.getErrors().size() );
+ parser.parse( new InputStreamReader( getClass().getResourceAsStream( "errors_parser_multiple.drl" ) ) );
+ assertTrue( parser.hasErrors() );
+ assertTrue( parser.getErrors().size() > 0 );
+ assertTrue( parser.getErrors().get( 0 ) instanceof ParserError );
+ final ParserError first = ((ParserError) parser.getErrors().get( 0 ));
+ assertTrue( first.getMessage() != null );
+ assertFalse( first.getMessage().equals( "" ) );
+ }
- assertEquals(new Integer(5), list.get(0));
- }
+ public void testFunction() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FunctionInConsequence.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testAssertRetract() throws Exception {
- // postponed while I sort out KnowledgeHelperFixer
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("assert_retract.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final Cheese stilton = new Cheese( "stilton",
+ 5 );
+ workingMemory.insert( stilton );
- final PersonInterface person = new Person("michael", "cheese");
- person.setStatus("start");
- workingMemory.insert(person);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(5, list.size());
- assertTrue(list.contains("first"));
- assertTrue(list.contains("second"));
- assertTrue(list.contains("third"));
- assertTrue(list.contains("fourth"));
- assertTrue(list.contains("fifth"));
+ assertEquals( new Integer( 5 ),
+ list.get( 0 ) );
+ }
- }
+ public void testAssertRetract() throws Exception {
+ // postponed while I sort out KnowledgeHelperFixer
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "assert_retract.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testPredicateAsFirstPattern() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("predicate_as_first_pattern.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final Cheese mussarela = new Cheese("Mussarela", 35);
- workingMemory.insert(mussarela);
- final Cheese provolone = new Cheese("Provolone", 20);
- workingMemory.insert(provolone);
+ final PersonInterface person = new Person( "michael",
+ "cheese" );
+ person.setStatus( "start" );
+ workingMemory.insert( person );
+ workingMemory.fireAllRules();
- workingMemory.fireAllRules();
+ assertEquals( 5,
+ list.size() );
+ assertTrue( list.contains( "first" ) );
+ assertTrue( list.contains( "second" ) );
+ assertTrue( list.contains( "third" ) );
+ assertTrue( list.contains( "fourth" ) );
+ assertTrue( list.contains( "fifth" ) );
- Assert.assertEquals("The rule is being incorrectly fired", 35,
- mussarela.getPrice());
- Assert.assertEquals("Rule is incorrectly being fired", 20, provolone
- .getPrice());
- }
+ }
- public void testConsequenceException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ConsequenceException.drl")));
- final Package pkg = builder.getPackage();
+ public void testPredicateAsFirstPattern() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "predicate_as_first_pattern.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Cheese brie = new Cheese("brie", 12);
- workingMemory.insert(brie);
+ final Cheese mussarela = new Cheese( "Mussarela",
+ 35 );
+ workingMemory.insert( mussarela );
+ final Cheese provolone = new Cheese( "Provolone",
+ 20 );
+ workingMemory.insert( provolone );
- try {
- workingMemory.fireAllRules();
- fail("Should throw an Exception from the Consequence");
- } catch (final Exception e) {
- assertEquals("this should throw an exception", e.getCause()
- .getMessage());
- }
- }
+ workingMemory.fireAllRules();
- public void testCustomConsequenceException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ConsequenceException.drl")));
- final Package pkg = builder.getPackage();
+ Assert.assertEquals( "The rule is being incorrectly fired",
+ 35,
+ mussarela.getPrice() );
+ Assert.assertEquals( "Rule is incorrectly being fired",
+ 20,
+ provolone.getPrice() );
+ }
- RuleBaseConfiguration conf = new RuleBaseConfiguration();
- CustomConsequenceExceptionHandler handler = new CustomConsequenceExceptionHandler();
- conf.setConsequenceExceptionHandler(handler);
+ public void testConsequenceException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ConsequenceException.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase(conf);
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Cheese brie = new Cheese("brie", 12);
- workingMemory.insert(brie);
+ final Cheese brie = new Cheese( "brie",
+ 12 );
+ workingMemory.insert( brie );
- workingMemory.fireAllRules();
+ try {
+ workingMemory.fireAllRules();
+ fail( "Should throw an Exception from the Consequence" );
+ } catch ( final Exception e ) {
+ assertEquals( "this should throw an exception",
+ e.getCause().getMessage() );
+ }
+ }
- assertTrue(handler.isCalled());
- }
+ public void testCustomConsequenceException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ConsequenceException.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public static class CustomConsequenceExceptionHandler implements
- ConsequenceExceptionHandler {
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ CustomConsequenceExceptionHandler handler = new CustomConsequenceExceptionHandler();
+ conf.setConsequenceExceptionHandler( handler );
- private boolean called;
+ final RuleBase ruleBase = getRuleBase( conf );
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- public void handleException(Activation activation,
- WorkingMemory workingMemory, Exception exception) {
- this.called = true;
- }
+ final Cheese brie = new Cheese( "brie",
+ 12 );
+ workingMemory.insert( brie );
- public boolean isCalled() {
- return this.called;
- }
+ workingMemory.fireAllRules();
- }
+ assertTrue( handler.isCalled() );
+ }
- public void testFunctionException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FunctionException.drl")));
- final Package pkg = builder.getPackage();
+ public static class CustomConsequenceExceptionHandler
+ implements
+ ConsequenceExceptionHandler {
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ private boolean called;
- final Cheese brie = new Cheese("brie", 12);
- workingMemory.insert(brie);
+ public void handleException(Activation activation,
+ WorkingMemory workingMemory,
+ Exception exception) {
+ this.called = true;
+ }
- try {
- workingMemory.fireAllRules();
- fail("Should throw an Exception from the Function");
- } catch (final Exception e) {
- assertEquals("this should throw an exception", e.getCause()
- .getMessage());
- }
- }
+ public boolean isCalled() {
+ return this.called;
+ }
- public void testEvalException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_EvalException.drl")));
- final Package pkg = builder.getPackage();
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ public void testFunctionException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FunctionException.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final Cheese brie = new Cheese("brie", 12);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- try {
- workingMemory.insert(brie);
- workingMemory.fireAllRules();
- fail("Should throw an Exception from the Eval");
- } catch (final Exception e) {
- assertEquals("this should throw an exception", e.getCause()
- .getMessage());
- }
- }
+ final Cheese brie = new Cheese( "brie",
+ 12 );
+ workingMemory.insert( brie );
- public void testPredicateException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_PredicateException.drl")));
- final Package pkg = builder.getPackage();
+ try {
+ workingMemory.fireAllRules();
+ fail( "Should throw an Exception from the Function" );
+ } catch ( final Exception e ) {
+ assertEquals( "this should throw an exception",
+ e.getCause().getMessage() );
+ }
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ public void testEvalException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EvalException.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final Cheese brie = new Cheese("brie", 12);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- try {
- workingMemory.insert(brie);
- workingMemory.fireAllRules();
- fail("Should throw an Exception from the Predicate");
- } catch (final Exception e) {
- assertEquals("this should throw an exception", e.getCause()
- .getMessage());
- }
- }
+ final Cheese brie = new Cheese( "brie",
+ 12 );
- public void testReturnValueException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ReturnValueException.drl")));
- final Package pkg = builder.getPackage();
+ try {
+ workingMemory.insert( brie );
+ workingMemory.fireAllRules();
+ fail( "Should throw an Exception from the Eval" );
+ } catch ( final Exception e ) {
+ assertEquals( "this should throw an exception",
+ e.getCause().getMessage() );
+ }
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ public void testPredicateException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_PredicateException.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final Cheese brie = new Cheese("brie", 12);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- try {
- workingMemory.insert(brie);
- workingMemory.fireAllRules();
- fail("Should throw an Exception from the ReturnValue");
- } catch (final Exception e) {
- assertTrue(e.getCause().getMessage().endsWith(
- "this should throw an exception"));
- }
- }
+ final Cheese brie = new Cheese( "brie",
+ 12 );
- public void testMultiRestrictionFieldConstraint() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(
- getClass().getResourceAsStream(
- "test_MultiRestrictionFieldConstraint.drl")));
- final Package pkg = builder.getPackage();
+ try {
+ workingMemory.insert( brie );
+ workingMemory.fireAllRules();
+ fail( "Should throw an Exception from the Predicate" );
+ } catch ( final Exception e ) {
+ assertEquals( "this should throw an exception",
+ e.getCause().getMessage() );
+ }
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ public void testReturnValueException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ReturnValueException.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final List list1 = new ArrayList();
- workingMemory.setGlobal("list1", list1);
- final List list2 = new ArrayList();
- workingMemory.setGlobal("list2", list2);
- final List list3 = new ArrayList();
- workingMemory.setGlobal("list3", list3);
- final List list4 = new ArrayList();
- workingMemory.setGlobal("list4", list4);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Person youngChili1 = new Person("young chili1");
- youngChili1.setAge(12);
- youngChili1.setHair("blue");
- final Person youngChili2 = new Person("young chili2");
- youngChili2.setAge(25);
- youngChili2.setHair("purple");
+ final Cheese brie = new Cheese( "brie",
+ 12 );
- final Person chili1 = new Person("chili1");
- chili1.setAge(35);
- chili1.setHair("red");
+ try {
+ workingMemory.insert( brie );
+ workingMemory.fireAllRules();
+ fail( "Should throw an Exception from the ReturnValue" );
+ } catch ( final Exception e ) {
+ assertTrue( e.getCause().getMessage().endsWith( "this should throw an exception" ) );
+ }
+ }
- final Person chili2 = new Person("chili2");
- chili2.setAge(38);
- chili2.setHair("indigigo");
+ public void testMultiRestrictionFieldConstraint() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MultiRestrictionFieldConstraint.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final Person oldChili1 = new Person("old chili2");
- oldChili1.setAge(45);
- oldChili1.setHair("green");
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Person oldChili2 = new Person("old chili2");
- oldChili2.setAge(48);
- oldChili2.setHair("blue");
+ final List list1 = new ArrayList();
+ workingMemory.setGlobal( "list1",
+ list1 );
+ final List list2 = new ArrayList();
+ workingMemory.setGlobal( "list2",
+ list2 );
+ final List list3 = new ArrayList();
+ workingMemory.setGlobal( "list3",
+ list3 );
+ final List list4 = new ArrayList();
+ workingMemory.setGlobal( "list4",
+ list4 );
- workingMemory.insert(youngChili1);
- workingMemory.insert(youngChili2);
- workingMemory.insert(chili1);
- workingMemory.insert(chili2);
- workingMemory.insert(oldChili1);
- workingMemory.insert(oldChili2);
+ final Person youngChili1 = new Person( "young chili1" );
+ youngChili1.setAge( 12 );
+ youngChili1.setHair( "blue" );
+ final Person youngChili2 = new Person( "young chili2" );
+ youngChili2.setAge( 25 );
+ youngChili2.setHair( "purple" );
- workingMemory.fireAllRules();
+ final Person chili1 = new Person( "chili1" );
+ chili1.setAge( 35 );
+ chili1.setHair( "red" );
- assertEquals(1, list1.size());
- assertTrue(list1.contains(chili1));
+ final Person chili2 = new Person( "chili2" );
+ chili2.setAge( 38 );
+ chili2.setHair( "indigigo" );
- assertEquals(2, list2.size());
- assertTrue(list2.contains(chili1));
- assertTrue(list2.contains(chili2));
+ final Person oldChili1 = new Person( "old chili2" );
+ oldChili1.setAge( 45 );
+ oldChili1.setHair( "green" );
- assertEquals(2, list3.size());
- assertTrue(list3.contains(youngChili1));
- assertTrue(list3.contains(youngChili2));
+ final Person oldChili2 = new Person( "old chili2" );
+ oldChili2.setAge( 48 );
+ oldChili2.setHair( "blue" );
- assertEquals(2, list4.size());
- assertTrue(list4.contains(youngChili1));
- assertTrue(list4.contains(chili1));
- }
+ workingMemory.insert( youngChili1 );
+ workingMemory.insert( youngChili2 );
+ workingMemory.insert( chili1 );
+ workingMemory.insert( chili2 );
+ workingMemory.insert( oldChili1 );
+ workingMemory.insert( oldChili2 );
- public void testDumpers() throws Exception {
- final DrlParser parser = new DrlParser();
- final PackageDescr pkg = parser.parse(new InputStreamReader(getClass()
- .getResourceAsStream("test_Dumpers.drl")));
+ workingMemory.fireAllRules();
- PackageBuilder builder = new PackageBuilder();
- builder.addPackage(pkg);
+ assertEquals( 1,
+ list1.size() );
+ assertTrue( list1.contains( chili1 ) );
- RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
- WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ assertEquals( 2,
+ list2.size() );
+ assertTrue( list2.contains( chili1 ) );
+ assertTrue( list2.contains( chili2 ) );
- List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ assertEquals( 2,
+ list3.size() );
+ assertTrue( list3.contains( youngChili1 ) );
+ assertTrue( list3.contains( youngChili2 ) );
- final Cheese brie = new Cheese("brie", 12);
- workingMemory.insert(brie);
+ assertEquals( 2,
+ list4.size() );
+ assertTrue( list4.contains( youngChili1 ) );
+ assertTrue( list4.contains( chili1 ) );
+ }
- workingMemory.fireAllRules();
+ public void testDumpers() throws Exception {
+ final DrlParser parser = new DrlParser();
+ final PackageDescr pkg = parser.parse( new InputStreamReader( getClass().getResourceAsStream( "test_Dumpers.drl" ) ) );
- assertEquals(3, list.size());
- assertEquals("3 1", list.get(0));
- assertEquals("MAIN", list.get(1));
- assertEquals("1 1", list.get(2));
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackage( pkg );
- final DrlDumper drlDumper = new DrlDumper();
- final String drlResult = drlDumper.dump(pkg);
- builder = new PackageBuilder();
- builder.addPackageFromDrl(new StringReader(drlResult));
+ RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
- ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
- workingMemory = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final Cheese brie = new Cheese( "brie",
+ 12 );
+ workingMemory.insert( brie );
- workingMemory.insert(brie);
+ workingMemory.fireAllRules();
- workingMemory.fireAllRules();
+ assertEquals( 3,
+ list.size() );
+ assertEquals( "3 1",
+ list.get( 0 ) );
+ assertEquals( "MAIN",
+ list.get( 1 ) );
+ assertEquals( "1 1",
+ list.get( 2 ) );
- assertEquals(3, list.size());
- assertEquals("3 1", list.get(0));
- assertEquals("MAIN", list.get(1));
- assertEquals("1 1", list.get(2));
+ final DrlDumper drlDumper = new DrlDumper();
+ final String drlResult = drlDumper.dump( pkg );
+ builder = new PackageBuilder();
+ builder.addPackageFromDrl( new StringReader( drlResult ) );
- final XmlDumper xmlDumper = new XmlDumper();
- final String xmlResult = xmlDumper.dump(pkg);
+ ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
+ workingMemory = ruleBase.newStatefulSession();
- // System.out.println( xmlResult );
+ list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- builder = new PackageBuilder();
- builder.addPackageFromXml(new StringReader(xmlResult));
+ workingMemory.insert( brie );
- ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
- workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ assertEquals( 3,
+ list.size() );
+ assertEquals( "3 1",
+ list.get( 0 ) );
+ assertEquals( "MAIN",
+ list.get( 1 ) );
+ assertEquals( "1 1",
+ list.get( 2 ) );
- workingMemory.insert(brie);
+ final XmlDumper xmlDumper = new XmlDumper();
+ final String xmlResult = xmlDumper.dump( pkg );
- workingMemory.fireAllRules();
+ // System.out.println( xmlResult );
- assertEquals(3, list.size());
- assertEquals("3 1", list.get(0));
- assertEquals("MAIN", list.get(1));
- assertEquals("1 1", list.get(2));
- }
+ builder = new PackageBuilder();
+ builder.addPackageFromXml( new StringReader( xmlResult ) );
- public void testContainsCheese() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ContainsCheese.drl")));
- final Package pkg = builder.getPackage();
+ ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
+ workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ workingMemory.insert( brie );
- final Cheese stilton = new Cheese("stilton", 12);
- workingMemory.insert(stilton);
- final Cheese brie = new Cheese("brie", 10);
- workingMemory.insert(brie);
+ workingMemory.fireAllRules();
- final Cheesery cheesery = new Cheesery();
- cheesery.getCheeses().add(stilton);
- workingMemory.insert(cheesery);
+ assertEquals( 3,
+ list.size() );
+ assertEquals( "3 1",
+ list.get( 0 ) );
+ assertEquals( "MAIN",
+ list.get( 1 ) );
+ assertEquals( "1 1",
+ list.get( 2 ) );
+ }
- workingMemory.fireAllRules();
+ public void testContainsCheese() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ContainsCheese.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals(2, list.size());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(stilton, list.get(0));
- assertEquals(brie, list.get(1));
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- public void testStaticFieldReference() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_StaticField.drl")));
- final Package pkg = builder.getPackage();
+ final Cheese stilton = new Cheese( "stilton",
+ 12 );
+ workingMemory.insert( stilton );
+ final Cheese brie = new Cheese( "brie",
+ 10 );
+ workingMemory.insert( brie );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Cheesery cheesery = new Cheesery();
+ cheesery.getCheeses().add( stilton );
+ workingMemory.insert( cheesery );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ workingMemory.fireAllRules();
- final Cheesery cheesery1 = new Cheesery();
- cheesery1.setStatus(Cheesery.SELLING_CHEESE);
- cheesery1.setMaturity(Maturity.OLD);
- workingMemory.insert(cheesery1);
+ assertEquals( 2,
+ list.size() );
- final Cheesery cheesery2 = new Cheesery();
- cheesery2.setStatus(Cheesery.MAKING_CHEESE);
- cheesery2.setMaturity(Maturity.YOUNG);
- workingMemory.insert(cheesery2);
+ assertEquals( stilton,
+ list.get( 0 ) );
+ assertEquals( brie,
+ list.get( 1 ) );
+ }
- workingMemory.fireAllRules();
+ public void testStaticFieldReference() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_StaticField.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals(2, list.size());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(cheesery1, list.get(0));
- assertEquals(cheesery2, list.get(1));
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- public void testDuplicateRuleNames() throws Exception {
- PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_DuplicateRuleName1.drl")));
+ final Cheesery cheesery1 = new Cheesery();
+ cheesery1.setStatus( Cheesery.SELLING_CHEESE );
+ cheesery1.setMaturity( Maturity.OLD );
+ workingMemory.insert( cheesery1 );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ final Cheesery cheesery2 = new Cheesery();
+ cheesery2.setStatus( Cheesery.MAKING_CHEESE );
+ cheesery2.setMaturity( Maturity.YOUNG );
+ workingMemory.insert( cheesery2 );
- builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_DuplicateRuleName2.drl")));
- ruleBase.addPackage(builder.getPackage());
+ workingMemory.fireAllRules();
- // @todo: this is from JBRULES-394 - maybe we should test more stuff
- // here?
+ assertEquals( 2,
+ list.size() );
- }
+ assertEquals( cheesery1,
+ list.get( 0 ) );
+ assertEquals( cheesery2,
+ list.get( 1 ) );
+ }
- public void testNullValuesIndexing() throws Exception {
- final Reader reader = new InputStreamReader(getClass()
- .getResourceAsStream("test_NullValuesIndexing.drl"));
+ public void testDuplicateRuleNames() throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DuplicateRuleName1.drl" ) ) );
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(reader);
- final Package pkg1 = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg1);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DuplicateRuleName2.drl" ) ) );
+ ruleBase.addPackage( builder.getPackage() );
- // Adding person with null name and likes attributes
- final PersonInterface bob = new Person((String)null, (String)null);
- bob.setStatus("P1");
- final PersonInterface pete = new Person((String)null, (String)null);
- bob.setStatus("P2");
- workingMemory.insert(bob);
- workingMemory.insert(pete);
+ // @todo: this is from JBRULES-394 - maybe we should test more stuff
+ // here?
- workingMemory.fireAllRules();
+ }
- Assert.assertEquals(
- "Indexing with null values is not working correctly.", "OK",
- bob.getStatus());
- Assert.assertEquals(
- "Indexing with null values is not working correctly.", "OK",
- pete.getStatus());
+ public void testNullValuesIndexing() throws Exception {
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_NullValuesIndexing.drl" ) );
- }
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( reader );
+ final Package pkg1 = builder.getPackage();
- public void testEmptyRule() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_EmptyRule.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg1 );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ // Adding person with null name and likes attributes
+ final PersonInterface bob = new Person( (String) null,
+ (String) null );
+ bob.setStatus( "P1" );
+ final PersonInterface pete = new Person( (String) null,
+ (String) null );
+ bob.setStatus( "P2" );
+ workingMemory.insert( bob );
+ workingMemory.insert( pete );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ workingMemory.fireAllRules();
- workingMemory.fireAllRules();
+ Assert.assertEquals( "Indexing with null values is not working correctly.",
+ "OK",
+ bob.getStatus() );
+ Assert.assertEquals( "Indexing with null values is not working correctly.",
+ "OK",
+ pete.getStatus() );
- assertTrue(list.contains("fired1"));
- assertTrue(list.contains("fired2"));
- }
+ }
- public void testjustEval() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NoPatterns.drl")));
- final Package pkg = builder.getPackage();
+ public void testEmptyRule() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EmptyRule.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertTrue(list.contains("fired1"));
- assertTrue(list.contains("fired3"));
- }
+ assertTrue( list.contains( "fired1" ) );
+ assertTrue( list.contains( "fired2" ) );
+ }
- public void testOrWithBinding() throws Exception {
+ public void testjustEval() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NoPatterns.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_OrWithBindings.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ workingMemory.fireAllRules();
- final Person hola = new Person("hola");
- workingMemory.insert(hola);
+ assertTrue( list.contains( "fired1" ) );
+ assertTrue( list.contains( "fired3" ) );
+ }
- workingMemory.fireAllRules();
+ public void testOrWithBinding() throws Exception {
- assertEquals(0, list.size());
- workingMemory.insert(new State("x"));
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_OrWithBindings.drl" ) ) );
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(1, list.size());
- assertTrue(list.contains(hola));
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- }
+ final Person hola = new Person( "hola" );
+ workingMemory.insert( hola );
- protected Object serializeIn(final byte[] bytes) throws IOException,
- ClassNotFoundException {
- final ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(
- bytes));
- final Object obj = in.readObject();
- in.close();
- return obj;
- }
+ workingMemory.fireAllRules();
- protected byte[] serializeOut(final Object obj) throws IOException {
- // Serialize to a byte array
- final ByteArrayOutputStream bos = new ByteArrayOutputStream();
- final ObjectOutput out = new ObjectOutputStream(bos);
- out.writeObject(obj);
- out.close();
+ assertEquals( 0,
+ list.size() );
+ workingMemory.insert( new State( "x" ) );
- // Get the bytes of the serialized object
- final byte[] bytes = bos.toByteArray();
- return bytes;
- }
+ workingMemory.fireAllRules();
- public void testJoinNodeModifyObject() throws Exception {
- final Reader reader = new InputStreamReader(getClass()
- .getResourceAsStream("test_JoinNodeModifyObject.drl"));
+ assertEquals( 1,
+ list.size() );
+ assertTrue( list.contains( hola ) );
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(reader);
- final Package pkg1 = builder.getPackage();
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg1);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ protected Object serializeIn(final byte[] bytes) throws IOException,
+ ClassNotFoundException {
+ final ObjectInput in = new ObjectInputStream( new ByteArrayInputStream( bytes ) );
+ final Object obj = in.readObject();
+ in.close();
+ return obj;
+ }
- final List orderedFacts = new ArrayList();
- final List errors = new ArrayList();
+ protected byte[] serializeOut(final Object obj) throws IOException {
+ // Serialize to a byte array
+ final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ final ObjectOutput out = new ObjectOutputStream( bos );
+ out.writeObject( obj );
+ out.close();
- workingMemory.setGlobal("orderedNumbers", orderedFacts);
- workingMemory.setGlobal("errors", errors);
+ // Get the bytes of the serialized object
+ final byte[] bytes = bos.toByteArray();
+ return bytes;
+ }
- final int MAX = 5;
- for (int i = 1; i <= MAX; i++) {
- final IndexedNumber n = new IndexedNumber(i, MAX - i + 1);
- workingMemory.insert(n);
- }
- workingMemory.fireAllRules();
+ public void testJoinNodeModifyObject() throws Exception {
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_JoinNodeModifyObject.drl" ) );
- Assert.assertTrue("Processing generated errors: " + errors.toString(),
- errors.isEmpty());
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( reader );
+ final Package pkg1 = builder.getPackage();
- for (int i = 1; i <= MAX; i++) {
- final IndexedNumber n = (IndexedNumber) orderedFacts.get(i - 1);
- Assert.assertEquals("Fact is out of order", i, n.getIndex());
- }
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg1 );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- public void testQuery2() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_Query.drl")));
+ final List orderedFacts = new ArrayList();
+ final List errors = new ArrayList();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ workingMemory.setGlobal( "orderedNumbers",
+ orderedFacts );
+ workingMemory.setGlobal( "errors",
+ errors );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.fireAllRules();
+ final int MAX = 5;
+ for ( int i = 1; i <= MAX; i++ ) {
+ final IndexedNumber n = new IndexedNumber( i,
+ MAX - i + 1 );
+ workingMemory.insert( n );
+ }
+ workingMemory.fireAllRules();
- final QueryResults results = workingMemory
- .getQueryResults("assertedobjquery");
- assertEquals(1, results.size());
- assertEquals(new InsertedObject("value1"), results.get(0).get(0));
- }
+ Assert.assertTrue( "Processing generated errors: " + errors.toString(),
+ errors.isEmpty() );
- public void testQueryWithParams() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_QueryWithParams.drl")));
+ for ( int i = 1; i <= MAX; i++ ) {
+ final IndexedNumber n = (IndexedNumber) orderedFacts.get( i - 1 );
+ Assert.assertEquals( "Fact is out of order",
+ i,
+ n.getIndex() );
+ }
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ public void testQuery2() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Query.drl" ) ) );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- QueryResults results = workingMemory.getQueryResults(
- "assertedobjquery", new String[] { "value1" });
- assertEquals(1, results.size());
- assertEquals(new InsertedObject("value1"), results.get(0).get(0));
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- results = workingMemory.getQueryResults("assertedobjquery",
- new String[] { "value3" });
- assertEquals(0, results.size());
+ final QueryResults results = workingMemory.getQueryResults( "assertedobjquery" );
+ assertEquals( 1,
+ results.size() );
+ assertEquals( new InsertedObject( "value1" ),
+ results.get( 0 ).get( 0 ) );
+ }
- results = workingMemory.getQueryResults("assertedobjquery2",
- new String[] { null, "value2" });
- assertEquals(1, results.size());
- assertEquals(new InsertedObject("value2"), results.get(0).get(0));
+ public void testQueryWithParams() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_QueryWithParams.drl" ) ) );
- results = workingMemory.getQueryResults("assertedobjquery2",
- new String[] { "value3", "value2" });
- assertEquals(1, results.size());
- assertEquals(new InsertedObject("value2"), results.get(0).get(0));
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- public void testTwoQuerries() throws Exception {
- // @see JBRULES-410 More than one Query definition causes an incorrect
- // Rete network to be built.
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_TwoQuerries.drl")));
- final Package pkg = builder.getPackage();
+ QueryResults results = workingMemory.getQueryResults( "assertedobjquery",
+ new String[]{"value1"} );
+ assertEquals( 1,
+ results.size() );
+ assertEquals( new InsertedObject( "value1" ),
+ results.get( 0 ).get( 0 ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ results = workingMemory.getQueryResults( "assertedobjquery",
+ new String[]{"value3"} );
+ assertEquals( 0,
+ results.size() );
- final Cheese stilton = new Cheese("stinky", 5);
- workingMemory.insert(stilton);
- final Person per1 = new Person("stinker", "smelly feet", 70);
- final Person per2 = new Person("skunky", "smelly armpits", 40);
+ results = workingMemory.getQueryResults( "assertedobjquery2",
+ new String[]{null, "value2"} );
+ assertEquals( 1,
+ results.size() );
+ assertEquals( new InsertedObject( "value2" ),
+ results.get( 0 ).get( 0 ) );
- workingMemory.insert(per1);
- workingMemory.insert(per2);
+ results = workingMemory.getQueryResults( "assertedobjquery2",
+ new String[]{"value3", "value2"} );
+ assertEquals( 1,
+ results.size() );
+ assertEquals( new InsertedObject( "value2" ),
+ results.get( 0 ).get( 0 ) );
+ }
- QueryResults results = workingMemory
- .getQueryResults("find stinky cheeses");
- assertEquals(1, results.size());
+ public void testTwoQuerries() throws Exception {
+ // @see JBRULES-410 More than one Query definition causes an incorrect
+ // Rete network to be built.
- results = workingMemory.getQueryResults("find pensioners");
- assertEquals(1, results.size());
- }
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_TwoQuerries.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testInsurancePricingExample() throws Exception {
- final Reader reader = new InputStreamReader(getClass()
- .getResourceAsStream("insurance_pricing_example.drl"));
- final RuleBase ruleBase = loadRuleBase(reader);
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- // now create some test data
- final Driver driver = new Driver();
- final Policy policy = new Policy();
+ final Cheese stilton = new Cheese( "stinky",
+ 5 );
+ workingMemory.insert( stilton );
+ final Person per1 = new Person( "stinker",
+ "smelly feet",
+ 70 );
+ final Person per2 = new Person( "skunky",
+ "smelly armpits",
+ 40 );
- wm.insert(driver);
- wm.insert(policy);
+ workingMemory.insert( per1 );
+ workingMemory.insert( per2 );
- wm.fireAllRules();
+ QueryResults results = workingMemory.getQueryResults( "find stinky cheeses" );
+ assertEquals( 1,
+ results.size() );
- assertEquals(120, policy.getBasePrice());
- }
+ results = workingMemory.getQueryResults( "find pensioners" );
+ assertEquals( 1,
+ results.size() );
+ }
- public void testLLR() throws Exception {
+ public void testInsurancePricingExample() throws Exception {
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "insurance_pricing_example.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
- // read in the source
- final Reader reader = new InputStreamReader(getClass()
- .getResourceAsStream("test_JoinNodeModifyTuple.drl"));
- final RuleBase ruleBase = loadRuleBase(reader);
+ // now create some test data
+ final Driver driver = new Driver();
+ final Policy policy = new Policy();
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ wm.insert( driver );
+ wm.insert( policy );
- // 1st time
- org.drools.Target tgt = new org.drools.Target();
- tgt.setLabel("Santa-Anna");
- tgt.setLat(new Float(60.26544f));
- tgt.setLon(new Float(28.952137f));
- tgt.setCourse(new Float(145.0f));
- tgt.setSpeed(new Float(12.0f));
- tgt.setTime(new Float(1.8666667f));
- wm.insert(tgt);
+ wm.fireAllRules();
- tgt = new org.drools.Target();
- tgt.setLabel("Santa-Maria");
- tgt.setLat(new Float(60.236874f));
- tgt.setLon(new Float(28.992579f));
- tgt.setCourse(new Float(325.0f));
- tgt.setSpeed(new Float(8.0f));
- tgt.setTime(new Float(1.8666667f));
- wm.insert(tgt);
+ assertEquals( 120,
+ policy.getBasePrice() );
+ }
- wm.fireAllRules();
+ public void testLLR() throws Exception {
- // 2nd time
- tgt = new org.drools.Target();
- tgt.setLabel("Santa-Anna");
- tgt.setLat(new Float(60.265343f));
- tgt.setLon(new Float(28.952267f));
- tgt.setCourse(new Float(145.0f));
- tgt.setSpeed(new Float(12.0f));
- tgt.setTime(new Float(1.9f));
- wm.insert(tgt);
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_JoinNodeModifyTuple.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
- tgt = new org.drools.Target();
- tgt.setLabel("Santa-Maria");
- tgt.setLat(new Float(60.236935f));
- tgt.setLon(new Float(28.992493f));
- tgt.setCourse(new Float(325.0f));
- tgt.setSpeed(new Float(8.0f));
- tgt.setTime(new Float(1.9f));
- wm.insert(tgt);
+ final WorkingMemory wm = ruleBase.newStatefulSession();
- wm.fireAllRules();
+ // 1st time
+ org.drools.Target tgt = new org.drools.Target();
+ tgt.setLabel( "Santa-Anna" );
+ tgt.setLat( new Float( 60.26544f ) );
+ tgt.setLon( new Float( 28.952137f ) );
+ tgt.setCourse( new Float( 145.0f ) );
+ tgt.setSpeed( new Float( 12.0f ) );
+ tgt.setTime( new Float( 1.8666667f ) );
+ wm.insert( tgt );
- // 3d time
- tgt = new org.drools.Target();
- tgt.setLabel("Santa-Anna");
- tgt.setLat(new Float(60.26525f));
- tgt.setLon(new Float(28.952396f));
- tgt.setCourse(new Float(145.0f));
- tgt.setSpeed(new Float(12.0f));
- tgt.setTime(new Float(1.9333333f));
- wm.insert(tgt);
+ tgt = new org.drools.Target();
+ tgt.setLabel( "Santa-Maria" );
+ tgt.setLat( new Float( 60.236874f ) );
+ tgt.setLon( new Float( 28.992579f ) );
+ tgt.setCourse( new Float( 325.0f ) );
+ tgt.setSpeed( new Float( 8.0f ) );
+ tgt.setTime( new Float( 1.8666667f ) );
+ wm.insert( tgt );
- tgt = new org.drools.Target();
- tgt.setLabel("Santa-Maria");
- tgt.setLat(new Float(60.236996f));
- tgt.setLon(new Float(28.992405f));
- tgt.setCourse(new Float(325.0f));
- tgt.setSpeed(new Float(8.0f));
- tgt.setTime(new Float(1.9333333f));
- wm.insert(tgt);
+ wm.fireAllRules();
- wm.fireAllRules();
+ // 2nd time
+ tgt = new org.drools.Target();
+ tgt.setLabel( "Santa-Anna" );
+ tgt.setLat( new Float( 60.265343f ) );
+ tgt.setLon( new Float( 28.952267f ) );
+ tgt.setCourse( new Float( 145.0f ) );
+ tgt.setSpeed( new Float( 12.0f ) );
+ tgt.setTime( new Float( 1.9f ) );
+ wm.insert( tgt );
- // 4th time
- tgt = new org.drools.Target();
- tgt.setLabel("Santa-Anna");
- tgt.setLat(new Float(60.265163f));
- tgt.setLon(new Float(28.952526f));
- tgt.setCourse(new Float(145.0f));
- tgt.setSpeed(new Float(12.0f));
- tgt.setTime(new Float(1.9666667f));
- wm.insert(tgt);
+ tgt = new org.drools.Target();
+ tgt.setLabel( "Santa-Maria" );
+ tgt.setLat( new Float( 60.236935f ) );
+ tgt.setLon( new Float( 28.992493f ) );
+ tgt.setCourse( new Float( 325.0f ) );
+ tgt.setSpeed( new Float( 8.0f ) );
+ tgt.setTime( new Float( 1.9f ) );
+ wm.insert( tgt );
- tgt = new org.drools.Target();
- tgt.setLabel("Santa-Maria");
- tgt.setLat(new Float(60.237057f));
- tgt.setLon(new Float(28.99232f));
- tgt.setCourse(new Float(325.0f));
- tgt.setSpeed(new Float(8.0f));
- tgt.setTime(new Float(1.9666667f));
- wm.insert(tgt);
+ wm.fireAllRules();
- wm.fireAllRules();
- }
+ // 3d time
+ tgt = new org.drools.Target();
+ tgt.setLabel( "Santa-Anna" );
+ tgt.setLat( new Float( 60.26525f ) );
+ tgt.setLon( new Float( 28.952396f ) );
+ tgt.setCourse( new Float( 145.0f ) );
+ tgt.setSpeed( new Float( 12.0f ) );
+ tgt.setTime( new Float( 1.9333333f ) );
+ wm.insert( tgt );
- public void testDoubleQueryWithExists() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_DoubleQueryWithExists.drl")));
- final Package pkg = builder.getPackage();
+ tgt = new org.drools.Target();
+ tgt.setLabel( "Santa-Maria" );
+ tgt.setLat( new Float( 60.236996f ) );
+ tgt.setLon( new Float( 28.992405f ) );
+ tgt.setCourse( new Float( 325.0f ) );
+ tgt.setSpeed( new Float( 8.0f ) );
+ tgt.setTime( new Float( 1.9333333f ) );
+ wm.insert( tgt );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ wm.fireAllRules();
- final Person p1 = new Person("p1", "stilton", 20);
- p1.setStatus("europe");
- final FactHandle c1FactHandle = workingMemory.insert(p1);
- final Person p2 = new Person("p2", "stilton", 30);
- p2.setStatus("europe");
- final FactHandle c2FactHandle = workingMemory.insert(p2);
- final Person p3 = new Person("p3", "stilton", 40);
- p3.setStatus("europe");
- final FactHandle c3FactHandle = workingMemory.insert(p3);
- workingMemory.fireAllRules();
+ // 4th time
+ tgt = new org.drools.Target();
+ tgt.setLabel( "Santa-Anna" );
+ tgt.setLat( new Float( 60.265163f ) );
+ tgt.setLon( new Float( 28.952526f ) );
+ tgt.setCourse( new Float( 145.0f ) );
+ tgt.setSpeed( new Float( 12.0f ) );
+ tgt.setTime( new Float( 1.9666667f ) );
+ wm.insert( tgt );
- QueryResults queryResults = workingMemory
- .getQueryResults("2 persons with the same status");
- assertEquals(2, queryResults.size());
+ tgt = new org.drools.Target();
+ tgt.setLabel( "Santa-Maria" );
+ tgt.setLat( new Float( 60.237057f ) );
+ tgt.setLon( new Float( 28.99232f ) );
+ tgt.setCourse( new Float( 325.0f ) );
+ tgt.setSpeed( new Float( 8.0f ) );
+ tgt.setTime( new Float( 1.9666667f ) );
+ wm.insert( tgt );
- // europe=[ 1, 2 ], america=[ 3 ]
- p3.setStatus("america");
- workingMemory.update(c3FactHandle, p3);
- workingMemory.fireAllRules();
- queryResults = workingMemory
- .getQueryResults("2 persons with the same status");
- assertEquals(1, queryResults.size());
+ wm.fireAllRules();
+ }
- // europe=[ 1 ], america=[ 2, 3 ]
- p2.setStatus("america");
- workingMemory.update(c2FactHandle, p2);
- workingMemory.fireAllRules();
- queryResults = workingMemory
- .getQueryResults("2 persons with the same status");
- assertEquals(1, queryResults.size());
+ public void testDoubleQueryWithExists() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DoubleQueryWithExists.drl" ) ) );
+ final Package pkg = builder.getPackage();
- // europe=[ ], america=[ 1, 2, 3 ]
- p1.setStatus("america");
- workingMemory.update(c1FactHandle, p1);
- workingMemory.fireAllRules();
- queryResults = workingMemory
- .getQueryResults("2 persons with the same status");
- assertEquals(2, queryResults.size());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- // europe=[ 2 ], america=[ 1, 3 ]
- p2.setStatus("europe");
- workingMemory.update(c2FactHandle, p2);
- workingMemory.fireAllRules();
- queryResults = workingMemory
- .getQueryResults("2 persons with the same status");
- assertEquals(1, queryResults.size());
+ final Person p1 = new Person( "p1",
+ "stilton",
+ 20 );
+ p1.setStatus( "europe" );
+ final FactHandle c1FactHandle = workingMemory.insert( p1 );
+ final Person p2 = new Person( "p2",
+ "stilton",
+ 30 );
+ p2.setStatus( "europe" );
+ final FactHandle c2FactHandle = workingMemory.insert( p2 );
+ final Person p3 = new Person( "p3",
+ "stilton",
+ 40 );
+ p3.setStatus( "europe" );
+ final FactHandle c3FactHandle = workingMemory.insert( p3 );
+ workingMemory.fireAllRules();
- // europe=[ 1, 2 ], america=[ 3 ]
- p1.setStatus("europe");
- workingMemory.update(c1FactHandle, p1);
- workingMemory.fireAllRules();
- queryResults = workingMemory
- .getQueryResults("2 persons with the same status");
- assertEquals(1, queryResults.size());
+ QueryResults queryResults = workingMemory.getQueryResults( "2 persons with the same status" );
+ assertEquals( 2,
+ queryResults.size() );
- // europe=[ 1, 2, 3 ], america=[ ]
- p3.setStatus("europe");
- workingMemory.update(c3FactHandle, p3);
- workingMemory.fireAllRules();
- queryResults = workingMemory
- .getQueryResults("2 persons with the same status");
- assertEquals(2, queryResults.size());
- }
+ // europe=[ 1, 2 ], america=[ 3 ]
+ p3.setStatus( "america" );
+ workingMemory.update( c3FactHandle,
+ p3 );
+ workingMemory.fireAllRules();
+ queryResults = workingMemory.getQueryResults( "2 persons with the same status" );
+ assertEquals( 1,
+ queryResults.size() );
- public void testFunctionWithPrimitives() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FunctionWithPrimitives.drl")));
- final Package pkg = builder.getPackage();
+ // europe=[ 1 ], america=[ 2, 3 ]
+ p2.setStatus( "america" );
+ workingMemory.update( c2FactHandle,
+ p2 );
+ workingMemory.fireAllRules();
+ queryResults = workingMemory.getQueryResults( "2 persons with the same status" );
+ assertEquals( 1,
+ queryResults.size() );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ // europe=[ ], america=[ 1, 2, 3 ]
+ p1.setStatus( "america" );
+ workingMemory.update( c1FactHandle,
+ p1 );
+ workingMemory.fireAllRules();
+ queryResults = workingMemory.getQueryResults( "2 persons with the same status" );
+ assertEquals( 2,
+ queryResults.size() );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ // europe=[ 2 ], america=[ 1, 3 ]
+ p2.setStatus( "europe" );
+ workingMemory.update( c2FactHandle,
+ p2 );
+ workingMemory.fireAllRules();
+ queryResults = workingMemory.getQueryResults( "2 persons with the same status" );
+ assertEquals( 1,
+ queryResults.size() );
- final Cheese stilton = new Cheese("stilton", 5);
- workingMemory.insert(stilton);
+ // europe=[ 1, 2 ], america=[ 3 ]
+ p1.setStatus( "europe" );
+ workingMemory.update( c1FactHandle,
+ p1 );
+ workingMemory.fireAllRules();
+ queryResults = workingMemory.getQueryResults( "2 persons with the same status" );
+ assertEquals( 1,
+ queryResults.size() );
- workingMemory.fireAllRules();
+ // europe=[ 1, 2, 3 ], america=[ ]
+ p3.setStatus( "europe" );
+ workingMemory.update( c3FactHandle,
+ p3 );
+ workingMemory.fireAllRules();
+ queryResults = workingMemory.getQueryResults( "2 persons with the same status" );
+ assertEquals( 2,
+ queryResults.size() );
+ }
- assertEquals(new Integer(10), list.get(0));
- }
+ public void testFunctionWithPrimitives() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FunctionWithPrimitives.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testReturnValueAndGlobal() throws Exception {
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ReturnValueAndGlobal.drl")));
- final Package pkg = builder.getPackage();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Cheese stilton = new Cheese( "stilton",
+ 5 );
+ workingMemory.insert( stilton );
- final List matchlist = new ArrayList();
- workingMemory.setGlobal("matchingList", matchlist);
+ workingMemory.fireAllRules();
- final List nonmatchlist = new ArrayList();
- workingMemory.setGlobal("nonMatchingList", nonmatchlist);
+ assertEquals( new Integer( 10 ),
+ list.get( 0 ) );
+ }
- workingMemory.setGlobal("cheeseType", "stilton");
+ public void testReturnValueAndGlobal() throws Exception {
- final Cheese stilton1 = new Cheese("stilton", 5);
- final Cheese stilton2 = new Cheese("stilton", 7);
- final Cheese brie = new Cheese("brie", 4);
- workingMemory.insert(stilton1);
- workingMemory.insert(stilton2);
- workingMemory.insert(brie);
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ReturnValueAndGlobal.drl" ) ) );
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(2, matchlist.size());
- assertEquals(1, nonmatchlist.size());
- }
+ final List matchlist = new ArrayList();
+ workingMemory.setGlobal( "matchingList",
+ matchlist );
- public void testDeclaringAndUsingBindsInSamePattern() throws Exception {
- final RuleBaseConfiguration config = new RuleBaseConfiguration();
- config.setRemoveIdentities(true);
+ final List nonmatchlist = new ArrayList();
+ workingMemory.setGlobal( "nonMatchingList",
+ nonmatchlist );
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream(
- "test_DeclaringAndUsingBindsInSamePattern.drl")));
- final Package pkg = builder.getPackage();
+ workingMemory.setGlobal( "cheeseType",
+ "stilton" );
- final RuleBase ruleBase = getRuleBase(config);
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Cheese stilton1 = new Cheese( "stilton",
+ 5 );
+ final Cheese stilton2 = new Cheese( "stilton",
+ 7 );
+ final Cheese brie = new Cheese( "brie",
+ 4 );
+ workingMemory.insert( stilton1 );
+ workingMemory.insert( stilton2 );
+ workingMemory.insert( brie );
- final List sensors = new ArrayList();
+ workingMemory.fireAllRules();
- workingMemory.setGlobal("sensors", sensors);
+ assertEquals( 2,
+ matchlist.size() );
+ assertEquals( 1,
+ nonmatchlist.size() );
+ }
- final Sensor sensor1 = new Sensor(100, 150);
- workingMemory.insert(sensor1);
- workingMemory.fireAllRules();
- assertEquals(0, sensors.size());
+ public void testDeclaringAndUsingBindsInSamePattern() throws Exception {
+ final RuleBaseConfiguration config = new RuleBaseConfiguration();
+ config.setRemoveIdentities( true );
- final Sensor sensor2 = new Sensor(200, 150);
- workingMemory.insert(sensor2);
- workingMemory.fireAllRules();
- assertEquals(3, sensors.size());
- }
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DeclaringAndUsingBindsInSamePattern.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testMissingImports() {
- try {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_missing_import.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase( config );
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ final List sensors = new ArrayList();
- Assert.fail("Should have thrown an InvalidRulePackage");
- } catch (final InvalidRulePackage e) {
- // everything fine
- } catch (final Exception e) {
- e.printStackTrace();
- Assert
- .fail("Should have thrown an InvalidRulePackage Exception instead of "
- + e.getMessage());
- }
- }
+ workingMemory.setGlobal( "sensors",
+ sensors );
- public void testNestedConditionalElements() throws Exception {
+ final Sensor sensor1 = new Sensor( 100,
+ 150 );
+ workingMemory.insert( sensor1 );
+ workingMemory.fireAllRules();
+ assertEquals( 0,
+ sensors.size() );
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NestedConditionalElements.drl")));
- final Package pkg = builder.getPackage();
+ final Sensor sensor2 = new Sensor( 200,
+ 150 );
+ workingMemory.insert( sensor2 );
+ workingMemory.fireAllRules();
+ assertEquals( 3,
+ sensors.size() );
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ public void testMissingImports() {
+ try {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_missing_import.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- final State state = new State("SP");
- workingMemory.insert(state);
+ Assert.fail( "Should have thrown an InvalidRulePackage" );
+ } catch ( final InvalidRulePackage e ) {
+ // everything fine
+ } catch ( final Exception e ) {
+ e.printStackTrace();
+ Assert.fail( "Should have thrown an InvalidRulePackage Exception instead of " + e.getMessage() );
+ }
+ }
- final Person bob = new Person("Bob");
- bob.setStatus(state.getState());
- bob.setLikes("stilton");
- workingMemory.insert(bob);
+ public void testNestedConditionalElements() throws Exception {
- workingMemory.fireAllRules();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NestedConditionalElements.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals(0, list.size());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.insert(new Cheese(bob.getLikes(), 10));
- workingMemory.fireAllRules();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- assertEquals(1, list.size());
- }
+ final State state = new State( "SP" );
+ workingMemory.insert( state );
- public void testDeclarationUsage() throws Exception {
+ final Person bob = new Person( "Bob" );
+ bob.setStatus( state.getState() );
+ bob.setLikes( "stilton" );
+ workingMemory.insert( bob );
- try {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_DeclarationUsage.drl")));
- final Package pkg = builder.getPackage();
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ assertEquals( 0,
+ list.size() );
- fail("Should have trown an exception");
- } catch (final InvalidRulePackage e) {
- // success ... correct exception thrown
- } catch (final Exception e) {
- e.printStackTrace();
- fail("Wrong exception raised: " + e.getMessage());
- }
- }
+ workingMemory.insert( new Cheese( bob.getLikes(),
+ 10 ) );
+ workingMemory.fireAllRules();
- public void testUnbalancedTrees() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_UnbalancedTrees.drl")));
- final Package pkg = builder.getPackage();
+ assertEquals( 1,
+ list.size() );
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ public void testDeclarationUsage() throws Exception {
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ try {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DeclarationUsage.drl" ) ) );
+ final Package pkg = builder.getPackage();
- wm.insert(new Cheese("a", 10));
- wm.insert(new Cheese("b", 10));
- wm.insert(new Cheese("c", 10));
- wm.insert(new Cheese("d", 10));
- final Cheese e = new Cheese("e", 10);
- wm.insert(e);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- wm.fireAllRules();
+ fail( "Should have trown an exception" );
+ } catch ( final InvalidRulePackage e ) {
+ // success ... correct exception thrown
+ } catch ( final Exception e ) {
+ e.printStackTrace();
+ fail( "Wrong exception raised: " + e.getMessage() );
+ }
+ }
- Assert.assertEquals(
- "Rule should have fired twice, seting the price to 30", 30, e
- .getPrice());
- // success
- }
+ public void testUnbalancedTrees() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_UnbalancedTrees.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testImportConflict() throws Exception {
- final RuleBase ruleBase = getRuleBase();
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ImportConflict.drl")));
- final Package pkg = builder.getPackage();
- ruleBase.addPackage(pkg);
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- public void testPrimitiveArray() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_primitiveArray.drl")));
- final Package pkg = builder.getPackage();
+ final WorkingMemory wm = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List result = new ArrayList();
- workingMemory.setGlobal("result", result);
+ wm.insert( new Cheese( "a",
+ 10 ) );
+ wm.insert( new Cheese( "b",
+ 10 ) );
+ wm.insert( new Cheese( "c",
+ 10 ) );
+ wm.insert( new Cheese( "d",
+ 10 ) );
+ final Cheese e = new Cheese( "e",
+ 10 );
+ wm.insert( e );
- final Primitives p1 = new Primitives();
- p1.setPrimitiveArrayAttribute(new int[] { 1, 2, 3 });
- p1.setArrayAttribute(new String[] { "a", "b" });
+ wm.fireAllRules();
- workingMemory.insert(p1);
+ Assert.assertEquals( "Rule should have fired twice, seting the price to 30",
+ 30,
+ e.getPrice() );
+ // success
+ }
- workingMemory.fireAllRules();
- assertEquals(3, result.size());
- assertEquals(3, ((Integer) result.get(0)).intValue());
- assertEquals(2, ((Integer) result.get(1)).intValue());
- assertEquals(3, ((Integer) result.get(2)).intValue());
+ public void testImportConflict() throws Exception {
+ final RuleBase ruleBase = getRuleBase();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ImportConflict.drl" ) ) );
+ final Package pkg = builder.getPackage();
+ ruleBase.addPackage( pkg );
+ }
- }
+ public void testPrimitiveArray() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_primitiveArray.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testEmptyIdentifier() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_emptyIdentifier.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List result = new ArrayList();
+ workingMemory.setGlobal( "result",
+ result );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List result = new ArrayList();
- workingMemory.setGlobal("results", result);
+ final Primitives p1 = new Primitives();
+ p1.setPrimitiveArrayAttribute( new int[]{1, 2, 3} );
+ p1.setArrayAttribute( new String[]{"a", "b"} );
- final Person person = new Person("bob");
- final Cheese cheese = new Cheese("brie", 10);
+ workingMemory.insert( p1 );
- workingMemory.insert(person);
- workingMemory.insert(cheese);
+ workingMemory.fireAllRules();
+ assertEquals( 3,
+ result.size() );
+ assertEquals( 3,
+ ((Integer) result.get( 0 )).intValue() );
+ assertEquals( 2,
+ ((Integer) result.get( 1 )).intValue() );
+ assertEquals( 3,
+ ((Integer) result.get( 2 )).intValue() );
- workingMemory.fireAllRules();
- assertEquals(4, result.size());
- }
+ }
- public void testDuplicateVariableBinding() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_duplicateVariableBinding.drl")));
- final Package pkg = builder.getPackage();
+ public void testEmptyIdentifier() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_emptyIdentifier.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Map result = new HashMap();
- workingMemory.setGlobal("results", result);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List result = new ArrayList();
+ workingMemory.setGlobal( "results",
+ result );
- final Cheese stilton = new Cheese("stilton", 20);
- final Cheese brie = new Cheese("brie", 10);
+ final Person person = new Person( "bob" );
+ final Cheese cheese = new Cheese( "brie",
+ 10 );
- workingMemory.insert(stilton);
- workingMemory.insert(brie);
+ workingMemory.insert( person );
+ workingMemory.insert( cheese );
- workingMemory.fireAllRules();
- assertEquals(5, result.size());
- assertEquals(stilton.getPrice(), ((Integer) result.get(stilton
- .getType())).intValue());
- assertEquals(brie.getPrice(), ((Integer) result.get(brie.getType()))
- .intValue());
+ workingMemory.fireAllRules();
+ assertEquals( 4,
+ result.size() );
+ }
- assertEquals(stilton.getPrice(), ((Integer) result.get(stilton))
- .intValue());
- assertEquals(brie.getPrice(), ((Integer) result.get(brie)).intValue());
+ public void testDuplicateVariableBinding() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_duplicateVariableBinding.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals(stilton.getPrice(), ((Integer) result.get("test3"
- + stilton.getType())).intValue());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Map result = new HashMap();
+ workingMemory.setGlobal( "results",
+ result );
- workingMemory.insert(new Person("bob", brie.getType()));
- workingMemory.fireAllRules();
+ final Cheese stilton = new Cheese( "stilton",
+ 20 );
+ final Cheese brie = new Cheese( "brie",
+ 10 );
- assertEquals(6, result.size());
- assertEquals(brie.getPrice(), ((Integer) result.get("test3"
- + brie.getType())).intValue());
- }
+ workingMemory.insert( stilton );
+ workingMemory.insert( brie );
- public void testDuplicateVariableBindingError() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder
- .addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream(
- "test_duplicateVariableBindingError.drl")));
- final Package pkg = builder.getPackage();
+ workingMemory.fireAllRules();
+ assertEquals( 5,
+ result.size() );
+ assertEquals( stilton.getPrice(),
+ ((Integer) result.get( stilton.getType() )).intValue() );
+ assertEquals( brie.getPrice(),
+ ((Integer) result.get( brie.getType() )).intValue() );
- assertFalse(pkg.isValid());
- System.out.println(pkg.getErrorSummary());
- assertEquals(6, pkg.getErrorSummary().split("\n").length);
- }
+ assertEquals( stilton.getPrice(),
+ ((Integer) result.get( stilton )).intValue() );
+ assertEquals( brie.getPrice(),
+ ((Integer) result.get( brie )).intValue() );
- public void testShadowProxyInHirarchies() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ShadowProxyInHirarchies.drl")));
- final Package pkg = builder.getPackage();
+ assertEquals( stilton.getPrice(),
+ ((Integer) result.get( "test3" + stilton.getType() )).intValue() );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.insert( new Person( "bob",
+ brie.getType() ) );
+ workingMemory.fireAllRules();
- workingMemory.insert(new Child("gp"));
+ assertEquals( 6,
+ result.size() );
+ assertEquals( brie.getPrice(),
+ ((Integer) result.get( "test3" + brie.getType() )).intValue() );
+ }
- workingMemory.fireAllRules();
- }
+ public void testDuplicateVariableBindingError() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_duplicateVariableBindingError.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testSelfReference() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_SelfReference.drl")));
- final Package pkg = builder.getPackage();
+ assertFalse( pkg.isValid() );
+ System.out.println( pkg.getErrorSummary() );
+ assertEquals( 6,
+ pkg.getErrorSummary().split( "\n" ).length );
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ public void testShadowProxyInHirarchies() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ShadowProxyInHirarchies.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Order order = new Order(10, "Bob");
- final OrderItem item1 = new OrderItem(order, 1);
- final OrderItem item2 = new OrderItem(order, 2);
- final OrderItem anotherItem1 = new OrderItem(null, 3);
- final OrderItem anotherItem2 = new OrderItem(null, 4);
- workingMemory.insert(order);
- workingMemory.insert(item1);
- workingMemory.insert(item2);
- workingMemory.insert(anotherItem1);
- workingMemory.insert(anotherItem2);
+ workingMemory.insert( new Child( "gp" ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
+ }
- assertEquals(2, results.size());
- assertTrue(results.contains(item1));
- assertTrue(results.contains(item2));
- }
+ public void testSelfReference() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_SelfReference.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testNumberComparisons() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NumberComparisons.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final Order order = new Order( 10,
+ "Bob" );
+ final OrderItem item1 = new OrderItem( order,
+ 1 );
+ final OrderItem item2 = new OrderItem( order,
+ 2 );
+ final OrderItem anotherItem1 = new OrderItem( null,
+ 3 );
+ final OrderItem anotherItem2 = new OrderItem( null,
+ 4 );
+ workingMemory.insert( order );
+ workingMemory.insert( item1 );
+ workingMemory.insert( item2 );
+ workingMemory.insert( anotherItem1 );
+ workingMemory.insert( anotherItem2 );
- // asserting the sensor object
- final RandomNumber rn = new RandomNumber();
- rn.setValue(10);
- workingMemory.insert(rn);
+ workingMemory.fireAllRules();
- final Guess guess = new Guess();
- guess.setValue(new Integer(5));
+ assertEquals( 2,
+ results.size() );
+ assertTrue( results.contains( item1 ) );
+ assertTrue( results.contains( item2 ) );
+ }
- final FactHandle handle = workingMemory.insert(guess);
+ public void testNumberComparisons() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NumberComparisons.drl" ) ) );
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- // HIGHER
- assertEquals(1, list.size());
- assertEquals("HIGHER", list.get(0));
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- guess.setValue(new Integer(15));
- workingMemory.update(handle, guess);
+ // asserting the sensor object
+ final RandomNumber rn = new RandomNumber();
+ rn.setValue( 10 );
+ workingMemory.insert( rn );
- workingMemory.fireAllRules();
+ final Guess guess = new Guess();
+ guess.setValue( new Integer( 5 ) );
- // LOWER
- assertEquals(2, list.size());
- assertEquals("LOWER", list.get(1));
+ final FactHandle handle = workingMemory.insert( guess );
- guess.setValue(new Integer(10));
- workingMemory.update(handle, guess);
+ workingMemory.fireAllRules();
- workingMemory.fireAllRules();
+ // HIGHER
+ assertEquals( 1,
+ list.size() );
+ assertEquals( "HIGHER",
+ list.get( 0 ) );
- // CORRECT
- assertEquals(3, list.size());
- assertEquals("CORRECT", list.get(2));
+ guess.setValue( new Integer( 15 ) );
+ workingMemory.update( handle,
+ guess );
- }
+ workingMemory.fireAllRules();
- public void testSkipModify() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_skipModify.drl")));
- final Package pkg = builder.getPackage();
+ // LOWER
+ assertEquals( 2,
+ list.size() );
+ assertEquals( "LOWER",
+ list.get( 1 ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ guess.setValue( new Integer( 10 ) );
+ workingMemory.update( handle,
+ guess );
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ workingMemory.fireAllRules();
- final Cheese cheese = new Cheese("brie", 10);
- final FactHandle handle = workingMemory.insert(cheese);
+ // CORRECT
+ assertEquals( 3,
+ list.size() );
+ assertEquals( "CORRECT",
+ list.get( 2 ) );
- final Person bob = new Person("bob", "stilton");
- workingMemory.insert(bob);
+ }
- cheese.setType("stilton");
- workingMemory.update(handle, cheese);
- workingMemory.fireAllRules();
- assertEquals(2, results.size());
- }
+ public void testSkipModify() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_skipModify.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void testEventModel() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_EventModel.drl")));
- final Package pkg = builder.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- final List agendaList = new ArrayList();
- final AgendaEventListener agendaEventListener = new AgendaEventListener() {
+ final Cheese cheese = new Cheese( "brie",
+ 10 );
+ final FactHandle handle = workingMemory.insert( cheese );
- public void activationCancelled(ActivationCancelledEvent event,
- WorkingMemory workingMemory) {
- agendaList.add(event);
+ final Person bob = new Person( "bob",
+ "stilton" );
+ workingMemory.insert( bob );
- }
+ cheese.setType( "stilton" );
+ workingMemory.update( handle,
+ cheese );
+ workingMemory.fireAllRules();
+ assertEquals( 2,
+ results.size() );
+ }
- public void activationCreated(ActivationCreatedEvent event,
- WorkingMemory workingMemory) {
- agendaList.add(event);
- }
+ public void testEventModel() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EventModel.drl" ) ) );
+ final Package pkg = builder.getPackage();
- public void afterActivationFired(AfterActivationFiredEvent event,
- WorkingMemory workingMemory) {
- agendaList.add(event);
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
- public void agendaGroupPopped(AgendaGroupPoppedEvent event,
- WorkingMemory workingMemory) {
- agendaList.add(event);
- }
+ final List agendaList = new ArrayList();
+ final AgendaEventListener agendaEventListener = new AgendaEventListener() {
- public void agendaGroupPushed(AgendaGroupPushedEvent event,
- WorkingMemory workingMemory) {
- agendaList.add(event);
- }
+ public void activationCancelled(ActivationCancelledEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add( event );
- public void beforeActivationFired(BeforeActivationFiredEvent event,
- WorkingMemory workingMemory) {
- agendaList.add(event);
- }
+ }
- };
+ public void activationCreated(ActivationCreatedEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add( event );
+ }
- final List wmList = new ArrayList();
- final WorkingMemoryEventListener workingMemoryListener = new WorkingMemoryEventListener() {
+ public void afterActivationFired(AfterActivationFiredEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add( event );
+ }
- public void objectInserted(ObjectInsertedEvent event) {
- wmList.add(event);
- }
+ public void agendaGroupPopped(AgendaGroupPoppedEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add( event );
+ }
- public void objectUpdated(ObjectUpdatedEvent event) {
- wmList.add(event);
- }
+ public void agendaGroupPushed(AgendaGroupPushedEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add( event );
+ }
- public void objectRetracted(ObjectRetractedEvent event) {
- wmList.add(event);
- }
+ public void beforeActivationFired(BeforeActivationFiredEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add( event );
+ }
- };
+ };
- wm.addEventListener(workingMemoryListener);
+ final List wmList = new ArrayList();
+ final WorkingMemoryEventListener workingMemoryListener = new WorkingMemoryEventListener() {
- final Cheese stilton = new Cheese("stilton", 15);
- final Cheese cheddar = new Cheese("cheddar", 17);
+ public void objectInserted(ObjectInsertedEvent event) {
+ wmList.add( event );
+ }
- final FactHandle stiltonHandle = wm.insert(stilton);
+ public void objectUpdated(ObjectUpdatedEvent event) {
+ wmList.add( event );
+ }
- final ObjectInsertedEvent oae = (ObjectInsertedEvent) wmList.get(0);
- assertSame(stiltonHandle, oae.getFactHandle());
+ public void objectRetracted(ObjectRetractedEvent event) {
+ wmList.add( event );
+ }
- wm.update(stiltonHandle, stilton);
- final ObjectUpdatedEvent ome = (ObjectUpdatedEvent) wmList.get(1);
- assertSame(stiltonHandle, ome.getFactHandle());
+ };
- wm.retract(stiltonHandle);
- final ObjectRetractedEvent ore = (ObjectRetractedEvent) wmList.get(2);
- assertSame(stiltonHandle, ore.getFactHandle());
+ wm.addEventListener( workingMemoryListener );
- wm.insert(cheddar);
- }
+ final Cheese stilton = new Cheese( "stilton",
+ 15 );
+ final Cheese cheddar = new Cheese( "cheddar",
+ 17 );
- public void testImplicitDeclarations() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_implicitDeclarations.drl")));
- final Package pkg = builder.getPackage();
+ final FactHandle stiltonHandle = wm.insert( stilton );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final ObjectInsertedEvent oae = (ObjectInsertedEvent) wmList.get( 0 );
+ assertSame( stiltonHandle,
+ oae.getFactHandle() );
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
- workingMemory.setGlobal("factor", new Double(1.2));
+ wm.update( stiltonHandle,
+ stilton );
+ final ObjectUpdatedEvent ome = (ObjectUpdatedEvent) wmList.get( 1 );
+ assertSame( stiltonHandle,
+ ome.getFactHandle() );
- final Cheese cheese = new Cheese("stilton", 10);
- workingMemory.insert(cheese);
+ wm.retract( stiltonHandle );
+ final ObjectRetractedEvent ore = (ObjectRetractedEvent) wmList.get( 2 );
+ assertSame( stiltonHandle,
+ ore.getFactHandle() );
- workingMemory.fireAllRules();
- assertEquals(1, results.size());
- }
+ wm.insert( cheddar );
+ }
- public void testCastingInsideEvals() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_castsInsideEval.drl")));
- final Package pkg = builder.getPackage();
+ public void testImplicitDeclarations() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_implicitDeclarations.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.setGlobal("value", new Integer(20));
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
+ workingMemory.setGlobal( "factor",
+ new Double( 1.2 ) );
- workingMemory.fireAllRules();
- }
+ final Cheese cheese = new Cheese( "stilton",
+ 10 );
+ workingMemory.insert( cheese );
- public void testMemberOfAndNotMemberOf() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_memberOf.drl")));
- final Package pkg = builder.getPackage();
+ workingMemory.fireAllRules();
+ assertEquals( 1,
+ results.size() );
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ public void testCastingInsideEvals() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_castsInsideEval.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Cheese stilton = new Cheese("stilton", 12);
- final Cheese muzzarela = new Cheese("muzzarela", 10);
- final Cheese brie = new Cheese("brie", 15);
- workingMemory.insert(stilton);
- workingMemory.insert(muzzarela);
+ workingMemory.setGlobal( "value",
+ new Integer( 20 ) );
- final Cheesery cheesery = new Cheesery();
- cheesery.getCheeses().add(stilton.getType());
- cheesery.getCheeses().add(brie.getType());
- workingMemory.insert(cheesery);
+ workingMemory.fireAllRules();
+ }
- workingMemory.fireAllRules();
+ public void testMemberOfAndNotMemberOf() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_memberOf.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals(2, list.size());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(stilton, list.get(0));
- assertEquals(muzzarela, list.get(1));
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- public void testContainsInArray() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_contains_in_array.drl")));
- final Package pkg = builder.getPackage();
+ final Cheese stilton = new Cheese( "stilton",
+ 12 );
+ final Cheese muzzarela = new Cheese( "muzzarela",
+ 10 );
+ final Cheese brie = new Cheese( "brie",
+ 15 );
+ workingMemory.insert( stilton );
+ workingMemory.insert( muzzarela );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Cheesery cheesery = new Cheesery();
+ cheesery.getCheeses().add( stilton.getType() );
+ cheesery.getCheeses().add( brie.getType() );
+ workingMemory.insert( cheesery );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ workingMemory.fireAllRules();
- final Primitives p = new Primitives();
- p.setStringArray(new String[] { "test1", "test3" });
- workingMemory.insert(p);
+ assertEquals( 2,
+ list.size() );
- workingMemory.fireAllRules();
+ assertEquals( stilton,
+ list.get( 0 ) );
+ assertEquals( muzzarela,
+ list.get( 1 ) );
+ }
- assertEquals(2, list.size());
+ public void testContainsInArray() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_contains_in_array.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals("ok1", list.get(0));
- assertEquals("ok2", list.get(1));
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- public void testCollectNodeSharing() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_collectNodeSharing.drl")));
- final Package pkg = builder.getPackage();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Primitives p = new Primitives();
+ p.setStringArray( new String[]{"test1", "test3"} );
+ workingMemory.insert( p );
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ workingMemory.fireAllRules();
- workingMemory.insert(new Cheese("stilton", 10));
- workingMemory.insert(new Cheese("brie", 15));
+ assertEquals( 2,
+ list.size() );
- workingMemory.fireAllRules();
+ assertEquals( "ok1",
+ list.get( 0 ) );
+ assertEquals( "ok2",
+ list.get( 1 ) );
+ }
- assertEquals(1, list.size());
+ public void testCollectNodeSharing() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_collectNodeSharing.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals(2, ((List) list.get(0)).size());
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- public void testNodeSharingNotExists() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_nodeSharingNotExists.drl")));
- final Package pkg = builder.getPackage();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.insert( new Cheese( "stilton",
+ 10 ) );
+ workingMemory.insert( new Cheese( "brie",
+ 15 ) );
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ workingMemory.fireAllRules();
- workingMemory.fireAllRules();
+ assertEquals( 1,
+ list.size() );
- assertEquals(1, list.size());
+ assertEquals( 2,
+ ((List) list.get( 0 )).size() );
+ }
- assertEquals("rule1", list.get(0));
+ public void testNodeSharingNotExists() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_nodeSharingNotExists.drl" ) ) );
+ final Package pkg = builder.getPackage();
- workingMemory.insert(new Cheese("stilton", 10));
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals(2, list.size());
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- assertEquals("rule2", list.get(1));
+ workingMemory.fireAllRules();
- }
+ assertEquals( 1,
+ list.size() );
- public void testNullBinding() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_nullBindings.drl")));
- final Package pkg = builder.getPackage();
+ assertEquals( "rule1",
+ list.get( 0 ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.insert( new Cheese( "stilton",
+ 10 ) );
+ workingMemory.fireAllRules();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ assertEquals( 2,
+ list.size() );
- workingMemory.insert(new Person("bob"));
- workingMemory.insert(new Person(null));
+ assertEquals( "rule2",
+ list.get( 1 ) );
- workingMemory.fireAllRules();
+ }
- assertEquals(1, list.size());
+ public void testNullBinding() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_nullBindings.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals("OK", list.get(0));
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- public void testModifyRetractWithFunction() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RetractModifyWithFunction.drl")));
- final Package pkg = builder.getPackage();
+ workingMemory.insert( new Person( "bob" ) );
+ workingMemory.insert( new Person( null ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final AbstractWorkingMemory workingMemory = (AbstractWorkingMemory) ruleBase
- .newStatefulSession();
+ workingMemory.fireAllRules();
- final Cheese stilton = new Cheese("stilton", 7);
- final Cheese muzzarella = new Cheese("muzzarella", 9);
- final int sum = stilton.getPrice() + muzzarella.getPrice();
- final FactHandle stiltonHandle = workingMemory.insert(stilton);
- final FactHandle muzzarellaHandle = workingMemory.insert(muzzarella);
+ assertEquals( 1,
+ list.size() );
- workingMemory.fireAllRules();
+ assertEquals( "OK",
+ list.get( 0 ) );
- assertEquals(sum, stilton.getPrice());
- assertEquals(1, workingMemory.getFactHandleMap().size());
- assertNotNull(workingMemory.getObject(stiltonHandle));
- assertNotNull(workingMemory.getFactHandle(stilton));
+ }
- assertNull(workingMemory.getObject(muzzarellaHandle));
- assertNull(workingMemory.getFactHandle(muzzarella));
+ public void testModifyRetractWithFunction() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RetractModifyWithFunction.drl" ) ) );
+ final Package pkg = builder.getPackage();
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final AbstractWorkingMemory workingMemory = (AbstractWorkingMemory) ruleBase.newStatefulSession();
- public void testConstraintConnectors() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ConstraintConnectors.drl")));
- final Package pkg = builder.getPackage();
+ final Cheese stilton = new Cheese( "stilton",
+ 7 );
+ final Cheese muzzarella = new Cheese( "muzzarella",
+ 9 );
+ final int sum = stilton.getPrice() + muzzarella.getPrice();
+ final FactHandle stiltonHandle = workingMemory.insert( stilton );
+ final FactHandle muzzarellaHandle = workingMemory.insert( muzzarella );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ assertEquals( sum,
+ stilton.getPrice() );
+ assertEquals( 1,
+ workingMemory.getFactHandleMap().size() );
+ assertNotNull( workingMemory.getObject( stiltonHandle ) );
+ assertNotNull( workingMemory.getFactHandle( stilton ) );
- final Person youngChili1 = new Person("young chili1");
- youngChili1.setAge(12);
- youngChili1.setHair("blue");
- final Person youngChili2 = new Person("young chili2");
- youngChili2.setAge(25);
- youngChili2.setHair("purple");
+ assertNull( workingMemory.getObject( muzzarellaHandle ) );
+ assertNull( workingMemory.getFactHandle( muzzarella ) );
- final Person chili1 = new Person("chili1");
- chili1.setAge(35);
- chili1.setHair("red");
+ }
- final Person chili2 = new Person("chili2");
- chili2.setAge(38);
- chili2.setHair("indigigo");
+ public void testConstraintConnectors() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ConstraintConnectors.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final Person oldChili1 = new Person("old chili1");
- oldChili1.setAge(45);
- oldChili1.setHair("green");
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Person oldChili2 = new Person("old chili2");
- oldChili2.setAge(48);
- oldChili2.setHair("blue");
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- final Person veryold = new Person("very old");
- veryold.setAge(99);
- veryold.setHair("gray");
+ final Person youngChili1 = new Person( "young chili1" );
+ youngChili1.setAge( 12 );
+ youngChili1.setHair( "blue" );
+ final Person youngChili2 = new Person( "young chili2" );
+ youngChili2.setAge( 25 );
+ youngChili2.setHair( "purple" );
- workingMemory.insert(youngChili1);
- workingMemory.insert(youngChili2);
- workingMemory.insert(chili1);
- workingMemory.insert(chili2);
- workingMemory.insert(oldChili1);
- workingMemory.insert(oldChili2);
- workingMemory.insert(veryold);
+ final Person chili1 = new Person( "chili1" );
+ chili1.setAge( 35 );
+ chili1.setHair( "red" );
- workingMemory.fireAllRules();
+ final Person chili2 = new Person( "chili2" );
+ chili2.setAge( 38 );
+ chili2.setHair( "indigigo" );
- assertEquals(4, results.size());
- assertEquals(chili1, results.get(0));
- assertEquals(oldChili1, results.get(1));
- assertEquals(youngChili1, results.get(2));
- assertEquals(veryold, results.get(3));
- }
+ final Person oldChili1 = new Person( "old chili1" );
+ oldChili1.setAge( 45 );
+ oldChili1.setHair( "green" );
- public void testMatchesNotMatchesCheese() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_MatchesNotMatches.drl")));
- final Package pkg = builder.getPackage();
+ final Person oldChili2 = new Person( "old chili2" );
+ oldChili2.setAge( 48 );
+ oldChili2.setHair( "blue" );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final Person veryold = new Person( "very old" );
+ veryold.setAge( 99 );
+ veryold.setHair( "gray" );
- final List list = new ArrayList();
- workingMemory.setGlobal("list", list);
+ workingMemory.insert( youngChili1 );
+ workingMemory.insert( youngChili2 );
+ workingMemory.insert( chili1 );
+ workingMemory.insert( chili2 );
+ workingMemory.insert( oldChili1 );
+ workingMemory.insert( oldChili2 );
+ workingMemory.insert( veryold );
- final Cheese stilton = new Cheese("stilton", 12);
- final Cheese stilton2 = new Cheese("stilton2", 12);
- final Cheese agedStilton = new Cheese("aged stilton", 12);
- final Cheese brie = new Cheese("brie", 10);
- final Cheese brie2 = new Cheese("brie2", 10);
- final Cheese muzzarella = new Cheese("muzzarella", 10);
- final Cheese muzzarella2 = new Cheese("muzzarella2", 10);
- final Cheese provolone = new Cheese("provolone", 10);
- final Cheese provolone2 = new Cheese("another cheese (provolone)", 10);
- workingMemory.insert(stilton);
- workingMemory.insert(stilton2);
- workingMemory.insert(agedStilton);
- workingMemory.insert(brie);
- workingMemory.insert(brie2);
- workingMemory.insert(muzzarella);
- workingMemory.insert(muzzarella2);
- workingMemory.insert(provolone);
- workingMemory.insert(provolone2);
+ workingMemory.fireAllRules();
- workingMemory.fireAllRules();
+ assertEquals( 4,
+ results.size() );
+ assertEquals( chili1,
+ results.get( 0 ) );
+ assertEquals( oldChili1,
+ results.get( 1 ) );
+ assertEquals( youngChili1,
+ results.get( 2 ) );
+ assertEquals( veryold,
+ results.get( 3 ) );
+ }
- System.out.println(list.toString());
- assertEquals(4, list.size());
+ public void testMatchesNotMatchesCheese() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MatchesNotMatches.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertEquals(stilton, list.get(0));
- assertEquals(brie, list.get(1));
- assertEquals(agedStilton, list.get(2));
- assertEquals(provolone, list.get(3));
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "list",
+ list );
+
+ final Cheese stilton = new Cheese( "stilton",
+ 12 );
+ final Cheese stilton2 = new Cheese( "stilton2",
+ 12 );
+ final Cheese agedStilton = new Cheese( "aged stilton",
+ 12 );
+ final Cheese brie = new Cheese( "brie",
+ 10 );
+ final Cheese brie2 = new Cheese( "brie2",
+ 10 );
+ final Cheese muzzarella = new Cheese( "muzzarella",
+ 10 );
+ final Cheese muzzarella2 = new Cheese( "muzzarella2",
+ 10 );
+ final Cheese provolone = new Cheese( "provolone",
+ 10 );
+ final Cheese provolone2 = new Cheese( "another cheese (provolone)",
+ 10 );
+ workingMemory.insert( stilton );
+ workingMemory.insert( stilton2 );
+ workingMemory.insert( agedStilton );
+ workingMemory.insert( brie );
+ workingMemory.insert( brie2 );
+ workingMemory.insert( muzzarella );
+ workingMemory.insert( muzzarella2 );
+ workingMemory.insert( provolone );
+ workingMemory.insert( provolone2 );
+
+ workingMemory.fireAllRules();
+
+ System.out.println( list.toString() );
+ assertEquals( 4,
+ list.size() );
+
+ assertEquals( stilton,
+ list.get( 0 ) );
+ assertEquals( brie,
+ list.get( 1 ) );
+ assertEquals( agedStilton,
+ list.get( 2 ) );
+ assertEquals( provolone,
+ list.get( 3 ) );
+ }
+
public void testMatchesMVEL() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MatchesMVEL.drl" ) ) );
@@ -2923,10 +3222,11 @@
final List results = new ArrayList();
session.setGlobal( "results",
- results );
+ results );
Map map = new HashMap();
- map.put( "content", "hello ;=" );
+ map.put( "content",
+ "hello ;=" );
session.insert( map );
session.fireAllRules();
@@ -2935,432 +3235,478 @@
results.size() );
}
- public void testAutomaticBindings() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_AutoBindings.drl")));
- final Package pkg = builder.getPackage();
+ public void testAutomaticBindings() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AutoBindings.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final Person bob = new Person("bob", "stilton");
- final Cheese stilton = new Cheese("stilton", 12);
- workingMemory.insert(bob);
- workingMemory.insert(stilton);
+ final Person bob = new Person( "bob",
+ "stilton" );
+ final Cheese stilton = new Cheese( "stilton",
+ 12 );
+ workingMemory.insert( bob );
+ workingMemory.insert( stilton );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- assertEquals(bob, list.get(0));
- }
+ assertEquals( bob,
+ list.get( 0 ) );
+ }
- public void testAutomaticBindingsErrors() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_AutoBindingsErrors.drl")));
- final Package pkg = builder.getPackage();
+ public void testAutomaticBindingsErrors() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AutoBindingsErrors.drl" ) ) );
+ final Package pkg = builder.getPackage();
- assertNotNull(pkg.getErrorSummary());
- }
+ assertNotNull( pkg.getErrorSummary() );
+ }
- public void testQualifiedFieldReference() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_QualifiedFieldReference.drl")));
- final Package pkg = builder.getPackage();
+ public void testQualifiedFieldReference() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_QualifiedFieldReference.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final Person bob = new Person("bob", "stilton");
- final Cheese stilton = new Cheese("stilton", 12);
- workingMemory.insert(bob);
- workingMemory.insert(stilton);
+ final Person bob = new Person( "bob",
+ "stilton" );
+ final Cheese stilton = new Cheese( "stilton",
+ 12 );
+ workingMemory.insert( bob );
+ workingMemory.insert( stilton );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- assertEquals(bob, list.get(0));
- }
+ assertEquals( bob,
+ list.get( 0 ) );
+ }
- public void testEvalRewrite() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_EvalRewrite.drl")));
- final Package pkg = builder.getPackage();
+ public void testEvalRewrite() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EvalRewrite.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final Order order1 = new Order(10, "Bob");
- final OrderItem item11 = new OrderItem(order1, 1);
- final OrderItem item12 = new OrderItem(order1, 2);
- order1.addItem(item11);
- order1.addItem(item12);
- final Order order2 = new Order(11, "Bob");
- final OrderItem item21 = new OrderItem(order2, 1);
- final OrderItem item22 = new OrderItem(order2, 2);
- order2.addItem(item21);
- order2.addItem(item22);
- final Order order3 = new Order(12, "Bob");
- final OrderItem item31 = new OrderItem(order3, 1);
- final OrderItem item32 = new OrderItem(order3, 2);
- order3.addItem(item31);
- order3.addItem(item32);
- final Order order4 = new Order(13, "Bob");
- final OrderItem item41 = new OrderItem(order4, 1);
- final OrderItem item42 = new OrderItem(order4, 2);
- order4.addItem(item41);
- order4.addItem(item42);
- workingMemory.insert(order1);
- workingMemory.insert(item11);
- workingMemory.insert(item12);
- workingMemory.insert(order2);
- workingMemory.insert(item21);
- workingMemory.insert(item22);
- workingMemory.insert(order3);
- workingMemory.insert(item31);
- workingMemory.insert(item32);
- workingMemory.insert(order4);
- workingMemory.insert(item41);
- workingMemory.insert(item42);
+ final Order order1 = new Order( 10,
+ "Bob" );
+ final OrderItem item11 = new OrderItem( order1,
+ 1 );
+ final OrderItem item12 = new OrderItem( order1,
+ 2 );
+ order1.addItem( item11 );
+ order1.addItem( item12 );
+ final Order order2 = new Order( 11,
+ "Bob" );
+ final OrderItem item21 = new OrderItem( order2,
+ 1 );
+ final OrderItem item22 = new OrderItem( order2,
+ 2 );
+ order2.addItem( item21 );
+ order2.addItem( item22 );
+ final Order order3 = new Order( 12,
+ "Bob" );
+ final OrderItem item31 = new OrderItem( order3,
+ 1 );
+ final OrderItem item32 = new OrderItem( order3,
+ 2 );
+ order3.addItem( item31 );
+ order3.addItem( item32 );
+ final Order order4 = new Order( 13,
+ "Bob" );
+ final OrderItem item41 = new OrderItem( order4,
+ 1 );
+ final OrderItem item42 = new OrderItem( order4,
+ 2 );
+ order4.addItem( item41 );
+ order4.addItem( item42 );
+ workingMemory.insert( order1 );
+ workingMemory.insert( item11 );
+ workingMemory.insert( item12 );
+ workingMemory.insert( order2 );
+ workingMemory.insert( item21 );
+ workingMemory.insert( item22 );
+ workingMemory.insert( order3 );
+ workingMemory.insert( item31 );
+ workingMemory.insert( item32 );
+ workingMemory.insert( order4 );
+ workingMemory.insert( item41 );
+ workingMemory.insert( item42 );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(5, list.size());
- assertTrue(list.contains(item11));
- assertTrue(list.contains(item12));
- assertTrue(list.contains(item22));
- assertTrue(list.contains(order3));
- assertTrue(list.contains(order4));
+ assertEquals( 5,
+ list.size() );
+ assertTrue( list.contains( item11 ) );
+ assertTrue( list.contains( item12 ) );
+ assertTrue( list.contains( item22 ) );
+ assertTrue( list.contains( order3 ) );
+ assertTrue( list.contains( order4 ) );
- }
+ }
- public void testMapAccess() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_MapAccess.drl")));
- final Package pkg = builder.getPackage();
+ public void testMapAccess() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MapAccess.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- Map map = new HashMap();
- map.put("name", "Edson");
- map.put("surname", "Tirelli");
- map.put("age", "28");
+ Map map = new HashMap();
+ map.put( "name",
+ "Edson" );
+ map.put( "surname",
+ "Tirelli" );
+ map.put( "age",
+ "28" );
- workingMemory.insert(map);
+ workingMemory.insert( map );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
- assertTrue(list.contains(map));
+ assertEquals( 1,
+ list.size() );
+ assertTrue( list.contains( map ) );
- }
+ }
- public void testHalt() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_halt.drl")));
- final Package pkg = builder.getPackage();
+ public void testHalt() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_halt.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Integer(0));
- workingMemory.fireAllRules();
+ workingMemory.insert( new Integer( 0 ) );
+ workingMemory.fireAllRules();
- assertEquals(10, results.size());
- for (int i = 0; i < 10; i++) {
- assertEquals(new Integer(i), results.get(i));
- }
- }
+ assertEquals( 10,
+ results.size() );
+ for ( int i = 0; i < 10; i++ ) {
+ assertEquals( new Integer( i ),
+ results.get( i ) );
+ }
+ }
- public void testFireLimit() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_fireLimit.drl")));
- final Package pkg = builder.getPackage();
+ public void testFireLimit() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_fireLimit.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Integer(0));
- workingMemory.fireAllRules();
+ workingMemory.insert( new Integer( 0 ) );
+ workingMemory.fireAllRules();
- assertEquals(20, results.size());
- for (int i = 0; i < 20; i++) {
- assertEquals(new Integer(i), results.get(i));
- }
- results.clear();
+ assertEquals( 20,
+ results.size() );
+ for ( int i = 0; i < 20; i++ ) {
+ assertEquals( new Integer( i ),
+ results.get( i ) );
+ }
+ results.clear();
- workingMemory.insert(new Integer(0));
- workingMemory.fireAllRules(10);
+ workingMemory.insert( new Integer( 0 ) );
+ workingMemory.fireAllRules( 10 );
- assertEquals(10, results.size());
- for (int i = 0; i < 10; i++) {
- assertEquals(new Integer(i), results.get(i));
- }
- results.clear();
+ assertEquals( 10,
+ results.size() );
+ for ( int i = 0; i < 10; i++ ) {
+ assertEquals( new Integer( i ),
+ results.get( i ) );
+ }
+ results.clear();
- workingMemory.insert(new Integer(0));
- workingMemory.fireAllRules(-1);
+ workingMemory.insert( new Integer( 0 ) );
+ workingMemory.fireAllRules( -1 );
- assertEquals(20, results.size());
- for (int i = 0; i < 20; i++) {
- assertEquals(new Integer(i), results.get(i));
- }
- results.clear();
+ assertEquals( 20,
+ results.size() );
+ for ( int i = 0; i < 20; i++ ) {
+ assertEquals( new Integer( i ),
+ results.get( i ) );
+ }
+ results.clear();
- }
+ }
- public void testEqualitySupport() throws Exception {
+ public void testEqualitySupport() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_equalitySupport.drl")));
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_equalitySupport.drl" ) ) );
+ final Package pkg = builder.getPackage();
- RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setAssertBehaviour(RuleBaseConfiguration.AssertBehaviour.EQUALITY);
- final RuleBase ruleBase = getRuleBase(conf);
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setAssertBehaviour( RuleBaseConfiguration.AssertBehaviour.EQUALITY );
+ final RuleBase ruleBase = getRuleBase( conf );
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- PersonWithEquals person = new PersonWithEquals("bob", 30);
+ PersonWithEquals person = new PersonWithEquals( "bob",
+ 30 );
- workingMemory.insert(person);
+ workingMemory.insert( person );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, results.size());
- assertEquals("mark", results.get(0));
+ assertEquals( 1,
+ results.size() );
+ assertEquals( "mark",
+ results.get( 0 ) );
- }
+ }
- public void testCharComparisons() throws Exception {
+ public void testCharComparisons() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_charComparisons.drl")));
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_charComparisons.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- Primitives p1 = new Primitives();
- p1.setCharPrimitive('a');
- p1.setStringAttribute("b");
- Primitives p2 = new Primitives();
- p2.setCharPrimitive('b');
- p2.setStringAttribute("a");
+ Primitives p1 = new Primitives();
+ p1.setCharPrimitive( 'a' );
+ p1.setStringAttribute( "b" );
+ Primitives p2 = new Primitives();
+ p2.setCharPrimitive( 'b' );
+ p2.setStringAttribute( "a" );
- workingMemory.insert(p1);
- workingMemory.insert(p2);
+ workingMemory.insert( p1 );
+ workingMemory.insert( p2 );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(3, results.size());
- assertEquals("1", results.get(0));
- assertEquals("2", results.get(1));
- assertEquals("3", results.get(2));
+ assertEquals( 3,
+ results.size() );
+ assertEquals( "1",
+ results.get( 0 ) );
+ assertEquals( "2",
+ results.get( 1 ) );
+ assertEquals( "3",
+ results.get( 2 ) );
- }
+ }
- public void testAlphaNodeSharing() throws Exception {
+ public void testAlphaNodeSharing() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_alphaNodeSharing.drl")));
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_alphaNodeSharing.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setShareAlphaNodes(false);
- final RuleBase ruleBase = getRuleBase(conf);
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setShareAlphaNodes( false );
+ final RuleBase ruleBase = getRuleBase( conf );
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- Person p1 = new Person("bob", 5);
- workingMemory.insert(p1);
+ Person p1 = new Person( "bob",
+ 5 );
+ workingMemory.insert( p1 );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(2, results.size());
- assertEquals("1", results.get(0));
- assertEquals("2", results.get(1));
+ assertEquals( 2,
+ results.size() );
+ assertEquals( "1",
+ results.get( 0 ) );
+ assertEquals( "2",
+ results.get( 1 ) );
- }
+ }
- public void testFunctionCallingFunctionWithEclipse() throws Exception {
- PackageBuilderConfiguration packageBuilderConfig = new PackageBuilderConfiguration();
- ((JavaDialectConfiguration) packageBuilderConfig
- .getDialectConfiguration("java"))
- .setCompiler(JavaDialectConfiguration.ECLIPSE);
+ public void testFunctionCallingFunctionWithEclipse() throws Exception {
+ PackageBuilderConfiguration packageBuilderConfig = new PackageBuilderConfiguration();
+ ((JavaDialectConfiguration) packageBuilderConfig.getDialectConfiguration( "java" )).setCompiler( JavaDialectConfiguration.ECLIPSE );
- final PackageBuilder builder = new PackageBuilder(packageBuilderConfig);
+ final PackageBuilder builder = new PackageBuilder( packageBuilderConfig );
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_functionCallingFunction.drl")));
- final Package pkg = builder.getPackage();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_functionCallingFunction.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- assertEquals(10, ((Integer) list.get(0)).intValue());
- }
+ assertEquals( 10,
+ ((Integer) list.get( 0 )).intValue() );
+ }
- public void testFunctionCallingFunctionWithJanino() throws Exception {
- PackageBuilderConfiguration packageBuilderConfig = new PackageBuilderConfiguration();
- ((JavaDialectConfiguration) packageBuilderConfig
- .getDialectConfiguration("java"))
- .setCompiler(JavaDialectConfiguration.JANINO);
+ public void testFunctionCallingFunctionWithJanino() throws Exception {
+ PackageBuilderConfiguration packageBuilderConfig = new PackageBuilderConfiguration();
+ ((JavaDialectConfiguration) packageBuilderConfig.getDialectConfiguration( "java" )).setCompiler( JavaDialectConfiguration.JANINO );
- final PackageBuilder builder = new PackageBuilder(packageBuilderConfig);
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_functionCallingFunction.drl")));
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder( packageBuilderConfig );
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_functionCallingFunction.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- assertEquals(10, ((Integer) list.get(0)).intValue());
- }
+ assertEquals( 10,
+ ((Integer) list.get( 0 )).intValue() );
+ }
- public void testSelfReference2() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_SelfReference2.drl")));
- final Package pkg = builder.getPackage();
+ public void testSelfReference2() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_SelfReference2.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Cheese());
+ workingMemory.insert( new Cheese() );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(0, results.size());
- }
+ assertEquals( 0,
+ results.size() );
+ }
- public void testMergingDifferentPackages() throws Exception {
- // using the same builder
- try {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RuleNameClashes1.drl")));
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RuleNameClashes2.drl")));
- fail("Can't merge packages with different names ");
- } catch (PackageMergeException e) {
- // success
- } catch (RuntimeException e) {
- e.printStackTrace();
- fail("unexpected exception: " + e.getMessage());
- }
- }
+ public void testMergingDifferentPackages() throws Exception {
+ // using the same builder
+ try {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuleNameClashes1.drl" ) ) );
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuleNameClashes2.drl" ) ) );
+ fail( "Can't merge packages with different names " );
+ } catch ( PackageMergeException e ) {
+ // success
+ } catch ( RuntimeException e ) {
+ e.printStackTrace();
+ fail( "unexpected exception: " + e.getMessage() );
+ }
+ }
- public void testMergingDifferentPackages2() throws Exception {
- // using different builders
- try {
- final PackageBuilder builder1 = new PackageBuilder();
- builder1.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RuleNameClashes1.drl")));
- final Package pkg1 = builder1.getPackage();
+ public void testMergingDifferentPackages2() throws Exception {
+ // using different builders
+ try {
+ final PackageBuilder builder1 = new PackageBuilder();
+ builder1.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuleNameClashes1.drl" ) ) );
+ final Package pkg1 = builder1.getPackage();
- assertEquals(1, pkg1.getRules().length);
+ assertEquals( 1,
+ pkg1.getRules().length );
- final PackageBuilder builder2 = new PackageBuilder();
- builder2.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RuleNameClashes2.drl")));
- final Package pkg2 = builder2.getPackage();
+ final PackageBuilder builder2 = new PackageBuilder();
+ builder2.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuleNameClashes2.drl" ) ) );
+ final Package pkg2 = builder2.getPackage();
- assertEquals(1, pkg2.getRules().length);
+ assertEquals( 1,
+ pkg2.getRules().length );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg1);
- ruleBase.addPackage(pkg2);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg1 );
+ ruleBase.addPackage( pkg2 );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Cheese("stilton", 10));
- workingMemory.insert(new Cheese("brie", 5));
+ workingMemory.insert( new Cheese( "stilton",
+ 10 ) );
+ workingMemory.insert( new Cheese( "brie",
+ 5 ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(results.toString(), 2, results.size());
- assertTrue(results.contains("p1.r1"));
- assertTrue(results.contains("p2.r1"));
+ assertEquals( results.toString(),
+ 2,
+ results.size() );
+ assertTrue( results.contains( "p1.r1" ) );
+ assertTrue( results.contains( "p2.r1" ) );
- } catch (PackageMergeException e) {
- fail("Should not raise exception when merging different packages into the same rulebase: "
- + e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- fail("unexpected exception: " + e.getMessage());
- }
- }
+ } catch ( PackageMergeException e ) {
+ fail( "Should not raise exception when merging different packages into the same rulebase: " + e.getMessage() );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ fail( "unexpected exception: " + e.getMessage() );
+ }
+ }
- public void testMergePackageWithSameRuleNames() throws Exception {
+ public void testMergePackageWithSameRuleNames() throws Exception {
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MergePackageWithSameRuleNames1.drl" ) ) );
final RuleBase ruleBase = getRuleBase();
@@ -3384,1012 +3730,1201 @@
results.get( 0 ) );
}
- public void testRuleReplacement() throws Exception {
- // test rule replacement
- try {
- final PackageBuilder builder1 = new PackageBuilder();
- builder1.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RuleNameClashes1.drl")));
- builder1.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RuleNameClashes3.drl")));
- final Package pkg1 = builder1.getPackage();
+ public void testRuleReplacement() throws Exception {
+ // test rule replacement
+ try {
+ final PackageBuilder builder1 = new PackageBuilder();
+ builder1.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuleNameClashes1.drl" ) ) );
+ builder1.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuleNameClashes3.drl" ) ) );
+ final Package pkg1 = builder1.getPackage();
- assertEquals(1, pkg1.getRules().length);
+ assertEquals( 1,
+ pkg1.getRules().length );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg1);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg1 );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Cheese("stilton", 10));
- workingMemory.insert(new Cheese("brie", 5));
+ workingMemory.insert( new Cheese( "stilton",
+ 10 ) );
+ workingMemory.insert( new Cheese( "brie",
+ 5 ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(results.toString(), 0, results.size());
+ assertEquals( results.toString(),
+ 0,
+ results.size() );
- workingMemory.insert(new Cheese("muzzarella", 7));
+ workingMemory.insert( new Cheese( "muzzarella",
+ 7 ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(results.toString(), 1, results.size());
- assertTrue(results.contains("p1.r3"));
+ assertEquals( results.toString(),
+ 1,
+ results.size() );
+ assertTrue( results.contains( "p1.r3" ) );
- } catch (PackageMergeException e) {
- fail("Should not raise exception when merging different packages into the same rulebase: "
- + e.getMessage());
- } catch (Exception e) {
- e.printStackTrace();
- fail("unexpected exception: " + e.getMessage());
- }
- }
+ } catch ( PackageMergeException e ) {
+ fail( "Should not raise exception when merging different packages into the same rulebase: " + e.getMessage() );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ fail( "unexpected exception: " + e.getMessage() );
+ }
+ }
- public void testBindingsOnConnectiveExpressions() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_bindings.drl")));
- final Package pkg = builder.getPackage();
+ public void testBindingsOnConnectiveExpressions() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_bindings.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Cheese("stilton", 15));
+ workingMemory.insert( new Cheese( "stilton",
+ 15 ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(2, results.size());
- assertEquals("stilton", results.get(0));
- assertEquals(new Integer(15), results.get(1));
- }
+ assertEquals( 2,
+ results.size() );
+ assertEquals( "stilton",
+ results.get( 0 ) );
+ assertEquals( new Integer( 15 ),
+ results.get( 1 ) );
+ }
- public void testMultipleFroms() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_multipleFroms.drl")));
- final Package pkg = builder.getPackage();
+ public void testMultipleFroms() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_multipleFroms.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- final Cheesery cheesery = new Cheesery();
- cheesery.addCheese(new Cheese("stilton", 15));
- cheesery.addCheese(new Cheese("brie", 10));
+ final Cheesery cheesery = new Cheesery();
+ cheesery.addCheese( new Cheese( "stilton",
+ 15 ) );
+ cheesery.addCheese( new Cheese( "brie",
+ 10 ) );
- workingMemory.setGlobal("cheesery", cheesery);
+ workingMemory.setGlobal( "cheesery",
+ cheesery );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(2, results.size());
- assertEquals(2, ((List) results.get(0)).size());
- assertEquals(2, ((List) results.get(1)).size());
- }
+ assertEquals( 2,
+ results.size() );
+ assertEquals( 2,
+ ((List) results.get( 0 )).size() );
+ assertEquals( 2,
+ ((List) results.get( 1 )).size() );
+ }
- public void testNullHashing() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NullHashing.drl")));
- final Package pkg = builder.getPackage();
+ public void testNullHashing() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NullHashing.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Cheese("stilton", 15));
- workingMemory.insert(new Cheese("", 10));
- workingMemory.insert(new Cheese(null, 8));
+ workingMemory.insert( new Cheese( "stilton",
+ 15 ) );
+ workingMemory.insert( new Cheese( "",
+ 10 ) );
+ workingMemory.insert( new Cheese( null,
+ 8 ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(3, results.size());
- }
+ assertEquals( 3,
+ results.size() );
+ }
- public void testDefaultBetaConstrains() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_DefaultBetaConstraint.drl")));
- final Package pkg = builder.getPackage();
+ public void testDefaultBetaConstrains() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DefaultBetaConstraint.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
- final FirstClass first = new FirstClass("1", "2", "3", "4", "5");
- final FactHandle handle = workingMemory.insert(first);
- workingMemory.fireAllRules();
- assertEquals(1, results.size());
- assertEquals("NOT", results.get(0));
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
+ final FirstClass first = new FirstClass( "1",
+ "2",
+ "3",
+ "4",
+ "5" );
+ final FactHandle handle = workingMemory.insert( first );
+ workingMemory.fireAllRules();
+ assertEquals( 1,
+ results.size() );
+ assertEquals( "NOT",
+ results.get( 0 ) );
- workingMemory.insert(new SecondClass());
- workingMemory.update(handle, first);
- workingMemory.fireAllRules();
- assertEquals(2, results.size());
- assertEquals("NOT", results.get(1));
+ workingMemory.insert( new SecondClass() );
+ workingMemory.update( handle,
+ first );
+ workingMemory.fireAllRules();
+ assertEquals( 2,
+ results.size() );
+ assertEquals( "NOT",
+ results.get( 1 ) );
- workingMemory.update(handle, first);
- workingMemory.insert(new SecondClass(null, "2", "3", "4", "5"));
- workingMemory.fireAllRules();
- assertEquals(3, results.size());
- assertEquals("NOT", results.get(2));
+ workingMemory.update( handle,
+ first );
+ workingMemory.insert( new SecondClass( null,
+ "2",
+ "3",
+ "4",
+ "5" ) );
+ workingMemory.fireAllRules();
+ assertEquals( 3,
+ results.size() );
+ assertEquals( "NOT",
+ results.get( 2 ) );
- workingMemory.update(handle, first);
- workingMemory.insert(new SecondClass("1", null, "3", "4", "5"));
- workingMemory.fireAllRules();
- assertEquals(4, results.size());
- assertEquals("NOT", results.get(3));
+ workingMemory.update( handle,
+ first );
+ workingMemory.insert( new SecondClass( "1",
+ null,
+ "3",
+ "4",
+ "5" ) );
+ workingMemory.fireAllRules();
+ assertEquals( 4,
+ results.size() );
+ assertEquals( "NOT",
+ results.get( 3 ) );
- workingMemory.update(handle, first);
- workingMemory.insert(new SecondClass("1", "2", null, "4", "5"));
- workingMemory.fireAllRules();
- assertEquals(5, results.size());
- assertEquals("NOT", results.get(4));
+ workingMemory.update( handle,
+ first );
+ workingMemory.insert( new SecondClass( "1",
+ "2",
+ null,
+ "4",
+ "5" ) );
+ workingMemory.fireAllRules();
+ assertEquals( 5,
+ results.size() );
+ assertEquals( "NOT",
+ results.get( 4 ) );
- workingMemory.update(handle, first);
- workingMemory.insert(new SecondClass("1", "2", "3", null, "5"));
- workingMemory.fireAllRules();
- assertEquals(6, results.size());
- assertEquals("NOT", results.get(5));
+ workingMemory.update( handle,
+ first );
+ workingMemory.insert( new SecondClass( "1",
+ "2",
+ "3",
+ null,
+ "5" ) );
+ workingMemory.fireAllRules();
+ assertEquals( 6,
+ results.size() );
+ assertEquals( "NOT",
+ results.get( 5 ) );
- workingMemory.update(handle, first);
- workingMemory.insert(new SecondClass("1", "2", "3", "4", null));
- workingMemory.fireAllRules();
- assertEquals(7, results.size());
- assertEquals("NOT", results.get(6));
+ workingMemory.update( handle,
+ first );
+ workingMemory.insert( new SecondClass( "1",
+ "2",
+ "3",
+ "4",
+ null ) );
+ workingMemory.fireAllRules();
+ assertEquals( 7,
+ results.size() );
+ assertEquals( "NOT",
+ results.get( 6 ) );
- workingMemory.insert(new SecondClass("1", "2", "3", "4", "5"));
- workingMemory.update(handle, first);
- workingMemory.fireAllRules();
- assertEquals(8, results.size());
- assertEquals("EQUALS", results.get(7));
+ workingMemory.insert( new SecondClass( "1",
+ "2",
+ "3",
+ "4",
+ "5" ) );
+ workingMemory.update( handle,
+ first );
+ workingMemory.fireAllRules();
+ assertEquals( 8,
+ results.size() );
+ assertEquals( "EQUALS",
+ results.get( 7 ) );
- }
+ }
- public void testBooleanWrapper() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_BooleanWrapper.drl")));
- final Package pkg = builder.getPackage();
+ public void testBooleanWrapper() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_BooleanWrapper.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- Primitives p1 = new Primitives();
- workingMemory.insert(p1);
- workingMemory.fireAllRules();
- assertEquals(0, results.size());
+ Primitives p1 = new Primitives();
+ workingMemory.insert( p1 );
+ workingMemory.fireAllRules();
+ assertEquals( 0,
+ results.size() );
- Primitives p2 = new Primitives();
- p2.setBooleanWrapper(Boolean.FALSE);
- workingMemory.insert(p2);
- workingMemory.fireAllRules();
- assertEquals(0, results.size());
+ Primitives p2 = new Primitives();
+ p2.setBooleanWrapper( Boolean.FALSE );
+ workingMemory.insert( p2 );
+ workingMemory.fireAllRules();
+ assertEquals( 0,
+ results.size() );
- Primitives p3 = new Primitives();
- p3.setBooleanWrapper(Boolean.TRUE);
- workingMemory.insert(p3);
- workingMemory.fireAllRules();
- assertEquals(1, results.size());
+ Primitives p3 = new Primitives();
+ p3.setBooleanWrapper( Boolean.TRUE );
+ workingMemory.insert( p3 );
+ workingMemory.fireAllRules();
+ assertEquals( 1,
+ results.size() );
- }
+ }
- public void testCrossProductRemovingIdentityEquals() throws Exception {
- PackageBuilder builder = new PackageBuilder();
- builder
- .addPackageFromDrl(new InputStreamReader(
- MiscTest.class
- .getResourceAsStream("test_CrossProductRemovingIdentityEquals.drl")));
+ public void testCrossProductRemovingIdentityEquals() throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( MiscTest.class.getResourceAsStream( "test_CrossProductRemovingIdentityEquals.drl" ) ) );
- RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setShadowProxy(true);
- RuleBase rb = RuleBaseFactory.newRuleBase(conf);
- rb.addPackage(builder.getPackage());
- StatefulSession session = rb.newStatefulSession();
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setShadowProxy( true );
+ RuleBase rb = RuleBaseFactory.newRuleBase( conf );
+ rb.addPackage( builder.getPackage() );
+ StatefulSession session = rb.newStatefulSession();
- List list1 = new ArrayList();
- List list2 = new ArrayList();
+ List list1 = new ArrayList();
+ List list2 = new ArrayList();
- session.setGlobal("list1", list1);
- session.setGlobal("list2", list2);
+ session.setGlobal( "list1",
+ list1 );
+ session.setGlobal( "list2",
+ list2 );
- SpecialString first42 = new SpecialString("42");
- SpecialString second43 = new SpecialString("42");
- SpecialString world = new SpecialString("World");
- session.insert(world);
- session.insert(first42);
- session.insert(second43);
+ SpecialString first42 = new SpecialString( "42" );
+ SpecialString second43 = new SpecialString( "42" );
+ SpecialString world = new SpecialString( "World" );
+ session.insert( world );
+ session.insert( first42 );
+ session.insert( second43 );
- // System.out.println( "Firing rules ..." );
+ // System.out.println( "Firing rules ..." );
- session.fireAllRules();
+ session.fireAllRules();
- assertEquals(6, list1.size());
- assertEquals(6, list2.size());
+ assertEquals( 6,
+ list1.size() );
+ assertEquals( 6,
+ list2.size() );
- assertEquals(second43, list1.get(0));
- assertEquals(first42, list1.get(1));
- assertEquals(world, list1.get(2));
- assertEquals(second43, list1.get(3));
- assertEquals(first42, list1.get(4));
- assertEquals(world, list1.get(5));
+ assertEquals( second43,
+ list1.get( 0 ) );
+ assertEquals( first42,
+ list1.get( 1 ) );
+ assertEquals( world,
+ list1.get( 2 ) );
+ assertEquals( second43,
+ list1.get( 3 ) );
+ assertEquals( first42,
+ list1.get( 4 ) );
+ assertEquals( world,
+ list1.get( 5 ) );
- assertEquals(first42, list2.get(0));
- assertEquals(second43, list2.get(1));
- assertEquals(second43, list2.get(2));
- assertEquals(world, list2.get(3));
- assertEquals(world, list2.get(4));
- assertEquals(first42, list2.get(5));
- }
+ assertEquals( first42,
+ list2.get( 0 ) );
+ assertEquals( second43,
+ list2.get( 1 ) );
+ assertEquals( second43,
+ list2.get( 2 ) );
+ assertEquals( world,
+ list2.get( 3 ) );
+ assertEquals( world,
+ list2.get( 4 ) );
+ assertEquals( first42,
+ list2.get( 5 ) );
+ }
- public void testIterateObjects() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_IterateObjects.drl")));
- final Package pkg = builder.getPackage();
+ public void testIterateObjects() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_IterateObjects.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Cheese("stilton", 10));
+ workingMemory.insert( new Cheese( "stilton",
+ 10 ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- Iterator events = workingMemory.iterateObjects(new ClassObjectFilter(
- PersonInterface.class));
+ Iterator events = workingMemory.iterateObjects( new ClassObjectFilter( PersonInterface.class ) );
- assertTrue(events.hasNext());
- assertEquals(1, results.size());
- assertEquals(results.get(0), events.next());
- }
+ assertTrue( events.hasNext() );
+ assertEquals( 1,
+ results.size() );
+ assertEquals( results.get( 0 ),
+ events.next() );
+ }
- public void testNotInStatelessSession() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NotInStatelessSession.drl")));
- final Package pkg = builder.getPackage();
+ public void testNotInStatelessSession() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NotInStatelessSession.drl" ) ) );
+ final Package pkg = builder.getPackage();
- RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setSequential(true);
- final RuleBase ruleBase = getRuleBase(conf);
- ruleBase.addPackage(pkg);
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setSequential( true );
+ final RuleBase ruleBase = getRuleBase( conf );
+ ruleBase.addPackage( pkg );
- StatelessSession session = ruleBase.newStatelessSession();
- List list = new ArrayList();
- session.setGlobal("list", list);
- session.execute("not integer");
- assertEquals("not integer", list.get(0));
- }
+ StatelessSession session = ruleBase.newStatelessSession();
+ List list = new ArrayList();
+ session.setGlobal( "list",
+ list );
+ session.execute( "not integer" );
+ assertEquals( "not integer",
+ list.get( 0 ) );
+ }
- public void testDynamicallyAddInitialFactRule() throws Exception {
- PackageBuilder builder = new PackageBuilder();
- String rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\n i:Integer()\nthen\n list.add(i);\nend";
- builder.addPackageFromDrl(new StringReader(rule));
- Package pkg = builder.getPackage();
+ public void testDynamicallyAddInitialFactRule() throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ String rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\n i:Integer()\nthen\n list.add(i);\nend";
+ builder.addPackageFromDrl( new StringReader( rule ) );
+ Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- StatefulSession session = ruleBase.newStatefulSession();
- List list = new ArrayList();
- session.setGlobal("list", list);
+ StatefulSession session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ session.setGlobal( "list",
+ list );
- session.insert(new Integer(5));
- session.fireAllRules();
+ session.insert( new Integer( 5 ) );
+ session.fireAllRules();
- assertEquals(new Integer(5), list.get(0));
+ assertEquals( new Integer( 5 ),
+ list.get( 0 ) );
- builder = new PackageBuilder();
- rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\nthen\n list.add(\"x\");\nend";
- builder.addPackageFromDrl(new StringReader(rule));
- pkg = builder.getPackage();
+ builder = new PackageBuilder();
+ rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\nthen\n list.add(\"x\");\nend";
+ builder.addPackageFromDrl( new StringReader( rule ) );
+ pkg = builder.getPackage();
- // Make sure that this rule is fired as the Package is updated, it also
- // tests that InitialFactImpl is still in the network
- // even though the first rule didn't use it.
- ruleBase.addPackage(pkg);
+ // Make sure that this rule is fired as the Package is updated, it also
+ // tests that InitialFactImpl is still in the network
+ // even though the first rule didn't use it.
+ ruleBase.addPackage( pkg );
- assertEquals("x", list.get(1));
+ assertEquals( "x",
+ list.get( 1 ) );
- }
+ }
- public void testEvalRewriteWithSpecialOperators() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(
- getClass().getResourceAsStream(
- "test_EvalRewriteWithSpecialOperators.drl")));
- final Package pkg = builder.getPackage();
+ public void testEvalRewriteWithSpecialOperators() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EvalRewriteWithSpecialOperators.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final Order order1 = new Order(10, "Bob");
- final OrderItem item11 = new OrderItem(order1, 1);
- final OrderItem item12 = new OrderItem(order1, 2);
- order1.addItem(item11);
- order1.addItem(item12);
- final Order order2 = new Order(11, "Bob");
- final OrderItem item21 = new OrderItem(order2, 1);
- final OrderItem item22 = new OrderItem(order2, 2);
- order2.addItem(item21);
- order2.addItem(item22);
- final Order order3 = new Order(12, "Bob");
- final OrderItem item31 = new OrderItem(order3, 1);
- final OrderItem item32 = new OrderItem(order3, 2);
- final OrderItem item33 = new OrderItem(order3, 3);
- order3.addItem(item31);
- order3.addItem(item32);
- order3.addItem(item33);
- final Order order4 = new Order(13, "Bob");
- final OrderItem item41 = new OrderItem(order4, 1);
- final OrderItem item42 = new OrderItem(order4, 2);
- order4.addItem(item41);
- order4.addItem(item42);
- final Order order5 = new Order(14, "Mark");
- final OrderItem item51 = new OrderItem(order5, 1);
- final OrderItem item52 = new OrderItem(order5, 2);
- order5.addItem(item51);
- order5.addItem(item52);
- workingMemory.insert(order1);
- workingMemory.insert(item11);
- workingMemory.insert(item12);
- workingMemory.insert(order2);
- workingMemory.insert(item21);
- workingMemory.insert(item22);
- workingMemory.insert(order3);
- workingMemory.insert(item31);
- workingMemory.insert(item32);
- workingMemory.insert(item33);
- workingMemory.insert(order4);
- workingMemory.insert(item41);
- workingMemory.insert(item42);
- workingMemory.insert(order5);
- workingMemory.insert(item51);
- workingMemory.insert(item52);
+ final Order order1 = new Order( 10,
+ "Bob" );
+ final OrderItem item11 = new OrderItem( order1,
+ 1 );
+ final OrderItem item12 = new OrderItem( order1,
+ 2 );
+ order1.addItem( item11 );
+ order1.addItem( item12 );
+ final Order order2 = new Order( 11,
+ "Bob" );
+ final OrderItem item21 = new OrderItem( order2,
+ 1 );
+ final OrderItem item22 = new OrderItem( order2,
+ 2 );
+ order2.addItem( item21 );
+ order2.addItem( item22 );
+ final Order order3 = new Order( 12,
+ "Bob" );
+ final OrderItem item31 = new OrderItem( order3,
+ 1 );
+ final OrderItem item32 = new OrderItem( order3,
+ 2 );
+ final OrderItem item33 = new OrderItem( order3,
+ 3 );
+ order3.addItem( item31 );
+ order3.addItem( item32 );
+ order3.addItem( item33 );
+ final Order order4 = new Order( 13,
+ "Bob" );
+ final OrderItem item41 = new OrderItem( order4,
+ 1 );
+ final OrderItem item42 = new OrderItem( order4,
+ 2 );
+ order4.addItem( item41 );
+ order4.addItem( item42 );
+ final Order order5 = new Order( 14,
+ "Mark" );
+ final OrderItem item51 = new OrderItem( order5,
+ 1 );
+ final OrderItem item52 = new OrderItem( order5,
+ 2 );
+ order5.addItem( item51 );
+ order5.addItem( item52 );
+ workingMemory.insert( order1 );
+ workingMemory.insert( item11 );
+ workingMemory.insert( item12 );
+ workingMemory.insert( order2 );
+ workingMemory.insert( item21 );
+ workingMemory.insert( item22 );
+ workingMemory.insert( order3 );
+ workingMemory.insert( item31 );
+ workingMemory.insert( item32 );
+ workingMemory.insert( item33 );
+ workingMemory.insert( order4 );
+ workingMemory.insert( item41 );
+ workingMemory.insert( item42 );
+ workingMemory.insert( order5 );
+ workingMemory.insert( item51 );
+ workingMemory.insert( item52 );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(9, list.size());
- int index = 0;
- assertEquals(item11, list.get(index++));
- assertEquals(item12, list.get(index++));
- assertEquals(item21, list.get(index++));
- assertEquals(item22, list.get(index++));
- assertEquals(item31, list.get(index++));
- assertEquals(item33, list.get(index++));
- assertEquals(item41, list.get(index++));
- assertEquals(order5, list.get(index++));
- assertEquals(order5, list.get(index++));
+ assertEquals( 9,
+ list.size() );
+ int index = 0;
+ assertEquals( item11,
+ list.get( index++ ) );
+ assertEquals( item12,
+ list.get( index++ ) );
+ assertEquals( item21,
+ list.get( index++ ) );
+ assertEquals( item22,
+ list.get( index++ ) );
+ assertEquals( item31,
+ list.get( index++ ) );
+ assertEquals( item33,
+ list.get( index++ ) );
+ assertEquals( item41,
+ list.get( index++ ) );
+ assertEquals( order5,
+ list.get( index++ ) );
+ assertEquals( order5,
+ list.get( index++ ) );
- }
+ }
- public void testImportColision() throws Exception {
+ public void testImportColision() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- final PackageBuilder builder2 = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("nested1.drl")));
- builder2.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("nested2.drl")));
- final Package pkg = builder.getPackage();
- final Package pkg2 = builder2.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ final PackageBuilder builder2 = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "nested1.drl" ) ) );
+ builder2.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "nested2.drl" ) ) );
+ final Package pkg = builder.getPackage();
+ final Package pkg2 = builder2.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- ruleBase.addPackage(pkg2);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ ruleBase.addPackage( pkg2 );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.insert(new FirstClass());
- workingMemory.insert(new SecondClass());
- workingMemory.insert(new FirstClass.AlternativeKey());
- workingMemory.insert(new SecondClass.AlternativeKey());
+ workingMemory.insert( new FirstClass() );
+ workingMemory.insert( new SecondClass() );
+ workingMemory.insert( new FirstClass.AlternativeKey() );
+ workingMemory.insert( new SecondClass.AlternativeKey() );
- workingMemory.fireAllRules();
- }
+ workingMemory.fireAllRules();
+ }
- public void testAutovivificationOfVariableRestrictions() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_AutoVivificationVR.drl")));
- final Package pkg = builder.getPackage();
+ public void testAutovivificationOfVariableRestrictions() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AutoVivificationVR.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- workingMemory.insert(new Cheese("stilton", 10, 8));
+ workingMemory.insert( new Cheese( "stilton",
+ 10,
+ 8 ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, results.size());
- }
+ assertEquals( 1,
+ results.size() );
+ }
- public void testShadowProxyOnCollections() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ShadowProxyOnCollections.drl")));
- final Package pkg = builder.getPackage();
+ public void testShadowProxyOnCollections() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ShadowProxyOnCollections.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
- workingMemory.setGlobal("results", results);
+ final List results = new ArrayList();
+ workingMemory.setGlobal( "results",
+ results );
- final Cheesery cheesery = new Cheesery();
- workingMemory.insert(cheesery);
+ final Cheesery cheesery = new Cheesery();
+ workingMemory.insert( cheesery );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, results.size());
- assertEquals(1, cheesery.getCheeses().size());
- assertEquals(results.get(0), cheesery.getCheeses().get(0));
- }
+ assertEquals( 1,
+ results.size() );
+ assertEquals( 1,
+ cheesery.getCheeses().size() );
+ assertEquals( results.get( 0 ),
+ cheesery.getCheeses().get( 0 ) );
+ }
- public void testQueryWithCollect() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_Query.drl")));
+ public void testQueryWithCollect() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Query.drl" ) ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.fireAllRules();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final QueryResults results = workingMemory
- .getQueryResults("collect objects");
- assertEquals(1, results.size());
+ final QueryResults results = workingMemory.getQueryResults( "collect objects" );
+ assertEquals( 1,
+ results.size() );
- final QueryResult result = results.get(0);
- final List list = (List) result.get("$list");
+ final QueryResult result = results.get( 0 );
+ final List list = (List) result.get( "$list" );
- assertEquals(2, list.size());
- }
+ assertEquals( 2,
+ list.size() );
+ }
- public void testNestedAccessors() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NestedAccessors.drl")));
+ public void testNestedAccessors() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NestedAccessors.drl" ) ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final Order order1 = new Order(11, "Bob");
- final OrderItem item11 = new OrderItem(order1, 1);
- final OrderItem item12 = new OrderItem(order1, 2);
- order1.addItem(item11);
- order1.addItem(item12);
+ final Order order1 = new Order( 11,
+ "Bob" );
+ final OrderItem item11 = new OrderItem( order1,
+ 1 );
+ final OrderItem item12 = new OrderItem( order1,
+ 2 );
+ order1.addItem( item11 );
+ order1.addItem( item12 );
- workingMemory.insert(order1);
- workingMemory.insert(item11);
- workingMemory.insert(item12);
+ workingMemory.insert( order1 );
+ workingMemory.insert( item11 );
+ workingMemory.insert( item12 );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(0, list.size());
+ assertEquals( 0,
+ list.size() );
- final Order order2 = new Order(12, "Mark");
- Order.OrderStatus status = new Order.OrderStatus();
- status.setActive(true);
- order2.setStatus(status);
- final OrderItem item21 = new OrderItem(order2, 1);
- final OrderItem item22 = new OrderItem(order2, 2);
- order1.addItem(item21);
- order1.addItem(item22);
+ final Order order2 = new Order( 12,
+ "Mark" );
+ Order.OrderStatus status = new Order.OrderStatus();
+ status.setActive( true );
+ order2.setStatus( status );
+ final OrderItem item21 = new OrderItem( order2,
+ 1 );
+ final OrderItem item22 = new OrderItem( order2,
+ 2 );
+ order1.addItem( item21 );
+ order1.addItem( item22 );
- workingMemory.insert(order2);
- workingMemory.insert(item21);
- workingMemory.insert(item22);
+ workingMemory.insert( order2 );
+ workingMemory.insert( item21 );
+ workingMemory.insert( item22 );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(2, list.size());
- assertSame(item21, list.get(0));
- assertSame(item22, list.get(1));
- }
+ assertEquals( 2,
+ list.size() );
+ assertSame( item21,
+ list.get( 0 ) );
+ assertSame( item22,
+ list.get( 1 ) );
+ }
- public void testWorkingMemoryLoggerWithUnbalancedBranches()
- throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_Logger.drl")));
- final Package pkg = builder.getPackage();
+ public void testWorkingMemoryLoggerWithUnbalancedBranches() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Logger.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ final WorkingMemory wm = ruleBase.newStatefulSession();
- try {
- final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(
- wm);
- logger.setFileName("testLogger");
+ try {
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( wm );
+ logger.setFileName( "testLogger" );
- wm.fireAllRules();
+ wm.fireAllRules();
- wm.insert(new Cheese("a", 10));
- wm.insert(new Cheese("b", 11));
+ wm.insert( new Cheese( "a",
+ 10 ) );
+ wm.insert( new Cheese( "b",
+ 11 ) );
- wm.fireAllRules();
+ wm.fireAllRules();
- // logger.writeToDisk();
- } catch (Exception e) {
- e.printStackTrace();
- fail("No exception should be raised ");
- }
+ // logger.writeToDisk();
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ fail( "No exception should be raised " );
+ }
- }
+ }
- public void testFromNestedAccessors() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FromNestedAccessors.drl")));
+ public void testFromNestedAccessors() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FromNestedAccessors.drl" ) ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final Order order1 = new Order(11, "Bob");
- final OrderItem item11 = new OrderItem(order1, 1);
- final OrderItem item12 = new OrderItem(order1, 2);
- order1.addItem(item11);
- order1.addItem(item12);
+ final Order order1 = new Order( 11,
+ "Bob" );
+ final OrderItem item11 = new OrderItem( order1,
+ 1 );
+ final OrderItem item12 = new OrderItem( order1,
+ 2 );
+ order1.addItem( item11 );
+ order1.addItem( item12 );
- workingMemory.insert(order1);
- workingMemory.insert(item11);
- workingMemory.insert(item12);
+ workingMemory.insert( order1 );
+ workingMemory.insert( item11 );
+ workingMemory.insert( item12 );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- assertSame(order1.getStatus(), list.get(0));
- }
+ assertSame( order1.getStatus(),
+ list.get( 0 ) );
+ }
- public void testFromArrayIteration() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FromArrayIteration.drl")));
+ public void testFromArrayIteration() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FromArrayIteration.drl" ) ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- final WorkingMemory session = ruleBase.newStatefulSession();
- List list = new ArrayList();
+ final WorkingMemory session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
- session.setGlobal("list", list);
- session.insert(new DomainObjectHolder());
+ session.setGlobal( "list",
+ list );
+ session.insert( new DomainObjectHolder() );
- session.fireAllRules();
+ session.fireAllRules();
- assertEquals(3, list.size());
+ assertEquals( 3,
+ list.size() );
- assertEquals("Message3", list.get(0));
- assertEquals("Message2", list.get(1));
- assertEquals("Message1", list.get(2));
+ assertEquals( "Message3",
+ list.get( 0 ) );
+ assertEquals( "Message2",
+ list.get( 1 ) );
+ assertEquals( "Message1",
+ list.get( 2 ) );
- }
+ }
- public void testSubNetworks() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_SubNetworks.drl")));
+ public void testSubNetworks() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_SubNetworks.drl" ) ) );
- final RuleBase ruleBase = getRuleBase();
+ final RuleBase ruleBase = getRuleBase();
- try {
- ruleBase.addPackage(builder.getPackage());
- } catch (Exception e) {
- e.printStackTrace();
- fail("Should not raise any exception!");
- }
+ try {
+ ruleBase.addPackage( builder.getPackage() );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ fail( "Should not raise any exception!" );
+ }
- }
+ }
- public void testFinalClass() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_FinalClass.drl")));
+ public void testFinalClass() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FinalClass.drl" ) ) );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(builder.getPackage());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final PersonFinal bob = new PersonFinal();
- bob.setName("bob");
- bob.setStatus(null);
+ final PersonFinal bob = new PersonFinal();
+ bob.setName( "bob" );
+ bob.setStatus( null );
- workingMemory.insert(bob);
+ workingMemory.insert( bob );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- // Dynamic addition of rules which use the final class are not supported
- // yet
- // final PackageBuilder builder2 = new PackageBuilder();
- // builder2.addPackageFromDrl( new InputStreamReader(
- // getClass().getResourceAsStream( "test_FinalClass2.drl" ) ) );
- // ruleBase.addPackage( builder2.getPackage() );
- //
- // // it will automatically fire the rule
- // assertEquals( 2,
- // list.size() );
- }
+ // Dynamic addition of rules which use the final class are not supported
+ // yet
+ // final PackageBuilder builder2 = new PackageBuilder();
+ // builder2.addPackageFromDrl( new InputStreamReader(
+ // getClass().getResourceAsStream( "test_FinalClass2.drl" ) ) );
+ // ruleBase.addPackage( builder2.getPackage() );
+ //
+ // // it will automatically fire the rule
+ // assertEquals( 2,
+ // list.size() );
+ }
- public void testEvalRewriteMatches() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_EvalRewriteMatches.drl")));
- final Package pkg = builder.getPackage();
+ public void testEvalRewriteMatches() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EvalRewriteMatches.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final Order order1 = new Order(14, "Mark");
- final OrderItem item11 = new OrderItem(order1, 1);
- final OrderItem item12 = new OrderItem(order1, 2);
- order1.addItem(item11);
- order1.addItem(item12);
+ final Order order1 = new Order( 14,
+ "Mark" );
+ final OrderItem item11 = new OrderItem( order1,
+ 1 );
+ final OrderItem item12 = new OrderItem( order1,
+ 2 );
+ order1.addItem( item11 );
+ order1.addItem( item12 );
- workingMemory.insert(order1);
- workingMemory.insert(item11);
- workingMemory.insert(item12);
+ workingMemory.insert( order1 );
+ workingMemory.insert( item11 );
+ workingMemory.insert( item12 );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(2, list.size());
- assertTrue(list.contains(item11));
- assertTrue(list.contains(item12));
- }
+ assertEquals( 2,
+ list.size() );
+ assertTrue( list.contains( item11 ) );
+ assertTrue( list.contains( item12 ) );
+ }
- public void testConsequenceBuilderException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ConsequenceBuilderException.drl")));
+ public void testConsequenceBuilderException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ConsequenceBuilderException.drl" ) ) );
- assertTrue(builder.hasErrors());
- }
+ assertTrue( builder.hasErrors() );
+ }
- public void testRuntimeTypeCoercion() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RuntimeTypeCoercion.drl")));
- final Package pkg = builder.getPackage();
+ public void testRuntimeTypeCoercion() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuntimeTypeCoercion.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final PolymorphicFact fact = new PolymorphicFact(new Integer(10));
- final FactHandle handle = workingMemory.insert(fact);
+ final PolymorphicFact fact = new PolymorphicFact( new Integer( 10 ) );
+ final FactHandle handle = workingMemory.insert( fact );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(1, list.size());
- assertEquals(fact.getData(), list.get(0));
+ assertEquals( 1,
+ list.size() );
+ assertEquals( fact.getData(),
+ list.get( 0 ) );
- fact.setData("10");
- workingMemory.update(handle, fact);
- workingMemory.fireAllRules();
+ fact.setData( "10" );
+ workingMemory.update( handle,
+ fact );
+ workingMemory.fireAllRules();
- assertEquals(2, list.size());
- assertEquals(fact.getData(), list.get(1));
+ assertEquals( 2,
+ list.size() );
+ assertEquals( fact.getData(),
+ list.get( 1 ) );
- try {
- fact.setData(new Boolean(true));
- workingMemory.update(handle, fact);
- fail("Should not allow to compare < with a Boolean object");
- } catch (ClassCastException cce) {
- // success, as can't use "<" to compare to a boolean
- }
+ try {
+ fact.setData( new Boolean( true ) );
+ workingMemory.update( handle,
+ fact );
+ fail( "Should not allow to compare < with a Boolean object" );
+ } catch ( ClassCastException cce ) {
+ // success, as can't use "<" to compare to a boolean
+ }
- }
+ }
- public void testRuntimeTypeCoercion2() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_RuntimeTypeCoercion2.drl")));
- final Package pkg = builder.getPackage();
+ public void testRuntimeTypeCoercion2() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuntimeTypeCoercion2.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- final Primitives fact = new Primitives();
- fact.setBooleanPrimitive(true);
- fact.setBooleanWrapper(new Boolean(true));
- fact.setObject(new Boolean(true));
- fact.setCharPrimitive('X');
- final FactHandle handle = workingMemory.insert(fact);
+ final Primitives fact = new Primitives();
+ fact.setBooleanPrimitive( true );
+ fact.setBooleanWrapper( new Boolean( true ) );
+ fact.setObject( new Boolean( true ) );
+ fact.setCharPrimitive( 'X' );
+ final FactHandle handle = workingMemory.insert( fact );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- int index = 0;
- assertEquals(list.toString(), 4, list.size());
- assertEquals("boolean", list.get(index++));
- assertEquals("boolean wrapper", list.get(index++));
- assertEquals("boolean object", list.get(index++));
- assertEquals("char", list.get(index++));
+ int index = 0;
+ assertEquals( list.toString(),
+ 4,
+ list.size() );
+ assertEquals( "boolean",
+ list.get( index++ ) );
+ assertEquals( "boolean wrapper",
+ list.get( index++ ) );
+ assertEquals( "boolean object",
+ list.get( index++ ) );
+ assertEquals( "char",
+ list.get( index++ ) );
- fact.setBooleanPrimitive(false);
- fact.setBooleanWrapper(null);
- fact.setCharPrimitive('\0');
- fact.setObject(new Character('X'));
- workingMemory.update(handle, fact);
- workingMemory.fireAllRules();
- assertEquals(5, list.size());
- assertEquals("char object", list.get(index++));
+ fact.setBooleanPrimitive( false );
+ fact.setBooleanWrapper( null );
+ fact.setCharPrimitive( '\0' );
+ fact.setObject( new Character( 'X' ) );
+ workingMemory.update( handle,
+ fact );
+ workingMemory.fireAllRules();
+ assertEquals( 5,
+ list.size() );
+ assertEquals( "char object",
+ list.get( index++ ) );
- fact.setObject(null);
- workingMemory.update(handle, fact);
- workingMemory.fireAllRules();
- assertEquals(6, list.size());
- assertEquals("null object", list.get(index++));
+ fact.setObject( null );
+ workingMemory.update( handle,
+ fact );
+ workingMemory.fireAllRules();
+ assertEquals( 6,
+ list.size() );
+ assertEquals( "null object",
+ list.get( index++ ) );
- }
+ }
- public void testAlphaEvalWithOrCE() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_AlphaEvalWithOrCE.drl")));
- final Package pkg = builder.getPackage();
+ public void testAlphaEvalWithOrCE() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AlphaEvalWithOrCE.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- FactA a = new FactA();
- a.setField1("a value");
+ FactA a = new FactA();
+ a.setField1( "a value" );
- workingMemory.insert(a);
- workingMemory.insert(new FactB());
- workingMemory.insert(new FactC());
+ workingMemory.insert( a );
+ workingMemory.insert( new FactB() );
+ workingMemory.insert( new FactC() );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals("should not have fired", 0, list.size());
- }
+ assertEquals( "should not have fired",
+ 0,
+ list.size() );
+ }
- public void testModifyBlock() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_ModifyBlock.drl")));
- final Package pkg = builder.getPackage();
+ public void testModifyBlock() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ModifyBlock.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- Person bob = new Person("Bob");
- bob.setStatus("hungry");
+ Person bob = new Person( "Bob" );
+ bob.setStatus( "hungry" );
- Cheese c = new Cheese();
+ Cheese c = new Cheese();
- workingMemory.insert(bob);
- workingMemory.insert(c);
+ workingMemory.insert( bob );
+ workingMemory.insert( c );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals(10, c.getPrice());
- assertEquals("fine", bob.getStatus());
- }
+ assertEquals( 10,
+ c.getPrice() );
+ assertEquals( "fine",
+ bob.getStatus() );
+ }
- // this test requires mvel 1.2.19. Leaving it commented until mvel is
- // released.
- public void testJavaModifyBlock() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_JavaModifyBlock.drl")));
- final Package pkg = builder.getPackage();
+ // this test requires mvel 1.2.19. Leaving it commented until mvel is
+ // released.
+ public void testJavaModifyBlock() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_JavaModifyBlock.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- Person bob = new Person("Bob", 30);
- bob.setStatus("hungry");
- workingMemory.insert(bob);
- workingMemory.insert(new Cheese());
- workingMemory.insert(new Cheese());
+ Person bob = new Person( "Bob",
+ 30 );
+ bob.setStatus( "hungry" );
+ workingMemory.insert( bob );
+ workingMemory.insert( new Cheese() );
+ workingMemory.insert( new Cheese() );
- workingMemory.fireAllRules(2);
+ workingMemory.fireAllRules( 2 );
- assertEquals("should have fired only once", 1, list.size());
- assertEquals("full", bob.getStatus());
- assertEquals(31, bob.getAge());
- }
+ assertEquals( "should have fired only once",
+ 1,
+ list.size() );
+ assertEquals( "full",
+ bob.getStatus() );
+ assertEquals( 31,
+ bob.getAge() );
+ }
- public void testOrCE() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_OrCE.drl")));
- final Package pkg = builder.getPackage();
+ public void testOrCE() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_OrCE.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- workingMemory.insert(new Cheese("brie", 10));
- workingMemory.insert(new Person("bob"));
+ workingMemory.insert( new Cheese( "brie",
+ 10 ) );
+ workingMemory.insert( new Person( "bob" ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals("should have fired once", 1, list.size());
- }
+ assertEquals( "should have fired once",
+ 1,
+ list.size() );
+ }
- public void testDeepNestedConstraints() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_DeepNestedConstraints.drl")));
- final Package pkg = builder.getPackage();
+ public void testDeepNestedConstraints() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DeepNestedConstraints.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- workingMemory.insert(new Person("bob", "muzzarela"));
- workingMemory.insert(new Cheese("brie", 10));
- workingMemory.insert(new Cheese("muzzarela", 80));
+ workingMemory.insert( new Person( "bob",
+ "muzzarela" ) );
+ workingMemory.insert( new Cheese( "brie",
+ 10 ) );
+ workingMemory.insert( new Cheese( "muzzarela",
+ 80 ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals("should have fired twice", 2, list.size());
- }
+ assertEquals( "should have fired twice",
+ 2,
+ list.size() );
+ }
- public void testGetFactHandleEqualityBehavior() throws Exception {
- final RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setAssertBehaviour(RuleBaseConfiguration.AssertBehaviour.EQUALITY);
- final RuleBase ruleBase = RuleBaseFactory.newRuleBase(conf);
+ public void testGetFactHandleEqualityBehavior() throws Exception {
+ final RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setAssertBehaviour( RuleBaseConfiguration.AssertBehaviour.EQUALITY );
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase( conf );
- final StatefulSession session = ruleBase.newStatefulSession();
+ final StatefulSession session = ruleBase.newStatefulSession();
- CheeseEqual cheese = new CheeseEqual("stilton", 10);
- session.insert(cheese);
- FactHandle fh = session.getFactHandle(new CheeseEqual("stilton", 10));
- assertNotNull(fh);
- }
+ CheeseEqual cheese = new CheeseEqual( "stilton",
+ 10 );
+ session.insert( cheese );
+ FactHandle fh = session.getFactHandle( new CheeseEqual( "stilton",
+ 10 ) );
+ assertNotNull( fh );
+ }
- public void testGetFactHandleIdentityBehavior() throws Exception {
- final RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setAssertBehaviour(RuleBaseConfiguration.AssertBehaviour.IDENTITY);
- final RuleBase ruleBase = RuleBaseFactory.newRuleBase(conf);
+ public void testGetFactHandleIdentityBehavior() throws Exception {
+ final RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setAssertBehaviour( RuleBaseConfiguration.AssertBehaviour.IDENTITY );
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase( conf );
- final StatefulSession session = ruleBase.newStatefulSession();
+ final StatefulSession session = ruleBase.newStatefulSession();
- CheeseEqual cheese = new CheeseEqual("stilton", 10);
- session.insert(cheese);
- FactHandle fh1 = session.getFactHandle(new Cheese("stilton", 10));
- assertNull(fh1);
- FactHandle fh2 = session.getFactHandle(cheese);
- assertNotNull(fh2);
- }
+ CheeseEqual cheese = new CheeseEqual( "stilton",
+ 10 );
+ session.insert( cheese );
+ FactHandle fh1 = session.getFactHandle( new Cheese( "stilton",
+ 10 ) );
+ assertNull( fh1 );
+ FactHandle fh2 = session.getFactHandle( cheese );
+ assertNotNull( fh2 );
+ }
- public void testOrCEFollowedByEval() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_OrCEFollowedByEval.drl")));
- final Package pkg = builder.getPackage();
+ public void testOrCEFollowedByEval() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_OrCEFollowedByEval.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal("results", list);
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "results",
+ list );
- workingMemory.insert(new FactA("X"));
- InternalFactHandle b = (InternalFactHandle) workingMemory
- .insert(new FactB("X"));
+ workingMemory.insert( new FactA( "X" ) );
+ InternalFactHandle b = (InternalFactHandle) workingMemory.insert( new FactB( "X" ) );
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals("should have fired", 2, list.size());
- assertTrue(list.contains(b.getObject()));
- }
+ assertEquals( "should have fired",
+ 2,
+ list.size() );
+ assertTrue( list.contains( b.getObject() ) );
+ }
- public void testNPEOnMVELAlphaPredicates() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl(new InputStreamReader(getClass()
- .getResourceAsStream("test_NPEOnMVELPredicate.drl")));
- final Package pkg = builder.getPackage();
+ public void testNPEOnMVELAlphaPredicates() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NPEOnMVELPredicate.drl" ) ) );
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage(pkg);
- final StatefulSession session = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final StatefulSession session = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- session.setGlobal("results", list);
+ final List list = new ArrayList();
+ session.setGlobal( "results",
+ list );
- Cheese cheese = new Cheese("stilton", 10);
- Cheesery cheesery = new Cheesery();
- cheesery.addCheese(cheese);
- Person bob = new Person("bob", "stilton");
- Cheese cheese2 = new Cheese();
- bob.setCheese(cheese2);
+ Cheese cheese = new Cheese( "stilton",
+ 10 );
+ Cheesery cheesery = new Cheesery();
+ cheesery.addCheese( cheese );
+ Person bob = new Person( "bob",
+ "stilton" );
+ Cheese cheese2 = new Cheese();
+ bob.setCheese( cheese2 );
- FactHandle p = session.insert(bob);
- FactHandle c = session.insert(cheesery);
+ FactHandle p = session.insert( bob );
+ FactHandle c = session.insert( cheesery );
- session.fireAllRules();
+ session.fireAllRules();
- assertEquals("should not have fired", 0, list.size());
+ assertEquals( "should not have fired",
+ 0,
+ list.size() );
- cheese2.setType("stilton");
+ cheese2.setType( "stilton" );
- session.update(p, bob);
- session.fireAllRules();
+ session.update( p,
+ bob );
+ session.fireAllRules();
- assertEquals(1, list.size());
+ assertEquals( 1,
+ list.size() );
- }
+ }
}
More information about the jboss-svn-commits
mailing list