[jboss-svn-commits] JBL Code SVN: r16757 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/brms/server/util and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Nov 23 01:40:20 EST 2007


Author: michael.neale at jboss.com
Date: 2007-11-23 01:40:20 -0500 (Fri, 23 Nov 2007)
New Revision: 16757

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
Log:
JBRULES-1271 scenario persistence

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java	2007-11-23 06:20:03 UTC (rev 16756)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java	2007-11-23 06:40:20 UTC (rev 16757)
@@ -26,12 +26,12 @@
 	/**
 	 * The time taken for execution.
 	 */
-	public long executionTimeResult = -1;
+	public Long executionTimeResult;
 
 	/**
 	 * This is pretty obvious really. The total firing count of all rules.
 	 */
-	public long numberOfRulesFired;
+	public Long numberOfRulesFired;
 
 	public ExecutionTrace() {}
 

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java	2007-11-23 06:40:20 UTC (rev 16757)
@@ -0,0 +1,57 @@
+package org.drools.brms.server.util;
+
+import org.drools.brms.client.modeldriven.testing.ExecutionTrace;
+import org.drools.brms.client.modeldriven.testing.Expectation;
+import org.drools.brms.client.modeldriven.testing.FactData;
+import org.drools.brms.client.modeldriven.testing.FieldData;
+import org.drools.brms.client.modeldriven.testing.Fixture;
+import org.drools.brms.client.modeldriven.testing.RetractFact;
+import org.drools.brms.client.modeldriven.testing.Scenario;
+import org.drools.brms.client.modeldriven.testing.VerifyFact;
+import org.drools.brms.client.modeldriven.testing.VerifyField;
+import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+
+/**
+ * Persists the scenario model.
+ * @author Michael Neale
+ */
+public class ScenarioXMLPersistence {
+
+    private XStream                     xt;
+    private static final ScenarioXMLPersistence INSTANCE = new ScenarioXMLPersistence();
+
+    private ScenarioXMLPersistence() {
+    	xt = new XStream(new DomDriver());
+    	xt.alias("scenario", Scenario.class);
+    	xt.alias("execution-trace", ExecutionTrace.class);
+    	xt.alias("expectation", Expectation.class);
+    	xt.alias("fact-data", FactData.class);
+    	xt.alias("field-data", FieldData.class);
+    	xt.alias("fixture", Fixture.class);
+    	xt.alias("retract-fact", RetractFact.class);
+    	xt.alias("expect-fact", VerifyFact.class);
+    	xt.alias("expect-field", VerifyField.class);
+    	xt.alias("expect-rule", VerifyRuleFired.class);
+    }
+
+    public static ScenarioXMLPersistence getInstance() {
+    	return INSTANCE;
+    }
+
+
+
+    public String marshal(Scenario sc) {
+    	return xt.toXML(sc);
+    }
+
+    public Scenario unmarshal(String xml) {
+    	if (xml == null) return new Scenario();
+    	if (xml.trim().equals("")) return new Scenario();
+    	return (Scenario) xt.fromXML(xml);
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/ScenarioXMLPersistence.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.java	2007-11-23 06:40:20 UTC (rev 16757)
@@ -0,0 +1,96 @@
+package org.drools.brms.server.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.brms.client.modeldriven.testing.ExecutionTrace;
+import org.drools.brms.client.modeldriven.testing.FactData;
+import org.drools.brms.client.modeldriven.testing.FieldData;
+import org.drools.brms.client.modeldriven.testing.Scenario;
+import org.drools.brms.client.modeldriven.testing.VerifyFact;
+import org.drools.brms.client.modeldriven.testing.VerifyField;
+import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
+
+import junit.framework.TestCase;
+
+public class ScenarioXMLPersistenceTest extends TestCase {
+
+	public void testToXML() {
+		ScenarioXMLPersistence p = ScenarioXMLPersistence.getInstance();
+
+		Scenario sc = new Scenario();
+
+		String s = p.marshal(sc);
+		assertNotNull(s);
+
+		sc = getDemo();
+
+		s = p.marshal(sc);
+
+	    assertTrue(s.indexOf("<ruleName>Life unverse and everything</ruleName>") > 0);
+
+	    Scenario sc_ = p.unmarshal(s);
+	    assertEquals(sc.globals.size(), sc_.globals.size());
+	    assertEquals(sc.fixtures.size(), sc_.fixtures.size());
+
+	}
+
+	private Scenario getDemo() {
+        //Sample data
+        FactData d1 = new FactData("Driver", "d1", ls(new FieldData[] {new FieldData("age", "42"), new FieldData("name", "david")}), false);
+        FactData d2 = new FactData("Driver", "d2", ls(new FieldData[] {new FieldData("name", "michael")}), false);
+        FactData d3 = new FactData("Driver", "d3", ls(new FieldData[] {new FieldData("name", "michael2")}), false);
+        FactData d4 = new FactData("Accident", "a1", ls(new FieldData[] {new FieldData("name", "michael2")}), false);
+        Scenario sc = new Scenario();
+        sc.fixtures.add(d1);
+        sc.fixtures.add(d2);
+        sc.globals.add(d3);
+        sc.globals.add(d4);
+        sc.rules.add("rule1");
+        sc.rules.add("rule2");
+
+        sc.fixtures.add(new ExecutionTrace());
+
+        List fields = new ArrayList();
+        VerifyField vfl = new VerifyField("age", "42", "==");
+        vfl.actualResult = "43";
+        vfl.successResult = new Boolean(false);
+        vfl.explanation = "Not cool jimmy.";
+
+        fields.add(vfl);
+
+        vfl = new VerifyField("name", "michael", "!=");
+        vfl.actualResult = "bob";
+        vfl.successResult = new Boolean(true);
+        vfl.explanation = "Yeah !";
+        fields.add(vfl);
+
+        VerifyFact vf = new VerifyFact("d1", fields);
+
+        sc.fixtures.add(vf);
+
+        VerifyRuleFired vf1 = new VerifyRuleFired("Life unverse and everything", new Integer(42), null);
+        vf1.actualResult = new Integer(42);
+        vf1.successResult = new Boolean(true);
+        vf1.explanation = "All good here.";
+
+        VerifyRuleFired vf2 = new VerifyRuleFired("Everything else", null, new Boolean(true));
+        vf2.actualResult = new Integer(0);
+        vf2.successResult = new Boolean(false);
+        vf2.explanation = "Not so good here.";
+        sc.fixtures.add(vf1);
+        sc.fixtures.add(vf2);
+
+		return sc;
+	}
+
+	private List ls(FieldData[] fieldDatas) {
+		List ls = new ArrayList();
+		for (int i = 0; i < fieldDatas.length; i++) {
+			ls.add(fieldDatas[i]);
+		}
+		return ls;
+	}
+
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/server/util/ScenarioXMLPersistenceTest.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	2007-11-23 06:20:03 UTC (rev 16756)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java	2007-11-23 06:40:20 UTC (rev 16757)
@@ -433,7 +433,7 @@
 
         ScenarioRunner run = new ScenarioRunner(sc, resolver, (InternalWorkingMemory) wm);
 
-        assertEquals(3, executionTrace.numberOfRulesFired);
+        assertEquals(3, executionTrace.numberOfRulesFired.intValue());
 
         assertSame(run.scenario, sc);
 
@@ -446,7 +446,7 @@
 
 
         assertTrue((new Date()).after(sc.lastRunResult));
-        assertTrue(executionTrace.executionTimeResult != -1);
+        assertTrue(executionTrace.executionTimeResult != null);
 
 	}
 




More information about the jboss-svn-commits mailing list