package org.drools.rule.builder.dialect.mvel;
import junit.framework.TestCase;
import org.drools.base.mvel.MVELConsequence;
import org.drools.compiler.DrlParser;
import org.drools.compiler.PackageBuilder;
import org.drools.lang.descr.PackageDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.rule.Package;
import org.mvel2.compiler.CompiledExpression;
public class MVELDebugTest extends TestCase {
public void testDebug() throws Exception {
String rule = "package com.sample; dialect \"mvel\" rule myRule when then System.out.println( \"test\" ); end";
PackageBuilder builder = new PackageBuilder();
DrlParser parser = new DrlParser();
PackageDescr packageDescr = parser.parse(rule);
RuleDescr ruleDescr = packageDescr.getRules().get(0);
builder = new PackageBuilder( );
builder.addPackage(packageDescr);
Package pkg = builder.getPackage();
MVELConsequence consequence = (MVELConsequence) pkg.getRule("myRule").getConsequence();
String sourceName = ((CompiledExpression) consequence.getCompExpr()).getSourceName();
System.out.println(sourceName);
String ruleName = ruleDescr.getNamespace() + "." + ruleDescr.getClassName();
System.out.println(ruleName);
assertEquals(sourceName, ruleName);
}
}