[jboss-svn-commits] JBL Code SVN: r15358 - in labs/jbossrules/trunk/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 Sep 25 08:44:00 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-09-25 08:44:00 -0400 (Tue, 25 Sep 2007)
New Revision: 15358

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_globalCustomResolver.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
-updated test for custom global resolvers

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2007-09-25 09:31:55 UTC (rev 15357)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2007-09-25 12:44:00 UTC (rev 15358)
@@ -107,6 +107,7 @@
 import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;
 import org.drools.spi.Activation;
 import org.drools.spi.ConsequenceExceptionHandler;
+import org.drools.spi.GlobalResolver;
 import org.drools.xml.XmlDumper;
 
 /** Run all the tests with the ReteOO engine implementation */
@@ -150,7 +151,84 @@
         assertEquals( new Integer( 5 ),
                       list.get( 0 ) );
     }
+    
+    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 RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+        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 Cheese stilton = new Cheese( "stilton",
+                                           5 );
+        workingMemory.insert( stilton );
+
+        workingMemory.fireAllRules();
+
+        assertEquals( 1,
+                      results.size() );
+        assertEquals( "memberOf",
+                      results.get( 0 ) );
+
+        final Cheese brie = new Cheese( "brie",
+                                        5 );
+        workingMemory.insert( brie );
+
+        workingMemory.fireAllRules();
+
+        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();
+
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+        final Map map = new HashMap();
+        List list = new ArrayList();
+        String string = "stilton";
+        
+        map.put("list", list);
+        map.put("string", string);
+        
+        workingMemory.setGlobalResolver( new GlobalResolver() {
+            public Object resolveGlobal(String identifier) {
+                return map.get( identifier );
+            }
+
+            public void setGlobal(String identifier,
+                                  Object value) {
+                map.put( identifier, value );
+            }
+            
+        } );
+
+        workingMemory.fireAllRules();
+
+        assertEquals( new Integer( 5 ),
+                      list.get( 0 ) );        
+    }    
+
     public void testFieldBiningsAndEvalSharing() throws Exception {
         final String drl = "test_FieldBindingsAndEvalSharing.drl";
         evalSharingTest( drl );
@@ -3166,49 +3244,6 @@
 
     }
 
-    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 RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
-        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 Cheese stilton = new Cheese( "stilton",
-                                           5 );
-        workingMemory.insert( stilton );
-
-        workingMemory.fireAllRules();
-
-        assertEquals( 1,
-                      results.size() );
-        assertEquals( "memberOf",
-                      results.get( 0 ) );
-
-        final Cheese brie = new Cheese( "brie",
-                                        5 );
-        workingMemory.insert( brie );
-
-        workingMemory.fireAllRules();
-
-        assertEquals( 2,
-                      results.size() );
-        assertEquals( "not memberOf",
-                      results.get( 1 ) );
-    }
-
     public void testEqualitySupport() throws Exception {
 
         final PackageBuilder builder = new PackageBuilder();

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_globalCustomResolver.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_globalCustomResolver.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_globalCustomResolver.drl	2007-09-25 12:44:00 UTC (rev 15358)
@@ -0,0 +1,14 @@
+package org.drools.test;
+
+import org.drools.Cheese;
+
+global java.util.List list
+global java.lang.String string
+
+
+rule "global rule test"
+    when
+        eval( "stilton".equals( string ) )
+    then
+		list.add( new Integer(5) );
+end    
\ No newline at end of file




More information about the jboss-svn-commits mailing list