[jboss-svn-commits] JBL Code SVN: r19069 - in labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools: integrationtests and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 18 18:19:02 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-18 18:19:02 -0400 (Tue, 18 Mar 2008)
New Revision: 19069
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Person.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
-moved mvel's test to MVELTest
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Person.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Person.java 2008-03-18 22:01:06 UTC (rev 19068)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Person.java 2008-03-18 22:19:02 UTC (rev 19069)
@@ -33,33 +33,34 @@
private Cheese cheese;
- private List addresses = new ArrayList();
+ private List addresses = new ArrayList();
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- name = (String)in.readObject();
- likes = (String)in.readObject();
- age = in.readInt();
- bigDecimal = (BigDecimal)in.readObject();
- bigInteger = (BigInteger)in.readObject();
- hair = (String)in.readObject();
- sex = in.readChar();
- alive = in.readBoolean();
- status = (String)in.readObject();
- cheese = (Cheese)in.readObject();
- addresses = (List)in.readObject();
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ name = (String) in.readObject();
+ likes = (String) in.readObject();
+ age = in.readInt();
+ bigDecimal = (BigDecimal) in.readObject();
+ bigInteger = (BigInteger) in.readObject();
+ hair = (String) in.readObject();
+ sex = in.readChar();
+ alive = in.readBoolean();
+ status = (String) in.readObject();
+ cheese = (Cheese) in.readObject();
+ addresses = (List) in.readObject();
}
public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(name);
- out.writeObject(likes);
- out.writeObject(bigDecimal);
- out.writeObject(bigInteger);
- out.writeObject(hair);
- out.writeChar(sex);
- out.writeBoolean(alive);
- out.writeObject(status);
- out.writeObject(cheese);
- out.writeObject(addresses);
+ out.writeObject( name );
+ out.writeObject( likes );
+ out.writeObject( bigDecimal );
+ out.writeObject( bigInteger );
+ out.writeObject( hair );
+ out.writeChar( sex );
+ out.writeBoolean( alive );
+ out.writeObject( status );
+ out.writeObject( cheese );
+ out.writeObject( addresses );
}
public List getAddresses() {
@@ -95,6 +96,14 @@
}
public Person(final String name,
+ final Cheese cheese) {
+ this( name,
+ null,
+ 0 );
+ this.cheese = cheese;
+ }
+
+ public Person(final String name,
final String likes,
final int age) {
this.name = name;
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java 2008-03-18 22:01:06 UTC (rev 19068)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java 2008-03-18 22:19:02 UTC (rev 19069)
@@ -3,9 +3,12 @@
import junit.framework.Assert;
import junit.framework.TestCase;
import org.drools.Cheese;
+import org.drools.Cheesery;
+import org.drools.FactHandle;
import org.drools.Person;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
import org.drools.WorkingMemory;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
@@ -19,10 +22,12 @@
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.Serializable;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
public class MVELTest extends TestCase {
public void testHelloWorld() throws Exception {
@@ -103,7 +108,167 @@
}
}
+
+ public void testMVELSoundex() throws Exception {
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "MVEL_soundex.drl" ) );
+ RuleBase ruleBase = loadRuleBase( reader );
+
+ ruleBase = SerializationHelper.serializeObject( ruleBase );
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+ workingMemory = SerializationHelper.serializeObject( workingMemory );
+ Cheese c = new Cheese( "fubar",
+ 2 );
+
+ workingMemory.insert( c );
+ workingMemory.fireAllRules();
+ assertEquals( 42,
+ c.getPrice() );
+ }
+
+ public void testMVELConsequenceWithMapsAndArrays() throws Exception {
+ String rule = "package org.test;\n";
+ rule += "import java.util.ArrayList\n";
+ rule += "import java.util.HashMap\n";
+ rule += "global java.util.List list\n";
+ rule += "rule \"Test Rule\"\n";
+ rule += " dialect \"mvel\"";
+ rule += "when\n";
+ rule += "then\n";
+ rule += " m = new HashMap();\n";
+ rule += " l = new ArrayList();\n";
+ rule += " l.add(\"first\");\n";
+ rule += " m.put(\"content\", l);\n";
+ rule += " System.out.println(m[\"content\"][0]);\n";
+ rule += " list.add(m[\"content\"][0]);\n";
+ rule += "end";
+
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new StringReader( rule ) );
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final StatefulSession session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ session.setGlobal( "list",
+ list );
+ session.fireAllRules();
+
+ assertEquals( 1,
+ list.size() );
+ assertEquals( "first",
+ list.get( 0 ) );
+ }
+
+ /* @see JBRULES-1484 */
+ public void testMVELDynamicImports() throws Exception {
+ String rule = "package org.xxx;\n";
+
+ rule += "import org.drools.*\n";
+
+ rule += "global java.util.List list\n";
+ rule += "rule \"Test Rule\"\n";
+ rule += " dialect \"mvel\"";
+ rule += "when\n";
+ rule += "then\n";
+ rule += " p = new Person( \"diablo\", new Cheese (\"cheddar\") );";
+ rule += " c = new Cheese( \"y\" );";
+ rule += " list.add( p );\n";
+ rule += "end";
+
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new StringReader( rule ) );
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final StatefulSession session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ session.setGlobal( "list",
+ list );
+ session.fireAllRules();
+
+ assertEquals( 1,
+ list.size() );
+
+ Person p = new Person( "diablo",
+ new Cheese( "cheddar" ) );
+
+ assertEquals( p,
+ list.get( 0 ) );
+ }
+
+ public void testMatchesMVEL() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MatchesMVEL.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ final List results = new ArrayList();
+ session.setGlobal( "results",
+ results );
+
+ Map map = new HashMap();
+ map.put( "content",
+ "hello ;=" );
+ session.insert( map );
+
+ session.fireAllRules();
+
+ assertEquals( 1,
+ results.size() );
+ }
+
+ public void testNPEOnMVELAlphaPredicates() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NPEOnMVELPredicate.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ ruleBase = SerializationHelper.serializeObject( ruleBase );
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ final List list = new ArrayList();
+ session.setGlobal( "results",
+ list );
+
+ Cheese cheese = new Cheese( "stilton",
+ 10 );
+ Cheesery cheesery = new Cheesery();
+ cheesery.addCheese( cheese );
+ Person bob = new Person( "bob",
+ "stilton" );
+ Cheese cheese2 = new Cheese();
+ bob.setCheese( cheese2 );
+
+ FactHandle p = session.insert( bob );
+ FactHandle c = session.insert( cheesery );
+
+ session.fireAllRules();
+
+ assertEquals( "should not have fired",
+ 0,
+ list.size() );
+
+ cheese2.setType( "stilton" );
+
+ session.update( p,
+ bob );
+ session.fireAllRules();
+
+ assertEquals( 1,
+ list.size() );
+
+ }
+
+
public Object compiledExecute(String ex) {
Serializable compiled = MVEL.compileExpression(ex);
return MVEL.executeExpression(compiled, new Object(), new HashMap());
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-18 22:01:06 UTC (rev 19068)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-18 22:19:02 UTC (rev 19069)
@@ -230,25 +230,6 @@
}
- public void testMVELSoundex() throws Exception {
-
- // read in the source
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "MVEL_soundex.drl" ) );
- RuleBase ruleBase = loadRuleBase( reader );
-
- ruleBase = SerializationHelper.serializeObject( ruleBase );
- WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
- workingMemory = SerializationHelper.serializeObject( workingMemory );
- Cheese c = new Cheese( "fubar",
- 2 );
-
- workingMemory.insert( c );
- workingMemory.fireAllRules();
- assertEquals( 42,
- c.getPrice() );
- }
-
public void testGlobals() throws Exception {
final PackageBuilder builder = new PackageBuilder();
@@ -882,79 +863,6 @@
}
- public void testMVELConsequenceWithMapsAndArrays() throws Exception {
- String rule = "package org.test;\n";
- rule += "import java.util.ArrayList\n";
- rule += "import java.util.HashMap\n";
- rule += "global java.util.List list\n";
- rule += "rule \"Test Rule\"\n";
- rule += " dialect \"mvel\"";
- rule += "when\n";
- rule += "then\n";
- rule += " m = new HashMap();\n";
- rule += " l = new ArrayList();\n";
- rule += " l.add(\"first\");\n";
- rule += " m.put(\"content\", l);\n";
- rule += " System.out.println(m[\"content\"][0]);\n";
- rule += " list.add(m[\"content\"][0]);\n";
- rule += "end";
-
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new StringReader( rule ) );
- final Package pkg = builder.getPackage();
-
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final StatefulSession session = ruleBase.newStatefulSession();
- List list = new ArrayList();
- session.setGlobal( "list",
- list );
- session.fireAllRules();
-
- assertEquals( 1,
- list.size() );
- assertEquals( "first",
- list.get( 0 ) );
- }
-
- /* @see JBRULES-1484 */
- public void testMVELDynamicImports() throws Exception {
- String rule = "package org.xxx;\n";
-
- rule += "import org.drools.*\n";
-
- rule += "global java.util.List list\n";
- rule += "rule \"Test Rule\"\n";
- rule += " dialect \"mvel\"";
- rule += "when\n";
- rule += "then\n";
- rule += " p = new Person( \"diablo\", new Cheese (\"cheddar\") );";
- rule += " c = new Cheese( \"y\" );";
- rule += " list.add( p );\n";
- rule += "end";
-
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new StringReader( rule ) );
- final Package pkg = builder.getPackage();
-
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final StatefulSession session = ruleBase.newStatefulSession();
- List list = new ArrayList();
- session.setGlobal( "list",
- list );
- session.fireAllRules();
-
- assertEquals( 1,
- list.size() );
-
- Person p = new Person( "diablo",
- new Cheese( "cheddar" ) );
-
- assertEquals( p,
- list.get( 0 ) );
- }
-
public void testCell() throws Exception {
final Cell cell1 = new Cell( 9 );
final Cell cell = new Cell( 0 );
@@ -3311,30 +3219,6 @@
list.get( 3 ) );
}
- public void testMatchesMVEL() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_MatchesMVEL.drl" ) ) );
- final Package pkg = builder.getPackage();
-
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final StatefulSession session = ruleBase.newStatefulSession();
-
- final List results = new ArrayList();
- session.setGlobal( "results",
- results );
-
- Map map = new HashMap();
- map.put( "content",
- "hello ;=" );
- session.insert( map );
-
- session.fireAllRules();
-
- assertEquals( 1,
- results.size() );
- }
-
public void testAutomaticBindings() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_AutoBindings.drl" ) ) );
@@ -5050,48 +4934,4 @@
list.size() );
assertTrue( list.contains( b.getObject() ) );
}
-
- public void testNPEOnMVELAlphaPredicates() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NPEOnMVELPredicate.drl" ) ) );
- final Package pkg = builder.getPackage();
-
- RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- ruleBase = SerializationHelper.serializeObject( ruleBase );
- final StatefulSession session = ruleBase.newStatefulSession();
-
- final List list = new ArrayList();
- session.setGlobal( "results",
- list );
-
- Cheese cheese = new Cheese( "stilton",
- 10 );
- Cheesery cheesery = new Cheesery();
- cheesery.addCheese( cheese );
- Person bob = new Person( "bob",
- "stilton" );
- Cheese cheese2 = new Cheese();
- bob.setCheese( cheese2 );
-
- FactHandle p = session.insert( bob );
- FactHandle c = session.insert( cheesery );
-
- session.fireAllRules();
-
- assertEquals( "should not have fired",
- 0,
- list.size() );
-
- cheese2.setType( "stilton" );
-
- session.update( p,
- bob );
- session.fireAllRules();
-
- assertEquals( 1,
- list.size() );
-
- }
-
}
More information about the jboss-svn-commits
mailing list