[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