[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