[jboss-svn-commits] JBL Code SVN: r21289 - in labs/jbossrules/trunk/drools-guvnor/src: test/java/org/drools and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jul 30 00:40:20 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-07-30 00:40:20 -0400 (Wed, 30 Jul 2008)
New Revision: 21289
Added:
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/lang/
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/lang/RuleNameExtractorTest.java
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
Log:
JBRULES-1700 rule list failing
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2008-07-30 02:07:13 UTC (rev 21288)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2008-07-30 04:40:20 UTC (rev 21289)
@@ -1478,14 +1478,16 @@
try {
PackageDescr pkg = p.parse(asm.getDRL());
int count = 0;
- for (Iterator iterator = pkg.getRules().iterator(); iterator
- .hasNext();) {
- RuleDescr r = (RuleDescr) iterator.next();
- result.add(r.getName());
- count++;
- if (count == 5000) {
- result.add("More then 5000 rules.");
- break;
+ if (pkg != null) {
+ for (Iterator iterator = pkg.getRules().iterator(); iterator
+ .hasNext();) {
+ RuleDescr r = (RuleDescr) iterator.next();
+ result.add(r.getName());
+ count++;
+ if (count == 5000) {
+ result.add("More then 5000 rules.");
+ break;
+ }
}
}
return result.toArray(new String[result.size()]);
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2008-07-30 02:07:13 UTC (rev 21288)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2008-07-30 04:40:20 UTC (rev 21289)
@@ -1579,6 +1579,14 @@
assertEquals("rule1", list[0]);
assertEquals("rule2", list[1]);
+
+ rule2.updateContent("wang");
+ rule2.checkin("");
+
+ list = impl.listRulesInPackage(pkg.getName());
+ assertEquals(0, list.length);
+
+
}
/**
Added: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/lang/RuleNameExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/lang/RuleNameExtractorTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/lang/RuleNameExtractorTest.java 2008-07-30 04:40:20 UTC (rev 21289)
@@ -0,0 +1,52 @@
+package org.drools.lang;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.antlr.runtime.ANTLRReaderStream;
+import org.antlr.runtime.CommonTokenStream;
+import org.antlr.runtime.RecognitionException;
+
+/**
+ */
+public class RuleNameExtractorTest extends TestCase {
+
+ public void testExtractRuleNames() throws RecognitionException, IOException {
+ DroolsTree tree = getTree( "multiple_rules.drl" );
+ List<String> ruleNames = new ArrayList<String>();
+ extractRuleNames( tree, ruleNames );
+
+ assertTrue( ruleNames.contains( "Like Stilton" ) );
+ assertTrue( ruleNames.contains( "Like Cheddar" ) );
+ }
+
+ private void extractRuleNames(DroolsTree tree, List<String> ruleNames ) {
+ if( tree.getType() == DRLParser.VK_RULE ) {
+ ruleNames.add( getCleanId( (DroolsTree) tree.getChild( 0 ) ) );
+ } else {
+ for( int i = 0; i < tree.getChildCount(); i++ ) {
+ extractRuleNames( (DroolsTree) tree.getChild( i ), ruleNames );
+ }
+ }
+ }
+
+ private DroolsTree getTree( final String fileName ) throws RecognitionException, IOException {
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( fileName ) );
+ DRLParser parser = new DRLParser( new CommonTokenStream( new DRLLexer( new ANTLRReaderStream( reader ) ) ) );
+ parser.setTreeAdaptor(new DroolsTreeAdaptor());
+ return (DroolsTree) parser.compilation_unit().getTree();
+ }
+
+ private String getCleanId(DroolsTree id) {
+ String cleanedId = id.getText();
+ if (cleanedId.startsWith("\"") || cleanedId.startsWith("'")) {
+ cleanedId = cleanedId.substring(1, cleanedId.length() - 1);
+ }
+ return cleanedId;
+ }
+}
\ No newline at end of file
Property changes on: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/lang/RuleNameExtractorTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list