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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 9 00:42:48 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-04-09 00:42:48 -0400 (Wed, 09 Apr 2008)
New Revision: 19502

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OuterFact.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
Log:
adding checks for nested object construction, date coercion

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OuterFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OuterFact.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OuterFact.java	2008-04-09 04:42:48 UTC (rev 19502)
@@ -0,0 +1,20 @@
+package org.drools;
+
+public class OuterFact {
+
+	private String name;
+	private Cheese innerFact;
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public Cheese getInnerFact() {
+		return innerFact;
+	}
+	public void setInnerFact(Cheese innerFact) {
+		this.innerFact = innerFact;
+	}
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OuterFact.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java	2008-04-09 04:28:57 UTC (rev 19501)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java	2008-04-09 04:42:48 UTC (rev 19502)
@@ -9,10 +9,12 @@
 import java.util.Map;
 
 import org.drools.Cheese;
+import org.drools.OuterFact;
 import org.drools.Person;
 import org.drools.WorkingMemory;
 import org.drools.base.ClassTypeResolver;
 import org.drools.base.TypeResolver;
+import org.drools.base.mvel.DroolsMVELFactory;
 import org.drools.brms.client.modeldriven.testing.ExecutionTrace;
 import org.drools.brms.client.modeldriven.testing.Expectation;
 import org.drools.brms.client.modeldriven.testing.FactData;
@@ -27,6 +29,11 @@
 
 public class ScenarioRunnerTest extends RuleUnit {
 
+	public void setUp() {
+		//needed when running stand alone to make sure the converters get loaded.
+		DroolsMVELFactory d = new DroolsMVELFactory();
+	}
+
     public void testPopulateFacts() throws Exception {
         Scenario sc = new Scenario();
         List facts = ls( new FactData( "Cheese",
@@ -70,6 +77,91 @@
 
     }
 
+    public void testPopulateNested() throws Exception {
+        Scenario sc = new Scenario();
+        List facts = ls( new FactData( "Cheese",
+                                       "c1",
+                                       ls( new FieldData( "type",
+                                                          "cheddar" ),
+                                           new FieldData( "price",
+                                                          "42" ) ),
+                                       false ),
+                         new FactData( "OuterFact",
+                                       "p1",
+                                       ls( new FieldData( "name",
+                                                          "mic" ),
+                                           new FieldData( "innerFact",
+                                                          "=c1" ) ),
+                                       false ) );
+
+        sc.fixtures.addAll( facts );
+        TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+                                                       Thread.currentThread().getContextClassLoader() );
+        resolver.addImport( "org.drools.Cheese" );
+        resolver.addImport( "org.drools.OuterFact" );
+        ScenarioRunner runner = new ScenarioRunner( sc,
+                                                    resolver,
+                                                    new MockWorkingMemory() );
+
+        assertTrue( runner.populatedData.containsKey( "c1" ) );
+        assertTrue( runner.populatedData.containsKey( "p1" ) );
+
+        OuterFact o = (OuterFact) runner.populatedData.get("p1");
+        assertNotNull(o.getInnerFact());
+
+    }
+
+    public void testPopulateEmpty() throws Exception {
+        Scenario sc = new Scenario();
+        List facts = ls( new FactData( "Cheese",
+                                       "c1", new ArrayList(), false));
+        sc.fixtures.addAll( facts );
+        TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+                                                       Thread.currentThread().getContextClassLoader() );
+        sc.fixtures.addAll( facts );
+        resolver.addImport( "org.drools.Cheese" );
+        ScenarioRunner runner = new ScenarioRunner( sc,
+                                                    resolver,
+                                                    new MockWorkingMemory() );
+
+        assertTrue( runner.populatedData.containsKey( "c1" ) );
+        assertTrue(runner.populatedData.get("c1") instanceof Cheese);
+    }
+
+    public void testDateField() throws Exception {
+        Scenario sc = new Scenario();
+        List facts = ls( new FactData( "Cheese",
+                                       "c1",
+                                       ls( new FieldData( "type",
+                                                          "cheddar" ),
+                                           new FieldData( "usedBy",
+                                                          "10-Jul-2008" ) ),
+                                       false ),
+                         new FactData( "OuterFact",
+                                       "p1",
+                                       ls( new FieldData( "name",
+                                                          "mic" ),
+                                           new FieldData( "innerFact",
+                                                          "=c1" ) ),
+                                       false ) );
+
+        sc.fixtures.addAll( facts );
+        TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+                                                       Thread.currentThread().getContextClassLoader() );
+        resolver.addImport( "org.drools.Cheese" );
+        resolver.addImport( "org.drools.OuterFact" );
+        ScenarioRunner runner = new ScenarioRunner( sc,
+                                                    resolver,
+                                                    new MockWorkingMemory() );
+
+        assertTrue( runner.populatedData.containsKey( "c1" ) );
+        assertTrue( runner.populatedData.containsKey( "p1" ) );
+
+        Cheese c = (Cheese) runner.populatedData.get("c1");
+        assertNotNull(c.getUsedBy());
+
+    }
+
     public void testPopulateFactsWithExpressions() throws Exception {
         Scenario sc = new Scenario();
         List facts = ls( new FactData( "Cheese",




More information about the jboss-svn-commits mailing list