[jboss-svn-commits] JBL Code SVN: r19826 - labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests.

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


Author: mark.proctor at jboss.com
Date: 2008-05-01 19:29:18 -0400 (Thu, 01 May 2008)
New Revision: 19826

Modified:
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-1438 FactTemplate Property Access leads to RuleBuilder Exception

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-05-01 23:29:12 UTC (rev 19825)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-05-01 23:29:18 UTC (rev 19826)
@@ -669,7 +669,46 @@
                       fact.getFieldValue( "price" ) );
 
     }
+    
+    public void testFactTemplateFieldBinding() throws Exception {
+        // from JBRULES-1512
+        String rule1 = "package org.drools.entity\n" +
+        " global java.util.List list\n" +
+        "template Settlement\n" +
+        "    String InstrumentType\n" +
+        "    String InstrumentName\n" +
+        "end\n"  +
+        "rule TestEntity\n" +
 
+        "    when\n" +
+        "        Settlement(InstrumentType == \"guitar\", name : InstrumentName)\n" +        
+        "    then \n" +
+        "        list.add( name ) ;\n" +
+        "end\n";
+              
+        PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new StringReader( rule1 ));
+        Package pkg = builder.getPackage();
+        
+        RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+        ruleBase.addPackage(pkg);
+
+        WorkingMemory wm = ruleBase.newStatefulSession();
+        List list = new ArrayList();
+        wm.setGlobal(  "list", list );
+        
+        final FactTemplate cheese = pkg.getFactTemplate( "Settlement" );
+        final Fact guitar = cheese.createFact( 0 );
+        guitar.setFieldValue( "InstrumentType",
+                               "guitar" );
+        guitar.setFieldValue( "InstrumentName",
+                               "gibson" );
+        wm.insert( guitar );
+
+        wm.fireAllRules();
+        assertEquals( "gibson", list.get(  0 ) );
+    }    
+
     public void testPropertyChangeSupport() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_PropertyChange.drl" ) ) );




More information about the jboss-svn-commits mailing list