[jboss-svn-commits] JBL Code SVN: r11684 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri May 4 10:44:14 EDT 2007
Author: tirelli
Date: 2007-05-04 10:44:13 -0400 (Fri, 04 May 2007)
New Revision: 11684
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultExpanderTest.java
Log:
JBRULES-790: adding unit test to DSL expansion with keyword clashes.
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultExpanderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultExpanderTest.java 2007-05-04 14:31:10 UTC (rev 11683)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/dsl/DefaultExpanderTest.java 2007-05-04 14:44:13 UTC (rev 11684)
@@ -3,13 +3,13 @@
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
-import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import junit.framework.TestCase;
+
import org.drools.lang.ExpanderException;
-import org.drools.lang.dsl.DSLMappingEntry.Section;
-import junit.framework.TestCase;
-
public class DefaultExpanderTest extends TestCase {
private DSLMappingFile file = null;
private DefaultExpander expander = null;
@@ -46,7 +46,8 @@
DSLMappingFile file = new DSLMappingFile();
String dsl = "[when]foo=Foo()\n[then]bar {num}=baz({num});";
file.parseAndLoad( new StringReader( dsl ) );
- assertEquals( 0, file.getErrors().size() );
+ assertEquals( 0,
+ file.getErrors().size() );
DefaultExpander ex = new DefaultExpander();
ex.addDSLMapping( file.getMapping() );
@@ -61,24 +62,53 @@
drl = ex.expand( source );
//System.out.println( drl );
assertTrue( ex.hasErrors() );
- assertEquals( 1, ex.getErrors().size() );
+ assertEquals( 1,
+ ex.getErrors().size() );
//System.err.println(( (ExpanderException) ex.getErrors().get( 0 )).getMessage());
+ }
+ public void testExpandWithKeywordClashes() throws Exception {
+
+ DSLMappingFile file = new DSLMappingFile();
+ String dsl = "[when]Invoke rule executor=ruleExec: RuleExecutor()\n" + "[then]Execute rule \"{id}\"=ruleExec.ExecuteSubRule( new Long({id}));";
+ file.parseAndLoad( new StringReader( dsl ) );
+ assertEquals( 0,
+ file.getErrors().size() );
+
+ DefaultExpander ex = new DefaultExpander();
+ ex.addDSLMapping( file.getMapping() );
+ String source = "package something;\n\nrule \"1\"\nwhen\n Invoke rule executor\nthen\n Execute rule \"5\"\nend";
+ String expected = "package something;\n\nrule \"1\"\nwhen\n ruleExec: RuleExecutor()\nthen\n ruleExec.ExecuteSubRule( new Long(5));\nend\n";
+ String drl = ex.expand( source );
+// System.out.println("["+drl+"]" );
+// System.out.println("["+expected+"]" );
+ assertFalse( ex.hasErrors() );
+ assertEquals( expected, drl );
+
}
-
+
public void FIXME_testLineNumberError() throws Exception {
DSLMappingFile file = new DSLMappingFile();
String dsl = "[when]foo=Foo()\n[then]bar {num}=baz({num});";
file.parseAndLoad( new StringReader( dsl ) );
-
+
DefaultExpander ex = new DefaultExpander();
ex.addDSLMapping( file.getMapping() );
String source = "rule 'q'\nagenda-group 'x'\nwhen\n __ \nthen\n bar 42\nend";
ex.expand( source );
assertTrue( ex.hasErrors() );
- assertEquals(1, ex.getErrors().size());
+ assertEquals( 1,
+ ex.getErrors().size() );
ExpanderException err = (ExpanderException) ex.getErrors().get( 0 );
- assertEquals(4, err.getLine());
-
+ assertEquals( 4,
+ err.getLine() );
+
}
+
+ private boolean equalsIgnoreWhiteSpace( String expected, String actual ) {
+ String patternStr = expected.replaceAll( "\\s+", "(\\\\s|\\\\n|\\\\r)*" );//.replaceAll( "\\n", "\\s*\\$" );
+ Pattern pattern = Pattern.compile( patternStr, Pattern.DOTALL );
+ Matcher m = pattern.matcher( actual );
+ return m.matches();
+ }
}
More information about the jboss-svn-commits
mailing list