[jboss-svn-commits] JBL Code SVN: r14334 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/lang and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Aug 17 10:30:17 EDT 2007


Author: tirelli
Date: 2007-08-17 10:30:16 -0400 (Fri, 17 Aug 2007)
New Revision: 14334

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/or_ce.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
Log:
JBRULES-1047: adding parser unit test

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2007-08-17 11:14:45 UTC (rev 14333)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java	2007-08-17 14:30:16 UTC (rev 14334)
@@ -2171,10 +2171,9 @@
     public void testPackageGarbage() throws Exception {
 
         parseResource( "package_garbage.drl" ).compilation_unit();
-        assertTrue(this.parser.hasErrors());
+        assertTrue( this.parser.hasErrors() );
     }
 
-
     public void testPackageAttributes() throws Exception {
         parseResource( "package_attributes.drl" ).compilation_unit();
         assertFalse( this.parser.getErrorMessages().toString(),
@@ -2195,9 +2194,9 @@
         assertEquals( 2,
                       pkg.getRules().size() );
 
-        assertEquals(2, pkg.getImports().size() );
+        assertEquals( 2,
+                      pkg.getImports().size() );
 
-
         RuleDescr rule = (RuleDescr) pkg.getRules().get( 0 );
         assertEquals( "bar",
                       rule.getName() );
@@ -3376,6 +3375,41 @@
                       restr.getText() );
     }
 
+    public void testOrCE() throws Exception {
+        final DRLParser parser = parseResource( "or_ce.drl" );
+        parser.compilation_unit();
+
+        assertFalse( parser.getErrorMessages().toString(),
+                     parser.hasErrors() );
+
+        final PackageDescr pack = parser.getPackageDescr();
+        assertEquals( 1,
+                      pack.getRules().size() );
+        final RuleDescr rule = (RuleDescr) pack.getRules().get( 0 );
+        assertEquals( 2,
+                      rule.getLhs().getDescrs().size() );
+
+        final PatternDescr person = (PatternDescr) rule.getLhs().getDescrs().get( 0 );
+        assertEquals( "Person",
+                      person.getObjectType() );
+        assertEquals( "$p",
+                      person.getIdentifier() );
+
+        final OrDescr or = (OrDescr) rule.getLhs().getDescrs().get( 1 );
+        assertEquals( 2,
+                      or.getDescrs().size() );
+
+        final PatternDescr cheese1 = (PatternDescr) or.getDescrs().get( 0 );
+        assertEquals( "Cheese",
+                      cheese1.getObjectType() );
+        assertEquals( "$c",
+                      cheese1.getIdentifier() );
+        final PatternDescr cheese2 = (PatternDescr) or.getDescrs().get( 1 );
+        assertEquals( "Cheese",
+                      cheese2.getObjectType() );
+        assertNull( cheese2.getIdentifier() );
+    }
+
     private DRLParser parse(final String text) throws Exception {
         this.parser = newParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
         return this.parser;

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/or_ce.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/or_ce.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/or_ce.drl	2007-08-17 14:30:16 UTC (rev 14334)
@@ -0,0 +1,9 @@
+package org.drools;
+
+rule "testing OR CE"
+when
+    $p : Person( name == "bob" )
+    $c : Cheese( type == $p.likes ) || Cheese( price == 10 )
+then
+    // do something
+end 
\ No newline at end of file




More information about the jboss-svn-commits mailing list