[jboss-svn-commits] JBL Code SVN: r18864 - in labs/jbossrules/branches/4.0.x/drools-compiler/src/test: resources/org/drools/integrationtests and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 11 22:46:50 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-11 22:46:49 -0400 (Tue, 11 Mar 2008)
New Revision: 18864
Added:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_MergePackageWithSameRuleNames1.drl
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_MergePackageWithSameRuleNames2.drl
Modified:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
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-12 02:46:42 UTC (rev 18863)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-12 02:46:49 UTC (rev 18864)
@@ -121,4580 +121,4098 @@
/** 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());
+ }
- public void testCell() throws Exception {
- final Cell cell1 = new Cell( 9 );
- final Cell cell = new Cell( 0 );
+ public void testCell() throws Exception {
+ final Cell cell1 = new Cell(9);
+ final Cell cell = new Cell(0);
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "evalmodify.drl" ) ) );
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("evalmodify.drl")));
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
- final WorkingMemory memory = ruleBase.newStatefulSession();
- memory.insert( cell1 );
- memory.insert( cell );
- memory.fireAllRules();
- assertEquals( 9,
- cell.getValue() );
- }
+ final WorkingMemory memory = ruleBase.newStatefulSession();
+ memory.insert(cell1);
+ memory.insert(cell);
+ memory.fireAllRules();
+ assertEquals(9, cell.getValue());
+ }
- public void testNesting() throws Exception {
- Person p = new Person();
- p.setName( "Michael" );
+ public void testNesting() throws Exception {
+ Person p = new Person();
+ p.setName("Michael");
- Address add1 = new Address();
- add1.setStreet( "High" );
+ Address add1 = new Address();
+ add1.setStreet("High");
- Address add2 = new Address();
- add2.setStreet( "Low" );
+ Address add2 = new Address();
+ add2.setStreet("Low");
- List l = new ArrayList();
- l.add( add1 );
- l.add( add2 );
+ List l = new ArrayList();
+ l.add(add1);
+ l.add(add2);
- p.setAddresses( l );
+ p.setAddresses(l);
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "nested_fields.drl" ) ) );
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("nested_fields.drl")));
- assertFalse( builder.getErrors().toString(),
- builder.hasErrors() );
+ assertFalse(builder.getErrors().toString(), builder.hasErrors());
- 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() );
+ 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());
- RuleDescr rule = (RuleDescr) desc.getRules().get( 0 );
- List ruleAttrs = rule.getAttributes();
- assertEquals( 1,
- ruleAttrs.size() );
+ 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() );
+ assertEquals("mvel", ((AttributeDescr) ruleAttrs.get(0)).getValue());
+ assertEquals("dialect", ((AttributeDescr) ruleAttrs.get(0)).getName());
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
- final WorkingMemory memory = ruleBase.newStatefulSession();
+ final WorkingMemory memory = ruleBase.newStatefulSession();
- memory.insert( p );
- memory.fireAllRules();
+ memory.insert(p);
+ memory.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();
+ 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 RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
- workingMemory.setGlobal( "list",
- list );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ workingMemory.setGlobal("list", list);
- final Cheese cheddar = new Cheese( "cheddar",
- 5 );
- final FactHandle h = workingMemory.insert( cheddar );
+ final Cheese cheddar = new Cheese("cheddar", 5);
+ final FactHandle h = workingMemory.insert(cheddar);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- // just one added
- assertEquals( "got cheese",
- list.get( 0 ) );
- assertEquals( 1,
- list.size() );
+ // just one added
+ assertEquals("got cheese", list.get(0));
+ assertEquals(1, list.size());
- workingMemory.retract( h );
- workingMemory.fireAllRules();
+ workingMemory.retract(h);
+ workingMemory.fireAllRules();
- // still just one
- assertEquals( 1,
- list.size() );
+ // still just one
+ assertEquals(1, list.size());
- workingMemory.insert( new Cheese( "stilton",
- 5 ) );
- workingMemory.fireAllRules();
+ workingMemory.insert(new Cheese("stilton", 5));
+ workingMemory.fireAllRules();
- // now have one more
- assertEquals( 2,
- list.size() );
+ // now have one more
+ assertEquals(2, 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();
+ 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();
- final Cheese stilton = new Cheese( "stinky",
- 5 );
- workingMemory.insert( stilton );
- final QueryResults results = workingMemory.getQueryResults( "simple query" );
- assertEquals( 1,
- results.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 testEval() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("eval_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();
- workingMemory.setGlobal( "five",
- new Integer( 5 ) );
+ workingMemory.setGlobal("five", new Integer(5));
- 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 );
- workingMemory.fireAllRules();
+ final Cheese stilton = new Cheese("stilton", 5);
+ workingMemory.insert(stilton);
+ workingMemory.fireAllRules();
- assertEquals( stilton,
- list.get( 0 ) );
- }
+ assertEquals(stilton, list.get(0));
+ }
- public void testJaninoEval() throws Exception {
- final PackageBuilderConfiguration config = new PackageBuilderConfiguration();
- JavaDialectConfiguration javaConf = (JavaDialectConfiguration) config.getDialectConfiguration( "java" );
- javaConf.setCompiler( JavaDialectConfiguration.JANINO );
+ public void testJaninoEval() throws Exception {
+ final PackageBuilderConfiguration config = new PackageBuilderConfiguration();
+ JavaDialectConfiguration javaConf = (JavaDialectConfiguration) config
+ .getDialectConfiguration("java");
+ javaConf.setCompiler(JavaDialectConfiguration.JANINO);
- final PackageBuilder builder = new PackageBuilder( config );
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "eval_rule_test.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder(config);
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("eval_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();
- workingMemory.setGlobal( "five",
- new Integer( 5 ) );
+ workingMemory.setGlobal("five", new Integer(5));
- 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 );
- workingMemory.fireAllRules();
+ final Cheese stilton = new Cheese("stilton", 5);
+ workingMemory.insert(stilton);
+ workingMemory.fireAllRules();
- assertEquals( stilton,
- list.get( 0 ) );
- }
+ assertEquals(stilton, list.get(0));
+ }
- 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();
+ 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 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 Person foo = new Person( "foo" );
- workingMemory.insert( foo );
- workingMemory.fireAllRules();
+ final Person foo = new Person("foo");
+ workingMemory.insert(foo);
+ workingMemory.fireAllRules();
- assertEquals( foo,
- list.get( 0 ) );
- }
+ assertEquals(foo, list.get(0));
+ }
- 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();
+ 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 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( "two",
- new Integer( 2 ) );
+ workingMemory.setGlobal("two", new Integer(2));
- final List list = new ArrayList();
- workingMemory.setGlobal( "list",
- list );
+ final List list = new ArrayList();
+ workingMemory.setGlobal("list", list);
- final PersonInterface peter = new Person( "peter",
- null,
- 12 );
- workingMemory.insert( peter );
- final PersonInterface jane = new Person( "jane",
- null,
- 10 );
- workingMemory.insert( jane );
+ final PersonInterface peter = new Person("peter", null, 12);
+ workingMemory.insert(peter);
+ final PersonInterface jane = new Person("jane", null, 10);
+ workingMemory.insert(jane);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( jane,
- list.get( 0 ) );
- assertEquals( peter,
- list.get( 1 ) );
- }
+ assertEquals(jane, list.get(0));
+ assertEquals(peter, list.get(1));
+ }
- 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();
+ 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 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( "two",
- new Integer( 2 ) );
+ workingMemory.setGlobal("two", new Integer(2));
- final List list = new ArrayList();
- workingMemory.setGlobal( "list",
- list );
+ final List list = new ArrayList();
+ workingMemory.setGlobal("list", list);
- final PersonInterface peter = new Person( "peter",
- null,
- 12 );
- workingMemory.insert( peter );
- final PersonInterface jane = new Person( "jane",
- null,
- 10 );
- workingMemory.insert( jane );
+ final PersonInterface peter = new Person("peter", null, 12);
+ workingMemory.insert(peter);
+ final PersonInterface jane = new Person("jane", null, 10);
+ workingMemory.insert(jane);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( jane,
- list.get( 0 ) );
- assertEquals( peter,
- list.get( 1 ) );
- }
+ assertEquals(jane, list.get(0));
+ assertEquals(peter, list.get(1));
+ }
- public void testNullBehaviour() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "null_behaviour.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final PersonInterface p1 = new Person( "michael",
- "food",
- 40 );
- final PersonInterface p2 = new Person( null,
- "drink",
- 30 );
- workingMemory.insert( p1 );
- workingMemory.insert( p2 );
+ final PersonInterface p1 = new Person("michael", "food", 40);
+ final PersonInterface p2 = new Person(null, "drink", 30);
+ workingMemory.insert(p1);
+ workingMemory.insert(p2);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- }
+ }
- public void testNullConstraint() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "null_constraint.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List foo = new ArrayList();
- workingMemory.setGlobal( "messages",
- foo );
+ 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 );
+ final PersonInterface p1 = new Person(null, "food", 40);
+ final Primitives p2 = new Primitives();
+ p2.setArrayAttribute(null);
- workingMemory.insert( p1 );
- workingMemory.insert( p2 );
+ workingMemory.insert(p1);
+ workingMemory.insert(p2);
- workingMemory.fireAllRules();
- assertEquals( 2,
- foo.size() );
+ workingMemory.fireAllRules();
+ assertEquals(2, foo.size());
- }
+ }
- 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 testImportFunctions() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_ImportFunctions.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);
+ 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();
- assertEquals( 4,
- list.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 ) );
- }
+ assertEquals("rule1", list.get(0));
+ assertEquals("rule2", list.get(1));
+ assertEquals("rule3", list.get(2));
+ assertEquals("rule4", list.get(3));
+ }
- public void testBasicFrom() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_From.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 RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
- 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 );
+ 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);
- 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 );
+ 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);
- Person p = new Person( "stilton" );
- workingMemory.insert( p );
+ Person p = new Person("stilton");
+ workingMemory.insert(p);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- // from using a global
- assertEquals( 2,
- list1.size() );
- assertEquals( cheddar,
- list1.get( 0 ) );
- assertEquals( stilton,
- list1.get( 1 ) );
+ // from using a global
+ assertEquals(2, list1.size());
+ assertEquals(cheddar, list1.get(0));
+ assertEquals(stilton, list1.get(1));
- // from using a declaration
- assertEquals( 2,
- list2.size() );
- assertEquals( cheddar,
- list2.get( 0 ) );
- assertEquals( stilton,
- list2.get( 1 ) );
+ // from using a declaration
+ assertEquals(2, list2.size());
+ assertEquals(cheddar, list2.get(0));
+ assertEquals(stilton, list2.get(1));
- // from using a declaration
- assertEquals( 1,
- list3.size() );
- assertEquals( stilton,
- list3.get( 0 ) );
- }
+ // from using a declaration
+ assertEquals(1, list3.size());
+ assertEquals(stilton, list3.get(0));
+ }
- public void testFromWithParams() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FromWithParams.drl" ) ) );
- final Package pkg = builder.getPackage();
+ public void testFromWithParams() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_FromWithParams.drl")));
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
- 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 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 Person bob = new Person( "bob" );
- workingMemory.insert( bob );
+ final Person bob = new Person("bob");
+ workingMemory.insert(bob);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 6,
- list.size() );
+ assertEquals(6, list.size());
- final List array = (List) list.get( 0 );
- assertEquals( 3,
- array.size() );
- final Person p = (Person) array.get( 0 );
- assertSame( p,
- bob );
+ final List array = (List) list.get(0);
+ assertEquals(3, array.size());
+ final Person p = (Person) array.get(0);
+ assertSame(p, bob);
- assertEquals( new Integer( 42 ),
- array.get( 1 ) );
+ assertEquals(new Integer(42), array.get(1));
- final List nested = (List) array.get( 2 );
- assertEquals( "x",
- nested.get( 0 ) );
- assertEquals( "y",
- nested.get( 1 ) );
+ final List nested = (List) array.get(2);
+ assertEquals("x", nested.get(0));
+ assertEquals("y", nested.get(1));
- final Map map = (Map) list.get( 1 );
- assertEquals( 2,
- map.keySet().size() );
+ final Map map = (Map) list.get(1);
+ assertEquals(2, map.keySet().size());
- assertTrue( map.keySet().contains( bob ) );
- assertSame( globalObject,
- map.get( bob ) );
+ 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" ) );
+ 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 ) );
- }
+ 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();
- }
+ 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();
+ }
- 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());
+ 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());
- 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 );
+ 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);
- final String pretty = builder.getErrors().toString();
- assertFalse( pretty.equals( "" ) );
- assertEquals( pretty,
- runtime.getMessage() );
+ final String pretty = builder.getErrors().toString();
+ assertFalse(pretty.equals(""));
+ assertEquals(pretty, runtime.getMessage());
- }
+ }
- 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();
+ 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 );
+ final DroolsError err = builder.getErrors().getErrors()[0];
+ final RuleError ruleErr = (RuleError) err;
+ assertNotNull(ruleErr.getDescr());
+ assertTrue(ruleErr.getLine() != -1);
- final DroolsError errs[] = builder.getErrors().getErrors();
+ final DroolsError errs[] = builder.getErrors().getErrors();
- assertEquals( 3,
- builder.getErrors().getErrors().length );
+ assertEquals(3, builder.getErrors().getErrors().length);
- // 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() );
+ // 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
+ // 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 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( "" ) );
- }
+ 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(""));
+ }
- 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 testFunction() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_FunctionInConsequence.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( new Integer( 5 ),
- list.get( 0 ) );
- }
+ 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 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 PersonInterface person = new Person( "michael",
- "cheese" );
- person.setStatus( "start" );
- workingMemory.insert( person );
- workingMemory.fireAllRules();
+ final PersonInterface person = new Person("michael", "cheese");
+ person.setStatus("start");
+ workingMemory.insert(person);
+ 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(5, list.size());
+ assertTrue(list.contains("first"));
+ assertTrue(list.contains("second"));
+ assertTrue(list.contains("third"));
+ assertTrue(list.contains("fourth"));
+ assertTrue(list.contains("fifth"));
- }
+ }
- 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();
+ 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 mussarela = new Cheese( "Mussarela",
- 35 );
- workingMemory.insert( mussarela );
- final Cheese provolone = new Cheese( "Provolone",
- 20 );
- workingMemory.insert( provolone );
+ final Cheese mussarela = new Cheese("Mussarela", 35);
+ workingMemory.insert(mussarela);
+ final Cheese provolone = new Cheese("Provolone", 20);
+ workingMemory.insert(provolone);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- Assert.assertEquals( "The rule is being incorrectly fired",
- 35,
- mussarela.getPrice() );
- Assert.assertEquals( "Rule is incorrectly being fired",
- 20,
- provolone.getPrice() );
- }
+ 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 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();
- 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);
- try {
- workingMemory.fireAllRules();
- fail( "Should throw an Exception from the Consequence" );
- } catch ( final Exception e ) {
- assertEquals( "this should throw an exception",
- e.getCause().getMessage() );
- }
- }
+ try {
+ workingMemory.fireAllRules();
+ fail("Should throw an Exception from the Consequence");
+ } catch (final Exception e) {
+ assertEquals("this should throw an exception", e.getCause()
+ .getMessage());
+ }
+ }
- 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 void testCustomConsequenceException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_ConsequenceException.drl")));
+ final Package pkg = builder.getPackage();
- RuleBaseConfiguration conf = new RuleBaseConfiguration();
- CustomConsequenceExceptionHandler handler = new CustomConsequenceExceptionHandler();
- conf.setConsequenceExceptionHandler( handler );
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ CustomConsequenceExceptionHandler handler = new CustomConsequenceExceptionHandler();
+ conf.setConsequenceExceptionHandler(handler);
- final RuleBase ruleBase = getRuleBase( conf );
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase(conf);
+ 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();
+ workingMemory.fireAllRules();
- assertTrue( handler.isCalled() );
- }
+ assertTrue(handler.isCalled());
+ }
- public static class CustomConsequenceExceptionHandler
- implements
- ConsequenceExceptionHandler {
+ public static class CustomConsequenceExceptionHandler implements
+ ConsequenceExceptionHandler {
- private boolean called;
+ private boolean called;
- public void handleException(Activation activation,
- WorkingMemory workingMemory,
- Exception exception) {
- this.called = true;
- }
+ public void handleException(Activation activation,
+ WorkingMemory workingMemory, Exception exception) {
+ this.called = true;
+ }
- public boolean isCalled() {
- return this.called;
- }
+ public boolean isCalled() {
+ return this.called;
+ }
- }
+ }
- 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 void testFunctionException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_FunctionException.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 brie = new Cheese("brie", 12);
+ workingMemory.insert(brie);
- try {
- workingMemory.fireAllRules();
- fail( "Should throw an Exception from the Function" );
- } catch ( final Exception e ) {
- assertEquals( "this should throw an exception",
- e.getCause().getMessage() );
- }
- }
+ 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 void testEvalException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EvalException.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final Cheese brie = new Cheese( "brie",
- 12 );
+ final Cheese brie = new Cheese("brie", 12);
- 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() );
- }
- }
+ 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());
+ }
+ }
- public void testPredicateException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_PredicateException.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 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 );
+ final Cheese brie = new Cheese("brie", 12);
- 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() );
- }
- }
+ 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());
+ }
+ }
- public void testReturnValueException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ReturnValueException.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 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 );
+ final Cheese brie = new Cheese("brie", 12);
- 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" ) );
- }
- }
+ 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"));
+ }
+ }
- public void testMultiRestrictionFieldConstraint() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MultiRestrictionFieldConstraint.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 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 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 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 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 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 Person chili1 = new Person( "chili1" );
- chili1.setAge( 35 );
- chili1.setHair( "red" );
+ final Person chili1 = new Person("chili1");
+ chili1.setAge(35);
+ chili1.setHair("red");
- final Person chili2 = new Person( "chili2" );
- chili2.setAge( 38 );
- chili2.setHair( "indigigo" );
+ final Person chili2 = new Person("chili2");
+ chili2.setAge(38);
+ chili2.setHair("indigigo");
- final Person oldChili1 = new Person( "old chili2" );
- oldChili1.setAge( 45 );
- oldChili1.setHair( "green" );
+ final Person oldChili1 = new Person("old chili2");
+ oldChili1.setAge(45);
+ oldChili1.setHair("green");
- final Person oldChili2 = new Person( "old chili2" );
- oldChili2.setAge( 48 );
- oldChili2.setHair( "blue" );
+ final Person oldChili2 = new Person("old chili2");
+ oldChili2.setAge(48);
+ oldChili2.setHair("blue");
- workingMemory.insert( youngChili1 );
- workingMemory.insert( youngChili2 );
- workingMemory.insert( chili1 );
- workingMemory.insert( chili2 );
- workingMemory.insert( oldChili1 );
- workingMemory.insert( oldChili2 );
+ workingMemory.insert(youngChili1);
+ workingMemory.insert(youngChili2);
+ workingMemory.insert(chili1);
+ workingMemory.insert(chili2);
+ workingMemory.insert(oldChili1);
+ workingMemory.insert(oldChili2);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 1,
- list1.size() );
- assertTrue( list1.contains( chili1 ) );
+ assertEquals(1, list1.size());
+ assertTrue(list1.contains(chili1));
- assertEquals( 2,
- list2.size() );
- assertTrue( list2.contains( chili1 ) );
- assertTrue( list2.contains( chili2 ) );
+ assertEquals(2, list2.size());
+ assertTrue(list2.contains(chili1));
+ assertTrue(list2.contains(chili2));
- assertEquals( 2,
- list3.size() );
- assertTrue( list3.contains( youngChili1 ) );
- assertTrue( list3.contains( youngChili2 ) );
+ assertEquals(2, list3.size());
+ assertTrue(list3.contains(youngChili1));
+ assertTrue(list3.contains(youngChili2));
- assertEquals( 2,
- list4.size() );
- assertTrue( list4.contains( youngChili1 ) );
- assertTrue( list4.contains( chili1 ) );
- }
+ assertEquals(2, list4.size());
+ assertTrue(list4.contains(youngChili1));
+ assertTrue(list4.contains(chili1));
+ }
- public void testDumpers() throws Exception {
- final DrlParser parser = new DrlParser();
- final PackageDescr pkg = parser.parse( new InputStreamReader( getClass().getResourceAsStream( "test_Dumpers.drl" ) ) );
+ public void testDumpers() throws Exception {
+ final DrlParser parser = new DrlParser();
+ final PackageDescr pkg = parser.parse(new InputStreamReader(getClass()
+ .getResourceAsStream("test_Dumpers.drl")));
- PackageBuilder builder = new PackageBuilder();
- builder.addPackage( pkg );
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackage(pkg);
- RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
- WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
- List list = new ArrayList();
- workingMemory.setGlobal( "list",
- list );
+ List list = new ArrayList();
+ workingMemory.setGlobal("list", list);
- final Cheese brie = new Cheese( "brie",
- 12 );
- workingMemory.insert( brie );
+ final Cheese brie = new Cheese("brie", 12);
+ 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 DrlDumper drlDumper = new DrlDumper();
+ final String drlResult = drlDumper.dump(pkg);
+ builder = new PackageBuilder();
+ builder.addPackageFromDrl(new StringReader(drlResult));
- ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
- workingMemory = ruleBase.newStatefulSession();
+ ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
+ workingMemory = ruleBase.newStatefulSession();
- list = new ArrayList();
- workingMemory.setGlobal( "list",
- list );
+ list = new ArrayList();
+ workingMemory.setGlobal("list", list);
- 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 XmlDumper xmlDumper = new XmlDumper();
- final String xmlResult = xmlDumper.dump( pkg );
+ final XmlDumper xmlDumper = new XmlDumper();
+ final String xmlResult = xmlDumper.dump(pkg);
- // System.out.println( xmlResult );
+ // System.out.println( xmlResult );
- builder = new PackageBuilder();
- builder.addPackageFromXml( new StringReader( xmlResult ) );
+ builder = new PackageBuilder();
+ builder.addPackageFromXml(new StringReader(xmlResult));
- ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
- workingMemory = ruleBase.newStatefulSession();
+ ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
+ workingMemory = ruleBase.newStatefulSession();
- list = new ArrayList();
- workingMemory.setGlobal( "list",
- list );
+ list = new ArrayList();
+ workingMemory.setGlobal("list", list);
- 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));
+ }
- public void testContainsCheese() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ContainsCheese.drl" ) ) );
- final Package pkg = builder.getPackage();
+ public void testContainsCheese() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_ContainsCheese.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",
- 12 );
- workingMemory.insert( stilton );
- final Cheese brie = new Cheese( "brie",
- 10 );
- workingMemory.insert( brie );
+ final Cheese stilton = new Cheese("stilton", 12);
+ workingMemory.insert(stilton);
+ final Cheese brie = new Cheese("brie", 10);
+ workingMemory.insert(brie);
- final Cheesery cheesery = new Cheesery();
- cheesery.getCheeses().add( stilton );
- workingMemory.insert( cheesery );
+ final Cheesery cheesery = new Cheesery();
+ cheesery.getCheeses().add(stilton);
+ workingMemory.insert(cheesery);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 2,
- list.size() );
+ assertEquals(2, list.size());
- assertEquals( stilton,
- list.get( 0 ) );
- assertEquals( brie,
- list.get( 1 ) );
- }
+ assertEquals(stilton, list.get(0));
+ assertEquals(brie, list.get(1));
+ }
- public void testStaticFieldReference() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_StaticField.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 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 Cheesery cheesery1 = new Cheesery();
- cheesery1.setStatus( Cheesery.SELLING_CHEESE );
- cheesery1.setMaturity( Maturity.OLD );
- workingMemory.insert( cheesery1 );
+ final Cheesery cheesery1 = new Cheesery();
+ cheesery1.setStatus(Cheesery.SELLING_CHEESE);
+ cheesery1.setMaturity(Maturity.OLD);
+ workingMemory.insert(cheesery1);
- final Cheesery cheesery2 = new Cheesery();
- cheesery2.setStatus( Cheesery.MAKING_CHEESE );
- cheesery2.setMaturity( Maturity.YOUNG );
- workingMemory.insert( cheesery2 );
+ final Cheesery cheesery2 = new Cheesery();
+ cheesery2.setStatus(Cheesery.MAKING_CHEESE);
+ cheesery2.setMaturity(Maturity.YOUNG);
+ workingMemory.insert(cheesery2);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 2,
- list.size() );
+ assertEquals(2, list.size());
- assertEquals( cheesery1,
- list.get( 0 ) );
- assertEquals( cheesery2,
- list.get( 1 ) );
- }
+ assertEquals(cheesery1, list.get(0));
+ assertEquals(cheesery2, list.get(1));
+ }
- public void testDuplicateRuleNames() throws Exception {
- PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DuplicateRuleName1.drl" ) ) );
+ public void testDuplicateRuleNames() throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_DuplicateRuleName1.drl")));
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
- builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DuplicateRuleName2.drl" ) ) );
- ruleBase.addPackage( builder.getPackage() );
+ builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_DuplicateRuleName2.drl")));
+ ruleBase.addPackage(builder.getPackage());
- // @todo: this is from JBRULES-394 - maybe we should test more stuff
- // here?
+ // @todo: this is from JBRULES-394 - maybe we should test more stuff
+ // here?
- }
+ }
- public void testNullValuesIndexing() throws Exception {
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_NullValuesIndexing.drl" ) );
+ 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();
+ 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();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg1);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- // Adding person with null name and likes attributes
- final PersonInterface bob = new Person( null,
- null );
- bob.setStatus( "P1" );
- final PersonInterface pete = new Person( null,
- null );
- bob.setStatus( "P2" );
- workingMemory.insert( bob );
- workingMemory.insert( pete );
+ // Adding person with null name and likes attributes
+ final PersonInterface bob = new Person(null, null);
+ bob.setStatus("P1");
+ final PersonInterface pete = new Person(null, null);
+ bob.setStatus("P2");
+ workingMemory.insert(bob);
+ workingMemory.insert(pete);
- 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() );
+ 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 testEmptyRule() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EmptyRule.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( "fired2" ) );
- }
+ 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 testjustEval() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_NoPatterns.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("fired3"));
+ }
- public void testOrWithBinding() throws Exception {
+ public void testOrWithBinding() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_OrWithBindings.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( "results",
- list );
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- final Person hola = new Person( "hola" );
- workingMemory.insert( hola );
+ final Person hola = new Person("hola");
+ workingMemory.insert(hola);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 0,
- list.size() );
- workingMemory.insert( new State( "x" ) );
+ assertEquals(0, list.size());
+ workingMemory.insert(new State("x"));
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 1,
- list.size() );
- assertTrue( list.contains( hola ) );
+ assertEquals(1, list.size());
+ assertTrue(list.contains(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;
- }
+ 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;
+ }
- 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();
+ 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();
- // Get the bytes of the serialized object
- final byte[] bytes = bos.toByteArray();
- return bytes;
- }
+ // Get the bytes of the serialized object
+ final byte[] bytes = bos.toByteArray();
+ return bytes;
+ }
- public void testJoinNodeModifyObject() throws Exception {
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_JoinNodeModifyObject.drl" ) );
+ public void testJoinNodeModifyObject() throws Exception {
+ final Reader reader = new InputStreamReader(getClass()
+ .getResourceAsStream("test_JoinNodeModifyObject.drl"));
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( reader );
- final Package pkg1 = builder.getPackage();
+ 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();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg1);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List orderedFacts = new ArrayList();
- final List errors = new ArrayList();
+ final List orderedFacts = new ArrayList();
+ final List errors = new ArrayList();
- workingMemory.setGlobal( "orderedNumbers",
- orderedFacts );
- workingMemory.setGlobal( "errors",
- errors );
+ workingMemory.setGlobal("orderedNumbers", orderedFacts);
+ workingMemory.setGlobal("errors", errors);
- 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 int MAX = 5;
+ for (int i = 1; i <= MAX; i++) {
+ final IndexedNumber n = new IndexedNumber(i, MAX - i + 1);
+ workingMemory.insert(n);
+ }
+ workingMemory.fireAllRules();
- Assert.assertTrue( "Processing generated errors: " + errors.toString(),
- errors.isEmpty() );
+ Assert.assertTrue("Processing generated errors: " + errors.toString(),
+ errors.isEmpty());
- 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() );
- }
- }
+ 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());
+ }
+ }
- public void testQuery2() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Query.drl" ) ) );
+ public void testQuery2() 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( "assertedobjquery" );
- assertEquals( 1,
- results.size() );
- assertEquals( new InsertedObject( "value1" ),
- results.get( 0 ).get( 0 ) );
- }
+ final QueryResults results = workingMemory
+ .getQueryResults("assertedobjquery");
+ assertEquals(1, results.size());
+ assertEquals(new InsertedObject("value1"), results.get(0).get(0));
+ }
- public void testQueryWithParams() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_QueryWithParams.drl" ) ) );
+ public void testQueryWithParams() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_QueryWithParams.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();
- QueryResults results = workingMemory.getQueryResults( "assertedobjquery",
- new String[]{"value1"} );
- assertEquals( 1,
- results.size() );
- assertEquals( new InsertedObject( "value1" ),
- results.get( 0 ).get( 0 ) );
+ QueryResults results = workingMemory.getQueryResults(
+ "assertedobjquery", new String[] { "value1" });
+ assertEquals(1, results.size());
+ assertEquals(new InsertedObject("value1"), results.get(0).get(0));
- results = workingMemory.getQueryResults( "assertedobjquery",
- new String[]{"value3"} );
- assertEquals( 0,
- results.size() );
+ results = workingMemory.getQueryResults("assertedobjquery",
+ new String[] { "value3" });
+ assertEquals(0, results.size());
- results = workingMemory.getQueryResults( "assertedobjquery2",
- new String[]{null, "value2"} );
- assertEquals( 1,
- results.size() );
- assertEquals( new InsertedObject( "value2" ),
- 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));
- results = workingMemory.getQueryResults( "assertedobjquery2",
- new String[]{"value3", "value2"} );
- assertEquals( 1,
- results.size() );
- assertEquals( new InsertedObject( "value2" ),
- results.get( 0 ).get( 0 ) );
- }
+ results = workingMemory.getQueryResults("assertedobjquery2",
+ new String[] { "value3", "value2" });
+ assertEquals(1, results.size());
+ assertEquals(new InsertedObject("value2"), results.get(0).get(0));
+ }
- public void testTwoQuerries() throws Exception {
- // @see JBRULES-410 More than one Query definition causes an incorrect
- // Rete network to be built.
+ public void testTwoQuerries() throws Exception {
+ // @see JBRULES-410 More than one Query definition causes an incorrect
+ // Rete network to be built.
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_TwoQuerries.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_TwoQuerries.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 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 );
+ 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);
- workingMemory.insert( per1 );
- workingMemory.insert( per2 );
+ workingMemory.insert(per1);
+ workingMemory.insert(per2);
- QueryResults results = workingMemory.getQueryResults( "find stinky cheeses" );
- assertEquals( 1,
- results.size() );
+ QueryResults results = workingMemory
+ .getQueryResults("find stinky cheeses");
+ assertEquals(1, results.size());
- results = workingMemory.getQueryResults( "find pensioners" );
- assertEquals( 1,
- results.size() );
- }
+ results = workingMemory.getQueryResults("find pensioners");
+ assertEquals(1, results.size());
+ }
- 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();
+ 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();
- // now create some test data
- final Driver driver = new Driver();
- final Policy policy = new Policy();
+ // now create some test data
+ final Driver driver = new Driver();
+ final Policy policy = new Policy();
- wm.insert( driver );
- wm.insert( policy );
+ wm.insert(driver);
+ wm.insert(policy);
- wm.fireAllRules();
+ wm.fireAllRules();
- assertEquals( 120,
- policy.getBasePrice() );
- }
+ assertEquals(120, policy.getBasePrice());
+ }
- public void testLLR() throws Exception {
+ public void testLLR() throws Exception {
- // read in the source
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_JoinNodeModifyTuple.drl" ) );
- final RuleBase ruleBase = loadRuleBase( reader );
+ // read in the source
+ final Reader reader = new InputStreamReader(getClass()
+ .getResourceAsStream("test_JoinNodeModifyTuple.drl"));
+ final RuleBase ruleBase = loadRuleBase(reader);
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ final WorkingMemory wm = ruleBase.newStatefulSession();
- // 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 );
+ // 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);
- 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.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);
- 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 );
+ // 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);
- 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.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);
- 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 );
+ // 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.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 );
+ 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();
- // 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 );
+ // 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.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 );
+ 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();
+ }
- public void testDoubleQueryWithExists() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DoubleQueryWithExists.drl" ) ) );
- final Package pkg = builder.getPackage();
+ public void testDoubleQueryWithExists() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_DoubleQueryWithExists.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 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();
+ 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();
- QueryResults queryResults = workingMemory.getQueryResults( "2 persons with the same status" );
- assertEquals( 2,
- queryResults.size() );
+ QueryResults 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() );
+ // 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());
- // 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() );
+ // 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());
- // 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() );
+ // 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());
- // 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() );
+ // 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());
- // 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() );
+ // 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());
- // 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, 3 ], america=[ ]
+ p3.setStatus("europe");
+ workingMemory.update(c3FactHandle, p3);
+ workingMemory.fireAllRules();
+ queryResults = workingMemory
+ .getQueryResults("2 persons with the same status");
+ assertEquals(2, 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();
+ public void testFunctionWithPrimitives() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_FunctionWithPrimitives.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( new Integer( 10 ),
- list.get( 0 ) );
- }
+ assertEquals(new Integer(10), list.get(0));
+ }
- public void testReturnValueAndGlobal() throws Exception {
+ public void testReturnValueAndGlobal() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ReturnValueAndGlobal.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_ReturnValueAndGlobal.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 matchlist = new ArrayList();
- workingMemory.setGlobal( "matchingList",
- matchlist );
+ final List matchlist = new ArrayList();
+ workingMemory.setGlobal("matchingList", matchlist);
- final List nonmatchlist = new ArrayList();
- workingMemory.setGlobal( "nonMatchingList",
- nonmatchlist );
+ final List nonmatchlist = new ArrayList();
+ workingMemory.setGlobal("nonMatchingList", nonmatchlist);
- workingMemory.setGlobal( "cheeseType",
- "stilton" );
+ workingMemory.setGlobal("cheeseType", "stilton");
- 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 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);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 2,
- matchlist.size() );
- assertEquals( 1,
- nonmatchlist.size() );
- }
+ assertEquals(2, matchlist.size());
+ assertEquals(1, nonmatchlist.size());
+ }
- public void testDeclaringAndUsingBindsInSamePattern() throws Exception {
- final RuleBaseConfiguration config = new RuleBaseConfiguration();
- config.setRemoveIdentities( true );
+ public void testDeclaringAndUsingBindsInSamePattern() throws Exception {
+ final RuleBaseConfiguration config = new RuleBaseConfiguration();
+ config.setRemoveIdentities(true);
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DeclaringAndUsingBindsInSamePattern.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream(
+ "test_DeclaringAndUsingBindsInSamePattern.drl")));
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase( config );
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase(config);
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List sensors = new ArrayList();
+ final List sensors = new ArrayList();
- workingMemory.setGlobal( "sensors",
- sensors );
+ workingMemory.setGlobal("sensors", sensors);
- final Sensor sensor1 = new Sensor( 100,
- 150 );
- workingMemory.insert( sensor1 );
- workingMemory.fireAllRules();
- assertEquals( 0,
- sensors.size() );
+ final Sensor sensor1 = new Sensor(100, 150);
+ workingMemory.insert(sensor1);
+ workingMemory.fireAllRules();
+ assertEquals(0, sensors.size());
- final Sensor sensor2 = new Sensor( 200,
- 150 );
- workingMemory.insert( sensor2 );
- workingMemory.fireAllRules();
- assertEquals( 3,
- sensors.size() );
- }
+ final Sensor sensor2 = new Sensor(200, 150);
+ workingMemory.insert(sensor2);
+ workingMemory.fireAllRules();
+ assertEquals(3, sensors.size());
+ }
- public void testMissingImports() {
- try {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_missing_import.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();
- ruleBase.addPackage( pkg );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
- 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() );
- }
- }
+ 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());
+ }
+ }
- public void testNestedConditionalElements() throws Exception {
+ public void testNestedConditionalElements() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NestedConditionalElements.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_NestedConditionalElements.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 State state = new State( "SP" );
- workingMemory.insert( state );
+ final State state = new State("SP");
+ workingMemory.insert(state);
- final Person bob = new Person( "Bob" );
- bob.setStatus( state.getState() );
- bob.setLikes( "stilton" );
- workingMemory.insert( bob );
+ final Person bob = new Person("Bob");
+ bob.setStatus(state.getState());
+ bob.setLikes("stilton");
+ workingMemory.insert(bob);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 0,
- list.size() );
+ assertEquals(0, list.size());
- workingMemory.insert( new Cheese( bob.getLikes(),
- 10 ) );
- workingMemory.fireAllRules();
+ workingMemory.insert(new Cheese(bob.getLikes(), 10));
+ workingMemory.fireAllRules();
- assertEquals( 1,
- list.size() );
- }
+ assertEquals(1, list.size());
+ }
- public void testDeclarationUsage() throws Exception {
+ public void testDeclarationUsage() throws Exception {
- try {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_DeclarationUsage.drl" ) ) );
- final Package pkg = builder.getPackage();
+ try {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_DeclarationUsage.drl")));
+ final Package pkg = builder.getPackage();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
- 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() );
- }
- }
+ 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());
+ }
+ }
- 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 testUnbalancedTrees() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_UnbalancedTrees.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();
- 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 );
+ 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);
- wm.fireAllRules();
+ wm.fireAllRules();
- Assert.assertEquals( "Rule should have fired twice, seting the price to 30",
- 30,
- e.getPrice() );
- // success
- }
+ Assert.assertEquals(
+ "Rule should have fired twice, seting the price to 30", 30, e
+ .getPrice());
+ // success
+ }
- 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 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 testPrimitiveArray() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_primitiveArray.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("result", result);
- final Primitives p1 = new Primitives();
- p1.setPrimitiveArrayAttribute( new int[]{1, 2, 3} );
- p1.setArrayAttribute( new String[]{"a", "b"} );
+ final Primitives p1 = new Primitives();
+ p1.setPrimitiveArrayAttribute(new int[] { 1, 2, 3 });
+ p1.setArrayAttribute(new String[] { "a", "b" });
- workingMemory.insert( p1 );
+ workingMemory.insert(p1);
- 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(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 testEmptyIdentifier() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_emptyIdentifier.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( "results",
- result );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final List result = new ArrayList();
+ workingMemory.setGlobal("results", result);
- final Person person = new Person( "bob" );
- final Cheese cheese = new Cheese( "brie",
- 10 );
+ final Person person = new Person("bob");
+ final Cheese cheese = new Cheese("brie", 10);
- workingMemory.insert( person );
- workingMemory.insert( cheese );
+ workingMemory.insert(person);
+ workingMemory.insert(cheese);
- workingMemory.fireAllRules();
- assertEquals( 4,
- result.size() );
- }
+ 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 testDuplicateVariableBinding() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_duplicateVariableBinding.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 Map result = new HashMap();
+ workingMemory.setGlobal("results", result);
- final Cheese stilton = new Cheese( "stilton",
- 20 );
- final Cheese brie = new Cheese( "brie",
- 10 );
+ final Cheese stilton = new Cheese("stilton", 20);
+ final Cheese brie = new Cheese("brie", 10);
- workingMemory.insert( stilton );
- workingMemory.insert( brie );
+ workingMemory.insert(stilton);
+ workingMemory.insert(brie);
- 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(5, result.size());
+ assertEquals(stilton.getPrice(), ((Integer) result.get(stilton
+ .getType())).intValue());
+ assertEquals(brie.getPrice(), ((Integer) result.get(brie.getType()))
+ .intValue());
- assertEquals( stilton.getPrice(),
- ((Integer) result.get( stilton )).intValue() );
- assertEquals( brie.getPrice(),
- ((Integer) result.get( brie )).intValue() );
+ assertEquals(stilton.getPrice(), ((Integer) result.get(stilton))
+ .intValue());
+ assertEquals(brie.getPrice(), ((Integer) result.get(brie)).intValue());
- assertEquals( stilton.getPrice(),
- ((Integer) result.get( "test3" + stilton.getType() )).intValue() );
+ assertEquals(stilton.getPrice(), ((Integer) result.get("test3"
+ + stilton.getType())).intValue());
- workingMemory.insert( new Person( "bob",
- brie.getType() ) );
- workingMemory.fireAllRules();
+ workingMemory.insert(new Person("bob", brie.getType()));
+ workingMemory.fireAllRules();
- assertEquals( 6,
- result.size() );
- assertEquals( brie.getPrice(),
- ((Integer) result.get( "test3" + brie.getType() )).intValue() );
- }
+ assertEquals(6, result.size());
+ assertEquals(brie.getPrice(), ((Integer) result.get("test3"
+ + brie.getType())).intValue());
+ }
- 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 testDuplicateVariableBindingError() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder
+ .addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream(
+ "test_duplicateVariableBindingError.drl")));
+ final Package pkg = builder.getPackage();
- assertFalse( pkg.isValid() );
- System.out.println( pkg.getErrorSummary() );
- assertEquals( 6,
- pkg.getErrorSummary().split( "\n" ).length );
- }
+ assertFalse(pkg.isValid());
+ System.out.println(pkg.getErrorSummary());
+ assertEquals(6, pkg.getErrorSummary().split("\n").length);
+ }
- public void testShadowProxyInHirarchies() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ShadowProxyInHirarchies.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.insert( new Child( "gp" ) );
+ workingMemory.insert(new Child("gp"));
- workingMemory.fireAllRules();
- }
+ workingMemory.fireAllRules();
+ }
- 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 testSelfReference() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_SelfReference.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 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 );
+ 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.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 2,
- results.size() );
- assertTrue( results.contains( item1 ) );
- assertTrue( results.contains( item2 ) );
- }
+ assertEquals(2, results.size());
+ assertTrue(results.contains(item1));
+ assertTrue(results.contains(item2));
+ }
- public void testNumberComparisons() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NumberComparisons.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 list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- // asserting the sensor object
- final RandomNumber rn = new RandomNumber();
- rn.setValue( 10 );
- workingMemory.insert( rn );
+ // asserting the sensor object
+ final RandomNumber rn = new RandomNumber();
+ rn.setValue(10);
+ workingMemory.insert(rn);
- final Guess guess = new Guess();
- guess.setValue( new Integer( 5 ) );
+ final Guess guess = new Guess();
+ guess.setValue(new Integer(5));
- final FactHandle handle = workingMemory.insert( guess );
+ final FactHandle handle = workingMemory.insert(guess);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- // HIGHER
- assertEquals( 1,
- list.size() );
- assertEquals( "HIGHER",
- list.get( 0 ) );
+ // HIGHER
+ assertEquals(1, list.size());
+ assertEquals("HIGHER", list.get(0));
- guess.setValue( new Integer( 15 ) );
- workingMemory.update( handle,
- guess );
+ guess.setValue(new Integer(15));
+ workingMemory.update(handle, guess);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- // LOWER
- assertEquals( 2,
- list.size() );
- assertEquals( "LOWER",
- list.get( 1 ) );
+ // LOWER
+ assertEquals(2, list.size());
+ assertEquals("LOWER", list.get(1));
- guess.setValue( new Integer( 10 ) );
- workingMemory.update( handle,
- guess );
+ guess.setValue(new Integer(10));
+ workingMemory.update(handle, guess);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- // CORRECT
- assertEquals( 3,
- list.size() );
- assertEquals( "CORRECT",
- list.get( 2 ) );
+ // CORRECT
+ assertEquals(3, list.size());
+ assertEquals("CORRECT", list.get(2));
- }
+ }
- 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 testSkipModify() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_skipModify.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 Cheese cheese = new Cheese( "brie",
- 10 );
- final FactHandle handle = workingMemory.insert( cheese );
+ final Cheese cheese = new Cheese("brie", 10);
+ final FactHandle handle = workingMemory.insert(cheese);
- final Person bob = new Person( "bob",
- "stilton" );
- workingMemory.insert( bob );
+ final Person bob = new Person("bob", "stilton");
+ workingMemory.insert(bob);
- cheese.setType( "stilton" );
- workingMemory.update( handle,
- cheese );
- workingMemory.fireAllRules();
- assertEquals( 2,
- results.size() );
- }
+ cheese.setType("stilton");
+ workingMemory.update(handle, cheese);
+ workingMemory.fireAllRules();
+ assertEquals(2, results.size());
+ }
- 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 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 wm = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory wm = ruleBase.newStatefulSession();
- final List agendaList = new ArrayList();
- final AgendaEventListener agendaEventListener = new AgendaEventListener() {
+ final List agendaList = new ArrayList();
+ final AgendaEventListener agendaEventListener = new AgendaEventListener() {
- public void activationCancelled(ActivationCancelledEvent event,
- WorkingMemory workingMemory) {
- agendaList.add( event );
+ public void activationCancelled(ActivationCancelledEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add(event);
- }
+ }
- public void activationCreated(ActivationCreatedEvent event,
- WorkingMemory workingMemory) {
- agendaList.add( event );
- }
+ public void activationCreated(ActivationCreatedEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add(event);
+ }
- public void afterActivationFired(AfterActivationFiredEvent event,
- WorkingMemory workingMemory) {
- agendaList.add( event );
- }
+ public void afterActivationFired(AfterActivationFiredEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add(event);
+ }
- public void agendaGroupPopped(AgendaGroupPoppedEvent event,
- WorkingMemory workingMemory) {
- agendaList.add( event );
- }
+ public void agendaGroupPopped(AgendaGroupPoppedEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add(event);
+ }
- public void agendaGroupPushed(AgendaGroupPushedEvent event,
- WorkingMemory workingMemory) {
- agendaList.add( event );
- }
+ public void agendaGroupPushed(AgendaGroupPushedEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add(event);
+ }
- public void beforeActivationFired(BeforeActivationFiredEvent event,
- WorkingMemory workingMemory) {
- agendaList.add( event );
- }
+ public void beforeActivationFired(BeforeActivationFiredEvent event,
+ WorkingMemory workingMemory) {
+ agendaList.add(event);
+ }
- };
+ };
- final List wmList = new ArrayList();
- final WorkingMemoryEventListener workingMemoryListener = new WorkingMemoryEventListener() {
+ final List wmList = new ArrayList();
+ final WorkingMemoryEventListener workingMemoryListener = new WorkingMemoryEventListener() {
- public void objectInserted(ObjectInsertedEvent event) {
- wmList.add( event );
- }
+ public void objectInserted(ObjectInsertedEvent event) {
+ wmList.add(event);
+ }
- public void objectUpdated(ObjectUpdatedEvent event) {
- wmList.add( event );
- }
+ public void objectUpdated(ObjectUpdatedEvent event) {
+ wmList.add(event);
+ }
- public void objectRetracted(ObjectRetractedEvent event) {
- wmList.add( event );
- }
+ public void objectRetracted(ObjectRetractedEvent event) {
+ wmList.add(event);
+ }
- };
+ };
- wm.addEventListener( workingMemoryListener );
+ wm.addEventListener(workingMemoryListener);
- final Cheese stilton = new Cheese( "stilton",
- 15 );
- final Cheese cheddar = new Cheese( "cheddar",
- 17 );
+ final Cheese stilton = new Cheese("stilton", 15);
+ final Cheese cheddar = new Cheese("cheddar", 17);
- final FactHandle stiltonHandle = wm.insert( stilton );
+ final FactHandle stiltonHandle = wm.insert(stilton);
- final ObjectInsertedEvent oae = (ObjectInsertedEvent) wmList.get( 0 );
- assertSame( stiltonHandle,
- oae.getFactHandle() );
+ final ObjectInsertedEvent oae = (ObjectInsertedEvent) wmList.get(0);
+ assertSame(stiltonHandle, oae.getFactHandle());
- wm.update( stiltonHandle,
- stilton );
- final ObjectUpdatedEvent ome = (ObjectUpdatedEvent) wmList.get( 1 );
- assertSame( stiltonHandle,
- ome.getFactHandle() );
+ 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.retract(stiltonHandle);
+ final ObjectRetractedEvent ore = (ObjectRetractedEvent) wmList.get(2);
+ assertSame(stiltonHandle, ore.getFactHandle());
- wm.insert( cheddar );
- }
+ wm.insert(cheddar);
+ }
- public void testImplicitDeclarations() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_implicitDeclarations.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();
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
- workingMemory.setGlobal( "factor",
- new Double( 1.2 ) );
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
+ workingMemory.setGlobal("factor", new Double(1.2));
- final Cheese cheese = new Cheese( "stilton",
- 10 );
- workingMemory.insert( cheese );
+ final Cheese cheese = new Cheese("stilton", 10);
+ workingMemory.insert(cheese);
- workingMemory.fireAllRules();
- assertEquals( 1,
- results.size() );
- }
+ workingMemory.fireAllRules();
+ assertEquals(1, results.size());
+ }
- 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 testCastingInsideEvals() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_castsInsideEval.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 ) );
+ workingMemory.setGlobal("value", new Integer(20));
- 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();
+ public void testMemberOfAndNotMemberOf() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_memberOf.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",
- 12 );
- final Cheese muzzarela = new Cheese( "muzzarela",
- 10 );
- final Cheese brie = new Cheese( "brie",
- 15 );
- workingMemory.insert( stilton );
- workingMemory.insert( muzzarela );
+ 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 Cheesery cheesery = new Cheesery();
- cheesery.getCheeses().add( stilton.getType() );
- cheesery.getCheeses().add( brie.getType() );
- workingMemory.insert( cheesery );
+ final Cheesery cheesery = new Cheesery();
+ cheesery.getCheeses().add(stilton.getType());
+ cheesery.getCheeses().add(brie.getType());
+ workingMemory.insert(cheesery);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 2,
- list.size() );
+ assertEquals(2, list.size());
- assertEquals( stilton,
- list.get( 0 ) );
- assertEquals( muzzarela,
- list.get( 1 ) );
- }
+ assertEquals(stilton, list.get(0));
+ assertEquals(muzzarela, list.get(1));
+ }
- 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();
+ 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 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 Primitives p = new Primitives();
- p.setStringArray( new String[]{"test1", "test3"} );
- workingMemory.insert( p );
+ final Primitives p = new Primitives();
+ p.setStringArray(new String[] { "test1", "test3" });
+ workingMemory.insert(p);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 2,
- list.size() );
+ assertEquals(2, list.size());
- assertEquals( "ok1",
- list.get( 0 ) );
- assertEquals( "ok2",
- list.get( 1 ) );
- }
+ assertEquals("ok1", list.get(0));
+ assertEquals("ok2", list.get(1));
+ }
- public void testCollectNodeSharing() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_collectNodeSharing.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 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( "stilton",
- 10 ) );
- workingMemory.insert( new Cheese( "brie",
- 15 ) );
+ workingMemory.insert(new Cheese("stilton", 10));
+ workingMemory.insert(new Cheese("brie", 15));
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 1,
- list.size() );
+ assertEquals(1, list.size());
- assertEquals( 2,
- ((List) list.get( 0 )).size() );
- }
+ assertEquals(2, ((List) list.get(0)).size());
+ }
- public void testNodeSharingNotExists() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_nodeSharingNotExists.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 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( "rule1",
- list.get( 0 ) );
+ assertEquals("rule1", list.get(0));
- workingMemory.insert( new Cheese( "stilton",
- 10 ) );
- workingMemory.fireAllRules();
+ workingMemory.insert(new Cheese("stilton", 10));
+ workingMemory.fireAllRules();
- assertEquals( 2,
- list.size() );
+ assertEquals(2, list.size());
- assertEquals( "rule2",
- list.get( 1 ) );
+ assertEquals("rule2", list.get(1));
- }
+ }
- public void testNullBinding() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_nullBindings.drl" ) ) );
- final Package pkg = builder.getPackage();
+ public void testNullBinding() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_nullBindings.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" ) );
- workingMemory.insert( new Person( null ) );
+ workingMemory.insert(new Person("bob"));
+ workingMemory.insert(new Person(null));
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( 1,
- list.size() );
+ assertEquals(1, list.size());
- assertEquals( "OK",
- list.get( 0 ) );
+ assertEquals("OK", list.get(0));
- }
+ }
- public void testModifyRetractWithFunction() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RetractModifyWithFunction.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final AbstractWorkingMemory workingMemory = (AbstractWorkingMemory) ruleBase
+ .newStatefulSession();
- 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 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);
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( sum,
- stilton.getPrice() );
- assertEquals( 1,
- workingMemory.getFactHandleMap().size() );
- assertNotNull( workingMemory.getObject( stiltonHandle ) );
- assertNotNull( workingMemory.getFactHandle( stilton ) );
+ 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 ) );
+ assertNull(workingMemory.getObject(muzzarellaHandle));
+ assertNull(workingMemory.getFactHandle(muzzarella));
- }
+ }
- public void testConstraintConnectors() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ConstraintConnectors.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 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 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 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 Person chili1 = new Person( "chili1" );
- chili1.setAge( 35 );
- chili1.setHair( "red" );
+ final Person chili1 = new Person("chili1");
+ chili1.setAge(35);
+ chili1.setHair("red");
- final Person chili2 = new Person( "chili2" );
- chili2.setAge( 38 );
- chili2.setHair( "indigigo" );
+ final Person chili2 = new Person("chili2");
+ chili2.setAge(38);
+ chili2.setHair("indigigo");
- final Person oldChili1 = new Person( "old chili1" );
- oldChili1.setAge( 45 );
- oldChili1.setHair( "green" );
+ final Person oldChili1 = new Person("old chili1");
+ oldChili1.setAge(45);
+ oldChili1.setHair("green");
- final Person oldChili2 = new Person( "old chili2" );
- oldChili2.setAge( 48 );
- oldChili2.setHair( "blue" );
+ final Person oldChili2 = new Person("old chili2");
+ oldChili2.setAge(48);
+ oldChili2.setHair("blue");
- final Person veryold = new Person( "very old" );
- veryold.setAge( 99 );
- veryold.setHair( "gray" );
+ final Person veryold = new Person("very old");
+ veryold.setAge(99);
+ veryold.setHair("gray");
- workingMemory.insert( youngChili1 );
- workingMemory.insert( youngChili2 );
- workingMemory.insert( chili1 );
- workingMemory.insert( chili2 );
- workingMemory.insert( oldChili1 );
- workingMemory.insert( oldChili2 );
- workingMemory.insert( veryold );
+ workingMemory.insert(youngChili1);
+ workingMemory.insert(youngChili2);
+ workingMemory.insert(chili1);
+ workingMemory.insert(chili2);
+ workingMemory.insert(oldChili1);
+ workingMemory.insert(oldChili2);
+ workingMemory.insert(veryold);
- 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 ) );
- }
+ assertEquals(4, results.size());
+ assertEquals(chili1, results.get(0));
+ assertEquals(oldChili1, results.get(1));
+ assertEquals(youngChili1, results.get(2));
+ assertEquals(veryold, results.get(3));
+ }
- public void testMatchesNotMatchesCheese() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MatchesNotMatches.drl" ) ) );
- final Package pkg = builder.getPackage();
+ 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 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",
- 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 );
+ 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();
- System.out.println(list.toString());
- assertEquals( 4,
- list.size() );
+ 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 ) );
- }
+ assertEquals(stilton, list.get(0));
+ assertEquals(brie, list.get(1));
+ assertEquals(agedStilton, list.get(2));
+ assertEquals(provolone, list.get(3));
+ }
- 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 List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
+
+ workingMemory.insert(new Cheese());
+
+ workingMemory.fireAllRules();
+
+ 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 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);
+
+ final PackageBuilder builder2 = new PackageBuilder();
+ builder2.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_RuleNameClashes2.drl")));
+ final Package pkg2 = builder2.getPackage();
+
+ assertEquals(1, pkg2.getRules().length);
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg1);
+ ruleBase.addPackage(pkg2);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
+
+ workingMemory.insert(new Cheese("stilton", 10));
+ workingMemory.insert(new Cheese("brie", 5));
+
+ workingMemory.fireAllRules();
+
+ 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());
+ }
+ }
+
+ public void testMergePackageWithSameRuleNames() throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MergePackageWithSameRuleNames1.drl" ) ) );
final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ ruleBase.addPackage( builder.getPackage() );
+ builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MergePackageWithSameRuleNames2.drl" ) ) );
+ ruleBase.addPackage( builder.getPackage() );
+
+ StatefulSession session = ruleBase.newStatefulSession();
final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ session.setGlobal( "results",
+ results );
- workingMemory.insert( new Cheese() );
+ session.fireAllRules();
- workingMemory.fireAllRules();
-
- assertEquals( 0,
+ assertEquals( 1,
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() );
- }
+ assertEquals( "rule1 for the package2",
+ results.get( 0 ) );
}
- 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 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 PackageBuilder builder2 = new PackageBuilder();
- builder2.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuleNameClashes2.drl" ) ) );
- final Package pkg2 = builder2.getPackage();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg1);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals( 1,
- pkg2.getRules().length );
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg1 );
- ruleBase.addPackage( pkg2 );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.insert(new Cheese("stilton", 10));
+ workingMemory.insert(new Cheese("brie", 5));
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ workingMemory.fireAllRules();
- workingMemory.insert( new Cheese( "stilton",
- 10 ) );
- workingMemory.insert( new Cheese( "brie",
- 5 ) );
+ assertEquals(results.toString(), 0, results.size());
- workingMemory.fireAllRules();
+ workingMemory.insert(new Cheese("muzzarella", 7));
- assertEquals( results.toString(),
- 2,
- results.size() );
- assertTrue( results.contains( "p1.r1" ) );
- assertTrue( results.contains( "p2.r1" ) );
+ workingMemory.fireAllRules();
- } 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() );
- }
- }
+ assertEquals(results.toString(), 1, results.size());
+ assertTrue(results.contains("p1.r3"));
- 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();
+ } 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());
+ }
+ }
- assertEquals( 1,
- pkg1.getRules().length );
+ 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( pkg1 );
- 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( "brie",
- 5 ) );
+ workingMemory.insert(new Cheese("stilton", 15));
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( results.toString(),
- 0,
- results.size() );
+ assertEquals(2, results.size());
+ assertEquals("stilton", results.get(0));
+ assertEquals(new Integer(15), results.get(1));
+ }
- workingMemory.insert( new Cheese( "muzzarella",
- 7 ) );
+ public void testMultipleFroms() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_multipleFroms.drl")));
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals( results.toString(),
- 1,
- results.size() );
- assertTrue( results.contains( "p1.r3" ) );
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
- } 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() );
- }
- }
+ final Cheesery cheesery = new Cheesery();
+ cheesery.addCheese(new Cheese("stilton", 15));
+ cheesery.addCheese(new Cheese("brie", 10));
- public void testBindingsOnConnectiveExpressions() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_bindings.drl" ) ) );
- final Package pkg = builder.getPackage();
+ workingMemory.setGlobal("cheesery", cheesery);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ assertEquals(2, results.size());
+ assertEquals(2, ((List) results.get(0)).size());
+ assertEquals(2, ((List) results.get(1)).size());
+ }
- workingMemory.insert( new Cheese( "stilton",
- 15 ) );
+ public void testNullHashing() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_NullHashing.drl")));
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals( 2,
- results.size() );
- assertEquals( "stilton",
- results.get( 0 ) );
- assertEquals( new Integer( 15 ),
- results.get( 1 ) );
- }
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
- public void testMultipleFroms() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_multipleFroms.drl" ) ) );
- final Package pkg = builder.getPackage();
+ workingMemory.insert(new Cheese("stilton", 15));
+ workingMemory.insert(new Cheese("", 10));
+ workingMemory.insert(new Cheese(null, 8));
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ assertEquals(3, results.size());
+ }
- final Cheesery cheesery = new Cheesery();
- cheesery.addCheese( new Cheese( "stilton",
- 15 ) );
- cheesery.addCheese( new Cheese( "brie",
- 10 ) );
+ public void testDefaultBetaConstrains() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_DefaultBetaConstraint.drl")));
+ final Package pkg = builder.getPackage();
- workingMemory.setGlobal( "cheesery",
- cheesery );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.fireAllRules();
+ 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));
- assertEquals( 2,
- results.size() );
- assertEquals( 2,
- ((List) results.get( 0 )).size() );
- assertEquals( 2,
- ((List) results.get( 1 )).size() );
- }
+ workingMemory.insert(new SecondClass());
+ workingMemory.update(handle, first);
+ workingMemory.fireAllRules();
+ assertEquals(2, results.size());
+ assertEquals("NOT", results.get(1));
- public void testNullHashing() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NullHashing.drl" ) ) );
- final Package pkg = builder.getPackage();
+ workingMemory.update(handle, first);
+ workingMemory.insert(new SecondClass(null, "2", "3", "4", "5"));
+ workingMemory.fireAllRules();
+ assertEquals(3, results.size());
+ assertEquals("NOT", results.get(2));
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.update(handle, first);
+ workingMemory.insert(new SecondClass("1", null, "3", "4", "5"));
+ workingMemory.fireAllRules();
+ assertEquals(4, results.size());
+ assertEquals("NOT", results.get(3));
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ 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.insert( new Cheese( "stilton",
- 15 ) );
- workingMemory.insert( new Cheese( "",
- 10 ) );
- workingMemory.insert( new Cheese( null,
- 8 ) );
+ 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.fireAllRules();
+ workingMemory.update(handle, first);
+ workingMemory.insert(new SecondClass("1", "2", "3", "4", null));
+ workingMemory.fireAllRules();
+ assertEquals(7, results.size());
+ assertEquals("NOT", results.get(6));
- assertEquals( 3,
- results.size() );
- }
+ 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 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();
+ 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 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 RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.insert( new SecondClass() );
- workingMemory.update( handle,
- first );
- workingMemory.fireAllRules();
- assertEquals( 2,
- results.size() );
- assertEquals( "NOT",
- results.get( 1 ) );
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
- workingMemory.update( handle,
- first );
- workingMemory.insert( new SecondClass( null,
- "2",
- "3",
- "4",
- "5" ) );
- workingMemory.fireAllRules();
- assertEquals( 3,
- results.size() );
- assertEquals( "NOT",
- results.get( 2 ) );
+ Primitives p1 = new Primitives();
+ workingMemory.insert(p1);
+ workingMemory.fireAllRules();
+ assertEquals(0, results.size());
- workingMemory.update( handle,
- first );
- workingMemory.insert( new SecondClass( "1",
- null,
- "3",
- "4",
- "5" ) );
- workingMemory.fireAllRules();
- assertEquals( 4,
- results.size() );
- assertEquals( "NOT",
- results.get( 3 ) );
+ Primitives p2 = new Primitives();
+ p2.setBooleanWrapper(Boolean.FALSE);
+ workingMemory.insert(p2);
+ workingMemory.fireAllRules();
+ assertEquals(0, results.size());
- workingMemory.update( handle,
- first );
- workingMemory.insert( new SecondClass( "1",
- "2",
- null,
- "4",
- "5" ) );
- workingMemory.fireAllRules();
- assertEquals( 5,
- results.size() );
- assertEquals( "NOT",
- results.get( 4 ) );
+ Primitives p3 = new Primitives();
+ p3.setBooleanWrapper(Boolean.TRUE);
+ workingMemory.insert(p3);
+ workingMemory.fireAllRules();
+ assertEquals(1, results.size());
- 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 ) );
+ public void testCrossProductRemovingIdentityEquals() throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ builder
+ .addPackageFromDrl(new InputStreamReader(
+ MiscTest.class
+ .getResourceAsStream("test_CrossProductRemovingIdentityEquals.drl")));
- workingMemory.insert( new SecondClass( "1",
- "2",
- "3",
- "4",
- "5" ) );
- workingMemory.update( handle,
- first );
- workingMemory.fireAllRules();
- assertEquals( 8,
- results.size() );
- assertEquals( "EQUALS",
- results.get( 7 ) );
+ 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();
- public void testBooleanWrapper() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_BooleanWrapper.drl" ) ) );
- final Package pkg = builder.getPackage();
+ session.setGlobal("list1", list1);
+ session.setGlobal("list2", list2);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ SpecialString first42 = new SpecialString("42");
+ SpecialString second43 = new SpecialString("42");
+ SpecialString world = new SpecialString("World");
+ session.insert(world);
+ session.insert(first42);
+ session.insert(second43);
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ // System.out.println( "Firing rules ..." );
- Primitives p1 = new Primitives();
- workingMemory.insert( p1 );
- workingMemory.fireAllRules();
- assertEquals( 0,
- results.size() );
+ session.fireAllRules();
- Primitives p2 = new Primitives();
- p2.setBooleanWrapper( Boolean.FALSE );
- workingMemory.insert( p2 );
- workingMemory.fireAllRules();
- assertEquals( 0,
- results.size() );
+ assertEquals(6, list1.size());
+ assertEquals(6, list2.size());
- Primitives p3 = new Primitives();
- p3.setBooleanWrapper( Boolean.TRUE );
- workingMemory.insert( p3 );
- workingMemory.fireAllRules();
- assertEquals( 1,
- results.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(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 testCrossProductRemovingIdentityEquals() throws Exception {
- PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( MiscTest.class.getResourceAsStream( "test_CrossProductRemovingIdentityEquals.drl" ) ) );
+ public void testIterateObjects() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_IterateObjects.drl")));
+ final Package pkg = builder.getPackage();
- RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setShadowProxy( true );
- RuleBase rb = RuleBaseFactory.newRuleBase( conf );
- rb.addPackage( builder.getPackage() );
- StatefulSession session = rb.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- List list1 = new ArrayList();
- List list2 = new ArrayList();
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
- session.setGlobal( "list1",
- list1 );
- session.setGlobal( "list2",
- list2 );
+ workingMemory.insert(new Cheese("stilton", 10));
- SpecialString first42 = new SpecialString( "42" );
- SpecialString second43 = new SpecialString( "42" );
- SpecialString world = new SpecialString( "World" );
- session.insert( world );
- session.insert( first42 );
- session.insert( second43 );
+ workingMemory.fireAllRules();
- //System.out.println( "Firing rules ..." );
+ Iterator events = workingMemory.iterateObjects(new ClassObjectFilter(
+ PersonInterface.class));
- session.fireAllRules();
+ assertTrue(events.hasNext());
+ assertEquals(1, results.size());
+ assertEquals(results.get(0), events.next());
+ }
- assertEquals( 6,
- list1.size() );
- assertEquals( 6,
- list2.size() );
+ public void testNotInStatelessSession() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_NotInStatelessSession.drl")));
+ final Package pkg = builder.getPackage();
- 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 ) );
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setSequential(true);
+ final RuleBase ruleBase = getRuleBase(conf);
+ ruleBase.addPackage(pkg);
- 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 ) );
- }
+ StatelessSession session = ruleBase.newStatelessSession();
+ List list = new ArrayList();
+ session.setGlobal("list", list);
+ session.execute("not integer");
+ assertEquals("not integer", list.get(0));
+ }
- 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 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 WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ StatefulSession session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ session.setGlobal("list", list);
- workingMemory.insert( new Cheese( "stilton",
- 10 ) );
+ session.insert(new Integer(5));
+ session.fireAllRules();
- workingMemory.fireAllRules();
+ assertEquals(new Integer(5), list.get(0));
- Iterator events = workingMemory.iterateObjects( new ClassObjectFilter( PersonInterface.class ) );
+ 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();
- assertTrue( events.hasNext() );
- assertEquals( 1,
- results.size() );
- assertEquals( results.get( 0 ),
- events.next() );
- }
+ // 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);
- public void testNotInStatelessSession() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NotInStatelessSession.drl" ) ) );
- final Package pkg = builder.getPackage();
+ assertEquals("x", list.get(1));
- 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 ) );
- }
+ 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 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 WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- StatefulSession session = ruleBase.newStatefulSession();
- List list = new ArrayList();
- session.setGlobal( "list",
- 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);
- session.insert( new Integer( 5 ) );
- session.fireAllRules();
+ workingMemory.fireAllRules();
- assertEquals( new Integer( 5 ),
- list.get( 0 ) );
+ 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++));
- 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 );
+ public void testImportColision() throws Exception {
- assertEquals( "x",
- list.get( 1 ) );
+ 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);
- 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 WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.insert(new FirstClass());
+ workingMemory.insert(new SecondClass());
+ workingMemory.insert(new FirstClass.AlternativeKey());
+ workingMemory.insert(new SecondClass.AlternativeKey());
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ workingMemory.fireAllRules();
+ }
- 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 );
+ public void testAutovivificationOfVariableRestrictions() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_AutoVivificationVR.drl")));
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- 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++ ) );
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
- }
+ workingMemory.insert(new Cheese("stilton", 10, 8));
- public void testImportColision() throws Exception {
+ workingMemory.fireAllRules();
- 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();
+ assertEquals(1, results.size());
+ }
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- ruleBase.addPackage( pkg2 );
+ 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 WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.insert( new FirstClass() );
- workingMemory.insert( new SecondClass() );
- workingMemory.insert( new FirstClass.AlternativeKey() );
- workingMemory.insert( new SecondClass.AlternativeKey() );
+ final List results = new ArrayList();
+ workingMemory.setGlobal("results", results);
- workingMemory.fireAllRules();
- }
+ final Cheesery cheesery = new Cheesery();
+ workingMemory.insert(cheesery);
- public void testAutovivificationOfVariableRestrictions() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AutoVivificationVR.drl" ) ) );
- final Package pkg = builder.getPackage();
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ assertEquals(1, results.size());
+ assertEquals(1, cheesery.getCheeses().size());
+ assertEquals(results.get(0), cheesery.getCheeses().get(0));
+ }
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ public void testQueryWithCollect() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_Query.drl")));
- workingMemory.insert( new Cheese( "stilton",
- 10,
- 8 ) );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
- workingMemory.fireAllRules();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- assertEquals( 1,
- results.size() );
- }
+ final QueryResults results = workingMemory
+ .getQueryResults("collect objects");
+ 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();
+ final QueryResult result = results.get(0);
+ final List list = (List) result.get("$list");
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ assertEquals(2, list.size());
+ }
- final List results = new ArrayList();
- workingMemory.setGlobal( "results",
- results );
+ public void testNestedAccessors() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_NestedAccessors.drl")));
- final Cheesery cheesery = new Cheesery();
- workingMemory.insert( cheesery );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
- workingMemory.fireAllRules();
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals( 1,
- results.size() );
- assertEquals( 1,
- cheesery.getCheeses().size() );
- assertEquals( results.get( 0 ),
- cheesery.getCheeses().get( 0 ) );
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- public void testQueryWithCollect() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Query.drl" ) ) );
+ 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 RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
+ workingMemory.insert(order1);
+ workingMemory.insert(item11);
+ workingMemory.insert(item12);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.fireAllRules();
+ workingMemory.fireAllRules();
- final QueryResults results = workingMemory.getQueryResults( "collect objects" );
- assertEquals( 1,
- results.size() );
+ assertEquals(0, list.size());
- final QueryResult result = results.get( 0 );
- final List list = (List) result.get( "$list" );
+ 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);
- assertEquals( 2,
- list.size() );
- }
+ workingMemory.insert(order2);
+ workingMemory.insert(item21);
+ workingMemory.insert(item22);
- public void testNestedAccessors() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NestedAccessors.drl" ) ) );
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
+ assertEquals(2, list.size());
+ assertSame(item21, list.get(0));
+ assertSame(item22, list.get(1));
+ }
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ 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 List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
- 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 WorkingMemory wm = ruleBase.newStatefulSession();
- workingMemory.insert( order1 );
- workingMemory.insert( item11 );
- workingMemory.insert( item12 );
+ try {
+ final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(
+ wm);
+ logger.setFileName("testLogger");
- workingMemory.fireAllRules();
+ wm.fireAllRules();
- assertEquals( 0,
- list.size() );
+ wm.insert(new Cheese("a", 10));
+ wm.insert(new Cheese("b", 11));
- 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 );
+ wm.fireAllRules();
- workingMemory.insert( order2 );
- workingMemory.insert( item21 );
- workingMemory.insert( item22 );
+ // logger.writeToDisk();
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("No exception should be raised ");
+ }
- workingMemory.fireAllRules();
+ }
- assertEquals( 2,
- list.size() );
- assertSame( item21,
- list.get( 0 ) );
- assertSame( item22,
- list.get( 1 ) );
- }
+ public void testFromNestedAccessors() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_FromNestedAccessors.drl")));
- 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(builder.getPackage());
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- try {
- final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( wm );
- logger.setFileName( "testLogger" );
+ 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);
- wm.fireAllRules();
+ workingMemory.insert(order1);
+ workingMemory.insert(item11);
+ workingMemory.insert(item12);
- wm.insert( new Cheese( "a",
- 10 ) );
- wm.insert( new Cheese( "b",
- 11 ) );
+ workingMemory.fireAllRules();
- wm.fireAllRules();
+ assertEquals(1, list.size());
- // logger.writeToDisk();
- } catch ( Exception e ) {
- e.printStackTrace();
- fail( "No exception should be raised " );
- }
+ 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 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 session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ session.setGlobal("list", list);
+ session.insert(new DomainObjectHolder());
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ session.fireAllRules();
- 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 );
+ assertEquals(3, list.size());
- workingMemory.insert( order1 );
- workingMemory.insert( item11 );
- workingMemory.insert( item12 );
+ assertEquals("Message3", list.get(0));
+ assertEquals("Message2", list.get(1));
+ assertEquals("Message1", list.get(2));
- workingMemory.fireAllRules();
+ }
- assertEquals( 1,
- list.size() );
+ public void testSubNetworks() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_SubNetworks.drl")));
- 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" ) ) );
+ final RuleBase ruleBase = getRuleBase();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
+ try {
+ ruleBase.addPackage(builder.getPackage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("Should not raise any exception!");
+ }
- final WorkingMemory session = ruleBase.newStatefulSession();
- List list = new ArrayList();
-
- session.setGlobal( "list", list );
- session.insert( new DomainObjectHolder() );
-
- session.fireAllRules();
-
- assertEquals( 3, list.size() );
-
- 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 testFinalClass() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_FinalClass.drl")));
- final RuleBase ruleBase = getRuleBase();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(builder.getPackage());
- try {
- ruleBase.addPackage( builder.getPackage() );
- } catch ( Exception e ) {
- e.printStackTrace();
- fail( "Should not raise any exception!" );
- }
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- }
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- public void testFinalClass() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FinalClass.drl" ) ) );
+ final PersonFinal bob = new PersonFinal();
+ bob.setName("bob");
+ bob.setStatus(null);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( builder.getPackage() );
+ workingMemory.insert(bob);
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ assertEquals(1, list.size());
- final PersonFinal bob = new PersonFinal();
- bob.setName( "bob" );
- bob.setStatus( null );
+ // 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() );
+ }
- workingMemory.insert( bob );
+ public void testEvalRewriteMatches() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_EvalRewriteMatches.drl")));
+ final Package pkg = builder.getPackage();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- assertEquals( 1,
- list.size() );
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- // 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() );
- }
+ 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);
- public void testEvalRewriteMatches() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_EvalRewriteMatches.drl" ) ) );
- final Package pkg = builder.getPackage();
+ workingMemory.insert(order1);
+ workingMemory.insert(item11);
+ workingMemory.insert(item12);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ assertEquals(2, list.size());
+ assertTrue(list.contains(item11));
+ assertTrue(list.contains(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 );
+ public void testConsequenceBuilderException() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_ConsequenceBuilderException.drl")));
- workingMemory.insert( order1 );
- workingMemory.insert( item11 );
- workingMemory.insert( item12 );
+ assertTrue(builder.hasErrors());
+ }
- workingMemory.fireAllRules();
+ public void testRuntimeTypeCoercion() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_RuntimeTypeCoercion.drl")));
+ final Package pkg = builder.getPackage();
- assertEquals( 2,
- list.size() );
- assertTrue( list.contains( item11 ) );
- assertTrue( list.contains( item12 ) );
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- public void testConsequenceBuilderException() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ConsequenceBuilderException.drl" ) ) );
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- assertTrue( builder.hasErrors() );
- }
+ final PolymorphicFact fact = new PolymorphicFact(new Integer(10));
+ final FactHandle handle = workingMemory.insert(fact);
- public void testRuntimeTypeCoercion() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuntimeTypeCoercion.drl" ) ) );
- final Package pkg = builder.getPackage();
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ assertEquals(1, list.size());
+ assertEquals(fact.getData(), list.get(0));
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ fact.setData("10");
+ workingMemory.update(handle, fact);
+ workingMemory.fireAllRules();
- final PolymorphicFact fact = new PolymorphicFact( new Integer( 10 ) );
- final FactHandle handle = workingMemory.insert( fact );
+ assertEquals(2, list.size());
+ assertEquals(fact.getData(), list.get(1));
- workingMemory.fireAllRules();
+ 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
+ }
- assertEquals( 1,
- list.size() );
- assertEquals( fact.getData(),
- list.get( 0 ) );
+ }
- fact.setData( "10" );
- workingMemory.update( handle,
- fact );
- workingMemory.fireAllRules();
+ public void testRuntimeTypeCoercion2() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_RuntimeTypeCoercion2.drl")));
+ final Package pkg = builder.getPackage();
- assertEquals( 2,
- list.size() );
- assertEquals( fact.getData(),
- list.get( 1 ) );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- 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
- }
+ 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);
- public void testRuntimeTypeCoercion2() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_RuntimeTypeCoercion2.drl" ) ) );
- final Package pkg = builder.getPackage();
+ workingMemory.fireAllRules();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ 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++));
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ 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++));
- 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 );
+ fact.setObject(null);
+ workingMemory.update(handle, fact);
+ workingMemory.fireAllRules();
+ assertEquals(6, list.size());
+ assertEquals("null object", list.get(index++));
- 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++ ) );
+ public void testAlphaEvalWithOrCE() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_AlphaEvalWithOrCE.drl")));
+ final Package pkg = builder.getPackage();
- 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++ ) );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- fact.setObject( null );
- workingMemory.update( handle,
- fact );
- workingMemory.fireAllRules();
- assertEquals( 6,
- list.size() );
- assertEquals( "null object",
- list.get( index++ ) );
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- }
+ FactA a = new FactA();
+ a.setField1("a value");
- public void testAlphaEvalWithOrCE() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AlphaEvalWithOrCE.drl" ) ) );
- final Package pkg = builder.getPackage();
+ workingMemory.insert(a);
+ workingMemory.insert(new FactB());
+ workingMemory.insert(new FactC());
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.fireAllRules();
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ assertEquals("should not have fired", 0, list.size());
+ }
- FactA a = new FactA();
- a.setField1( "a value" );
+ public void testModifyBlock() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_ModifyBlock.drl")));
+ final Package pkg = builder.getPackage();
- workingMemory.insert( a );
- workingMemory.insert( new FactB() );
- workingMemory.insert( new FactC() );
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- workingMemory.fireAllRules();
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- 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();
+ Person bob = new Person("Bob");
+ bob.setStatus("hungry");
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ Cheese c = new Cheese();
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ workingMemory.insert(bob);
+ workingMemory.insert(c);
- Person bob = new Person( "Bob" );
- bob.setStatus( "hungry" );
+ workingMemory.fireAllRules();
- Cheese c = new Cheese();
+ assertEquals(10, c.getPrice());
+ assertEquals("fine", bob.getStatus());
+ }
- workingMemory.insert( bob );
- workingMemory.insert( c );
+ // 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();
- workingMemory.fireAllRules();
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- 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();
+ final List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ Person bob = new Person("Bob", 30);
+ bob.setStatus("hungry");
+ workingMemory.insert(bob);
+ workingMemory.insert(new Cheese());
+ workingMemory.insert(new Cheese());
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ workingMemory.fireAllRules(2);
- Person bob = new Person( "Bob",
- 30 );
- bob.setStatus( "hungry" );
- workingMemory.insert( bob );
- workingMemory.insert( new Cheese() );
- workingMemory.insert( new Cheese() );
+ assertEquals("should have fired only once", 1, list.size());
+ assertEquals("full", bob.getStatus());
+ assertEquals(31, bob.getAge());
+ }
- workingMemory.fireAllRules( 2 );
+ public void testOrCE() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_OrCE.drl")));
+ final Package pkg = builder.getPackage();
- assertEquals( "should have fired only once",
- 1,
- list.size() );
- assertEquals( "full",
- bob.getStatus() );
- assertEquals( 31,
- bob.getAge() );
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- 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 List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.insert(new Cheese("brie", 10));
+ workingMemory.insert(new Person("bob"));
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ workingMemory.fireAllRules();
- workingMemory.insert( new Cheese( "brie",
- 10 ) );
- workingMemory.insert( new Person( "bob" ) );
+ assertEquals("should have fired once", 1, list.size());
+ }
- workingMemory.fireAllRules();
+ public void testDeepNestedConstraints() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_DeepNestedConstraints.drl")));
+ final Package pkg = builder.getPackage();
- assertEquals( "should have fired once",
- 1,
- list.size() );
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- 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 List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.insert(new Person("bob", "muzzarela"));
+ workingMemory.insert(new Cheese("brie", 10));
+ workingMemory.insert(new Cheese("muzzarela", 80));
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ workingMemory.fireAllRules();
- workingMemory.insert( new Person( "bob",
- "muzzarela" ) );
- workingMemory.insert( new Cheese( "brie",
- 10 ) );
- workingMemory.insert( new Cheese( "muzzarela",
- 80 ) );
+ assertEquals("should have fired twice", 2, list.size());
+ }
- workingMemory.fireAllRules();
+ public void testGetFactHandleEqualityBehavior() throws Exception {
+ final RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setAssertBehaviour(RuleBaseConfiguration.AssertBehaviour.EQUALITY);
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase(conf);
- assertEquals( "should have fired twice",
- 2,
- list.size() );
- }
+ final StatefulSession session = ruleBase.newStatefulSession();
- public void testGetFactHandleEqualityBehavior() throws Exception {
- final RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setAssertBehaviour( RuleBaseConfiguration.AssertBehaviour.EQUALITY );
- final RuleBase ruleBase = RuleBaseFactory.newRuleBase( conf );
+ CheeseEqual cheese = new CheeseEqual("stilton", 10);
+ session.insert(cheese);
+ FactHandle fh = session.getFactHandle(new CheeseEqual("stilton", 10));
+ assertNotNull(fh);
+ }
- final StatefulSession session = ruleBase.newStatefulSession();
+ public void testGetFactHandleIdentityBehavior() throws Exception {
+ final RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setAssertBehaviour(RuleBaseConfiguration.AssertBehaviour.IDENTITY);
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase(conf);
- CheeseEqual cheese = new CheeseEqual( "stilton",
- 10 );
- session.insert( cheese );
- FactHandle fh = session.getFactHandle( new CheeseEqual( "stilton",
- 10 ) );
- assertNotNull( fh );
- }
+ final StatefulSession session = ruleBase.newStatefulSession();
- public void testGetFactHandleIdentityBehavior() throws Exception {
- final RuleBaseConfiguration conf = new RuleBaseConfiguration();
- conf.setAssertBehaviour( RuleBaseConfiguration.AssertBehaviour.IDENTITY );
- final RuleBase ruleBase = RuleBaseFactory.newRuleBase( conf );
+ 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);
+ }
- final StatefulSession session = ruleBase.newStatefulSession();
+ public void testOrCEFollowedByEval() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_OrCEFollowedByEval.drl")));
+ final Package pkg = builder.getPackage();
- 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 );
- }
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- 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 List list = new ArrayList();
+ workingMemory.setGlobal("results", list);
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ workingMemory.insert(new FactA("X"));
+ InternalFactHandle b = (InternalFactHandle) workingMemory
+ .insert(new FactB("X"));
- final List list = new ArrayList();
- workingMemory.setGlobal( "results",
- list );
+ workingMemory.fireAllRules();
- workingMemory.insert( new FactA( "X" ) );
- InternalFactHandle b = (InternalFactHandle) workingMemory.insert( new FactB( "X" ) );
+ assertEquals("should have fired", 2, list.size());
+ assertTrue(list.contains(b.getObject()));
+ }
- workingMemory.fireAllRules();
+ public void testNPEOnMVELAlphaPredicates() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("test_NPEOnMVELPredicate.drl")));
+ final Package pkg = builder.getPackage();
- 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();
+ 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() );
-
- cheese2.setType( "stilton" );
-
- session.update( p, bob );
- session.fireAllRules();
-
- assertEquals( 1,
- list.size() );
-
- }
-
+ assertEquals("should not have fired", 0, list.size());
+
+ cheese2.setType("stilton");
+
+ session.update(p, bob);
+ session.fireAllRules();
+
+ assertEquals(1, list.size());
+
+ }
+
}
Added: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_MergePackageWithSameRuleNames1.drl
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_MergePackageWithSameRuleNames1.drl (rev 0)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_MergePackageWithSameRuleNames1.drl 2008-03-12 02:46:49 UTC (rev 18864)
@@ -0,0 +1,10 @@
+package org.drools.test
+
+global java.util.List results;
+
+rule "rule1"
+ when
+
+ then
+ results.add("rule1 for the package1");
+end
\ No newline at end of file
Added: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_MergePackageWithSameRuleNames2.drl
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_MergePackageWithSameRuleNames2.drl (rev 0)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_MergePackageWithSameRuleNames2.drl 2008-03-12 02:46:49 UTC (rev 18864)
@@ -0,0 +1,10 @@
+package org.drools.test
+
+global java.util.List results;
+
+rule "rule1"
+ when
+
+ then
+ results.add("rule1 for the package2");
+end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list