[jboss-svn-commits] JBL Code SVN: r19824 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu May 1 18:43:18 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-05-01 18:43:17 -0400 (Thu, 01 May 2008)
New Revision: 19824

Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-1512 UnsupportedOperationException when calling addPackage on rulebase.
-Adding test to trunk, although trunk wasn't broken for this.

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	2008-05-01 22:08:38 UTC (rev 19823)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-05-01 22:43:17 UTC (rev 19824)
@@ -347,6 +347,47 @@
                       ((List)workingMemory.getGlobal("results")).get( 1 ) );
     }
 
+    public void testGlobalMerge() throws Exception {
+        // from JBRULES-1512
+        String rule1 = "package com.sample\n" +
+        "rule \"rule 1\"\n" +
+        "    salience 10\n"+        
+        "    when\n" +       
+        "    l : java.util.List()\n" +
+        "    then\n" +
+        "        l.add( \"rule 1 executed\" );\n" + 
+        "end\n";
+        
+        String rule2 = "package com.sample\n" +
+        "global String str;\n" +
+        "rule \"rule 2\"\n" +
+        "    when\n" +
+        "    l : java.util.List()\n" +        
+        "    then\n" +
+        "        l.add( \"rule 2 executed \" + str);\n" + 
+        "end\n";        
+        
+        PackageBuilder builder1 = new PackageBuilder();
+        builder1.addPackageFromDrl( new StringReader( rule1 ));
+        Package pkg1 = builder1.getPackage();
+        // build second package
+        PackageBuilder builder2 = new PackageBuilder();
+        builder2.addPackageFromDrl( new StringReader( rule2 ) );
+        Package pkg2 = builder2.getPackage();       
+        // create rule base and add both packages
+        RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+        ruleBase.addPackage(pkg1);
+        ruleBase.addPackage(pkg2);
+
+        WorkingMemory wm = ruleBase.newStatefulSession();
+        wm.setGlobal(  "str", "boo" );
+        List list = new ArrayList();
+        wm.insert(  list );
+        wm.fireAllRules();
+        assertEquals( "rule 1 executed", list.get(  0 ) );
+        assertEquals( "rule 2 executed boo", list.get(  1 ));
+    }
+    
     public void testCustomGlobalResolver() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_globalCustomResolver.drl" ) ) );




More information about the jboss-svn-commits mailing list