[jboss-svn-commits] JBL Code SVN: r13964 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/rule/builder/dialect and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 2 10:15:45 EDT 2007
Author: ahtik
Date: 2007-08-02 10:15:45 -0400 (Thu, 02 Aug 2007)
New Revision: 13964
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/rule/builder/dialect/mvel/
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/rule/builder/dialect/mvel/mvel_rule.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
Log:
Failing testcase demonstrating problem with mvel debug symbols
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java 2007-08-02 13:34:35 UTC (rev 13963)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java 2007-08-02 14:15:45 UTC (rev 13964)
@@ -1,9 +1,11 @@
package org.drools.rule.builder.dialect.mvel;
+import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+import junit.framework.Assert;
import junit.framework.TestCase;
import org.drools.Cheese;
@@ -12,17 +14,25 @@
import org.drools.WorkingMemory;
import org.drools.base.ClassObjectType;
import org.drools.base.DefaultKnowledgeHelper;
+import org.drools.base.mvel.MVELConsequence;
import org.drools.common.AgendaItem;
import org.drools.common.InternalFactHandle;
import org.drools.common.PropagationContextImpl;
+import org.drools.compiler.Dialect;
import org.drools.compiler.DialectConfiguration;
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.lang.descr.PackageDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.Declaration;
import org.drools.rule.Package;
import org.drools.rule.Pattern;
+import org.drools.rule.Rule;
+import org.drools.rule.builder.RuleBuildContext;
+import org.drools.rule.builder.RuleBuilder;
import org.drools.spi.ObjectType;
import org.drools.spi.PatternExtractor;
@@ -34,7 +44,7 @@
public void testSimpleExpression() throws Exception {
final Package pkg = new Package( "pkg1" );
final RuleDescr ruleDescr = new RuleDescr( "rule 1" );
- ruleDescr.setConsequence( "modify (cheese) {price = 5 }; retract (cheese)" );
+ ruleDescr.setConsequence( "modify (cheese) {price = 5 };\nretract (cheese)" );
PackageBuilder pkgBuilder = new PackageBuilder( pkg );
final PackageBuilderConfiguration conf = pkgBuilder.getPackageBuilderConfiguration();
@@ -193,4 +203,45 @@
MVELConsequenceBuilder.delimitExpressions( ex ) );
}
+
+ public void testMVELDebugSymbols() throws DroolsParserException {
+
+ final DrlParser parser = new DrlParser();
+ final PackageDescr pkgDescr = parser.parse( new InputStreamReader( getClass().getResourceAsStream( "mvel_rule.drl" ) ) );
+
+ // just checking there is no parsing errors
+ Assert.assertFalse( parser.getErrors().toString(),
+ parser.hasErrors() );
+
+ final Package pkg = new Package( "org.drools" );
+
+ final RuleDescr ruleDescr = (RuleDescr) pkgDescr.getRules().get( 0 );
+
+ final RuleBuilder builder = new RuleBuilder( );
+
+ final PackageBuilder pkgBuilder = new PackageBuilder(pkg);
+ final PackageBuilderConfiguration conf = pkgBuilder.getPackageBuilderConfiguration();
+ Dialect dialect = pkgBuilder.getPackageBuilderConfiguration().getDialectRegistry().getDialectConfiguration( "mvel" ).getDialect();
+
+ RuleBuildContext context = new RuleBuildContext(conf, pkg, ruleDescr, conf.getDialectRegistry(), dialect);
+
+ builder.build( context );
+
+ Assert.assertTrue( context.getErrors().toString(),
+ context.getErrors().isEmpty() );
+
+ final Rule rule = context.getRule();
+
+ MVELConsequence mvelCons = (MVELConsequence) rule.getConsequence();
+ String s = org.mvel.debug.DebugTools.decompile(mvelCons.getCompExpr());
+
+ int fromIndex=0;
+ int count = 0;
+ while ((fromIndex = s.indexOf( "DEBUG_SYMBOL", fromIndex+1 )) > -1) {
+ count++;
+ }
+ assertEquals(4, count);
+
+ }
+
}
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/rule/builder/dialect/mvel/mvel_rule.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/rule/builder/dialect/mvel/mvel_rule.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/rule/builder/dialect/mvel/mvel_rule.drl 2007-08-02 14:15:45 UTC (rev 13964)
@@ -0,0 +1,11 @@
+
+rule simple_rule
+ dialect "mvel"
+ when
+
+ then
+ System.out.println( "a1" );
+ System.out.println( "a2" );
+ System.out.println( "a3" );
+ System.out.println( "a4" );
+end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list